#	typemap.dat
#
#	Use this file to define namespace prefix and type bindings for
#	the generated header files by the 'wsdl2h' tool.  typemap.dat is the
#	default file processed by 'wsdl2h' to customize its output. You can use
#	wsdl2h option -t to specify an alternate file.
#
#	XML namespace prefix bindings can be provided to override the default
#	choice of the ns1, ns2, ... prefixes generated by wsdl2h.  It is highly
#	recommended to provide namespace prefixes for your project's XML
#	namespaces. In this way, changes to the WSDL (or newer releases of
#	wsdl2h) will have a minimal impact on coding.
#	Bindings for namespace prefixes are of the form:
#		prefix = "URI"
#
#	Type bindings can by provided to bind XML schema types to C/C++ types
#	for your project.
#	Type bindings are of the form:
#		prefix__type = declaration | use | ptr-use
#	where 'declaration' introduces the type in the header file, 'use'
#	specifies how the type is used directly, 'ptr-use' specifies how the
#	type is used as a pointer type.
#	For example:
#		xsd__string = | char* | char*
#	or using wide strings:
#		xsd__string = | wchar_t* | wchar_t*
#	or using C++ strings, which need a pointer (added by default):
#		xsd__string = | std::string
#	or using C++ wstrings:
#		xsd__string = | std::wstring
#	After enabling this line, all XSD strings will be mapped to char* or
#	std::wstring, respectively to support Unicode. Note that the
#	'declaration' part is empty in this case.
#
#	Member data and functions can be provided to extend a generated struct
#	or class.
#	Class and struct extensions are of the form:
#		prefix__type = $ member-declaration
#	For example, to add a constructor and destructor to class myns__record:
#		myns__record = $ myns__record();
#		myns__record = $ ~myns__record();
#	
#	Any other material to be included in the generated header file can be
#	provided by enclosing the text within brackets [ and ]. Brackets MUST
#	appear at the start of a new line.
#	For example, to include a note:
#[
#// TODO: Don't forget to bind the namespace prefixes!
#]
#	This comment appears as the first line in the generated header file.
#
#-------------------------------------------------------------------------------
#gSOAP XML Web services tools
#Copyright (C) 2004-2005, Robert van Engelen, Genivia Inc. All Rights Reserved.
#This software is released under one of the following two licenses:
#GPL or Genivia's license for commercial use.
#-------------------------------------------------------------------------------
#GPL license.
#
#This program is free software; you can redistribute it and/or modify it under
#the terms of the GNU General Public License as published by the Free Software
#Foundation; either version 2 of the License, or (at your option) any later
#version.
#
#This program is distributed in the hope that it will be useful, but WITHOUT ANY
#WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
#PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License along with
#this program; if not, write to the Free Software Foundation, Inc., 59 Temple
#Place, Suite 330, Boston, MA 02111-1307 USA
#
#Author contact information:
#engelen@genivia.com / engelen@acm.org
#-------------------------------------------------------------------------------
#A commercial use license is available from Genivia, Inc., contact@genivia.com
#-------------------------------------------------------------------------------

[
// Reminder: Modify typemap.dat to customize the header file generated by wsdl2h
]

#	Enable to use struct tm instead of time_t for xsd:dateTime:
#
# xsd__dateTime = #import "custom/struct_tm.h" | xsd__dateTime

#	Enable to use struct timeval with usec precision xsd:dateTime:
#
# xsd__dateTime = #import "custom/struct_timeval.h" | xsd__dateTime

#	Use LONG64 int for xsd:duration (with high ms precision):
#	Note: compile and link custom/duration.c

xsd__duration = #import "custom/ducation.h" | xsd__duration

#	Prefix bindings for WhiteMesa interoperability testing round 2:

i	= "http://soapinterop.org/"
s	= "http://soapinterop.org/xsd"

#	Prefix binding for Amazon Web Services:

aws	= "urn:PI/DevCentral/SoapService"

#	Prefix binding for Mappoint Web services:

mpt	= "http://s.mappoint.net/mappoint-30/"

#	MTOM xop and xmime are imported from xop.h, xmime.h, and xmlmime.h:
#	Note: changed xmlmime to xmime to avoid other MTOM tools from
#	complaining that 'xml' is reserved.

