#	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 be 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 'prefix__type' is the C/C++-translation of the schema type,
#	'declaration' introduces the type in the header file, the optional
#	'use' specifies how the type is used directly, and the optional
#	'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.
#
#	When a type binding requires only the usage to be changed, the
#	declaration part can be replaced by elipsis ..., as in:
#		prefix__type = ... | use | ptr-use
#	This ensure that the wsdl2h-generated type definition is preserved,
#	while the use and ptr-use are remapped.
#	For example, this is useful to map schema polymorphic types to C types,
#	where we need to be able to both handle a base type and its extensions
#	as per schema extensibility. Say base type ns:base allows derived
#	extensions and we need to map this to C types as follows:
#		ns__base = ... | int __type_base; void*
#	where __type_base and void* are used to (de)serialize any data type,
#	including base and its derived types.
#
#	Additional data and function members 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();
#	
#	Type remappings can be given to map a type to another type:
#		prefix__type1 == prefix__type2
#	which replaces 'prefix__type1' by 'prefix__type2' in the wsdl2h output.
#	For example:
#		SOAP_ENC__boolean == xsd__boolean
#
#	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) 2000-2012, 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
]

#	Uncomment the line below to use struct tm instead of time_t xsd:dateTime
#	Must compile and link custom/struct_tm.c with the project
#
# xsd__dateTime = #import "custom/struct_tm.h" | xsd__dateTime

#	Uncomment the line below to use timeval with usec precision xsd:dateTime
#	Must compile and link custom/struct_timeval.c with the project
#
# xsd__dateTime = #import "custom/struct_timeval.h" | xsd__dateTime

#	Uncomment the line below to use LONG64 int for xsd:duration
#	(with high ms precision)
#	Must compile and link custom/duration.c with the project

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

#	Temporary URI

tempuri	= "http://tempuri.org/"

#	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/"

#	.NET WCF DataContract Serialization Schema

ser	= <http://schemas.microsoft.com/2003/10/Serialization/>

#	.NET WCF DataContract Serialization Schema remappings
_ser__anyURI		== xsd__anyURI
_ser__boolean		== xsd__boolean
_ser__base64Binary	== xsd__base64Binary
_ser__byte		== xsd__byte
_ser__dateTime		== xsd__dateTime
_ser__decimal		== xsd__decimal
_ser__double		== xsd__double
_ser__float		== xsd__float
_ser__int		== xsd__int
_ser__long		== xsd__long
_ser__QName		== xsd__QName
_ser__short		== xsd__short
_ser__string		== xsd__string
_ser__unsignedByte	== xsd__unsignedByte
_ser__unsignedInt	== xsd__unsignedInt
_ser__unsignedLong	== xsd__unsignedLong
_ser__unsignedShort	== xsd__unsignedShort

#	.NET WCF ser:anyType represents an object (see import/ser.h):
_ser__anyType	= | struct __ser__anyType | struct __ser__anyType

#	.NET WCF ser:char element and type represents a Unicode character
_ser__char	= | int
ser__char	= | int

#	.NET WCF ser:duration element and type maps to xsd:duration
_ser__duration	== xsd__duration
ser__duration	== xsd__duration

#	.NET WCF ser:guid pattern = "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}"
_ser__guid	= | char*
ser__guid	= | char*

#	.NET WCF samples

mssamh	= "http://Microsoft.Samples.Http"
mssamhi	= "http://Microsoft.Samples.Http/Imports"

mssamt	= "http://Microsoft.Samples.TransportSecurity"
mssamti	= "http://Microsoft.Samples.TransportSecurity/Imports"

mssamm	= "http://Microsoft.Samples.MessageSecurity"
mssammi	= "http://Microsoft.Samples.MessageSecurity/Imports"

mssadh  = "http://Microsoft.Samples.DualHttp"
mssadhi = "http://Microsoft.Samples.DualHttp/Imports"

#	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 1.1 and 1.0 (and obsolete WS-Reliability 2004)

wsrm	= <http://docs.oasis-open.org/ws-rx/wsrm/200702>
wsrm5	= <http://schemas.xmlsoap.org/ws/2005/02/rm>
wsrm4	= <http://docs.oasis-open.org/wsrm/2004/06/ws-reliability-1.1.xsd>

#	WS-Discovery 1.1 and 1.0

wsdd	= <http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01>
wsdd10	= <http://schemas.xmlsoap.org/ws/2005/04/discovery>

#	WS-Policy

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

#	WS-SecureConversation

wsc	= <http://schemas.xmlsoap.org/ws/2005/02/sc>

#	WS-Trust 1.0

wst	= <http://schemas.xmlsoap.org/ws/2005/02/trust>

#	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
