-- XSD schema extracted from ITU-T J.177 (11/2005)

<?xml version="1.0" encoding="UTF-8"?> <!-- The IPCablecom CMS Subscriber Provisioning interface. Specified in Web Service Description Language 1.1. --> <definitions name="PcspI01Service" targetNamespace="unique_fully_qualified_namespace" xmlns:tns="unique_fully_qualified_namespace" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <!-- NOTE: the parameter <unique_fully_qualified_namespace> MUST be replaced by fully qualified unique identifiers for the actual implementation. --> <!-- The <types> section defines custom datatypes required by the interface. PCSPI01 requires two custom datatypes: PcspArg (and array of) PcspObj (and array of). // PcspArg (pseudo code) // class PcspArg { // EntityName and key of a specific object. // Wildcard are currently not permitted. // Key is ignored when entity is PcspRelation. // String entityName; String key; // Reserved for future use. Set to 0 for now. // int flags; } // PcspObj (pseudo code). // class PcspObj { // EntityName and key of the specific object. // Key is ignored when entity is PcspRelation. // String entityName; String key; // cmdStatus: // PcspObj as method output/result - MUST be set to one of the status codes specified below. // PcspObj as input to Put() - MUST be set to one of the following: // 1, create new object // 2, modify existing object. // This field is ignored when entity is PcspRelation. // int cmdStatus; // XML encoding per PCSP Data Model Schema or 0 (null) // String xmlEncoding; } EntityNames; MUST be one of the following: "PcspService" "PcspMta" "PcspEndpoint" "PcspCms" "PcspRelation" Status codes: Used for method output or contained in the cmdStatus field of a PcspObj result (output). 0 , Operation succeeded 1 , Object not found 2 , Invalid Put() mode specified. 3 , Object creation failed, object already exists 4 , Read op failed 5 , Create op failed 6 , Modify op failed 7 , Delete op failed 8 , Internal problem. 9 , Server Busy 10, Unsupported operation. 11, Vendor extension. ...extended as needed... --> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.IPCablecom.com/pcsp/i01"> <complexType name="PcspObj"> <sequence> <element name="entityName" type="string"/> <element name="key" type="string"/> <element name="cmdStatus" type="int"/> <element name="xmlEncoding" type="string"/> </sequence> </complexType> <complexType name="ArrayOfPcspObj"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="tns:PcspObj[]"/> </restriction> </complexContent> </complexType> <complexType name="PcspArg"> <sequence> <element name="entityName" type="string"/> <element name="key" type="string"/> <element name="flags" type="int"/> </sequence> </complexType> <complexType name="ArrayOfPcspArg"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="tns:PcspArg[]"/> </restriction> </complexContent> </complexType> </schema> </types> <!-- Message section. Invoking a method on the interface involves two "messages"...an input message and an output message. "In" contains the set of input args to the method call. "Out" contains the return values. --> <message name="Get0In"> <part name="args" type="tns:ArrayOfPcspArg"/> </message> <message name="Get0Out"> <part name="Result" type="tns:ArrayOfPcspObj"/> </message> <message name="Put1In"> <part name="objs" type="tns:ArrayOfPcspObj"/> </message> <message name="Put1Out"> <part name="Result" type="tns:ArrayOfPcspObj"/> </message> <message name="Delete2In"> <part name="args" type="tns:ArrayOfPcspArg"/> </message> <message name="Delete2Out"> <part name="Result" type="tns:ArrayOfPcspObj"/> </message> <message name="CmdStatus3In"> <part name="isCmd" type="xsd:boolean"/> <part name="code" type="xsd:int"/> <part name="subCode" type="xsd:int"/> <part name="vendorExtension" type="xsd:string"/> </message> <message name="CmdStatus3Out"> <part name="Result" type="xsd:int"/> </message> <!-- Port type defines the interface. Each "operation" is a method on the interface, with associated input and output messages (args and return values). // The PCSP service interface (in pseudo code). // interface IPcspI01Service { // Get (read) one or more objects from the server. // EntityName of "PcspRelation' it not allowed (objects only) // PcspObj[] Get(PcspArg[] args); // Put (write) objects and relations to the server. // PcspObj[] Put(PcspObj[] objs); // Delete objects and relations from the server. // PcspObj[] Delete(PcspArg[] args); // Out-of-band command and status reporting. // // Predefined command codes: // 0 - extension command // // Predefined status codes: // 0 - extension status // int CmdStatust(boolean cmd, // true for CMD, false for STATUS. int code, // CMD or STATUS code (see above). int subCode // SubCode. Further refines code. String extension); } --> <portType name="PcspI01Service"> <operation name="Get" parameterOrder="args"> <input name="Get0In" message="tns:Get0In"/> <output name="Get0Out" message="tns:Get0Out"/> </operation> <operation name="Put" parameterOrder="objs"> <input name="Put1In" message="tns:Put1In"/> <output name="Put1Out" message="tns:Put1Out"/> </operation> <operation name="Delete" parameterOrder="args"> <input name="Delete2In" message="tns:Delete2In"/> <output name="Delete2Out" message="tns:Delete2Out"/> </operation> <operation name="CmdStatus" parameterOrder="isCmd code subCode vendorExtension"> <input name="CmdStatus3In" message="tns:CmdStatus3In"/> <output name="CmdStatus3Out" message="tns:CmdStatus3Out"/> </operation> </portType> <!-- Bind the interface ("portType") to transport specifics. Essentially, each method's input and output flow is bound as a remote procedure call using SOAP 1.1. --> <binding name="PcspI01Service" type="tns:PcspI01Service"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Get"> <soap:operation soapAction="Get" style="rpc"/> <input name="Get0In"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output name="Get0Out"> <soap:body use="encoded" amespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> <operation name="Put"> <soap:operation soapAction="Put" style="rpc"/> <input name="Put1In"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output name="Put1Out"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> <operation name="Delete"> <soap:operation soapAction="Delete" style="rpc"/> <input name="Delete2In"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output name="Delete2Out"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> <operation name="CmdStatus"> <soap:operation soapAction="CmdStatus" style="rpc"/> <input name="CmdStatus3In"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output name="CmdStatus3Out"> <soap:body use="encoded" namespace="http://www.IPCablecom.com/pcsp/i01" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <!-- The top level definition of the PCSP I01 Service. Note that the <service> element does not contain an address. It is assumed that the actual address of the service will be set explicitly within the client and server. --> <service name="PcspI01Service"> <documentation>IPCablecom CMS Subscriber Provisioning Service I01</documentation> <port name="PcspI01Service" binding="tns:PcspI01Service"> <soap:address location=""/> </port> </service> </definitions>