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