mvantellingen / python-zeep

A Python SOAP client
http://docs.python-zeep.org
Other
1.9k stars 586 forks source link

zeep.exceptions.XMLParseError: Unexpected element 'created' #972

Open cpanse opened 5 years ago

cpanse commented 5 years ago

Recently I discovered the below described problem (while upgrading from python2 to python3 and suds to zeep version 3.4.0) with one of the endpoints. Also downgrading to previous zeep versions fail. Here I provide one failing and one succeeding code snippet for different endpoints. Any help/suggestion is highly appreciated.

1. Failing endpoint resource

1.1. debug py code snippet

import pretend  # pip install pretend

from zeep import Client
from zeep.transports import Transport

# Replace YOUR-WSDL and OPERATION_NAME with the wsdl url
# and the method name you are calling. The response
# needs to be set in the content=""" """ var.

client = Client('https://fgcz-bfabric.uzh.ch/bfabric/resource?wsdl')
response = pretend.stub(
    status_code=200,
    headers={},
    content="""
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns2:readResponse xmlns:ns2="http://endpoint.webservice.component.bfabric.org/">
            <return>
                <entitiesonpage>1</entitiesonpage>
                <numberofpages>1</numberofpages>
                <page>0</page>
                <resource id="550327">
                    <created>2018-05-23T15:38:30.135+02:00</created>
                    <createdby>itfeeder</createdby>
                    <modified>2018-12-12T18:28:31.611+01:00</modified>
                    <modifiedby>itfeeder</modifiedby>
                    <status>archived</status>
                    <name>021126_9_Ler_A-v4.CEL</name>
                    <filechecksum>d41d8cd98f00b204e9800998ecf8427e</filechecksum>
                    <relativepath>p24/Transcriptomics/Affymetrix/021126_9_Ler_A-v4.CEL</relativepath>
                    <size>0</size>
                    <description>powered by https://fgcz.github.io/rawDiag/</description>
                    <project id="24"/>
                    <storage id="5"/>
                    <uris>http://fgcz-gstore.uzh.ch/dm/p24/Transcriptomics/Affymetrix/021126_9_Ler_A-v4.CEL</uris>
                    <uris>https://fgcz-gstore.uzh.ch/projects/p24/Transcriptomics/Affymetrix/021126_9_Ler_A-v4.CEL
                    </uris>
                    <uris>
                        scp://fgcz-r-022/export/lv_GTprojects/projects/p24/Transcriptomics/Affymetrix/021126_9_Ler_A-v4.CEL
                    </uris>
                    <junk>false</junk>
                    <workunit id="167051"/>
                </resource>
            </return>
        </ns2:readResponse>
    </S:Body>
</S:Envelope>
 """)

operation = client.service._binding._operations['read']
result = client.service._binding.process_reply(
    client, operation, response)

print(result)

1.2. stdout/stderr

/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/bin/python /Users/cp/PycharmProjects/bfabricPy_zeep_debug/bfabricPyDebugMain.py
Traceback (most recent call last):
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/bfabricPyDebugMain.py", line 52, in <module>
    client, operation, response)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/wsdl/bindings/soap.py", line 197, in process_reply
    result = operation.process_reply(doc)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/wsdl/bindings/soap.py", line 396, in process_reply
    return self.output.deserialize(envelope)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/wsdl/messages/soap.py", line 94, in deserialize
    body_result = self._deserialize_body(body)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/wsdl/messages/soap.py", line 519, in _deserialize_body
    result = self.body.parse(response_element, self.wsdl.types, context=context)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/element.py", line 130, in parse
    schema_type=self.type,
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/types/complex.py", line 194, in parse_xmlelement
    elements, schema, name, context=context
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/indicators.py", line 609, in parse_xmlelements
    xmlelements, schema, name, context=context
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/element.py", line 176, in parse_xmlelements
    item = self.parse(xmlelement, schema, allow_none=True, context=context)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/element.py", line 130, in parse
    schema_type=self.type,
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/types/complex.py", line 194, in parse_xmlelement
    elements, schema, name, context=context
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/indicators.py", line 609, in parse_xmlelements
    xmlelements, schema, name, context=context
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/element.py", line 176, in parse_xmlelements
    item = self.parse(xmlelement, schema, allow_none=True, context=context)
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/elements/element.py", line 130, in parse
    schema_type=self.type,
  File "/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/lib/python3.7/site-packages/zeep/xsd/types/complex.py", line 204, in parse_xmlelement
    raise XMLParseError("Unexpected element %r" % elements[0].tag)
