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