You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/05/08 09:21:21 UTC
svn commit: r404947 [1/7] - in
/webservices/axis2/trunk/c/modules/wsdl/woden: ./ include/woden/
include/woden/schema/ include/woden/wsdl20/
include/woden/wsdl20/extensions/ include/woden/wsdl20/xml/
include/woden/xml/ src/schema/ src/util/ src/wsdl20/ ...
Author: damitha
Date: Mon May 8 00:21:09 2006
New Revision: 404947
URL: http://svn.apache.org/viewcvs?rev=404947&view=rev
Log:
Added new files
Added:
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_component.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_configurable_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_feature_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_property_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_types_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/documentable.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/documentation.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/feature.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/nested_component.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/types.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/wsdl_component.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/Makefile.am
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/configurable_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/documentable_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/documentation_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/feature_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/nested_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/property_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/types_element.c
Modified:
webservices/axis2/trunk/c/modules/wsdl/woden/build.sh
webservices/axis2/trunk/c/modules/wsdl/woden/configure.ac
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_imported_schema.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_inlined_schema.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_schema.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_wsdl_component.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_component_exts.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentable_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentation_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_nested_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_wsdl_element.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_bool_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_qname_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_qname_list_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_qname_list_or_token_any_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_qname_or_token_any_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_string_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_uri_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/xml/axis2_woden_xml_attr.h
webservices/axis2/trunk/c/modules/wsdl/woden/src/schema/Makefile.am
webservices/axis2/trunk/c/modules/wsdl/woden/src/schema/imported_schema.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/schema/inlined_schema.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/schema/schema.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/util/om_util.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/Makefile.am
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/extensions/Makefile.am
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/extensions/attr_extensible.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/extensions/component_exts.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/extensions/element_extensible.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/wsdl_element.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/wsdl_obj.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/Makefile.am
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/bool_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/qname_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/qname_list_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/qname_list_or_token_any_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/qname_or_token_any_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/string_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/uri_attr.c
webservices/axis2/trunk/c/modules/wsdl/woden/src/xml/xml_attr.c
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/build.sh
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/build.sh?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/build.sh (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/build.sh Mon May 8 00:21:09 2006
@@ -1,4 +1,4 @@
#!/bin/bash
./autogen.sh
-./configure
+./configure --enable-static=no
make
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/configure.ac
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/configure.ac?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/configure.ac (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/configure.ac Mon May 8 00:21:09 2006
@@ -44,6 +44,7 @@
src/schema/Makefile \
src/xml/Makefile \
src/wsdl20/Makefile \
+ src/wsdl20/xml/Makefile \
src/wsdl20/extensions/Makefile
])
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h Mon May 8 00:21:09 2006
@@ -30,8 +30,9 @@
*
*/
-#include <woden/axis2_woden_wsdl_element.h>
-#include <woden/axis2_woden_wsdl_component.h>
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_wsdl_element.h>
+#include <woden/wsdl20/axis2_woden_wsdl_component.h>
/** @defgroup axis2_woden_wsdl_obj Wsdl Object
* @ingroup axis2_wsdl
@@ -55,36 +56,46 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *wsdl_obj,
+ free) (
+ void *wsdl_obj,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *wsdl_obj,
axis2_env_t **env);
/**
* @return the base implementation class
*/
axis2_woden_wsdl_element_t *(AXIS2_CALL *
- get_base_impl) (void *wsdl_obj,
- axis2_env_t **env);
+ get_base_impl) (
+ void *wsdl_obj,
+ axis2_env_t **env);
struct axis2_woden_component_exts *(AXIS2_CALL *
- get_component_exts_for_namespace) (void *wsdl_obj,
- axis2_env_t **env,
- axis2_url_t *namespc);
+ get_component_exts_for_namespace) (
+ void *wsdl_obj,
+ axis2_env_t **env,
+ axis2_url_t *namespc);
+
/*
* Store the extensions in a map using the namespace string as the key.
* If the extensions value is null, delete any existing entry in the map
* for this namespace. If the nsmespace string is null, do nothing.
*/
axis2_status_t (AXIS2_CALL *
- set_component_exts) (void *wsdl_obj,
- axis2_env_t **env,
- axis2_url_t *namespc,
- struct axis2_woden_component_exts *exts);
+ set_component_exts) (
+ void *wsdl_obj,
+ axis2_env_t **env,
+ axis2_url_t *namespc,
+ struct axis2_woden_component_exts *exts);
};
union axis2_woden_wsdl_obj_base
{
- axis2_woden_wsdl_element_t element_base;
- axis2_woden_wsdl_component_t component_base;
+ axis2_woden_wsdl_element_t wsdl_element;
+ axis2_woden_wsdl_component_t wsdl_component;
};
struct axis2_woden_wsdl_obj
@@ -94,25 +105,23 @@
};
AXIS2_DECLARE(axis2_woden_wsdl_obj_t *)
-axis2_woden_wsdl_obj_create(axis2_env_t **env);
-
-AXIS2_DECLARE(axis2_woden_wsdl_obj_t *)
-axis2_woden_wsdl_obj_create_for_wsdl_component(axis2_env_t **env);
+axis2_woden_wsdl_obj_create(
+ axis2_env_t **env);
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
+/************************Woden C Internal Methods******************************/
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_wsdl_obj_resolve_methods(axis2_woden_wsdl_obj_t *wsdl_obj,
- axis2_env_t **env,
- axis2_woden_wsdl_obj_t *wsdl_obj_impl,
- axis2_hash_t *methods);
-
+axis2_woden_wsdl_obj_resolve_methods(
+ axis2_woden_wsdl_obj_t *wsdl_obj,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_WSDL_OBJ_FREE(wsdl_obj, env) \
(((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->free(wsdl_obj, env))
+#define AXIS2_WODEN_WSDL_OBJ_TYPE(wsdl_obj, env) \
+ (((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->type(wsdl_obj, env))
+
#define AXIS2_WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env) \
(((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->get_base_impl(wsdl_obj, env))
@@ -122,8 +131,8 @@
get_component_exts_for_namespace(wsdl_obj, env, namespc))
#define AXIS2_WODEN_WSDL_OBJ_SET_COMPONENT_EXTS(wsdl_obj, env, namespc, exts) \
- (((axis2_woden_wsdl_obj_t *) wsdl_obj)->set_component_exts(wsdl_obj, \
- env, namespc, exts))
+ (((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->set_component_exts(\
+ wsdl_obj, env, namespc, exts))
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_imported_schema.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_imported_schema.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_imported_schema.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_imported_schema.h Mon May 8 00:21:09 2006
@@ -25,7 +25,7 @@
* <code>schemaLocation</code> attribute.
*/
-#include <woden/axis2_woden_schema.h>
+#include <woden/schema/axis2_woden_schema.h>
/** @defgroup axis2_woden_imported_schema Imported Schema
* @ingroup axis2_wsdl
@@ -47,46 +47,63 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *schema,
+ free) (
+ void *schema,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_imported_schema_free) (
+ void *schema,
axis2_env_t **env);
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *schema,
+ axis2_env_t **env);
/**
* @return the base implementation class
*/
axis2_woden_schema_t *(AXIS2_CALL *
- get_base_impl) (void *schema,
- axis2_env_t **env);
+ get_base_impl) (
+ void *schema,
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
- set_location) (void *schema,
- axis2_env_t **env,
- struct axis2_url *location);
+ set_location) (
+ void *schema,
+ axis2_env_t **env,
+ struct axis2_url *location);
struct axis2_url *(AXIS2_CALL *
- get_location) (void *schema,
- axis2_env_t **env);
+ get_location) (
+ void *schema,
+ axis2_env_t **env);
};
struct axis2_woden_imported_schema
{
- axis2_woden_schema_t base;
+ axis2_woden_schema_t schema;
axis2_woden_imported_schema_ops_t *ops;
};
AXIS2_DECLARE(axis2_woden_imported_schema_t *)
-axis2_woden_imported_schema_create(axis2_env_t **env);
+axis2_woden_imported_schema_create(
+ axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_woden_imported_schema_t *)
+axis2_woden_imported_schema_to_schema(
+ void *schema,
+ axis2_env_t **env);
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_imported_schema_resolve_methods(axis2_woden_imported_schema_t *schema,
- axis2_env_t **env,
- axis2_woden_imported_schema_t *schema_impl,
- axis2_hash_t *methods);
+axis2_woden_imported_schema_resolve_methods(
+ axis2_woden_imported_schema_t *schema,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_IMPORTED_SCHEMA_FREE(schema, env) \
(((axis2_woden_imported_schema_t *) schema)->ops->free(schema, env))
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_inlined_schema.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_inlined_schema.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_inlined_schema.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_inlined_schema.h Mon May 8 00:21:09 2006
@@ -20,12 +20,12 @@
/**
* @file axis2_woden_inlined_schema.h
* @brief Axis2 Inlined Schema Interface
- * This class represents an inlined schema, <xs:schema>.
- * It extends the abstract class SchemaImpl, adding support for the
- * <code>id</code> attribute.
+ * This class represents an inlined schema, <xs:schema>.
+ * It extends the abstract class schema, adding support for the
+ * <code>id</code> attribute.
*/
-#include <woden/axis2_woden_schema.h>
+#include <woden/schema/axis2_woden_schema.h>
/** @defgroup axis2_woden_inlined_schema Inlined Schema
* @ingroup axis2_wsdl
@@ -47,46 +47,63 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *schema,
+ free) (
+ void *schema,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_inlined_schema_free) (
+ void *schema,
axis2_env_t **env);
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *schema,
+ axis2_env_t **env);
/**
* @return the base implementation class
*/
axis2_woden_schema_t *(AXIS2_CALL *
- get_base_impl) (void *schema,
- axis2_env_t **env);
+ get_base_impl) (
+ void *schema,
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
- set_id) (void *schema,
- axis2_env_t **env,
- axis2_char_t *id);
+ set_id) (
+ void *schema,
+ axis2_env_t **env,
+ axis2_char_t *id);
axis2_char_t *(AXIS2_CALL *
- get_id) (void *schema,
- axis2_env_t **env);
+ get_id) (
+ void *schema,
+ axis2_env_t **env);
};
struct axis2_woden_inlined_schema
{
- axis2_woden_schema_t base;
+ axis2_woden_schema_t schema;
axis2_woden_inlined_schema_ops_t *ops;
};
AXIS2_DECLARE(axis2_woden_inlined_schema_t *)
-axis2_woden_inlined_schema_create(axis2_env_t **env);
+axis2_woden_inlined_schema_create(
+ axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_woden_inlined_schema_t *)
+axis2_woden_inlined_schema_to_schema(
+ void *schema,
+ axis2_env_t **env);
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_inlined_schema_resolve_methods(axis2_woden_inlined_schema_t *schema,
- axis2_env_t **env,
- axis2_woden_inlined_schema_t *schema_impl,
- axis2_hash_t *methods);
+axis2_woden_inlined_schema_resolve_methods(
+ axis2_woden_inlined_schema_t *schema,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_INLINED_SCHEMA_FREE(schema, env) \
(((axis2_woden_inlined_schema_t *) schema)->ops->free(schema, env))
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_schema.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_schema.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_schema.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/schema/axis2_woden_schema.h Mon May 8 00:21:09 2006
@@ -29,6 +29,8 @@
#include <axis2_string.h>
#include <axis2_const.h>
#include <axis2_hash.h>
+#include <axis2_url.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
@@ -38,7 +40,6 @@
typedef struct axis2_woden_schema axis2_woden_schema_t;
typedef struct axis2_woden_schema_ops axis2_woden_schema_ops_t;
struct axis2_xml_schema;
-struct axis2_url;
/** @defgroup axis2_woden_schema Schema
* @ingroup axis2_wsdl
@@ -52,26 +53,36 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *schema,
+ free) (
+ void *schema,
axis2_env_t **env);
- axis2_status_t (AXIS2_CALL *
- set_namespace) (void *schema,
- axis2_env_t **env,
- struct axis2_url *namespc);
-
- struct axis2_url *(AXIS2_CALL *
- get_namespace) (void *schema,
- axis2_env_t **env);
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *schema,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_namespace) (
+ void *schema,
+ axis2_env_t **env,
+ axis2_url_t *namespc);
+
+ axis2_url_t *(AXIS2_CALL *
+ get_namespace) (
+ void *schema,
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
- set_schema_def) (void *schema,
- axis2_env_t **env,
- struct axis2_xml_schema *schema_def);
+ set_schema_def) (
+ void *schema,
+ axis2_env_t **env,
+ struct axis2_xml_schema *schema_def);
struct axis2_xml_schema *(AXIS2_CALL *
- get_schema_def) (void *schema,
- axis2_env_t **env);
+ get_schema_def) (
+ void *schema,
+ axis2_env_t **env);
/* ************************************************************
* Non-API implementation methods
@@ -91,17 +102,20 @@
* is disabled, any inlined or imported schema will be considered referenceable.
*/
axis2_status_t (AXIS2_CALL *
- set_referenceable) (void *schema,
- axis2_env_t **env,
- axis2_bool_t referenceable);
+ set_referenceable) (
+ void *schema,
+ axis2_env_t **env,
+ axis2_bool_t referenceable);
axis2_bool_t (AXIS2_CALL *
- is_referenceable) (void *schema,
- axis2_env_t **env);
+ is_referenceable) (
+ void *schema,
+ axis2_env_t **env);
axis2_char_t *(AXIS2_CALL *
- get_namespace_as_string) (void *schema,
- axis2_env_t **env);
+ get_namespace_as_string) (
+ void *schema,
+ axis2_env_t **env);
};
@@ -114,19 +128,20 @@
AXIS2_DECLARE(axis2_woden_schema_t *)
axis2_woden_schema_create(axis2_env_t **env);
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
+/************************Woden C Internal Methods******************************/
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_schema_resolve_methods(axis2_woden_schema_t *schema,
- axis2_env_t **env,
- axis2_woden_schema_t *schema_impl,
- axis2_hash_t *methods);
+axis2_woden_schema_resolve_methods(
+ axis2_woden_schema_t *schema,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_SCHEMA_FREE(schema, env) \
(((axis2_woden_schema_t *) schema)->ops->free (schema, env))
+#define AXIS2_WODEN_SCHEMA_TYPE(schema, env) \
+ (((axis2_woden_schema_t *) schema)->ops->type (schema, env))
+
#define AXIS2_WODEN_SCHEMA_SET_NAMESPACE(schema, env, namespc) \
(((axis2_woden_schema_t *) schema)->ops->set_namespace(schema, env, \
namespc))
@@ -138,7 +153,7 @@
(((axis2_woden_schema_t *) schema)->ops->set_schema_def(schema, env, \
schema_def))
-#define AXIS2_WODEN_SCHEMA_GET_SHCEMA_DEF(schema, env) \
+#define AXIS2_WODEN_SCHEMA_GET_SCHEMA_DEF(schema, env) \
(((axis2_woden_schema_t *) schema)->ops->get_schema_def(schema, env))
#define AXIS2_WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, referenceable) \
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h Mon May 8 00:21:09 2006
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_DOCUMENTABLE_H
+#define AXIS2_WODEN_DOCUMENTABLE_H
+
+/**
+ * @file axis2_woden_documentable.h
+ * @brief Axis2 Documentable Interface
+ * An abstract superclass for WSDL 2.0 elements which can have <documentation>
+ * child elements. That is, all WSDL 2.0 elements except the <documentation>
+ * element itself. Defines accessor methods for manipulating DocumentationElements.
+ *
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_documentable_element.h>
+#include <woden/axis2_woden_wsdl_obj.h>
+
+/** @defgroup axis2_woden_documentable Documentable
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+typedef union axis2_woden_documentable_base axis2_woden_documentable_base_t;
+typedef struct axis2_woden_documentable axis2_woden_documentable_t;
+typedef struct axis2_woden_documentable_ops axis2_woden_documentable_ops_t;
+struct axis2_woden_documentation_element;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_documentable_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (
+ void *documentable,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ type) (
+ void *documentable,
+ axis2_env_t **env);
+
+ /**
+ * @return the base implementation class
+ */
+ axis2_woden_wsdl_obj_t *(AXIS2_CALL *
+ get_base_impl) (
+ void *documentable,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ add_documentation_element) (
+ void *types,
+ axis2_env_t **env,
+ struct axis2_woden_documentation_element *documentation);
+
+ axis2_array_list_t *(AXIS2_CALL *
+ get_documentation_elements) (
+ void *types,
+ axis2_env_t **env);
+
+
+};
+
+union axis2_woden_documentable_base
+{
+ axis2_woden_wsdl_obj_t wsdl_obj;
+ axis2_woden_documentable_element_t documentable_elem;
+};
+
+struct axis2_woden_documentable
+{
+ axis2_woden_documentable_base_t base;
+ axis2_woden_documentable_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_documentable_t *)
+axis2_woden_documentable_create(
+ axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_documentable_resolve_methods(
+ axis2_woden_documentable_t *documentable,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define AXIS2_WODEN_DOCUMENTABLE_FREE(documentable, env) \
+ (((axis2_woden_documentable_t *) documentable)->ops->\
+ free(documentable, env))
+
+#define AXIS2_WODEN_DOCUMENTABLE_TYPE(documentable, env) \
+ (((axis2_woden_documentable_t *) documentable)->ops->\
+ type(documentable, env))
+
+#define AXIS2_WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env) \
+ (((axis2_woden_documentable_t *) documentable)->ops->\
+ get_base_impl(documentable, env))
+
+#define AXIS2_WODEN_DOCUMENTABLE_ADD_DOCUMENTATION_ELEMENT(documentable, env, \
+ documentation) \
+ (((axis2_woden_documentable_t *) documentable)->ops->\
+ add_documentation_element(documentable, env, documentation))
+
+#define AXIS2_WODEN_DOCUMENTABLE_GET_DOCUMENTATION_ELEMENTS(documentable, env) \
+ (((axis2_woden_documentable_t *) documentable)->ops->\
+ get_documentation_elements(documentable, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_DOCUMENTABLE_H */
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h Mon May 8 00:21:09 2006
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_DOCUMENTATION_H
+#define AXIS2_WODEN_DOCUMENTATION_H
+
+/**
+ * @file axis2_woden_documentation.h
+ * @brief Axis2 Documentation Interface
+ * This class implements support for parsing, creating and manipulating a
+ * WSDL 2.0 <wsdl:documentation> XML element.
+ * The <wsdl:documentation> element may contain mixed content, but this
+ * class does not attempt to understand that content. Instead it just wraps
+ * the <wsdl:documentation> element's content model as a void *.
+ *
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_documentation_element.h>
+#include <woden/wsdl20/xml/axis2_woden_wsdl_element.h>
+
+/** @defgroup axis2_woden_documentation Documentation
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+typedef union axis2_woden_documentation_base axis2_woden_documentation_base_t;
+typedef struct axis2_woden_documentation axis2_woden_documentation_t;
+typedef struct axis2_woden_documentation_ops axis2_woden_documentation_ops_t;
+struct axis2_woden_documentation_element;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_documentation_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (void *documentation,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_documentation_free) (void *documentation,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (void *documentation,
+ axis2_env_t **env);
+ /**
+ * @return the base implementation class
+ */
+ axis2_woden_wsdl_element_t *(AXIS2_CALL *
+ get_base_impl) (
+ void *documentation,
+ axis2_env_t **env);
+};
+
+union axis2_woden_documentation_base
+{
+ axis2_woden_wsdl_element_t wsdl_element;
+ axis2_woden_documentation_element_t documentation_element;
+};
+
+struct axis2_woden_documentation
+{
+ axis2_woden_documentation_base_t base;
+ axis2_woden_documentation_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_documentation_t *)
+axis2_woden_documentation_create(
+ axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_woden_documentation_t *)
+axis2_woden_documentation_to_documentation_element(
+ void *documentation,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_documentation_t *)
+axis2_woden_documentation_to_attr_extensible(
+ void *documentation,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_documentation_t *)
+axis2_woden_documentation_to_element_extensible(
+ void *documentation,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_documentation_resolve_methods(
+ axis2_woden_documentation_t *documentation,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define AXIS2_WODEN_DOCUMENTATION_FREE(documentation, env) \
+ (((axis2_woden_documentation_t *) documentation)->ops->free(documentation, env))
+
+#define AXIS2_WODEN_DOCUMENTATION_TYPE(documentation, env) \
+ (((axis2_woden_documentation_t *) documentation)->ops->type(documentation, env))
+
+#define AXIS2_WODEN_DOCUMENTATION_GET_BASE_IMPL(documentation, env) \
+ (((axis2_woden_documentation_t *) documentation)->ops->get_base_impl(documentation, env))
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_DOCUMENTATION_H */
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h Mon May 8 00:21:09 2006
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_FEATURE_H
+#define AXIS2_WODEN_FEATURE_H
+
+/**
+ * @file axis2_woden_feature.h
+ * @brief Axis2 Feature Interface
+ * An abstract superclass for WSDL 2.0 elements which can have <documentation>
+ * child elements. That is, all WSDL 2.0 elements except the <documentation>
+ * element itself. Defines accessor methods for manipulating DocumentationElements.
+ *
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_feature_element.h>
+#include <woden/axis2_woden_wsdl_obj.h>
+#include <woden/wsdl20/axis2_woden_documentable.h>
+#include <woden/wsdl20/axis2_woden_nested_component.h>
+
+/** @defgroup axis2_woden_feature Feature
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+typedef union axis2_woden_feature_base axis2_woden_feature_base_t;
+typedef struct axis2_woden_feature axis2_woden_feature_t;
+typedef struct axis2_woden_feature_ops axis2_woden_feature_ops_t;
+struct axis2_woden_documentation_element;
+struct axis2_woden_wsdl_component;
+struct axis2_woden_documentable;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_feature_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (void *feature,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_feature_free) (void *feature,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (void *feature,
+ axis2_env_t **env);
+ /**
+ * @return the base implementation class
+ */
+ struct axis2_woden_documentable *(AXIS2_CALL *
+ get_base_impl) (
+ void *feature,
+ axis2_env_t **env);
+
+ axis2_url_t *(AXIS2_CALL *
+ get_ref) (
+ void *feature,
+ axis2_env_t **env);
+
+ axis2_bool_t (AXIS2_CALL *
+ is_required) (
+ void *feature,
+ axis2_env_t **env);
+
+ void *(AXIS2_CALL *
+ get_parent) (
+ void *feature,
+ axis2_env_t **env);
+
+ void *(AXIS2_CALL *
+ to_element) (
+ void *feature,
+ axis2_env_t **env);
+
+};
+
+union axis2_woden_feature_base
+{
+ axis2_woden_documentable_t documentable;
+ axis2_woden_feature_element_t feature_element;
+ axis2_woden_nested_component_t nested_component;
+};
+
+struct axis2_woden_feature
+{
+ axis2_woden_feature_base_t base;
+ axis2_woden_feature_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_create(
+ axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_feature_element(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_nested_element(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_documentable_element(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_documentable(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_wsdl_obj(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_nested_component(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_wsdl_component(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_element_extensible(
+ void *feature,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_feature_t *)
+axis2_woden_feature_to_attr_extensible(
+ void *feature,
+ axis2_env_t **env);
+
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_feature_resolve_methods(
+ axis2_woden_feature_t *feature,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_FEATURE_FREE(feature, env) \
+ (((axis2_woden_feature_t *) feature)->ops->free(feature, env))
+
+#define AXIS2_WODEN_FEATURE_TO_FEATURE_FREE(feature, env) \
+ (((axis2_woden_feature_t *) feature)->ops->to_feature_free(feature, env))
+
+#define AXIS2_WODEN_FEATURE_TYPE(feature, env) \
+ (((axis2_woden_feature_t *) feature)->ops->type(feature, env))
+
+#define AXIS2_WODEN_FEATURE_GET_BASE_IMPL(feature, env) \
+ (((axis2_woden_feature_t *) feature)->ops->get_base_impl(feature, env))
+
+#define AXIS2_WODEN_FEATURE_GET_REF(feature, env) \
+ (((axis2_woden_feature_t *) feature)->\
+ get_ref(feature, env))
+
+#define AXIS2_WODEN_FEATURE_IS_REQUIRED(feature, env) \
+ (((axis2_woden_feature_t *) feature)->\
+ is_required(feature, env))
+
+#define AXIS2_WODEN_FEATURE_GET_PARENT(feature, env) \
+ (((axis2_woden_feature_t *) feature)->ops->\
+ get_parent(feature, env))
+
+#define AXIS2_WODEN_FEATURE_TO_ELEMENT(feature, env) \
+ (((axis2_woden_feature_t *) feature)->ops->\
+ to_element(feature, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_FEATURE_H */
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_component.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_component.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_component.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_component.h Mon May 8 00:21:09 2006
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_NESTED_COMPONENT_H
+#define AXIS2_WODEN_NESTED_COMPONENT_H
+
+/**
+ * @file axis2_woden_nested_component.h
+ * @brief Axis2 Nested Component Interface
+ * Components which are nested within a 'top-level' component will extend
+ * this interface. These are Property, Feature and the sub components of
+ * Interface, Binding and Service.
+ * <p>
+ * The components which are not nested are Description, Interface,
+ * Binding, Service, ElementDeclaration and TypeDefinition.
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2.h>
+#include <axis2_hash.h>
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/axis2_woden_wsdl_component.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_woden_nested_component axis2_woden_nested_component_t;
+typedef struct axis2_woden_nested_component_ops axis2_woden_nested_component_ops_t;
+struct axis2_woden_component_exts;
+
+/** @defgroup axis2_woden_nested_component Nested Component
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+struct axis2_woden_nested_component_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (
+ void *nested_component,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_nested_component_free) (
+ void *nested_component,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *nested_component,
+ axis2_env_t **env);
+
+ void *(AXIS2_CALL *
+ get_parent) (
+ void *nested_component,
+ axis2_env_t **env);
+
+};
+
+struct axis2_woden_nested_component
+{
+ axis2_woden_wsdl_component_t wsdl_component;
+ axis2_woden_nested_component_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+axis2_woden_nested_component_resolve_methods(
+ axis2_woden_nested_component_t *nested_component,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_NESTED_COMPONENT_FREE(nested_component, env) \
+ (((axis2_woden_nested_component_t *) nested_component)->ops->\
+ free (nested_component, env))
+
+#define AXIS2_WODEN_NESTED_COMPONENT_TO_NESTED_COMPONENT_FREE(nested_component, \
+ env) \
+ (((axis2_woden_nested_component_t *) nested_component)->ops->\
+ to_nested_component_free (nested_component, env))
+
+#define AXIS2_WODEN_NESTED_COMPONENT_TYPE(nested_component, env) \
+ (((axis2_woden_nested_component_t *) nested_component)->ops->\
+ type (nested_component, env))
+
+#define AXIS2_WODEN_NESTED_COMPONENT_GET_PARENT(\
+ nested_component, env) \
+ (((axis2_woden_nested_component_t *) nested_component)->ops->\
+ get_parent(nested_component, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_NESTED_COMPONENT_H */
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h Mon May 8 00:21:09 2006
@@ -0,0 +1,298 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_TYPES_H
+#define AXIS2_WODEN_TYPES_H
+
+/**
+ * @file axis2_woden_types.h
+ * @brief Axis2 Types Interface
+ * An abstract superclass for WSDL 2.0 elements which can have <documentation>
+ * child elements. That is, all WSDL 2.0 elements except the <documentation>
+ * element itself. Defines accessor methods for manipulating DocumentationElements.
+ *
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_types_element.h>
+#include <woden/wsdl20/axis2_woden_documentable.h>
+#include <woden/wsdl20/axis2_woden_nested_component.h>
+#include <woden/axis2_woden_wsdl_obj.h>
+#include <xml_schema/axis2_xml_schema.h>
+#include <xml_schema/axis2_xml_schema_element.h>
+#include <xml_schema/axis2_xml_schema_type.h>
+#include <axis2_array_list.h>
+
+
+/** @defgroup axis2_woden_types Types
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+typedef union axis2_woden_types_base axis2_woden_types_base_t;
+typedef struct axis2_woden_types axis2_woden_types_t;
+typedef struct axis2_woden_types_ops axis2_woden_types_ops_t;
+struct axis2_woden_documentation_element;
+struct axis2_woden_documentation;
+struct axis2_xml_schema;
+struct axis2_xml_schema_element;
+struct axis2_xml_schema_type;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_types_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (void *types,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_types_free) (void *types,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (void *types,
+ axis2_env_t **env);
+ /**
+ * @return the base implementation class
+ */
+ struct axis2_woden_documentable *(AXIS2_CALL *
+ get_base_impl) (
+ void *types,
+ axis2_env_t **env);
+
+ /* ************************************************************
+ * Non-API implementation methods
+ * ************************************************************/
+
+ /*
+ *
+ * Returns the schema element declaration identified by the QName,
+ * providing the element declaration is referenceable to the
+ * WSDL description (i.e. visible). This means it must exist in a
+ * Schema that has been inlined or resolved from a schema import
+ * within the <types> element according to the schema
+ * referenceability rules in the WSDL 2.0 spec.
+ * If the element declaration is not referenceable, null is returned.
+ * If validation is disabled, the referenceability rules do not apply
+ * so all schemas are considered referenceable by the WSDL.
+ *
+ */
+ void *(AXIS2_CALL *
+ get_element_declaration) (
+ void *types,
+ axis2_env_t **env,
+ axis2_qname_t *qname);
+
+ /*
+ *
+ * Returns the schema type definition identified by the QName,
+ * providing the type definition is referenceable by the
+ * WSDL description (i.e. visible). This means it must exist in a
+ * Schema that has been inlined or resolved from a schema import
+ * within the <types> element according to the schema
+ * referenceability rules in the WSDL 2.0 spec.
+ * If the type definition is not referenceable, null is returned.
+ * If validation is disabled, the referenceability rules do not apply
+ * so all schemas are considered referenceable by the WSDL.
+ *
+ */
+ void *(AXIS2_CALL *
+ get_type_definition) (
+ void *types,
+ axis2_env_t **env,
+ axis2_qname_t *qname);
+/*
+ * Returns a List of Xml Schema objects for all schemas that are referenceable
+ * by the containing WSDL. Examples of schemas that are not referenceable include
+ * schemas without a target namespace or schemas resolved from a schema import
+ * whose target namespace does not match the imported namespace. Referenceability
+ * is determined by validation.
+ */
+ axis2_array_list_t *(AXIS2_CALL *
+ get_referenceable_schema_defs) (
+ void *types,
+ axis2_env_t **env);
+
+ /*
+ * Indicates if the namespace represented by the specified URI
+ * is in-scope or referenceable by the WSDL description.
+ * This means it must be the target namespace of a schema correctly
+ * imported or inlined directly within the <types> element.
+ *
+ * @return true if the namespace is in-scope, or false if it is not.
+ *
+ */
+ axis2_bool_t (AXIS2_CALL *
+ is_namespace_in_scope_with_namespace_uri) (
+ void *types,
+ axis2_env_t **env,
+ axis2_url_t *namespc_uri);
+
+ /*
+ * Indicates if the namespace represented by the specified QName
+ * is in-scope or referenceable by the WSDL description.
+ * This means it must be the target namespace of a schema correctly
+ * imported or inlined directly within the <types> element.
+ *
+ */
+ axis2_bool_t (AXIS2_CALL *
+ is_namespace_in_scope_with_qname) (
+ void *types,
+ axis2_env_t **env,
+ axis2_qname_t *qname);
+
+ /*
+ *
+ * Indicates if the namespace represented by the specified String
+ * is in-scope or referenceable by the WSDL description.
+ * This means it must be the target namespace of a schema correctly
+ * imported or inlined directly within the <types> element.
+ *
+ */
+ axis2_bool_t (AXIS2_CALL *
+ is_namespace_in_scope_with_namespace) (
+ void *types,
+ axis2_env_t **env,
+ axis2_char_t *namespc);
+
+
+};
+
+union axis2_woden_types_base
+{
+ axis2_woden_documentable_t documentable;
+ axis2_woden_types_element_t types_element;
+ axis2_woden_nested_component_t nested_component;
+};
+
+struct axis2_woden_types
+{
+ axis2_woden_types_base_t base;
+ axis2_woden_types_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_create(
+ axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_types_element(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_nested_element(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_documentable_element(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_documentable(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_wsdl_obj(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_nested_component(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_wsdl_component(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_element_extensible(
+ void *types,
+ axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_types_t *)
+axis2_woden_types_to_attr_extensible(
+ void *types,
+ axis2_env_t **env);
+
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_types_resolve_methods(
+ axis2_woden_types_t *types,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_TYPES_FREE(types, env) \
+ (((axis2_woden_types_t *) types)->ops->free(types, env))
+
+#define AXIS2_WODEN_TYPES_TO_TYPES_FREE(types, env) \
+ (((axis2_woden_types_t *) types)->ops->to_types_free(types, env))
+
+#define AXIS2_WODEN_TYPES_TYPE(types, env) \
+ (((axis2_woden_types_t *) types)->ops->type(types, env))
+
+#define AXIS2_WODEN_TYPES_GET_BASE_IMPL(types, env) \
+ (((axis2_woden_types_t *) types)->ops->get_base_impl(types, env))
+
+#define AXIS2_WODEN_TYPES_GET_ELEMENT_DECLARATION(types, env, qname) \
+ (((axis2_woden_types_t *) types)->ops->\
+ get_element_declaration(types, env, qname))
+
+#define AXIS2_WODEN_TYPES_GET_TYPE_DEFINITION(types, env, qname) \
+ (((axis2_woden_types_t *) types)->ops->\
+ get_type_definition(types, env, qname))
+
+#define AXIS2_WODEN_TYPES_GET_REFERENCEABLE_SCHEMA_DEFS(types, env) \
+ (((axis2_woden_types_t *) types)->ops->\
+ get_referenceable_schema_defs(types, env))
+
+#define AXIS2_WODEN_TYPES_GET_REFERENCEABLE_SCHEMA_DEFS_WITH_NAMESPACE(types, env, namespc) \
+ (((axis2_woden_types_t *) types)->ops->\
+ get_referenceable_schema_defs_with_namespace(types, env, namespc))
+
+#define AXIS2_WODEN_TYPES_IS_NAMESPACE_IN_SCOPE_WITH_NAMESPACE_URI(types, env, namespc_uri) \
+ (((axis2_woden_types_t *) types)->ops->\
+ is_namespace_in_scope_with_namespace_uri(types, env, namespc_uri))
+
+#define AXIS2_WODEN_TYPES_IS_NAMESPACE_IN_SCOPE_WITH_QNAME(types, env, qname) \
+ (((axis2_woden_types_t *) types)->ops->\
+ is_namespace_in_scope_with_qname(types, env, qname))
+
+#define AXIS2_WODEN_TYPES_IS_NAMESPACE_IN_SCOPE_WITH_NAMESPACE(types, env, namespc) \
+ (((axis2_woden_types_t *) types)->ops->\
+ is_namespace_in_scope_with_namespace(types, env, namespc))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_TYPES_H */
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_wsdl_component.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_wsdl_component.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_wsdl_component.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_wsdl_component.h Mon May 8 00:21:09 2006
@@ -32,6 +32,7 @@
#include <axis2_const.h>
#include <axis2_hash.h>
#include <axis2_url.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
@@ -40,7 +41,7 @@
typedef struct axis2_woden_wsdl_component axis2_woden_wsdl_component_t;
typedef struct axis2_woden_wsdl_component_ops axis2_woden_wsdl_component_ops_t;
-struct axis2_xml_wsdl_component;
+struct axis2_woden_component_exts;
/** @defgroup axis2_woden_wsdl_component Wsdl Component
* @ingroup axis2_wsdl
@@ -54,13 +55,25 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *wsdl_component,
+ free) (
+ void *wsdl_component,
axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
- get_component_exts_for_namespace) (void *wsdl_component,
- axis2_env_t **env,
- axis2_url_t *namespc);
+ to_wsdl_component_free) (
+ void *wsdl_component,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *wsdl_component,
+ axis2_env_t **env);
+
+ void *(AXIS2_CALL *
+ get_component_exts_for_namespace) (
+ void *wsdl_component,
+ axis2_env_t **env,
+ axis2_url_t *namespc);
};
@@ -69,21 +82,25 @@
axis2_woden_wsdl_component_ops_t *ops;
};
-AXIS2_DECLARE(axis2_woden_wsdl_component_t *)
-axis2_woden_wsdl_component_create(axis2_env_t **env);
-
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
-AXIS2_DECLARE(axis2_status_t)
-axis2_woden_wsdl_component_resolve_methods(axis2_woden_wsdl_component_t *wsdl_component,
- axis2_env_t **env,
- axis2_woden_wsdl_component_t *wsdl_component_impl,
- axis2_hash_t *methods);
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+axis2_woden_wsdl_component_resolve_methods(
+ axis2_woden_wsdl_component_t *wsdl_component,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_WSDL_COMPONENT_FREE(wsdl_component, env) \
- (((axis2_woden_wsdl_component_t *) wsdl_component)->ops->free (wsdl_component, env))
+ (((axis2_woden_wsdl_component_t *) wsdl_component)->ops->\
+ free (wsdl_component, env))
+
+#define AXIS2_WODEN_WSDL_COMPONENT_TO_WSDL_COMPONENT_FREE(wsdl_component, env) \
+ (((axis2_woden_wsdl_component_t *) wsdl_component)->ops->\
+ to_wsdl_component_free (wsdl_component, env))
+
+#define AXIS2_WODEN_WSDL_COMPONENT_TYPE(wsdl_component, env) \
+ (((axis2_woden_wsdl_component_t *) wsdl_component)->ops->\
+ type (wsdl_component, env))
#define AXIS2_WODEN_WSDL_COMPONENT_GET_COMPONENT_EXTS_FOR_NAMESPACE(\
wsdl_component, env, namespc) \
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h Mon May 8 00:21:09 2006
@@ -33,6 +33,7 @@
#include <axis2_qname.h>
#include <axis2_url.h>
#include <axis2_array_list.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
@@ -55,33 +56,49 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *attr_extensible,
+ free) (
+ void *attr_extensible,
axis2_env_t **env);
-
+
axis2_status_t (AXIS2_CALL *
- set_ext_attr) (void *extensible,
- axis2_env_t **env,
- axis2_qname_t *attr_type,
- struct axis2_woden_xml_attr *attr);
-
- struct axis2_woden_xml_attr *(AXIS2_CALL *
- get_ext_attr) (void *extensible,
- axis2_env_t **env,
- axis2_qname_t *attr_type);
+ to_attr_extensible_free) (
+ void *attr_extensible,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *attr_extensible,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_ext_attr) (
+ void *extensible,
+ axis2_env_t **env,
+ axis2_qname_t *attr_type,
+ struct axis2_woden_xml_attr *attr);
+
+ void *(AXIS2_CALL *
+ get_ext_attr) (
+ void *extensible,
+ axis2_env_t **env,
+ axis2_qname_t *attr_type);
axis2_array_list_t *(AXIS2_CALL *
- get_ext_attrs) (void *extensible,
- axis2_env_t **env);
+ get_ext_attrs) (
+ void *extensible,
+ axis2_env_t **env);
axis2_array_list_t *(AXIS2_CALL *
- get_ext_attrs_for_namespace) (void *extensible,
- axis2_env_t **env,
- axis2_url_t *namespc);
+ get_ext_attrs_for_namespace) (
+ void *extensible,
+ axis2_env_t **env,
+ axis2_url_t *namespc);
axis2_bool_t (AXIS2_CALL *
- has_ext_attrs_for_namespace) (void *extensible,
- axis2_env_t **env,
- axis2_url_t *namespc);
+ has_ext_attrs_for_namespace) (
+ void *extensible,
+ axis2_env_t **env,
+ axis2_url_t *namespc);
};
@@ -99,13 +116,22 @@
* of the child class
*/
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_attr_extensible_resolve_methods(axis2_woden_attr_extensible_t *extensible,
- axis2_env_t **env,
- axis2_woden_attr_extensible_t *extensible_impl,
- axis2_hash_t *methods);
+axis2_woden_attr_extensible_resolve_methods(
+ axis2_woden_attr_extensible_t *extensible,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
#define AXIS2_WODEN_ATTR_EXTENSIBLE_FREE(extensible, env) \
- (((axis2_woden_attr_extensible_t *) extensible)->ops->free (extensible, env))
+ (((axis2_woden_attr_extensible_t *) extensible)->ops->\
+ free (extensible, env))
+
+#define AXIS2_WODEN_ATTR_EXTENSIBLE_TO_ATTR_EXTENSIBLE_FREE(extensible, env) \
+ (((axis2_woden_attr_extensible_t *) extensible)->ops->\
+ to_attr_extensible_free (extensible, env))
+
+#define AXIS2_WODEN_ATTR_EXTENSIBLE_TYPE(extensible, env) \
+ (((axis2_woden_attr_extensible_t *) extensible)->ops->\
+ type (extensible, env))
#define AXIS2_WODEN_ATTR_EXTENSIBLE_SET_EXT_ATTR(extensible, env, attr_type, \
attr) \
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_component_exts.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_component_exts.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_component_exts.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_component_exts.h Mon May 8 00:21:09 2006
@@ -20,11 +20,22 @@
/**
* @file axis2_woden_component_exts.h
* @brief Axis2 Component Extensions Interface
- * This class represents group of WSDL extension properties (i.e. extension
- * elements or attributes) related by their non-WSDL namespace.
- * The only behaviour of this class is to return the namespace.
- * Implementations may extend this class to define behaviour specific to
- * their required extensions.
+ * This interface represents a group of properties that extend a <code>wsdl_component</code>.
+ * These properties share the same namespace and it is different to the WSDL 2.0 namespace.
+ * The XML representation of these properties are the elements and attributes
+ * from outside the WSDL 2.0 namespace that extend a WSDL element.
+ * For example, the elements and attributes from the SOAP namespace that extend the
+ * WSDL <binding> element are represented by this interface as extension
+ * properties of the <code>binding</code> component.
+ * <p>
+ * This interface provides a common point of reference to a WSDL component's extension
+ * properties that belong to a particular namespace.
+ * The interface does not define any behaviour specific to the individual properties.
+ * Woden implementations that need to support WSDL extensions from a particular namespace
+ * should implement this interface and add support specific to those extensions.
+ * <p>
+ * For example, Woden implements this interface to support the SOAP and HTTP binding
+ * extensions defined in the W3C WSDL 2.0 specification.
*
*/
@@ -36,6 +47,7 @@
#include <axis2_hash.h>
#include <axis2_qname.h>
#include <axis2_url.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
@@ -46,6 +58,13 @@
typedef struct axis2_woden_component_exts_ops axis2_woden_component_exts_ops_t;
struct axis2_woden_wsdl_element;
+
+/**
+ * Namespace URIs for extensions defined by WSDL 2.0 Specification.
+ */
+#define AXIS2_WODEN_URI_NS_SOAP "http://www.w3.org/2006/01/wsdl/soap"
+#define AXIS2_WODEN_URI_NS_HTTP "http://www.w3.org/2006/01/wsdl/http"
+
/** @defgroup axis2_woden_component_exts Component Extensions
* @ingroup axis2_wsdl
* @{
@@ -61,15 +80,25 @@
free) (void *component_exts,
axis2_env_t **env);
+ axis2_status_t (AXIS2_CALL *
+ to_component_exts_free) (void *component_exts,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (void *component_exts,
+ axis2_env_t **env);
+
axis2_url_t *(AXIS2_CALL *
- get_namespace) (void *component_exts,
- axis2_env_t **env);
+ get_namespace) (
+ void *component_exts,
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
- init) (void *component_exts,
- axis2_env_t **env,
- struct axis2_woden_wsdl_element *parent_el,
- axis2_url_t *namespc);
+ init) (
+ void *component_exts,
+ axis2_env_t **env,
+ struct axis2_woden_wsdl_element *parent_el,
+ axis2_url_t *namespc);
};
@@ -86,16 +115,26 @@
* of the child class
*/
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_component_exts_resolve_methods(axis2_woden_component_exts_t *component_exts,
- axis2_env_t **env,
- axis2_woden_component_exts_t *component_exts_impl,
- axis2_hash_t *methods);
+axis2_woden_component_exts_resolve_methods(
+ axis2_woden_component_exts_t *component_exts,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
#define AXIS2_WODEN_COMPONENT_EXTS_FREE(component_exts, env) \
- (((axis2_woden_component_exts_t *) component_exts)->ops->free (component_exts, env))
+ (((axis2_woden_component_exts_t *) component_exts)->ops->\
+ free (component_exts, env))
+
+#define AXIS2_WODEN_COMPONENT_EXTS_TO_COMPONENT_EXTS_FREE(component_exts, env) \
+ (((axis2_woden_component_exts_t *) component_exts)->ops->\
+ to_component_exts_free (component_exts, env))
+
+#define AXIS2_WODEN_COMPONENT_EXTS_TYPE(component_exts, env) \
+ (((axis2_woden_component_exts_t *) component_exts)->ops->\
+ type (component_exts, env))
#define AXIS2_WODEN_COMPONENT_EXTS_INIT(component_exts, env, parent_el, namespc) \
- (((axis2_woden_component_exts_t *) component_exts)->ops->init(component_exts, env, \
+ (((axis2_woden_component_exts_t *) component_exts)->ops->\
+ init(component_exts, env, \
parent_el, namespc))
#define AXIS2_WODEN_COMPONENT_EXTS_GET_NAMESPACE(component_exts, env) \
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h Mon May 8 00:21:09 2006
@@ -33,6 +33,7 @@
#include <axis2_qname.h>
#include <axis2_url.h>
#include <axis2_array_list.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
@@ -42,7 +43,6 @@
typedef struct axis2_woden_element_extensible axis2_woden_element_extensible_t;
typedef struct axis2_woden_element_extensible_ops axis2_woden_element_extensible_ops_t;
struct axis2_woden_ext_element;
-struct axis2_url;
/** @defgroup axis2_woden_element_extensible Element Extensible
* @ingroup axis2_wsdl
@@ -56,32 +56,50 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *element_extensible,
+ free) (
+ void *
+ element_extensible,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_element_extensible_free) (
+ void *
+ element_extensible,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *element_extensible,
axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
- add_ext_element) (void *extensible,
- axis2_env_t **env,
- struct axis2_woden_ext_element *ext_el);
+ add_ext_element) (
+ void *extensible,
+ axis2_env_t **env,
+ struct axis2_woden_ext_element *ext_el);
axis2_status_t (AXIS2_CALL *
- remove_ext_element) (void *extensible,
- axis2_env_t **env,
- struct axis2_woden_ext_element *ext_el);
+ remove_ext_element) (
+ void *extensible,
+ axis2_env_t **env,
+ struct axis2_woden_ext_element *ext_el);
axis2_array_list_t *(AXIS2_CALL *
- get_ext_elements) (void *extensible,
- axis2_env_t **env);
+ get_ext_elements) (
+ void *extensible,
+ axis2_env_t **env);
axis2_array_list_t *(AXIS2_CALL *
- get_ext_elements_of_type) (void *extensible,
- axis2_env_t **env,
- axis2_qname_t *ext_type);
+ get_ext_elements_of_type) (
+ void *extensible,
+ axis2_env_t **env,
+ axis2_qname_t *ext_type);
axis2_bool_t (AXIS2_CALL *
- has_ext_elements_for_namespace) (void *extensible,
- axis2_env_t **env,
- axis2_url_t *namespc);
+ has_ext_elements_for_namespace) (
+ void *extensible,
+ axis2_env_t **env,
+ axis2_url_t *namespc);
};
@@ -98,13 +116,23 @@
* of the child class
*/
AXIS2_DECLARE(axis2_status_t)
-axis2_woden_element_extensible_resolve_methods(axis2_woden_element_extensible_t *extensible,
- axis2_env_t **env,
- axis2_woden_element_extensible_t *extensible_impl,
- axis2_hash_t *methods);
+axis2_woden_element_extensible_resolve_methods(
+ axis2_woden_element_extensible_t *extensible,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
#define AXIS2_WODEN_ELEMENT_EXTENSIBLE_FREE(extensible, env) \
- (((axis2_woden_element_extensible_t *) extensible)->ops->free (extensible, env))
+ (((axis2_woden_element_extensible_t *) extensible)->ops->\
+ free (extensible, env))
+
+#define AXIS2_WODEN_ELEMENT_EXTENSIBLE_TO_ELEMENT_EXTENSIBLE_FREE(extensible, \
+ env) \
+ (((axis2_woden_element_extensible_t *) extensible)->ops->\
+ to_element_extensible_free (extensible, env))
+
+#define AXIS2_WODEN_ELEMENT_EXTENSIBLE_TYPE(extensible, env) \
+ (((axis2_woden_element_extensible_t *) extensible)->ops->\
+ type (extensible, env))
#define AXIS2_WODEN_ELEMENT_EXTENSIBLE_ADD_EXT_ELEMENT(extensible, env, ext_el) \
(((axis2_woden_element_extensible_t *) extensible)->ops->\
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_configurable_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_configurable_element.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_configurable_element.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_configurable_element.h Mon May 8 00:21:09 2006
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_CONFIGURABLE_ELEMENT_H
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_H
+
+/**
+ * @file axis2_woden_configurable_element.h
+ * @brief Axis2 Configurable Element Interface
+ * Interfaces for elements which can have <feature> and <property>
+ * child elements will extend this interface. That is, <types>,
+ * <interface> and its child elements,
+ * <binding> and its child elements, and
+ * <service> and its child elements.
+ * <p>
+ * The WSDL elements which are not configurable are
+ * <description>, <feature>, <property>,
+ * <import>, <include> and <documentation>.
+ *
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_wsdl_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_woden_configurable_element
+ axis2_woden_configurable_element_t;
+typedef struct axis2_woden_configurable_element_ops
+ axis2_woden_configurable_element_ops_t;
+struct axis2_woden_feature_element;
+struct axis2_woden_property_element;
+
+/** @defgroup axis2_woden_configurable_element Configurable Element
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+struct axis2_woden_configurable_element_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (
+ void *conf_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_configurable_element_free) (
+ void *conf_el,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *conf_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ add_feature_element) (
+ void *conf_el,
+ axis2_env_t **env,
+ struct axis2_woden_feature_element *feature);
+
+ axis2_array_list_t *(AXIS2_CALL *
+ get_feature_elements) (
+ void *conf_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ add_property_element) (
+ void *conf_el,
+ axis2_env_t **env,
+ struct axis2_woden_property_element *feature);
+
+ axis2_array_list_t *(AXIS2_CALL *
+ get_property_elements) (
+ void *conf_el,
+ axis2_env_t **env);
+
+
+};
+
+struct axis2_woden_configurable_element
+{
+ axis2_woden_wsdl_element_t wsdl_element;
+ axis2_woden_configurable_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods*****************************/
+axis2_status_t AXIS2_CALL
+axis2_woden_configurable_element_resolve_methods(
+ axis2_woden_configurable_element_t *configurable_element,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_FREE(conf_el, env) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ free (conf_el, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_TO_CONFIGURABLE_ELEMENT_FREE(conf_el, \
+ env) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ to_configurable_element_free (conf_el, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_TYPE(conf_el, env) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ type (conf_el, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_ADD_FEATURE_ELEMENT(conf_el, env, \
+ feature) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ add_feature_element(conf_el, env, feature))
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_GET_FEATURE_ELEMENTS(conf_el, env) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ get_feature_elements(conf_el, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_ADD_PROPERTY_ELEMENT(conf_el, env, \
+ property) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ add_property_element(conf_el, env, property))
+
+#define AXIS2_WODEN_CONFIGURABLE_ELEMENT_GET_PROPERTY_ELEMENTS(conf_el, env) \
+ (((axis2_woden_configurable_element_t *) conf_el)->ops->\
+ get_propertyelements(conf_el, env))
+
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_CONFIGURABLE_ELEMENT_H */
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentable_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentable_element.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentable_element.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentable_element.h Mon May 8 00:21:09 2006
@@ -33,6 +33,8 @@
#include <axis2_const.h>
#include <axis2_hash.h>
#include <axis2_array_list.h>
+#include <woden/wsdl20/xml/axis2_woden_wsdl_element.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
@@ -57,10 +59,21 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *doc_el,
+ free) (
+ void *doc_el,
axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
+ to_documentable_element_free) (
+ void *doc_el,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (
+ void *doc_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
add_documentation_element) (void *doc_el,
axis2_env_t **env,
struct axis2_woden_documentation_element *doc_elem);
@@ -73,26 +86,30 @@
struct axis2_woden_documentable_element
{
+ axis2_woden_wsdl_element_t wsdl_element;
axis2_woden_documentable_element_ops_t *ops;
};
-AXIS2_DECLARE(axis2_woden_documentable_element_t *)
-axis2_woden_documentable_element_create(axis2_env_t **env);
-
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
-AXIS2_DECLARE(axis2_status_t)
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
axis2_woden_documentable_element_resolve_methods(
- axis2_woden_documentable_element_t *doc_el,
- axis2_env_t **env,
- axis2_woden_documentable_element_t *doc_el_impl,
- axis2_hash_t *methods);
+ axis2_woden_documentable_element_t *documentable_element,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_DOCUMENTABLE_ELEMENT_FREE(doc_el, env) \
(((axis2_woden_documentable_element_t *) doc_el)->ops->\
free (doc_el, env))
+
+#define AXIS2_WODEN_DOCUMENTABLE_ELEMENT_TO_DOCUMENTABLE_ELEMENT_FREE(doc_el, \
+ env) \
+ (((axis2_woden_documentable_element_t *) doc_el)->ops->\
+ to_documentable_element_free (doc_el, env))
+
+#define AXIS2_WODEN_DOCUMENTABLE_ELEMENT_TYPE(doc_el, env) \
+ (((axis2_woden_documentable_element_t *) doc_el)->ops->\
+ type (doc_el, env))
#define AXIS2_WODEN_DOCUMENTABLE_ELEMENT_ADD_DOCUMENTATION_ELEMENT(doc_el, env, doc_elem) \
(((axis2_woden_documentable_element_t *) doc_el)->ops->\
Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentation_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentation_element.h?rev=404947&r1=404946&r2=404947&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentation_element.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_documentation_element.h Mon May 8 00:21:09 2006
@@ -34,14 +34,18 @@
#include <axis2_const.h>
#include <axis2_hash.h>
#include <axis2_qname.h>
+#include <woden/wsdl20/xml/axis2_woden_wsdl_element.h>
+#include <woden/axis2_woden.h>
#ifdef __cplusplus
extern "C"
{
#endif
-typedef struct axis2_woden_documentation_element axis2_woden_documentation_element_t;
-typedef struct axis2_woden_documentation_element_ops axis2_woden_documentation_element_ops_t;
+typedef struct axis2_woden_documentation_element
+ axis2_woden_documentation_element_t;
+typedef struct axis2_woden_documentation_element_ops
+ axis2_woden_documentation_element_ops_t;
/** @defgroup axis2_woden_documentation_element Documentation Element
* @ingroup axis2_wsdl
@@ -55,7 +59,17 @@
* @return status code
*/
axis2_status_t (AXIS2_CALL *
- free) (void *doc_el,
+ free) (
+ void *doc_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_documentation_element_free) (
+ void *doc_el,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (void *doc_el,
axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
@@ -71,26 +85,30 @@
struct axis2_woden_documentation_element
{
+ axis2_woden_wsdl_element_t wsdl_element;
axis2_woden_documentation_element_ops_t *ops;
};
-AXIS2_DECLARE(axis2_woden_documentation_element_t *)
-axis2_woden_documentation_element_create(axis2_env_t **env);
-
-/**
- * This is an Axis2 C internal method. This is used only from constructor
- * of the child class
- */
-AXIS2_DECLARE(axis2_status_t)
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
axis2_woden_documentation_element_resolve_methods(
- axis2_woden_documentation_element_t *doc_el,
- axis2_env_t **env,
- axis2_woden_documentation_element_t *doc_el_impl,
- axis2_hash_t *methods);
+ axis2_woden_documentation_element_t *documentation_element,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
#define AXIS2_WODEN_DOCUMENTATION_ELEMENT_FREE(doc_el, env) \
(((axis2_woden_documentation_element_t *) doc_el)->ops->\
free (doc_el, env))
+
+#define AXIS2_WODEN_DOCUMENTATION_ELEMENT_TO_DOCUMENTATION_ELEMENT_FREE(doc_el, \
+ env) \
+ (((axis2_woden_documentation_element_t *) doc_el)->ops->\
+ to_documentation_element_free (doc_el, env))
+
+#define AXIS2_WODEN_DOCUMENTATION_ELEMENT_TYPE(doc_el, env) \
+ (((axis2_woden_documentation_element_t *) doc_el)->ops->\
+ type (doc_el, env))
#define AXIS2_WODEN_DOCUMENTATION_ELEMENT_SET_CONTENT(doc_el, env, doc_elem) \
(((axis2_woden_documentation_element_t *) doc_el)->ops->\
Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_feature_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_feature_element.h?rev=404947&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_feature_element.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_feature_element.h Mon May 8 00:21:09 2006
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_FEATURE_ELEMENT_H
+#define AXIS2_WODEN_FEATURE_ELEMENT_H
+
+/**
+ * @file axis2_woden_feature_element.h
+ * @brief Axis2 Feature Element Interface
+ * Represents the <feature> element.
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_url.h>
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_documentable_element.h>
+#include <woden/wsdl20/xml/axis2_woden_nested_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_woden_feature_element axis2_woden_feature_element_t;
+typedef struct axis2_woden_feature_element_ops axis2_woden_feature_element_ops_t;
+typedef union axis2_woden_feature_element_base axis2_woden_feature_element_base_t;
+
+/** @defgroup axis2_woden_feature_element Feature Element
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+struct axis2_woden_feature_element_ops
+{
+ /**
+ * Deallocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free) (
+ void *doc_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ to_feature_element_free) (
+ void *doc_el,
+ axis2_env_t **env);
+
+ axis2_woden_obj_types_t (AXIS2_CALL *
+ type) (void *doc_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_ref) (void *doc_el,
+ axis2_env_t **env,
+ axis2_url_t *uri);
+
+ axis2_url_t *(AXIS2_CALL *
+ get_ref) (void *doc_el,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_required) (void *doc_el,
+ axis2_env_t **env,
+ axis2_bool_t required);
+
+ axis2_bool_t (AXIS2_CALL *
+ is_required) (void *doc_el,
+ axis2_env_t **env);
+
+};
+
+union axis2_woden_feature_element_base
+{
+ axis2_woden_documentable_element_t documentable_element;
+ axis2_woden_nested_element_t nested_element;
+};
+
+struct axis2_woden_feature_element
+{
+ axis2_woden_feature_element_base_t base;
+ axis2_woden_feature_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+axis2_woden_feature_element_resolve_methods(
+ axis2_woden_feature_element_t *feature_element,
+ axis2_env_t **env,
+ axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_FREE(doc_el, env) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ free (doc_el, env))
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_TO_FEATURE_ELEMENT_FREE(doc_el, env) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ to_feature_element_free (doc_el, env))
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_TYPE(doc_el, env) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ type (doc_el, env))
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_SET_REF(doc_el, env, uri) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ set_ref(doc_el, env, uri))
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_GET_REF(doc_el, env) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ get_ref(doc_el, env))
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_SET_REQUIRED(doc_el, env, required) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ set_required(doc_el, env, required))
+
+#define AXIS2_WODEN_FEATURE_ELEMENT_IS_REQUIRED(doc_el, env) \
+ (((axis2_woden_feature_element_t *) doc_el)->ops->\
+ is_required(doc_el, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_FEATURE_ELEMENT_H */