WSDL的Types栏和Messages栏中的XML Schema
WSDL数据类型是基于"XML Schema: Datatypes"(XSD)的,现在已经被W3C推荐。这一文档共有三个版本(1999,2000/10,2001),因此必须在namespace属性的<definitions>元素中指明所使用的是哪一个版本。
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
在本文中,我将只考虑2001版本。WSDL标准的推荐者强烈建议使用2001版。
在本栏和以后各部分,需使用以下简缩或前缀
前缀
代表的Namespace
描述
Soapenc
http://schemas.xmlsoap.org/soap/encoding
SOAP 1.1 encoding
Wsdl
http://schemas.xmlsoap.org/wsdl/soap
WSDL 1.1
Xsd
http://www.w3.org/2001/XMLSchema
XML Schema
XSD基类型
下表是直接从MSTK2文档中取出的,列举了MSTK2所支持的所有XSD基类型。它也告诉在客户端或服务器端的WSDL读取程序如何把XSD类型映射到在VB、C++和IDL中相应的类型。
XSD (Soap)类型
变量类型
VB
C++
IDL
Comments
anyURI
VT_BSTR
String
BSTR
BSTR
base64Binary
VT_ARRAY | VT_UI1
Byte()
SAFEARRAY
SAFEARRAY(unsigned char)
Boolean
VT_BOOL
Boolean
VARIANT_BOOL
VARIANT_BOOL
Byte
VT_I2
Integer
short
short
转换时验证范围有效性
Date
VT_DATE
Date
DATE
DATE
时间设为 oo:oo:oo
DateTime
VT_DATE
Date
DATE
DATE
Double
VT_R8
Double
double
double
Duration
VT_BSTR
String
BSTR
BSTR
不转换和生效
ENTITIES
VT_BSTR
String
BSTR
BSTR
不转换和生效
ENTITY
VT_BSTR
String
BSTR
BSTR
不转换和生效
Float
VT_R4
Single
float
float
GDay
VT_BSTR
String
BSTR
BSTR
不转换和生效
GMonth
VT_BSTR
String
BSTR
BSTR
不转换和生效
GMonthDay
VT_BSTR
String
BSTR
BSTR
不转换和生效
GYear
VT_BSTR
String
BSTR
BSTR
不转换和生效
GYearMonth
VT_BSTR
String
BSTR
BSTR
不转换和生效
ID
VT_BSTR
String
BSTR
BSTR
不转换和生效
IDREF
VT_BSTR
String
BSTR
BSTR
不转换和生效
IDREFS
VT_BSTR
String
BSTR
BSTR
不转换和生效
Int
VT_I4
Long
long
long
Integer
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
Language
VT_BSTR
String
BSTR
BSTR
不转换和生效
Long
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
Name
VT_BSTR
String
BSTR
BSTR
不转换和生效
NCName
VT_BSTR
String
BSTR
BSTR
不转换和生效
negativeInteger
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
NMTOKEN
VT_BSTR
String
BSTR
BSTR
不转换和生效
NMTOKENS
VT_BSTR
String
BSTR
BSTR
不转换和生效
nonNegativeIntege
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
nonPositiveInteger
VT_DECIMAL
Variant
DECIMA
DECIMAL
转换时范围生效
normalizedString
VT_BSTR
String
BSTR
BSTR
NOTATION
VT_BSTR
String
BSTR
BSTR
不转换和生效
Number
VT_DECIMAL
Variant
DECIMAL
DECIMAL
positiveInteger
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
Qname
VT_BSTR
String
BSTR
BSTR
不转换和生效
Short
VT_I2
Integer
short
short
String
VT_BSTR
String
BSTR
BSTR
Time
VT_DATE
Date
DATE
DATE
日设为1899年12月30日
Token
VT_BSTR
String
BSTR
BSTR
不转换和生效
unsignedByte
VT_UI1
Byte
unsigned char
unsigned char
UnsignedInt
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
unsignedLong
VT_DECIMAL
Variant
DECIMAL
DECIMAL
转换时范围生效
unsignedShort
VT_UI4
Long
Long
Long
转换时范围生效
XSD定义了两套内建的数据类型:原始的和派生的。在下文中查阅内建数据类型的层次十分有益:
http://www.w3.org/TR/2001/PR-xmlschema-2-20010330