DrChat / wsdl-rs

Idiomatic WSDL wrapper for Rust
https://crates.io/crates/wsdl
4 stars 1 forks source link

Operations (input/)output/fault multiple definitions #3

Open OvermindDL1 opened 2 months ago

OvermindDL1 commented 2 months ago

Operations on porttypes/bindings can have Input, Output, and Fault types. There can be multiple Output and Fault types. There can technically also be multiple Input types but I think this is disallowed by the usual (not all) basic WSDL profiles. At the very least Output and Fault types should probably be an iterator (probably input too but honestly never ran across one of those), not just returning the first listed one of each?

An example is an operation taking an input, and returning an output and one of 3 possible faults (validationfault, processingfault, or authenticationfault):

        <wsdl:operation name="GetData">
            <wsdl:documentation>
                Some documentation here
            </wsdl:documentation>
            <wsdl:input name="GetDataInput" message="wsdl:GetData_RequestInputMsg"/>
            <wsdl:output name="GetDataOutput" message="wsdl:GetData_ResponseOutputMsg"/>
            <wsdl:fault name="ValidationFault" message="wsdl:ValidationFaultMsg"/>
            <wsdl:fault name="ProcessingFault" message="wsdl:ProcessingFaultMsg"/>
            <wsdl:fault name="AuthenticationFault" message="wsdl:AuthenticationFaultMsg"/>
        </wsdl:operation>

(In addition, could probably stand to add a ton of documentation() calls on a ton of elements as almost everything is documented in a lot of wsdl I deal with.)

OvermindDL1 commented 2 months ago

Okay got more time so checked for sure, only a single input and output are allowed per operation but multiple faults exist.