All right, so you don't want to assign TimedValue to a value explicitly? I believe SUDS generates the empty XML element because that element has no value.
All
Looking for some direction as I can't seem to get out using Google +
Documentation
I am using a service described (in part) by the WSDL snip below:
<xs:complexType name="ArrayOfTimeSeries">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="TimeSeries"
nillable="true" type="tns:TimeSeries"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TimeSeries">
<xs:complexContent mixed="false">
<xs:extension base="tns:DataItem">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="TimedValues"
nillable="true" type="tns:ArrayOfTimedValue"/>
</xs:sequence>
<xs:attribute name="Path" type="xs:string"/>
<xs:attribute name="ErrDesc" type="xs:string"/>
<xs:attribute name="Error" type="xs:int" use="required"/>
<xs:attribute name="SeriesID" type="xs:string"/>
<xs:attribute name="DataType" type="xs:string"/>
<xs:attribute name="UOM" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DataItem" abstract="true"/>
<xs:complexType name="ArrayOfTimedValue">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="TimedValue"
nillable="true" type="tns:TimedValue"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TimedValue">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Path" type="xs:string"/>
<xs:attribute name="Flags" type="xs:string"/>
<xs:attribute name="Time" type="xs:dateTime" use="required"/>
<xs:attribute name="UOM" type="xs:string"/>
<xs:attribute name="Status" type="xs:string"/>
<xs:attribute name="PctGood" type="xs:double"/>
<xs:attribute name="DataType" type="xs:string"/>
</xs:extension></xs:simpleContent>
</xs:complexType>
<xs:element name="InsertPIData">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="events"
type="tns:ArrayOfTimeSeries"/>
<xs:element minOccurs="1" maxOccurs="1" name="duplicateSwitch">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="InsertDuplicate"/>
<xs:enumeration value="ReplaceDuplicate"/>
<xs:enumeration value="ReplaceOnlyDuplicate"/>
<xs:enumeration value="ErrorDuplicate"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
The problem is when I construct a TimedValue
>>> value=client.factory.create('TimedValue')
>>> print value
(TimedValue){
_Path = ""
_Flags = ""
_Time = ""
_UOM = ""
_Status = ""
_PctGood = ""
_DataType = ""
}
>>>
The XML I need to output is something like:
<events>
<TimeSeries DataType="xs:float" Error="0"
Path="pi:\\pi.intercap-server.com\IUE-001-AHU-1.ControlMode">
<TimedValues>
<TimedValue Path="pi:\\pi.intercap-server.com\IUE-001-AHU-1.ControlMode"
PctGood="0.0" Time="2012-09-14T00:26:21Z">0</TimedValue>
</TimedValues>
</TimeSeries>
</events>
<duplicateSwitch>ReplaceDuplicate</duplicateSwitch>
</InsertPIData>
but instead I'm outputting:
<events>
<TimeSeries DataType="xs:float" Error="0"
Path="pi:\\pi.intercap-server.com\IUE-001-AHU-1.ControlMode">
<TimedValues>
<TimedValue Path="pi:\\pi.intercap-server.com\IUE-001-AHU-1.ControlMode"
PctGood="0.0" Time="2012-09-14T00:26:21Z" />
</TimedValues>
</TimeSeries>
</events>
<duplicateSwitch>ReplaceDuplicate</duplicateSwitch>
</InsertPIData>
How can I insert a value for the TimedValue besides the attributes? I
found a thread that seems related here, but it doesn't seem to have
been resolved:
http://lists.fedoraproject.org/pipermail/suds/2010-April/000825.html
Any help appreciated
_______________________________________________
suds mailing list
suds@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/suds