---
name: "wsdl2h"
section: "1"
platform: "linux"
package: "gsoap"
version: "2.8.135-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wsdl2h"
---

# wsdl2h(1)

the gSOAP WSDL/WADL/XSD processor for C and C++

## NAME

wsdl2h - the gSOAP WSDL/WADL/XSD processor for C and C++

## SYNOPSIS

**wsdl2h** \[*OPTIONS*\] *SOURCE* ...

## DESCRIPTION

Converts a **WSDL** or **XSD** input file, or from an HTTP address, *SOURCE* to a declaration file that can be parsed by [**soapcpp2**(1)](/soapcpp2/1.md). If no *SOURCE* argument is specified, read from standard input.

## OPTIONS

- **-a**

  Generate indexed struct names for local elements with anonymous types.

- **-b**

  Bi-directional operations (duplex ops) added to serve one-way responses.

- **-c**

  Generate C source code.

- **-c++**

  Generate C++ source code (default).

- **-c++11**

  Generate C++11 source code.

- **-c++14**

  Generate C++14 source code.

- **-c++17**

  Generate C++17 source code.

- **-D**

  Make attribute members with default/fixed values optional with pointers.

- **-d**

  Use DOM to populate **xs**:*any*, **xs**:*anyType* and **xs**:*anyAttribute*.

- **-e**

  Do not qualify enum names.

- **-F**

  Add transient members to structs to simulate struct-type derivation in C.

- **-f**

  Generate flat C++ class hierarchy by removing inheritance.

- **-g**

  Generate global top-level element and attribute declarations.

- **-h**

  Display help info and exit.

- **-I***path*

  Use *path* to locate WSDL and XSD files.

- **-i**

  Do not import (advanced option).

- **-j**

  Do not generate **SOAP\_ENV\_\_Header** and **SOAP\_ENV\_\_Detail** definitions.

- **-k**

  Do not generate **SOAP\_ENV\_\_Header** mustUnderstand qualifiers.

- **-L**

  Generate less documentation by removing generic @note comments.

- **-l**

  Display license information.

- **-M**

  Suppress error "must understand element with **wsdl**:*required*='true'".

- **-m**

  Use **xsd.h** module to import primitive types.

- **-N***name*

  Use *name* for service prefixes to produce a service for each binding.

- **-n***name*

  Use *name* as the base namespace prefix instead of **ns**.

- **-O1**

  Optimize by omitting duplicate choice/sequence members.

- **-O2**

  Optimize -O1 and omit unused schema types (unreachable from roots).

- **-O3**

  Optimize -O2 and omit unused schema root attributes.

- **-O4**

  Optimize -O3 and omit unused schema root elements (use only with WSDLs).

- **-Ow2**

  Optimize -O2 while retaining all derived types of used base types.

- **-Ow3**

  Optimize -O3 while retaining all derived types of used base types.

- **-Ow4**

  Optimize -O4 while retaining all derived types of used base types.

- **-o***file*

  Output to file *file*.

- **-P**

  Do not create polymorphic types inherited from **xsd\_\_anyType**.

- **-p**

  Create polymorphic types inherited from base **xsd\_\_anyType**.

- **-Q**

  Make **xsd\_\_anySimpleType** equal to **xsd\_\_anyType** to use as the base type.

- **-q***name*

  Use *name* for the C++ namespace of all declarations.

- **-R**

  Generate REST operations for REST bindings specified in a WSDL.

- **-r***host*\[:*port*\[:*uid*:*pwd*\]\]

  Connect via proxy *host*, *port* and proxy credentials *uid* and *pwd*.

- **-r**:*uid*:*pwd*

  Connect with authentication credentials *uid* and *pwd*.

- **-S***name*

  Use *name* instead of **soap** for the C++ class members with soap contexts.

- **-s**

  Do not generate STL code (no **std::string** and no **std::vector**).

- **-t***file*

  Use type map file *file* instead of the default file **typemap.dat**.

- **-U**

  Allow UTF-8-encoded Unicode C/C++ identifiers when mapping XML tag names.

- **-u**

  Do not generate unions.

- **-V**

  Display the current version and exit.

- **-v**

  Verbose output.

- **-W**

  Suppress warnings.

- **-w**

  Always wrap response parameters in a response struct (\<=1.1.4 behavior).

- **-X**

  Do not qualify part names to disambiguate doc/lit wrapped patterns.

- **-x**

  Do not generate **\_XML** *any*/*anyAttribute* extensibility elements.

- **-y**

  Generate typedef synonyms for structs and enums.

- **-z1**

  Compatibility with 2.7.6e: Generate pointer-based arrays.

- **-z2**

  Compatibility with 2.7.7-2.7.15: (un)qualify element/attribute references.

- **-z3**

  Compatibility with 2.7.16-2.8.7: (un)qualify element/attribute references.

- **-z4**

  Compatibility up to 2.8.11: Do not generate union structs in **std::vector**.

- **-z5**

  Compatibility up to 2.8.15: Do not include minor improvements.

- **-z6**

  Compatibility up to 2.8.17: Do not include minor improvements.

- **-z7**

  Compatibility up to 2.8.59: Do not generate **std::vector** of class of union.

- **-z8**

  Compatibility up to 2.8.74: Do not generate qualifiers for doc/lit wrapped patterns.

- **-z9**

  Compatibility up to 2.8.93: Always qualify element/attribute references.

- **-z10**

  Compatibility up to 2.8.96: Generate qualifiers even when defined w/o namespace.

- **-\_**

  Do not generate \_USCORE (replace with Unicode code point \_x005f).

## SEE ALSO

[**soapcpp2**(1)](/soapcpp2/1.md).

## AUTHOR

This manual page was written by Thomas Wana \<greuff@debian.org\>, for the Debian project (but may be used by others).
