Correlación de definiciones de esquema XML en el sistema de tipo SDO

Cada tipo del esquema XML se correlaciona con un tipo SDO. Utilice esta correlación como ayuda para desarrollar código para navegar por los gráficos de datos de los mensajes que media el programa.

La versión de SDO (Service Data Objects) que soportan las mediaciones es Versión 1.

Los esquemas XML pueden incrustarse en las secciones WSDL que describen las partes del mensaje y las cabeceras SOAP. Sin embargo, la descripción de la cabecera SOAP es más probable que esté disponible como un esquema separado, en cuyo caso debe cargarla en el repositorio SDO donde se puede utilizar en tiempo de ejecución para procesar cualquier mensaje con una cabecera coincidente.

Correlación de esquema con la clase Java

Cada tipo complejo del esquema XML se correlaciona con un tipo SDO. Esto significa que cada elemento que tenga un tipo complejo se representa mediante una instancia de un objeto de datos SDO. El tipo tiene una propiedad para cada elemento, atributo o comodín contenido en la definición de tipo de esquema.

La instancia contiene un valor para cada propiedad establecida. Si la propiedad se correlaciona con un tipo complejo del esquema, el valor es otro objeto de datos SDO. Si la propiedad se correlaciona desde un tipo sencillo del esquema, el valor es una instancia de una clase Java™, tal como se muestra en la tabla siguiente.

Tabla 1. Tipos de esquema y clases Java correspondientes. La primera columna de la tabla lista los tipos de esquema. La segunda columna lista las clases Java correspondientes. La tercera columna remite a una de las dos notas que se proporcionan al final de la tabla como consulta.
Tipo de esquema Clase Java Notas
anyURI java.lang.String  
base64Binary byte[] Consulte la nota 2
booleano java.lang.Boolean/ boolean Consulte la nota 1
byte java.lang.Byte / byte Consulte la nota 1
date java.lang.String  
dateTime java.lang.String  
decimal java.math.BigDecimal  
double java.lang.Double / double Consulte la nota 1
duration java.lang.String  
ENTITIES java.util.List  
ENTITY java.lang.String  
float java.lang.Float / float Consulte la nota 1
gDay java.lang.String  
gMonth java.lang.String  
gMonthDay java.lang.String  
gYear java.lang.String  
gYearMonth java.lang.String  
hexBinary byte[] Consulte la nota 2
ID java.lang.String  
IDREF java.lang.String  
IDREFS java.util.List  
int java.lang.Integer / int Consulte la nota 1
entero java.math.BigInteger  
language java.lang.String  
long java.lang.Long / long Consulte la nota 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 Consulte la nota 1
serie java.lang.String  
time java.lang.String  
señal java.lang.String  
unsignedByte java.lang.Short / short Consulte la nota 1
unsignedInt java.lang.Long / long Consulte la nota 1
unsignedLong java.math.BigInteger  
unsignedShort java.lang.Integer / int Consulte la nota 1
Notas:
  1. SDO convierte automáticamente los valores primitivos (int, long, etc.) en objetos, según sea necesario. Esto significa que puede utilizar una combinación de métodos especializados (getInt, setInt, getLong, setLong) y también los métodos get y set genéricos.
  2. Dado que las matrices de bytes son mutables, puede actualizar el valor sin volver a establecerlo en el objeto de datos. No obstante, cuando esto ocurre, es posible que el objeto de datos no reconozca la actualización implícita. Cuando trabaje con valores de matrices de bytes, utilice siempre el método setBytes() para actualizar explícitamente el objeto de datos.

Trabajo con elementos y atributos globales

Cuando se correlaciona un esquema con SDO, se define un tipo de SDO especial, denominado generalmente ‘DocumentRoot’. Este tipo es un contenedor de todos los elementos y atributos globales del esquema. Cuando necesite localizar una propiedad de SDO para un elemento o atributo global, debe localizar el tipo ‘DocumentRoot’ y luego localizar la propiedad adecuada contenida en el mismo.

El siguiente esquema define el diseño de los mensajes de servicios web. Al comparar este esquema con la información de Correlación de gráficos de datos SDO para mensajes de servicios web se puede observar la correlación de esquemas con SDO en acción.

<?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>
      

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjy1113
File name: rjy1113.html