[Soap-Python] suds: attribute of complex argument does not get namespace prefix

thomas.hottendorff at hvbo4.de thomas.hottendorff at hvbo4.de
Fri Jun 13 16:41:50 CEST 2014


When I look at the schema, i find:

       <xs:complexType name="GetItemType">
          <xs:complexContent>
             <xs:extension base="tns:GetItemCommon">
                <xs:sequence/>
                <xs:attribute use="required" type="xs:integer"  
name="ItemId" form="qualified"/>
             </xs:extension>
          </xs:complexContent>
       </xs:complexType>

So, the attribute ItemId needs to be qualified with the namespace.

It seems that suds does *not* obey the form="qualified" instruction :-(

I guess I will have to file a bug on this.

Thanks for pointing this out and the link. Very instructive.

Thomas



Quoting Dieter Maurer <dieter at handshake.de>:

> Thomas Hottendorff wrote at 2014-6-12 13:31 +0000:
>> ...
>> However I'm stuck now with my first example because the attributes
>> transactionId and ItemId that belong to the complex argument I pass on with
>> the method lack the required namespace prefixes (ns1:...) in my example. So,
>> my question is, is there a means to add these?
>
> It is rare that attributes require qualification.
> Whether they do is controlled by a schema attribute
> ("attributeFormDefault='qualified'"); the default is "unqualified"
> (no prefixes).
>
> Thus, check whether your schema correctly calls for
> qualified attributes. If it does, you may have hit a "suds" bug
> (maybe undetected for a long time as qualified attributes are rare).
>
>
> You can read more about "attributeFormDefault" at
> "http://www.intertech.com/Blog/xml-schema-elementformdefault-and-attributeformdefault/".
>
>
>
> --
> Dieter





More information about the Soap mailing list