zeep.exceptions.XMLParseError: Unexpected element 'created'

Process finished with exit code 1

2. Succeeding endpoint storage

2.1. debug py code snippet

import pretend  # pip install pretend

from zeep import Client
from zeep.transports import Transport

# Replace YOUR-WSDL and OPERATION_NAME with the wsdl url
# and the method name you are calling. The response
# needs to be set in the content=""" """ var.

client = Client('https://fgcz-bfabric.uzh.ch/bfabric/storage?wsdl')
response = pretend.stub(
    status_code=200,
    headers={},
    content="""
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns2:readResponse xmlns:ns2="http://endpoint.webservice.component.bfabric.org/">
            <return>
                <entitiesonpage>1</entitiesonpage>
                <numberofpages>1</numberofpages>
                <page>0</page>
                <storage id="1">
                    <created>2011-12-15T15:06:06.566+01:00</created>
                    <createdby>system</createdby>
                    <modified>2014-04-04T07:18:13.915+02:00</modified>
                    <modifiedby>admin</modifiedby>
                    <name>Developer Storage</name>
                    <basepath>/home/bfabric/repos/</basepath>
                    <description>The test storage.</description>
                    <enabled>true</enabled>
                    <host>fgcz-data.uzh.ch</host>
                    <projectfolderprefix>p</projectfolderprefix>
                    <projectseparated>true</projectseparated>
                    <protocol>scp</protocol>
                    <supervisor id="16"/>
                </storage>
            </return>
        </ns2:readResponse>
    </S:Body>
</S:Envelope>
 """)

operation = client.service._binding._operations['read']
result = client.service._binding.process_reply(
    client, operation, response)

print(result)

2.2. stdout/stderr

/Users/cp/PycharmProjects/bfabricPy_zeep_debug/venv/bin/python /Users/cp/PycharmProjects/bfabricPy_zeep_debug/bfabricPyDebug_storage.py
{
    'entitiesonpage': 1,
    'errorreport': None,
    'numberofpages': 1,
    'page': 0,
    'access': [],
    'annotation': [],
    'application': [],
    'attachment': [],
    'comment': [],
    'dataset': [],
    'executable': [],
    'externaljob': [],
    'importresource': [],
    'link': [],
    'mail': [],
    'order': [],
    'orderitem': [],
    'orderstatus': [],
    'parameter': [],
    'projectcharge': [],
    'project': [],
    'resource': [],
    'role': [],
    'sample': [],
    'storage': [
        {
            'created': datetime.datetime(2011, 12, 15, 15, 6, 6, 566000, tzinfo=<FixedOffset '+01:00'>),
            'createdby': 'system',
            'modified': datetime.datetime(2014, 4, 4, 7, 18, 13, 915000, tzinfo=<FixedOffset '+02:00'>),
            'modifiedby': 'admin',
            'status': None,
            'deletionreport': None,
            'errorreport': None,
            'comment': [],
            'name': 'Developer Storage',
            'basepath': '/home/bfabric/repos/',
            'description': 'The test storage.',
            'enabled': True,
            'executable': None,
            'host': 'fgcz-data.uzh.ch',
            'projectfolderprefix': 'p',
            'projectseparated': True,
            'protocol': 'scp',
            'supervisor': {
                'created': None,
                'createdby': None,
                'modified': None,
                'modifiedby': None,
                'status': None,
                'deletionreport': None,
                'errorreport': None,
                'accountenabled': None,
                'active': None,
                'emailverified': None,
                'address': None,
                'city': None,
                'coachedproject': [],
                'computerloginactivated': None,
                'country': None,
                'description': None,
                'email': None,
                'empdegree': None,
                'firstname': None,
                'formerproject': [],
                'salutation': None,
                'homeaddress': None,
                'homecity': None,
                'homecountry': None,
                'homephoneareacode': None,
                'homephonecountrycode': None,
                'homephonelocalnumber': None,
                'homezip': None,
                'lastname': None,
                'login': None,
                'massmailenabled': None,
                'phoneareacode': None,
                'phonecountrycode': None,
                'phonelocalnumber': None,
                'project': [],
                'role': [],
                'room': None,
                'secret': None,
                'shibbolethid': None,
                'title': None,
                'trackableproject': [],
                'zip': None,
                'id': 16
            },
            'id': 1
        }
    ],
    'user': [],
    'workunit': []
}

