[Fedora-suds-list] xs:dateTime (nillable) included in message
Geraint Williams
geraint.williams at irdeto.com
Sat Oct 25 12:10:45 UTC 2008
dateTime fields are included in the SOAP message, even when they have no value (fields of other data types are not included - which is desired behavior)
Using SUDS : 0.3.1
Server is WCF (.NET)
Extract from the xsd: (sorry no public available wsdl, and not sure if I can distribute all wsdl / xsd)
<xs:complexType name="WorkOrder">
<xs:sequence>
<xs:element minOccurs="0" name="ActionTaken" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="CompletedDateTime" nillable="true" type="xs:dateTime" />
<xs:element minOccurs="0" name="CustomerId" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="ExpirationDate" nillable="true" type="xs:dateTime" />
<xs:element minOccurs="0" name="Id" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="RegisteredDateTime" nillable="true" type="xs:dateTime" />
<xs:element minOccurs="0" name="ServiceDateTime" nillable="true" type="xs:dateTime" />
<xs:element minOccurs="0" name="WorkOrderServices" nillable="true" type="tns:WorkOrderServiceCollection" />
<xs:element minOccurs="0" name="WorkOrderStatusId" nillable="true" type="xs:int" />
</xs:sequence>
</xs:complexType>
Code:
from suds.client import Client
url = 'http://blah.blah.svc?wsdl'
client = Client(url)
authen = client.factory.create('ns3:AuthenticationHeader')
print authen
authen.UserName = 'XXX'
authen.Proof = 'XXX'
wo = client.factory.create('ns4:WorkOrder')
wo.Id = 3202
try:
res = client.service.ReopenWorkOrder(wo, soapheaders=authen)
except Exception, e:
print e
print client.last_sent()
message (from client.last_sent())
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ <http://schemas.xmlsoap.org/soap/encoding/> " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance> " xmlns:tns="http://blah.blah/Security <http://blah.blah/Security> " xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ <http://schemas.xmlsoap.org/soap/envelope/> ">
<SOAP-ENV:Header>
<tns:AuthenticationHeader>
<tns:Proof>XXX</tns:Proof>
<tns:UserName>XXX</tns:UserName>
</tns:AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body xmlns:tns="http://blah.blah/Workforce <http://blah.blah/Workforce> ">
<tns:ReopenWorkOrder>
<tns:workOrder>
<tns:CompletedDateTime></tns:CompletedDateTime>
<tns:ExpirationDate></tns:ExpirationDate>
<tns:Id>3202</tns:Id>
<tns:RegisteredDateTime></tns:RegisteredDateTime>
<tns:ServiceDateTime></tns:ServiceDateTime>
<tns:WorkOrderServices>
<tns:Items/>
</tns:WorkOrderServices>
</tns:workOrder>
</tns:ReopenWorkOrder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Thanks,
GEraint.
More information about the suds
mailing list