xml_schema_any_attribute.h

00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef XML_SCHEMA_ANY_ATTRIBUTE_H
00019 #define XML_SCHEMA_ANY_ATTRIBUTE_H
00020 
00030 #include <xml_schema_particle.h>
00031 #include <xml_schema_content_processing.h>
00032 
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044 
00045 typedef struct xml_schema_any_attribute 
00046                     xml_schema_any_attribute_t;
00047 typedef struct xml_schema_any_attribute_ops 
00048                 xml_schema_any_attribute_ops_t;
00049 
00050 struct xml_schema_any_attribute_ops
00051 {
00056     axis2_status_t (AXIS2_CALL *
00057     free) (void *any_attr,
00058             const axis2_env_t *env);
00059             
00060     xml_schema_types_t (AXIS2_CALL *
00061     get_type)(void *any_attr,
00062           const axis2_env_t *env);
00063           
00064     axis2_hash_t* (AXIS2_CALL *
00065     super_objs)(void *any_attr,
00066                 const axis2_env_t *env);
00067                                       
00068 
00069     xml_schema_annotated_t *(AXIS2_CALL *
00070     get_base_impl) (void *any_attr,
00071                     const axis2_env_t *env);
00072     
00073     axis2_char_t *(AXIS2_CALL *
00074     get_namespace)(void *any_attr,
00075                     const axis2_env_t *env);
00076 
00077     axis2_status_t (AXIS2_CALL *
00078     set_namespace) (void *any_attr,
00079                     const axis2_env_t *env,
00080                     axis2_char_t *ns);
00081 
00082     struct xml_schema_content_processing *(AXIS2_CALL *
00083     get_process_content) (void *any_attr,
00084                           const axis2_env_t *env);
00085 
00086     axis2_status_t (AXIS2_CALL *
00087     set_process_content)(void *any_attr,
00088                         const axis2_env_t *env,
00089                         struct xml_schema_content_processing *process_content);
00090 };
00091 
00092 struct xml_schema_any_attribute
00093 {
00094     xml_schema_annotated_t base;
00095     xml_schema_any_attribute_ops_t *ops;
00096 };
00097 
00098 AXIS2_EXTERN xml_schema_any_attribute_t * AXIS2_CALL
00099 xml_schema_any_attribute_create(const axis2_env_t *env);
00100 
00111 /******************************* Macros *************************************************/ 
00112  
00113 #define XML_SCHEMA_ANY_ATTRIBUTE_FREE(any_attr, env) \
00114       (((xml_schema_any_attribute_t *) any_attr)->ops->free(any_attr, env))
00115 
00116 #define XML_SCHEMA_ANY_ATTRIBUTE_GET_BASE_IMPL(any_attr, env) \
00117       (((xml_schema_any_attribute_t *) any_attr)->ops->get_base_impl(any_attr, env))
00118 
00119 
00120 #define XML_SCHEMA_ANY_ATTRIBUTE_GET_TYPE(any_attr, env) \
00121       (((xml_schema_any_attribute_t *) any_attr)->ops->get_type(any_attr, env))
00122       
00123       
00124 #define XML_SCHEMA_ANY_ATTRIBUTE_SUPER_OBJS(any_attr, env) \
00125       (((xml_schema_any_attribute_t *) any_attr)->ops->super_objs(any_attr, env))
00126       
00127       
00128 #define XML_SCHEMA_ANY_ATTRIBUTE_GET_NAMESPACE(any_attr, env) \
00129       (((xml_schema_any_attribute_t *) any_attr)->ops->get_namespace(any_attr, env))
00130 
00131 #define XML_SCHEMA_ANY_ATTRIBUTE_SET_NAMESPACE(any_attr, env, namespc) \
00132       (((xml_schema_any_attribute_t *) any_attr)->ops->set_namespace(any_attr, env, namespc))
00133 
00134 #define XML_SCHEMA_ANY_ATTRIBUTE_GET_PROCESS_CONTENT(any_attr, env) \
00135       (((xml_schema_any_attribute_t *) any_attr)->ops->get_process_content(any_attr, env))
00136 
00137 #define XML_SCHEMA_ANY_ATTRIBUTE_SET_PROCESS_CONTENT(any_attr, env, process_content) \
00138       (((xml_schema_any_attribute_t *) any_attr)->ops->set_process_content(any_attr, env, process_content))
00139 
00140 /******************************* end macros ***********************************************/
00142 #ifdef __cplusplus
00143 }
00144 #endif
00145 #endif /* XML_SCHEMA_ANY_ATTRIBUTE_H */

Generated on Wed Dec 20 20:14:11 2006 for Axis2/C by  doxygen 1.5.1