将 XML 模式定义映射到 SDO 类型系统

将每个 XML 模式类型映射到 SDO 类型。使用此映射可帮助您开发代码,从而浏览程序调解的消息的数据图。

调解所支持的服务数据对象 (SDO) 版本是 V1

可以将 XML 模式嵌入到描述消息部件和 SOAP 头的 WSDL 部分中。但是 SOAP 头描述更可能用作单独模式,在此情况下,您应该将其加载到 SDO 存储库中(在此存储库中,可在运行时使用该描述符处理具有匹配头的任何消息)。

Java 类匹配的模式

每个 XML 模式复杂类型会映射到 SDO 类型。这表示具有复杂类型的元素可由 SDO 数据对象的实例表示。此类型具有模式类型定义中包含的每个元素、属性或通配符的属性。

此实例包含已设置的每个属性的值。如果从模式复杂类型映射此属性,那么值为另一个 SDO 数据对象。如果从模式简单类型映射该属性,那么值为 Java™ 类的实例,如下表中所示。

表 1. 模式类型和相应 Java 类. 此表的第一列列示模式类型。第二列列示相应 Java 类。第三列使您参考在表末尾提供的以供参考的两个注释中的一个。
模式类型 Java 类 注释
anyURI java.lang.String  
base64Binary byte[] 请参阅注释 2
boolean java.lang.Boolean/ boolean 请参阅注释 1
byte java.lang.Byte / byte 请参阅注释 1
date java.lang.String  
dateTime java.lang.String  
decimal java.math.BigDecimal  
双精度 java.lang.Double / double 请参阅注释 1
duration java.lang.String  
ENTITIES java.util.List  
ENTITY java.lang.String  
float ava.lang.Float / float 请参阅注释 1
gDay java.lang.String  
gMonth java.lang.String  
gMonthDay java.lang.String  
gYear java.lang.String  
gYearMonth java.lang.String  
hexBinary byte[] 请参阅注释 2
ID java.lang.String  
IDREF java.lang.String  
IDREFS java.util.List  
int java.lang.Integer / int 请参阅注释 1
integer java.math.BigInteger  
language java.lang.String  
long java.lang.Long / long 请参阅注释 1
Name java.lang.String  
NCName java.lang.String  
negativeInteger java.math.BigInteger  
NKTOKENS java.util.List  
NMTOKEN java.lang.String  
nonNegativeInteger java.math.BigInteger  
nonPositiveInteger java.math.BigInteger  
normalisedString java.lang.String  
NOTATION javax.xml.namespace.QName  
positiveInteger java.math.BigInteger  
QName javax.xml.namespace.QName  
short java.lang.Short / short 请参阅注释 1
string java.lang.String  
time java.lang.String  
token java.lang.String  
unsignedByte java.lang.Short / short 请参阅注释 1
unsignedInt java.lang.Long / long 请参阅注释 1
unsignedLong java.math.BigInteger  
unsignedShort java.lang.Integer / int 请参阅注释 1
Notes:
  1. 根据需要,SDO 自动将原语(int、long 等)转换为对象。这表示您可以混合使用专用方法(getInt、setInt、getLong 和 setLong)以及通用 get 和 set 方法。
  2. 由于字节数组可变,因此可以更新值,而无需将其设置回数据对象。但是,发生此情况时,数据对象可能不会注意到隐式更新。使用字节数组值时,始终使用 setBytes() 方法显式地更新数据对象。

使用全局元素和属性

当模式映射到 SDO 时,定义特殊 SDO 类型(通常称为“DocumentRoot”)。此类型是模式中所有全局元素和属性的容器。不管何时需要定位全局元素或属性的 SDO 属性,都应定位“DocumentRoot”类型,然后在其中定位相应属性。

以下模式定义 Web 服务消息的布局。通过将此模式与Web Service 消息的 SDO 数据图映射中的信息进行比较,可以查看处于正操作的 SDO 映射的模式。

<?xml version="1.0"?>
<xsd:schema
    targetNamespace="http://www.ibm.com/ns/2004/05/webservices/messagemodel"
    xmlns:tns="http://www.ibm.com/ns/2004/05/webservices/messagemodel"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

		<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/"/>

    <xsd:element name="Info">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="operationName" nillable="true" type="xsd:string"/>
          <xsd:element name="messageName"   nillable="true" type="xsd:string"/>
          <xsd:element name="messageType"   nillable="true" type="xsd:string"/>
          <xsd:element name="headers"       type="tns:HeaderEntryType"     maxOccurs="unbounded"/>
          <xsd:element name="attachments"   type="tns:AttachmentEntryType" maxOccurs="unbounded"/>
          <xsd:element name="body"          type="tns:BodyType"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="BodyType" abstract="true"/>

    <xsd:complexType name="HeaderEntryType" abstract="true"/>

    <xsd:complexType name="AttachmentEntryType" abstract="true"/>

    <xsd:complexType name="SOAPFaultBody">
      <xsd:complexContent>
        <xsd:extension base="tns:BodyType">
          <xsd:sequence>
            <xsd:element name="faultcode" type="xsd:QName"/>
            <xsd:element name="faultstring" type="xsd:string"/>
            <xsd:element name="faultactor" type="xsd:anyURI" minOccurs="0"/>
            <xsd:element name="detail" type="soap:detail" minOccurs="0"/> 
				</xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="SOAP_1_1_HeaderEntryType">
      <xsd:complexContent>
        <xsd:extension base="tns:HeaderEntryType">
          <xsd:sequence>
            <xsd:element name="mustUnderstand" nillable="true" type="xsd:boolean"/>
            <xsd:element name="actor"          nillable="true" type="xsd:anyURI"/>
            <xsd:any/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="SOAP_1_1_BoundHeaderEntryType">
      <xsd:complexContent>
        <xsd:extension base="tns:HeaderEntryType">
          <xsd:sequence>
            <xsd:element name="mustUnderstand" nillable="true" type="xsd:boolean"/>
            <xsd:element name="actor"          nillable="true" type="xsd:anyURI"/>
            <xsd:element name="messagePart"    type="xsd:string"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="MIMEAttachmentEntryType">
      <xsd:complexContent>
        <xsd:extension base="tns:AttachmentEntryType">
          <xsd:sequence>
            <xsd:element name="contentType"             type="xsd:string"/>
            <xsd:element name="contentTransferEncoding" type="xsd:string"/>
            <xsd:element name="contentId"               type="xsd:string"/>
            <xsd:element name="data"                    type="xsd:base64Binary"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="BoundMIMEAttachmentEntryType">
      <xsd:complexContent>
        <xsd:extension base="tns:AttachmentEntryType">
          <xsd:sequence>
            <xsd:element name="contentType"             type="xsd:string"/>
            <xsd:element name="contentTransferEncoding" type="xsd:string"/>
            <xsd:element name="contentId"               type="xsd:string"/>
            <xsd:element name="messagePart"             type="xsd:string"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="UnknownBodyType">
      <xsd:complexContent>
        <xsd:extension base="tns:BodyType">
          <xsd:sequence>
            <xsd:any/>
          </xsd:sequence>
          <xsd:attribute name="encodingStyle" type="xsd:string"/>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

</xsd:schema>       

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjy1113
文件名:rjy1113.html