wsdl标准类型(转)
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 |

浙公网安备 33010602011771号