# soap envelope
[SOAP]

## Functions
AXIS2_EXTERN axiom_soap_envelope_t * | axiom_soap_envelope_create (const axutil_env_t *env, axiom_namespace_t *ns)
AXIS2_EXTERN axiom_soap_envelope_t * | axiom_soap_envelope_create_with_soap_version_prefix (const axutil_env_t *env, int soap_version, const axis2_char_t *prefix)
AXIS2_EXTERN axiom_soap_envelope_t * | axiom_soap_envelope_create_default_soap_envelope (const axutil_env_t *env, int soap_version)
AXIS2_EXTERN axiom_soap_envelope_t * | axiom_soap_envelope_create_default_soap_fault_envelope (const axutil_env_t *env, const axis2_char_t *code_value, const axis2_char_t *reason_text, const int soap_version, axutil_array_list_t *sub_codes, axiom_node_t *detail_node)
AXIS2_EXTERN struct axiom_soap_header * | axiom_soap_envelope_get_header (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN struct axiom_soap_body * | axiom_soap_envelope_get_body (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_soap_envelope_serialize (axiom_soap_envelope_t *envelope, const axutil_env_t *env, axiom_output_t *om_output, axis2_bool_t cache)
AXIS2_EXTERN void | axiom_soap_envelope_free (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN axiom_node_t * | axiom_soap_envelope_get_base_node (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN int | axiom_soap_envelope_get_soap_version (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN axiom_namespace_t * | axiom_soap_envelope_get_namespace (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN axis2_status_t | axiom_soap_envelope_set_soap_version (axiom_soap_envelope_t *envelope, const axutil_env_t *env, int soap_version)
AXIS2_EXTERN axis2_status_t | axiom_soap_envelope_increment_ref (axiom_soap_envelope_t *envelope, const axutil_env_t *env)
AXIS2_EXTERN struct axiom_soap_builder * | axiom_soap_envelope_get_soap_builder (axiom_soap_envelope_t *envelope, const axutil_env_t *env)

## Function Documentation

AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create | ( | const axutil_env_t * | env,
|  | axiom_namespace_t * | ns |
| ) |  |  |

create a soap_envelope with the given namespace prefix and uri as the prefix and uri, The uri of ns should be valid soap uri

Parameters:

  | env | Environment. MUST NOT be NULL
  | ns | The OM namespace

Returns:
  Created SOAP envelope

AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create_default_soap_envelope | ( | const axutil_env_t * | env,
|  | int | soap_version |
| ) |  |  |

Create the default SOAP envelope

Parameters:

  | envelope | OM SOAP Envelope
  | env | Environment. MUST NOT be NULL

Returns:
  Created SOAP envelope

AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create_default_soap_fault_envelope | ( | const axutil_env_t * | env,
|  | const axis2_char_t * | code_value,
|  | const axis2_char_t * | reason_text,
|  | const int | soap_version,
|  | axutil_array_list_t * | sub_codes,
|  | axiom_node_t * | detail_node |
| ) |  |  |

Create the default SOAP fault envelope

Parameters:

  | envelope | OM SOAP Envelope
  | env | Environment. MUST NOT be NULL

Returns:
  Created SOAP fault envelope

AXIS2_EXTERN axiom_soap_envelope_t* axiom_soap_envelope_create_with_soap_version_prefix | ( | const axutil_env_t * | env,
|  | int | soap_version,
|  | const axis2_char_t * | prefix |
| ) |  |  |

create a soap_envelope with the given namespace prefix and uri is selected according to soap_version, soap version should be one of AXIOM_SOAP11 or AXIOM_SOAP12

Parameters:

  | env | Environment. MUST NOT be NULL
  | prefix | soap envelope prefix if prefix is NULL default prefix is used

Returns:
  a pointer to soap envelope struct

AXIS2_EXTERN void axiom_soap_envelope_free | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  |

Free function, This function deallocate all the resources associated with the soap_envelope IT frees it's soap body and soap headers as well as the underlying om node tree by calling axiom_node_free_tree function

Parameters:

  | envelope | soap_envelope
  | env | environment

Returns:
  VOID

AXIS2_EXTERN axiom_node_t* axiom_soap_envelope_get_base_node | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  |

returns the om_node associated with this soap envelope

Parameters:

  | envelope | soap_envelope
  | env | environment

Returns:
  axiom_node_t pointer

AXIS2_EXTERN struct axiom_soap_body* axiom_soap_envelope_get_body | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  | `[read]`

Returns the soap body associated with this soap envelope

Parameters:

  | envelope | soap_envelope
  | env | environment

Returns:
  soap_body

AXIS2_EXTERN struct axiom_soap_header* axiom_soap_envelope_get_header | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  | `[read]`

gets the soap header of this soap envelope

Parameters:

  | envelope | soap envelope
  | env | environment must not be null

Returns:
  soap header null it no header is present

AXIS2_EXTERN axiom_namespace_t* axiom_soap_envelope_get_namespace | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  |

Return the soap envelope namespace

Parameters:

  | envelope |
  | env |

Returns:
  axiom_namespace_t

AXIS2_EXTERN struct axiom_soap_builder* axiom_soap_envelope_get_soap_builder | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  | `[read]`

get the soap builder of the envelope

Parameters:

  | envelope | OM SOAP Envelope
  | env | Environment. MUST NOT be NULL

Returns:
  soap_builder struct related to the envelope

AXIS2_EXTERN int axiom_soap_envelope_get_soap_version | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  |

returns the soap version of this soap envelope

Parameters:

  | envelope | soap_envelope
  | env | environment must not be null

Returns:
  soap_version AXIOM_SOAP12 or AXIOM_SOAP11

AXIS2_EXTERN axis2_status_t axiom_soap_envelope_increment_ref | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env |
| ) |  |  |

Increment the reference number for the created instance

Parameters:

  | envelope | OM SOAP Envelope
  | env | Environment. MUST NOT be NULL

Returns:
  AXIS2_SUCCESS on success else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axiom_soap_envelope_serialize | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env,
|  | axiom_output_t * | om_output,
|  | axis2_bool_t | cache |
| ) |  |  |

serialize function , serialize the soap envelope IF the soap version it set to soap11 the soap fault part is converted to soap11 fault even is the underlying soap fault is of soap12 type

Parameters:

  | envelope | soap envelope
  | env | environment must not be null
  | om_output |
  | cache | whether caching is enabled or not

Returns:
  status code , AXIS2_SUCCESS if success , AXIS2_FAILURE otherwise

AXIS2_EXTERN axis2_status_t axiom_soap_envelope_set_soap_version | ( | axiom_soap_envelope_t * | envelope,
|  | const axutil_env_t * | env,
|  | int | soap_version |
| ) |  |  |

Set the SOAP version

Parameters:

  | envelope | OM SOAP Envelope
  | env | Environment. MUST NOT be NULL
  | soap_version,the | SOAP version number. Must be either AXIOM_SOAP11 or AXIOM_SOAP12

Returns:
  AXIS2_SUCCESS on success else AXIS2_FAILURE