Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

xml_schema_element.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_ELEMENT_H
00018 #define XML_SCHEMA_ELEMENT_H
00019 
00027 #include <xml_schema_particle.h>
00028 #include <axis2_qname.h>
00029 
00035 typedef struct xml_schema_element xml_schema_element_t;
00036 typedef struct xml_schema_element_ops xml_schema_element_ops_t;
00037 struct xml_schema;
00038 struct xml_schema_type_receiver;
00039 struct xml_schema_obj_collection;
00040 struct xml_schema_derivation_method;
00041 struct xml_schema_form;
00042 struct xml_schema_type;
00043 
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048 
00049 struct xml_schema_element_ops
00050 {
00051     axis2_status_t (AXIS2_CALL *
00052     free) (void *element,
00053             const axis2_env_t *env);
00054     
00055     xml_schema_particle_t *(AXIS2_CALL *
00056     get_base_impl) (
00057             void *element,
00058             const axis2_env_t *env);
00059 
00060     xml_schema_types_t (AXIS2_CALL *
00061     get_type)(void *element,
00062           const axis2_env_t *env);
00063           
00064     axis2_hash_t* (AXIS2_CALL *
00065     super_objs)(void *element,
00066                 const axis2_env_t *env);          
00067 
00068     struct xml_schema_obj_collection *(AXIS2_CALL *
00069     get_constraints)(
00070             void *element,
00071             const axis2_env_t *env); 
00072 
00073     axis2_char_t *(AXIS2_CALL * 
00074     get_default_value)(
00075             void *element,
00076             const axis2_env_t *env);
00077 
00078     axis2_status_t (AXIS2_CALL * 
00079     set_default_value)(
00080             void *element,
00081             const axis2_env_t *env,
00082             axis2_char_t *default_value);
00083 
00084     struct xml_schema_derivation_method *(AXIS2_CALL *
00085     get_block)(
00086             void *element,
00087             const axis2_env_t *env); 
00088 
00089     axis2_status_t (AXIS2_CALL * 
00090     set_block)(
00091             void *element,
00092             const axis2_env_t *env,
00093             struct xml_schema_derivation_method * block);
00094             
00095 
00096     struct xml_schema_derivation_method *(AXIS2_CALL *
00097     get_final) (void *element,
00098                 const axis2_env_t *env);
00099 
00100     axis2_status_t (AXIS2_CALL *
00101     set_final)(void *element,
00102                const axis2_env_t *env,
00103                struct xml_schema_derivation_method *final_derivation);
00104 
00105     struct xml_schema_derivation_method *(AXIS2_CALL * 
00106     get_block_resolved)(
00107             void *element,
00108             const axis2_env_t *env);
00109 
00110     axis2_char_t *(AXIS2_CALL * 
00111     get_fixed_value)(
00112             void *element,
00113             const axis2_env_t *env); 
00114 
00115     axis2_status_t (AXIS2_CALL *
00116     set_fixed_value)(
00117             void *element,
00118             const axis2_env_t *env,
00119             axis2_char_t *fixed_value); 
00120             
00121 
00122     void *(AXIS2_CALL *
00123     get_element_type)(
00124             void *element,
00125             const axis2_env_t *env); 
00126             
00127 
00128     struct xml_schema_form *(AXIS2_CALL *
00129     get_form)(void *element,
00130               const axis2_env_t *env); 
00131 
00132     axis2_status_t (AXIS2_CALL *
00133     set_form)(void *element,
00134                const axis2_env_t *env,
00135                 struct xml_schema_form *form); 
00136 
00137     axis2_bool_t (AXIS2_CALL *
00138     is_abstract) (void *element,
00139                             const axis2_env_t *env);
00140 
00141     axis2_status_t (AXIS2_CALL * 
00142     set_abstract) (
00143             void *element,
00144             const axis2_env_t *env,
00145             axis2_bool_t is_abstract);
00146 
00147     axis2_bool_t (AXIS2_CALL *
00148     is_nillable)(
00149             void *element,
00150             const axis2_env_t *env);
00151 
00152     axis2_status_t (AXIS2_CALL * 
00153     set_nillable) (void *element,
00154                             const axis2_env_t *env,
00155                             axis2_bool_t  is_nillable);
00156 
00157     axis2_char_t *(AXIS2_CALL * 
00158     get_name) (void *element,
00159                         const axis2_env_t *env);
00160 
00161     axis2_status_t (AXIS2_CALL * 
00162     set_name)(
00163             void *element,
00164             const axis2_env_t *env,
00165             axis2_char_t *name);
00166 
00167     axis2_qname_t *(AXIS2_CALL * 
00168     get_ref_qname)(
00169             void *element,
00170             const axis2_env_t *env);
00171 
00172     axis2_status_t (AXIS2_CALL * 
00173     set_ref_qname)(
00174             void *element,
00175             const axis2_env_t *env,
00176             axis2_qname_t *ref_qname);
00177 
00178     axis2_qname_t *(AXIS2_CALL * 
00179     get_qname)(
00180             void *element,
00181             const axis2_env_t *env);
00182 
00183     axis2_status_t (AXIS2_CALL * 
00184     set_qname)(
00185             void *element,
00186             const axis2_env_t *env,
00187             axis2_qname_t *qualified_name); 
00188 
00189     struct xml_schema_type *(AXIS2_CALL *
00190     get_schema_type)(
00191             void *element,
00192             const axis2_env_t *env);
00193 
00194     axis2_status_t (AXIS2_CALL * 
00195     set_schema_type)(
00196             void *element,
00197             const axis2_env_t *env,
00198             struct xml_schema_type *schema_type);
00199 
00200     axis2_qname_t *(AXIS2_CALL * 
00201     get_schema_type_qname)(
00202             void *element,
00203             const axis2_env_t *env);
00204 
00205     axis2_status_t (AXIS2_CALL * 
00206     set_schema_type_qname)(
00207             void *element,
00208             const axis2_env_t *env,
00209             axis2_qname_t *schema_type_qname);
00210 
00211     axis2_qname_t *(AXIS2_CALL * 
00212     get_substitution_group)(
00213             void *element,
00214             const axis2_env_t *env);
00215 
00216     axis2_status_t (AXIS2_CALL * 
00217     set_substitution_group)(
00218             void *element,
00219             const axis2_env_t *env,
00220             axis2_qname_t *substitution_group);
00221 
00222     axis2_char_t *(AXIS2_CALL * 
00223     to_string)(
00224             void *element,
00225             const axis2_env_t *env,
00226             axis2_char_t *prefix, 
00227             int tab);
00228 
00229     axis2_status_t (AXIS2_CALL * 
00230     set_type)(
00231             void *element,
00232             const axis2_env_t *env,
00233             struct xml_schema_type *type);
00234 
00235 };
00236 
00237 struct xml_schema_element
00238 {
00239     xml_schema_particle_t base;
00240     xml_schema_element_ops_t *ops;
00241 };
00242 
00243 AXIS2_EXTERN xml_schema_element_t * AXIS2_CALL
00244 xml_schema_element_create(const axis2_env_t *env);
00245 
00246 /************ macros **********************************************************/
00247 
00248 #define XML_SCHEMA_ELEMENT_FREE(element, env) \
00249       (((xml_schema_element_t *) element)->ops->free(\
00250             element, env))
00251 
00252 #define XML_SCHEMA_ELEMENT_GET_BASE_IMPL(element, env) \
00253       (((xml_schema_element_t *) element)->ops->get_base_impl(\
00254             element, env))
00255 
00256 #define XML_SCHEMA_ELEMENT_GET_TYPE(element, env) \
00257       (((xml_schema_element_t *) element)->ops->get_type(\
00258             element, env))
00259 
00260 #define XML_SCHEMA_ELEMENT_SUPER_OBJS(element, env) \
00261       (((xml_schema_element_t *) element)->ops->super_objs(\
00262             element, env))
00263 
00264 #define XML_SCHEMA_ELEMENT_GET_CONSTRAINTS(element, env) \
00265       (((xml_schema_element_t *) element)->ops->get_constraints(\
00266             element, env))
00267             
00268 #define XML_SCHEMA_ELEMENT_GET_DEFAULT_VALUE(element, env) \
00269       (((xml_schema_element_t *) element)->ops->get_default_value(\
00270             element, env))            
00271             
00272 #define XML_SCHEMA_ELEMENT_SET_DEFAULT_VALUE(element, env, def_value) \
00273       (((xml_schema_element_t *) element)->ops->set_default_value(\
00274             element, env, def_value))            
00275             
00276 #define XML_SCHEMA_ELEMENT_SET_BLOCK(element, env, block) \
00277       (((xml_schema_element_t *) element)->ops->set_block(\
00278             element, env, block))            
00279             
00280 #define XML_SCHEMA_ELEMENT_GET_FINAL(element, env) \
00281       (((xml_schema_element_t *) element)->ops->get_final(\
00282             element, env))              
00283 
00284 #define XML_SCHEMA_ELEMENT_SET_FINAL(element, env, final_derivation) \
00285       (((xml_schema_element_t *) element)->ops->set_final(\
00286             element, env, final_derivation))            
00287 
00288 #define XML_SCHEMA_ELEMENT_GET_BLOCK_RESOLVED(element, env) \
00289       (((xml_schema_element_t *) element)->ops->get_block_resolved(\
00290             element, env))
00291             
00292 #define XML_SCHEMA_ELEMENT_GET_BLOCK(element, env) \
00293       (((xml_schema_element_t *) element)->ops->get_block(\
00294             element, env))              
00295             
00296 #define XML_SCHEMA_ELEMENT_GET_FIXED_VALUE(element, env) \
00297       (((xml_schema_element_t *) element)->ops->get_fixed_value(\
00298             element, env))             
00299 
00300 #define XML_SCHEMA_ELEMENT_SET_FIXED_VALUE(element, env, fixed_value) \
00301       (((xml_schema_element_t *) element)->ops->set_fixed_value(\
00302             element, env, fixed_value))
00303 
00304 #define XML_SCHEMA_ELEMENT_GET_ELEMENT_TYPE(element, env) \
00305       (((xml_schema_element_t *) element)->ops->get_element_type(\
00306             element, env))             
00307             
00308 #define XML_SCHEMA_ELEMENT_GET_FORM(element, env) \
00309       (((xml_schema_element_t *) element)->ops->get_form(\
00310             element, env))              
00311 
00312 #define XML_SCHEMA_ELEMENT_SET_FORM(element, env, form) \
00313       (((xml_schema_element_t *) element)->ops->set_form(\
00314             element, env, form))             
00315                      
00316 
00317 #define XML_SCHEMA_ELEMENT_IS_ABSTRACT(element, env) \
00318       (((xml_schema_element_t *) element)->ops->is_abstract(\
00319             element, env))
00320 
00321 #define XML_SCHEMA_ELEMENT_SET_ABSTRACT(element, env, is_abstract) \
00322       (((xml_schema_element_t *) element)->ops->set_abstract(\
00323             element, env, is_abstract))   
00324             
00325 
00326 #define XML_SCHEMA_ELEMENT_IS_NILLABLE(element, env) \
00327       (((xml_schema_element_t *) element)->ops->is_nillable(\
00328             element, env))       
00329             
00330 #define XML_SCHEMA_ELEMENT_SET_NILLABLE(element, env, is_nillable) \
00331       (((xml_schema_element_t *) element)->ops->set_nillable(\
00332             element, env, is_nillable))
00333             
00334 #define XML_SCHEMA_ELEMENT_GET_NAME(element, env) \
00335       (((xml_schema_element_t *) element)->ops->get_name(\
00336             element, env))
00337             
00338 #define XML_SCHEMA_ELEMENT_SET_NAME(element, env, name) \
00339       (((xml_schema_element_t *) element)->ops->set_name(\
00340             element, env, name)) 
00341 
00342             
00343 #define XML_SCHEMA_ELEMENT_GET_REF_NAME(element, env) \
00344       (((xml_schema_element_t *) element)->ops->get_ref_qname(\
00345             element, env)) 
00346             
00347 #define XML_SCHEMA_ELEMENT_SET_REF_NAME(element, env, ref_name) \
00348       (((xml_schema_element_t *) element)->ops->set_ref_qname(\
00349             element, env, ref_name))
00350             
00351 #define XML_SCHEMA_ELEMENT_GET_QNAME(element, env) \
00352       (((xml_schema_element_t *) element)->ops->get_qname(\
00353             element, env)) 
00354             
00355 #define XML_SCHEMA_ELEMENT_SET_QNAME(element, env, qualified_name) \
00356       (((xml_schema_element_t *) element)->ops->set_qname(\
00357             element, env, qualified_name))
00358                                                                          
00359 #define XML_SCHEMA_ELEMENT_GET_SCHEMA_TYPE(element, env) \
00360       (((xml_schema_element_t *) element)->ops->get_schema_type(\
00361             element, env)) 
00362             
00363 #define XML_SCHEMA_ELEMENT_SET_SCHEMA_TYPE(element, env, schema_type) \
00364       (((xml_schema_element_t *) element)->ops->set_schema_type(\
00365             element, env, schema_type))
00366             
00367 #define XML_SCHEMA_ELEMENT_GET_SCHEMA_TYPE_QNAME(element, env) \
00368       (((xml_schema_element_t *) element)->ops->get_schema_type_qname(\
00369             element, env)) 
00370             
00371 #define XML_SCHEMA_ELEMENT_SET_SCHEMA_TYPE_QNAME(element, env, schema_type_name) \
00372       (((xml_schema_element_t *) element)->ops->set_schema_type_qname(\
00373             element, env, schema_type_name))            
00374         
00375 #define XML_SCHEMA_ELEMENT_GET_SUBSTITUTION_GROUP(element, env) \
00376       (((xml_schema_element_t *) element)->ops->get_substitution_group(\
00377             element, env)) 
00378             
00379 #define XML_SCHEMA_ELEMENT_SET_SUBSTITUTION_GROUP(element, env, sub_group) \
00380       (((xml_schema_element_t *) element)->ops->set_substitution_group(\
00381             element, env, sub_group))            
00382 
00383 #ifdef __cplusplus
00384 }
00385 #endif
00386 #endif /* XML_SCHEMA_ELEMENT_H */

Generated on Fri Jun 16 18:02:32 2006 for Axis2/C by  doxygen 1.4.2