Process finished with exit code 0
lbrink commented 5 years ago

I couldn't see any mistakes in the stubs at the first glance. What I could say is different between the 2 endpoints is the hierarchical level of 'created' which is defined in xmlAbstractBaseEntity for both. But the level is deeper for xmlResource: `

` Maybe this is a problem for zeed? The linebreaks in third 'uries' shouldn't be an issue, should they? ` scp://fgcz-r-022/export/lv_GTprojects/projects/p24/Transcriptomics/Affymetrix/021126_9_Ler_A-v4.CEL `
tuerker commented 5 years ago

Dear Zeep Developer,

in some cases, Zeep is definitively not correctly mapping the XML schema types. Below you will find a wsdl and xsd to reproduce the problem.

python -mzeep https://fgcz-bfabric.uzh.ch/bfabric/resource?wsdl
https://fgcz-bfabric.uzh.ch/bfabric/resource?xsd=1

The xsd file, which by the way is valid, defines a number of complex types, which extend the bases over several hierarchy levels. Please check the mapping of the following xmlResource type:


xs:complexType name="xmlResource">
<xs:complexContent>
<xs:extension base="tns:xmlAbstractProjectResource">
<xs:sequence>
<xs:element name="inputresource" type="tns:xmlResource" minOccurs="0"/>
<xs:element name="junk" type="xs:boolean" minOccurs="0"/>
<xs:element name="junkcomment" type="xs:string" minOccurs="0"/>
<xs:element name="succeedingworkunit" type="tns:xmlWorkunit" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tns:workunit" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="xmlAbstractProjectResource">
<xs:complexContent>
<xs:extension base="tns:xmlAbstractResource">
<xs:sequence>
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:element name="expirationdate" type="xs:dateTime" minOccurs="0"/>
<xs:element ref="tns:sample" minOccurs="0"/>
<xs:element ref="tns:project" minOccurs="0"/>
<xs:element name="report" type="xs:string" minOccurs="0"/>
<xs:element ref="tns:storage" minOccurs="0"/>
<xs:element name="uris" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="url" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="xmlAbstractResource">
<xs:complexContent>
<xs:extension base="tns:xmlAbstractNamedBaseEntity">
<xs:sequence>
<xs:element name="filechecksum" type="xs:string" minOccurs="0"/>
<xs:element name="relativepath" type="xs:string" minOccurs="0"/>
<xs:element name="size" type="xs:long" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="xmlAbstractNamedBaseEntity">
<xs:complexContent>
<xs:extension base="tns:xmlAbstractBaseEntity">
<xs:sequence>
<xs:element ref="tns:comment" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexCont
<xs:complexType name="xmlAbstractBaseEntity">
<xs:sequence>
<xs:element name="created" type="xs:dateTime" minOccurs="0"/>
<xs:element name="createdby" type="xs:string" minOccurs="0"/>
<xs:element name="modified" type="xs:dateTime" minOccurs="0"/>
<xs:element name="modifiedby" type="xs:string" minOccurs="0"/>
<xs:element name="status" type="xs:string" minOccurs="0"/>
<xs:element name="deletionreport" type="xs:string" minOccurs="0"/>
<xs:element name="errorreport" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type="xs:long"/>
</xs:complexType>