xop	= <http://www.w3.org/2004/08/xop/include>
xmime	= <http://www.w3.org/2004/06/xmlmime>
xmime4	= <http://www.w3.org/2004/11/xmlmime>
xmime5  = <http://www.w3.org/2005/05/xmlmime>

#	xop:Include is imported from xop.h and redefined as _xop__Include:

xop__Include = #import "xop.h" | _xop__Include

#	xmime/xmlmime:contentType attribute is a string:

_xmime__contentType	= | char* | char*
_xmime4__contentType	= | char* | char*
_xmime5__contentType	= | char* | char*

#	exc-c14n

c14n	= <http://www.w3.org/2001/10/xml-exc-c14n#>

#	WS-Addressing (2003, 2004, and 2005 schemas)
#	See import/wsa.h, import/wsa3.h etc for definitions and code examples
#	The API is defined in plugin/wsaapi.c, plugin/wsaapi3.c, etc.

wsa	= <http://schemas.xmlsoap.org/ws/2004/08/addressing>
wsa3	= <http://schemas.xmlsoap.org/ws/2003/03/addressing>
wsa4	= <http://schemas.xmlsoap.org/ws/2004/03/addressing>
wsa5	= <http://www.w3.org/2005/08/addressing>

#	The types below should not use pointers, so we add a 3rd column:

_wsa__Action    = | | _wsa__Action
_wsa__MessageID = | | _wsa__MessageID
_wsa__To        = | | _wsa__To

_wsa3__Action    = | | _wsa3__Action
_wsa3__MessageID = | | _wsa3__MessageID
_wsa3__To        = | | _wsa3__To

_wsa4__Action    = | | _wsa4__Action
_wsa4__MessageID = | | _wsa4__MessageID
_wsa4__To        = | | _wsa4__To

_wsa5__Action    = | | _wsa5__Action
_wsa5__MessageID = | | _wsa5__MessageID
_wsa5__To        = | | _wsa5__To

#	WS-ReliableMessaging (and obsolete WS-Reliability 2004)

wsrm	= <http://docs.oasis-open.org/ws-rx/wsrm/200702>
wsrm4	= <http://docs.oasis-open.org/wsrm/2004/06/ws-reliability-1.1.xsd>

#	WS-Policy

wsp	= <http://schemas.xmlsoap.org/ws/2004/09/policy>

#	WS-Security wsse 2004 v1.0 and 1.1 and old wsse 2002 schema

wsse11	= <http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd>
wsse	= <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>
wsse2	= <http://schemas.xmlsoap.org/ws/2002/12/secext>

#	wsu 2004

wsu	= <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd>

_wsu__Id		= | char*
_wsu__Created		= | time_t
_wsu__Expires		= | time_t

wsu__AttributedDateTime	= | time_t
wsu__AttributedURI	= | char*

#	Bindings for ds and xenc for WS-Security protocols:

ds	= <http://www.w3.org/2000/09/xmldsig#>
xenc	= <http://www.w3.org/2001/04/xmlenc#>

#	xlink

xlink	= <http://www.w3.org/1999/xlink>

_xlink__actuate		= | char*
_xlink__arcrole		= | char*
_xlink__from		= | char*
_xlink__href		= | char*
_xlink__label		= | char*
_xlink__role		= | char*
_xlink__show		= | char*
_xlink__to		= | char*
_xlink__title		= | char*
_xlink__type		= | char*

#	wsrp routing protocol (deprecated)

wsrp	= <http://schemas.xmlsoap.org/rp/>

#	Remember: type bindings are given on a single line (use \ when needed).
#	Here is an example binding for the XSD int type:

# xsd__int	= | int

#	To use regular char* strings instead of std::string, use:

# xsd__string	= | char* | char*

#	For char* serialized with xsi:type when using soapcpp2 option -t, use:

# xsd__string	= typedef char *xsd__string; | xsd__string | xsd__string

#	More examples:

# xsd__boolean = enum xsd__boolean { false_, true_ }; | enum xsd__boolean

# xsd__base64Binary = class xsd__base64Binary { unsigned char *__ptr; int __size; }; | xsd__base64Binary | xsd__base64Binary
