En el esquema XML para los mensajes de entrada y salida para la operación, el tipo de datos XML nativo se correlaciona con xsd:anyType.
Si un mensaje XML para un servicio web solicita INSERT o UPDATE, el código de parámetro debe contener un documento XML válido.
Los ejemplos de las dos secciones siguientes realizan operaciones en la tabla CUSTOMER de la base de datos SAMPLE de DB2.
| Nombre de columna | Tipo de datos |
|---|---|
| CID | BIGINT |
| INFO | XML |
| HISTORY | XML |
El siguiente esquema XML por omisión es para una operación basada en la siguiente sentencia de SQL:
INSERT INTO CUSTOMER (CID, INFO, HISTORY)
VALUES (:cid, :info, :history)
Las columnas INFO y HISTORY contienen datos XML. Los elementos que representan estas columnas en el esquema aparecen resaltados en negrita:
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:example" xmlns:tns="urn:example">
<xsd:element name="insertCustomer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="cid" type="xsd:long" nillable="true"></xsd:element>
<xsd:element name="info" type="xsd:anyType" nillable="true"></xsd:element>
<xsd:element name="history" type="xsd:anyType" nillable="true"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="insertCustomerResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="updateCount" type="xsd:int"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Una solicitud SOAP/HTTP puede ser similar al ejemplo siguiente:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="urn:example">
<soapenv:Body>
<q0:insertCustomer>
<cid>123456</cid>
<info>
<customerinfo>
<name>Amir Malik</name>
<addr country="United States">
<street>555 Bailey Ave</street>
<city>San Jose</city>
<prov-state>California</prov-state>
<pcode-zip>95141</pcode-zip>
</addr>
<phone type="work">408-555-1358</phone>
</customerinfo>
</info>
<history>
<customerHistory>
<numberOrders>12</numberOrders>
<memberSince>1999</memberSince>
</customerHistory>
</history>
</q0:insertCustomer>
</soapenv:Body>
</soapenv:Envelope>
El siguiente esquema XML por omisión es para una operación basada en la siguiente sentencia de SQL:
SELECT CID, INFO, HISTORY
FROM CUSTOMER
Como en el ejemplo anterior, las columnas INFO y HISTORY contienen datos XML. Los elementos que representan estas columnas en el esquema aparecen resaltados en negrita:
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:example" xmlns:tns="urn:example">
<xsd:element name="selectCustomer">
<xsd:complexType></xsd:complexType>
</xsd:element>
<xsd:element name="selectCustomerResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="row">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CID" type="xsd:long"></xsd:element>
<xsd:element name="INFO" type="xsd:anyType" nillable="true"></xsd:element>
<xsd:element name="HISTORY" type="xsd:anyType" nillable="true"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Una respuesta SOAP/HTTP puede ser similar al ejemplo siguiente:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="urn:example">
<soapenv:Body>
<q0:selectCustomerResponse>
<row>
<cid>123456</cid>
<info>
<customerinfo>
<name>Amir Malik</name>
<addr country="United States">
<street>555 Bailey Ave</street>
<city>San Jose</city>
<prov-state>California</prov-state>
<pcode-zip>95141</pcode-zip>
</addr>
<phone type="work">408-555-1358</phone>
</customerinfo>
</info>
<history>
<customerHistory>
<numberOrders>12</numberOrders>
<memberSince>1999</memberSince>
</customerHistory>
</history>
</row>
</q0:selectCustomerResponse>
</soapenv:Body>
</soapenv:Envelope>