Executing python -mzeep https://fgcz-bfabric.uzh.ch/bfabric/resource?wsdl maps this xmlResource type to the following

ns0:xmlResource(description: xsd:string, expirationdate: xsd:dateTime, sample: ns0:xmlSample, project: ns0:xmlProject, report: xsd:string, storage: ns0:xmlStorage, uris: xsd:string[], url: xsd:string, inputresource: ns0:xmlResource, junk: xsd:boolean, junkcomment: xsd:string, succeedingworkunit: ns0:xmlWorkunit[], workunit: ns0:xmlWorkunit) As you can see, the inherited xml elements beyond the super type xmlAbstractProjectResource are not included into the mapping.

The same problem is visible for the mapping of the xmlAttachment type, while the other complex types are mapped correctly.

I would be grateful, if you could sort out and fix this bug.

Many thanks in advance. Best regards Can Türker

================================================= python -mzeep https://fgcz-bfabric.uzh.ch/bfabric/resource?wsdl

Prefixes: ns0: http://endpoint.webservice.component.bfabric.org/ xsd: http://www.w3.org/2001/XMLSchema

Global elements: ns0:access(ns0:xmlAccess) ns0:annotation(None) ns0:attachment(ns0:xmlAttachment) ns0:comment(ns0:xmlComment) ns0:dataset(ns0:xmlDataset) ns0:executable(ns0:xmlExecutable) ns0:externaljob(ns0:xmlExternalJob) ns0:importresource(ns0:xmlImportResource) ns0:link(ns0:xmlLink) ns0:mail(ns0:xmlMail) ns0:order(ns0:xmlOrder) ns0:orderitem(ns0:xmlOrderItem) ns0:orderstatus(ns0:xmlOrderStatus) ns0:parameter(ns0:xmlParameter) ns0:project(ns0:xmlProject) ns0:projectcharge(ns0:xmlProjectCharge) ns0:resource(ns0:xmlResource) ns0:role(ns0:xmlRole) ns0:sample(ns0:xmlSample) ns0:storage(ns0:xmlStorage) ns0:submitter(ns0:xmlSubmitter) ns0:user(ns0:xmlUser) ns0:workunit(ns0:xmlWorkunit) ns0:wrappercreator(ns0:xmlWrapperCreator)

Global types: xsd:anyType ns0:abstractXMLAuthBaseRequest(login: xsd:string, password: xsd:string) ns0:abstractXMLRequestReadEntities(login: xsd:string, password: xsd:string, page: xsd:int) ns0:abstractXMLRequestSaveParameters(login: xsd:string, password: xsd:string) ns0:xmlAbstractBaseEntity(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, id: xsd:long) ns0:xmlAbstractComment(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: xsd:string, id: xsd:long) ns0:xmlAbstractNamedBaseEntity(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, id: xsd:long) ns0:xmlAbstractProjectResource(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, filechecksum: xsd:string, relativepath: xsd:string, size: xsd:long, description: xsd:string, expirationdate: xsd:dateTime, sample: ns0:xmlSample, project: ns0:xmlProject, report: xsd:string, storage: ns0:xmlStorage, uris: xsd:string[], url: xsd:string, id: xsd:long) ns0:xmlAbstractResource(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, filechecksum: xsd:string, relativepath: xsd:string, size: xsd:long, id: xsd:long) ns0:xmlAccess(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, basepath: xsd:string, enabled: xsd:boolean, host: xsd:string, protocol: xsd:string, storage: ns0:xmlStorage, type: xsd:string, typespecificprefix: xsd:string, id: xsd:long) ns0:xmlAnnotation(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, common: xsd:boolean, description: xsd:string, na: xsd:boolean, released: xsd:boolean, top: xsd:boolean, type: xsd:string, id: xsd:long) ns0:xmlApplication(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, annotationrequired: xsd:string, description: xsd:string, executable: ns0:xmlExecutable, foremployeesonly: xsd:string, help: xsd:string, hidden: xsd:string, importresourcesrequired: xsd:string, outputfileformat: xsd:string, pageflowname: xsd:string, precedingapplication: ns0:xmlApplication[], predecessor: ns0:xmlApplication, sendmail: xsd:string, storage: ns0:xmlStorage, submitter: ns0:xmlSubmitter, succeedingapplication: ns0:xmlApplication[], supervisor: ns0:xmlUser, type: xsd:string, technology: xsd:string, webUrl: xsd:string, wrapperCreator: ns0:xmlWrapperCreator, id: xsd:long) ns0:xmlAttachment(filechecksum: xsd:string, relativepath: xsd:string, size: xsd:long, base64: xsd:string, comment: ns0:xmlComment) ns0:xmlComment(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: xsd:string, attachment: ns0:xmlAttachment[], internal: xsd:boolean, parentclass: xsd:string, parentid: xsd:long, text: xsd:string, type: xsd:string, sendMail: xsd:boolean, id: xsd:long) ns0:xmlCustomAttribute(name: xsd:string, value: xsd:string, type: xsd:string) ns0:xmlDataset(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, attribute: ns0:xmlDatasetAttribute[], item: ns0:xmlDatasetItem[], link: xsd:string[], numberofattributes: xsd:int, numberofitems: xsd:int, project: ns0:xmlProject, order: ns0:xmlOrder, succeedingworkunit: ns0:xmlWorkunit[], workunit: ns0:xmlWorkunit, id: xsd:long) ns0:xmlDatasetAttribute(name: xsd:string, position: xsd:string, type: xsd:string) ns0:xmlDatasetField(attributeposition: xsd:string, value: xsd:string) ns0:xmlDatasetItem(field: ns0:xmlDatasetField[], position: xsd:string) ns0:xmlExecutable(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, filechecksum: xsd:string, relativepath: xsd:string, size: xsd:long, absolutepath: xsd:string, base64: xsd:string, context: xsd:string, description: xsd:string, masterexecutable: ns0:xmlExecutable, parameter: ns0:xmlParameter[], predecessor: ns0:xmlExecutable, program: xsd:string, supervisor: ns0:xmlUser, valid: xsd:boolean, version: xsd:string, workunit: ns0:xmlWorkunit, id: xsd:long) ns0:xmlExternalJob(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, action: xsd:string, cliententityclassname: xsd:string, cliententityid: xsd:long, executable: ns0:xmlExecutable, log: xsd:string, logweburl: xsd:string, externaljob: ns0:xmlExternalJob[], resource: ns0:xmlResource[], workunit: ns0:xmlWorkunit, id: xsd:long) ns0:xmlImportResource(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, filechecksum: xsd:string, relativepath: xsd:string, size: xsd:long, description: xsd:string, expirationdate: xsd:dateTime, sample: ns0:xmlSample, project: ns0:xmlProject, report: xsd:string, storage: ns0:xmlStorage, uris: xsd:string[], url: xsd:string, application: ns0:xmlApplication, filedate: xsd:dateTime, id: xsd:long) ns0:xmlLink(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, name: xsd:string, parentid: xsd:long, type: xsd:string, url: xsd:string, id: xsd:long) ns0:xmlMail(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, subject: xsd:string, message: xsd:string, recipients: xsd:string, parentclass: xsd:string, parentid: xsd:long, type: xsd:string, id: xsd:long) ns0:xmlOrder(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, statusmodified: xsd:dateTime, statusmodifiedby: ns0:xmlUser, customer: ns0:xmlUser, billingaddress: xsd:string, servicetype: xsd:long, servicetypename: xsd:string, storagemodel: xsd:string, coach: ns0:xmlUser, coachbackup: ns0:xmlUser, bioinformatician: ns0:xmlUser, project: ns0:xmlProject, offer: xsd:long, id: xsd:long) ns0:xmlOrderItem(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, chargeable: xsd:boolean, description: xsd:string, insertsize: xsd:int, multiplexing: xsd:string, samplearrivaldate: xsd:dateTime, librarytypeid: xsd:long, orderid: xsd:long, regionid: xsd:long, sample: ns0:xmlSample, readtypeid: xsd:long, tubeid: xsd:string, serviceid: xsd:long, id: xsd:long) ns0:xmlOrderStatus(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, order: ns0:xmlOrder, id: xsd:long) ns0:xmlParameter(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, modifiable: xsd:boolean, context: xsd:string, description: xsd:string, label: xsd:string, key: xsd:string, value: xsd:string, enumeration: xsd:string[], type: xsd:string, required: xsd:boolean, application: ns0:xmlApplication, executable: ns0:xmlExecutable, workunit: ns0:xmlWorkunit, id: xsd:long) ns0:xmlProject(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, applicant: ns0:xmlUser, bioinformatician: ns0:xmlUser, budgetofficer: ns0:xmlUser, coach: ns0:xmlUser, coachbackup: ns0:xmlUser, contact: ns0:xmlUser, costcentre: xsd:string, discussedwith: ns0:xmlUser[], doicreated: xsd:dateTime, doicreatedby: xsd:string, enddate: xsd:dateTime, eugrant: xsd:string, extensionreport1approved: xsd:boolean, extensionreport1remindersent: xsd:boolean, extensionreport2approved: xsd:boolean, extensionreport2remindersent: xsd:boolean, extensionreport3approved: xsd:boolean, extensionreport3remindersent: xsd:boolean, finishannounced: xsd:dateTime, formermember: ns0:xmlUser[], leader: ns0:xmlUser, link: xsd:string[], member: ns0:xmlUser[], projectcharge: ns0:xmlProjectCharge[], pspelement: xsd:string, remindercomment: xsd:string, reminderdate: xsd:dateTime, startdate: xsd:dateTime, summary: xsd:string, technology: xsd:string[], id: xsd:long) ns0:xmlProjectCharge(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, billable: xsd:boolean, date: xsd:dateTime, description: xsd:string, prepayment: xsd:boolean, project: ns0:xmlProject, total: xsd:double, id: xsd:long) ns0:xmlRequestDeleteParametersEntity(login: xsd:string, password: xsd:string, id: xsd:long[]) ns0:xmlRequestReadParametersResource(login: xsd:string, password: xsd:string, page: xsd:int, query: ns0:xmlRequestReadQueryResource) ns0:xmlRequestReadQueryAbstractBaseEntity(createdby: xsd:string[], id: xsd:long[], modifiedby: xsd:string[]) ns0:xmlRequestReadQueryAbstractNamedBaseEntity(createdby: xsd:string[], id: xsd:long[], modifiedby: xsd:string[], name: xsd:string[]) ns0:xmlRequestReadQueryResource(createdby: xsd:string[], id: xsd:long[], modifiedby: xsd:string[], name: xsd:string[], description: xsd:string[], sampleid: xsd:long[], inputresourceid: xsd:long[], projectid: xsd:long[], relativepath: xsd:string[], filechecksum: xsd:string[], report: xsd:string[], status: xsd:string[], storageid: xsd:long[], workunitid: xsd:long[]) ns0:xmlRequestSaveAbstractBaseEntity(id: xsd:long) ns0:xmlRequestSaveAbstractNamedBaseEntity(id: xsd:long, name: xsd:string) ns0:xmlRequestSaveParametersResource(login: xsd:string, password: xsd:string, resource: ns0:xmlRequestSaveResource[]) ns0:xmlRequestSaveResource(id: xsd:long, name: xsd:string, base64: xsd:string, description: xsd:string, sampleid: xsd:long, expirationdate: xsd:dateTime, filechecksum: xsd:string, inputresourceid: xsd:long, relativepath: xsd:string, report: xsd:string, size: xsd:long, status: xsd:string, storageid: xsd:long, workunitid: xsd:long) ns0:xmlResource(description: xsd:string, expirationdate: xsd:dateTime, sample: ns0:xmlSample, project: ns0:xmlProject, report: xsd:string, storage: ns0:xmlStorage, uris: xsd:string[], url: xsd:string, inputresource: ns0:xmlResource, junk: xsd:boolean, junkcomment: xsd:string, succeedingworkunit: ns0:xmlWorkunit[], workunit: ns0:xmlWorkunit) ns0:xmlResponse(entitiesonpage: xsd:int, errorreport: xsd:string, numberofpages: xsd:int, page: xsd:int, access: ns0:xmlAccess[], annotation: None[], application: ns0:xmlApplication[], attachment: ns0:xmlAttachment[], comment: ns0:xmlComment[], dataset: ns0:xmlDataset[], executable: ns0:xmlExecutable[], externaljob: ns0:xmlExternalJob[], importresource: ns0:xmlImportResource[], link: ns0:xmlLink[], mail: ns0:xmlMail[], order: ns0:xmlOrder[], orderitem: ns0:xmlOrderItem[], orderstatus: ns0:xmlOrderStatus[], parameter: ns0:xmlParameter[], projectcharge: ns0:xmlProjectCharge[], project: ns0:xmlProject[], resource: ns0:xmlResource[], role: ns0:xmlRole[], sample: ns0:xmlSample[], storage: ns0:xmlStorage[], user: ns0:xmlUser[], workunit: ns0:xmlWorkunit[]) ns0:xmlRole(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, group: ns0:xmlRole[], name: xsd:string, id: xsd:long) ns0:xmlSample(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, age: xsd:double, ageunit: xsd:string, arraydesignname: ns0:xmlAnnotation, asiascale: ns0:xmlAnnotation, buffer: xsd:string, cellcompartment: ns0:xmlAnnotation, cellline: ns0:xmlAnnotation, cellnumbers: xsd:double, celltype: ns0:xmlAnnotation, chemicalmodification: ns0:xmlAnnotation[], child: ns0:xmlSample[], compoundclass: ns0:xmlAnnotation, concentration: xsd:double, condition: xsd:string, customattribute: ns0:xmlCustomAttribute[], description: xsd:string, developmentstage: ns0:xmlAnnotation, diseasestate: ns0:xmlAnnotation, enzyme: ns0:xmlAnnotation[], extractionprotocolannotation: ns0:xmlAnnotation, geneticmodification: xsd:string, genotype: xsd:string, groupingvar: ns0:xmlAnnotation, growthconditions: xsd:string, hybridizationprotocol: ns0:xmlAnnotation, immunoprecipitationtarget: ns0:xmlAnnotation, individualid: xsd:string, initialtimepoint: ns0:xmlAnnotation, internalstandard: ns0:xmlAnnotation[], labelingprotocol: ns0:xmlAnnotation, libraryprotocol: xsd:string, libraryselection: ns0:xmlAnnotation, extractionprotocol: xsd:string, librarystrategy: ns0:xmlAnnotation, organismpart: ns0:xmlAnnotation, molecularweight: xsd:double, oldextractid: xsd:long, oldsampleid: xsd:long, parent: ns0:xmlSample[], project: ns0:xmlProject, protocol: xsd:string, resource: ns0:xmlResource[], sample: ns0:xmlSample, samplingdate: xsd:dateTime, scanningprotocol: ns0:xmlAnnotation, separationtechnique: ns0:xmlAnnotation[], sequencingplatform: ns0:xmlAnnotation, sex: ns0:xmlAnnotation, size: xsd:double, sourcetype: ns0:xmlAnnotation, species: ns0:xmlAnnotation, strain: ns0:xmlAnnotation, subjectid: xsd:string, surface: ns0:xmlAnnotation, totalamount: xsd:double, treatment: ns0:xmlAnnotation, type: xsd:string, volume: xsd:double, id: xsd:long) ns0:xmlStorage(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, basepath: xsd:string, description: xsd:string, enabled: xsd:boolean, executable: ns0:xmlExecutable, host: xsd:string, projectfolderprefix: xsd:string, projectseparated: xsd:boolean, protocol: xsd:string, supervisor: ns0:xmlUser, id: xsd:long) ns0:xmlSubmitter(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, description: xsd:string, id: xsd:long) ns0:xmlUser(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, accountenabled: xsd:boolean, active: xsd:boolean, emailverified: xsd:boolean, address: xsd:string, city: xsd:string, coachedproject: ns0:xmlProject[], computerloginactivated: xsd:boolean, country: xsd:string, description: xsd:string, email: xsd:string, empdegree: xsd:int, firstname: xsd:string, formerproject: ns0:xmlProject[], salutation: xsd:string, homeaddress: xsd:string, homecity: xsd:string, homecountry: xsd:string, homephoneareacode: xsd:int, homephonecountrycode: xsd:int, homephonelocalnumber: xsd:int, homezip: xsd:string, lastname: xsd:string, login: xsd:string, massmailenabled: xsd:boolean, phoneareacode: xsd:int, phonecountrycode: xsd:int, phonelocalnumber: xsd:int, project: ns0:xmlProject[], role: ns0:xmlRole[], room: xsd:string, secret: xsd:string, shibbolethid: xsd:string, title: xsd:string, trackableproject: ns0:xmlProject[], zip: xsd:string, id: xsd:long) ns0:xmlWorkunit(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, application: ns0:xmlApplication, description: xsd:string, enddate: xsd:dateTime, exportable: xsd:boolean, dataset: ns0:xmlDataset, importresource: ns0:xmlImportResource[], inputdataset: ns0:xmlDataset, inputresource: ns0:xmlResource[], link: xsd:string[], resource: ns0:xmlResource[], project: ns0:xmlProject, order: ns0:xmlOrder, applicationexecutable: ns0:xmlExecutable, parameter: ns0:xmlParameter[], submitterexecutable: ns0:xmlExecutable, workunitexecutable: ns0:xmlExecutable[], wrappercreatorexecutable: ns0:xmlExecutable, id: xsd:long) ns0:xmlWrapperCreator(created: xsd:dateTime, createdby: xsd:string, modified: xsd:dateTime, modifiedby: xsd:string, status: xsd:string, deletionreport: xsd:string, errorreport: xsd:string, comment: ns0:xmlComment[], name: xsd:string, description: xsd:string, id: xsd:long) xsd:ENTITIES xsd:ENTITY xsd:ID xsd:IDREF xsd:IDREFS xsd:NCName xsd:NMTOKEN xsd:NMTOKENS xsd:NOTATION xsd:Name xsd:QName xsd:anySimpleType xsd:anyURI xsd:base64Binary xsd:boolean xsd:byte xsd:date xsd:dateTime xsd:decimal xsd:double xsd:duration xsd:float xsd:gDay xsd:gMonth xsd:gMonthDay xsd:gYear xsd:gYearMonth xsd:hexBinary xsd:int xsd:integer xsd:language xsd:long xsd:negativeInteger xsd:nonNegativeInteger xsd:nonPositiveInteger xsd:normalizedString xsd:positiveInteger xsd:short xsd:string xsd:time xsd:token xsd:unsignedByte xsd:unsignedInt xsd:unsignedLong xsd:unsignedShort

Bindings: Soap11Binding: {http://endpoint.webservice.component.bfabric.org/}APIResourcePortBinding

Service: resource Port: APIResourcePort (Soap11Binding: {http://endpoint.webservice.component.bfabric.org/}APIResourcePortBinding) Operations: delete(parameters: ns0:xmlRequestDeleteParametersEntity) -> return: ns0:xmlResponse read(parameters: ns0:xmlRequestReadParametersResource) -> return: ns0:xmlResponse save(parameters: ns0:xmlRequestSaveParametersResource) -> return: ns0:xmlResponse


https://fgcz-bfabric.uzh.ch/bfabric/resource?xsd=1


*****************************************************************************************************************
cpanse commented 5 years ago

for the moment I replace zeep with suds-py3.

zeep-issue-972