wasabi 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/.rspec +1 -0
- data/.travis.yml +8 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +58 -0
- data/Rakefile +11 -0
- data/lib/wasabi.rb +11 -0
- data/lib/wasabi/core_ext/string.rb +21 -0
- data/lib/wasabi/document.rb +91 -0
- data/lib/wasabi/parser.rb +94 -0
- data/lib/wasabi/version.rb +5 -0
- data/spec/fixtures/authentication.xml +63 -0
- data/spec/fixtures/geotrust.xml +156 -0
- data/spec/fixtures/namespaced_actions.xml +307 -0
- data/spec/fixtures/no_namespace.xml +115 -0
- data/spec/fixtures/soap12.xml +11 -0
- data/spec/fixtures/two_bindings.xml +24 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/support/fixture.rb +13 -0
- data/spec/wasabi/core_ext/string_spec.rb +37 -0
- data/spec/wasabi/document/authentication_spec.rb +23 -0
- data/spec/wasabi/document/geotrust_spec.rb +24 -0
- data/spec/wasabi/document/namespaced_actions_spec.rb +25 -0
- data/spec/wasabi/document/no_namespace_spec.rb +25 -0
- data/spec/wasabi/document/soap12_spec.rb +11 -0
- data/spec/wasabi/document/two_bindings_spec.rb +21 -0
- data/spec/wasabi/wasabi_spec.rb +12 -0
- data/wasabi.gemspec +27 -0
- metadata +187 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Daniel Harrington
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
Wasabi [![Build Status](http://travis-ci.org/rubiii/wasabi.png)](http://travis-ci.org/rubiii/wasabi)
|
2
|
+
=====
|
3
|
+
|
4
|
+
A simple WSDL parser.
|
5
|
+
|
6
|
+
|
7
|
+
Installation
|
8
|
+
------------
|
9
|
+
|
10
|
+
Wasabi is available through [Rubygems](http://rubygems.org/gems/wasabi) and can be installed via:
|
11
|
+
|
12
|
+
```
|
13
|
+
$ gem install wasabi
|
14
|
+
```
|
15
|
+
|
16
|
+
|
17
|
+
Getting started
|
18
|
+
---------------
|
19
|
+
|
20
|
+
``` ruby
|
21
|
+
document = Wasabi.document File.read("some.wsdl")
|
22
|
+
```
|
23
|
+
|
24
|
+
Get the SOAP endpoint:
|
25
|
+
|
26
|
+
``` ruby
|
27
|
+
document.endpoint
|
28
|
+
# => "http://soap.example.com"
|
29
|
+
```
|
30
|
+
|
31
|
+
Get the target namespace:
|
32
|
+
|
33
|
+
``` ruby
|
34
|
+
document.namespace
|
35
|
+
# => "http://v1.example.com"
|
36
|
+
```
|
37
|
+
|
38
|
+
Check whether elementFormDefault is set to `:qualified` or `:unqualified`:
|
39
|
+
|
40
|
+
``` ruby
|
41
|
+
document.element_form_default
|
42
|
+
# => :qualified
|
43
|
+
```
|
44
|
+
|
45
|
+
Get a list of available SOAP actions (snakecase for convenience):
|
46
|
+
|
47
|
+
``` ruby
|
48
|
+
document.soap_actions
|
49
|
+
# => [:create_user, :find_user]
|
50
|
+
```
|
51
|
+
|
52
|
+
Get a map of SOAP action Symbols, their input tag and original SOAP action name:
|
53
|
+
|
54
|
+
``` ruby
|
55
|
+
document.operations
|
56
|
+
# => { :create_user => { :input => "createUser", :action => "createUser" },
|
57
|
+
# => :find_user => { :input => "findUser", :action => "findUser" } }
|
58
|
+
```
|
data/Rakefile
ADDED
data/lib/wasabi.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Wasabi
|
2
|
+
module CoreExt
|
3
|
+
module String
|
4
|
+
|
5
|
+
# Returns the String in snakecase.
|
6
|
+
def snakecase
|
7
|
+
str = dup
|
8
|
+
str.gsub! /::/, '/'
|
9
|
+
str.gsub! /([A-Z]+)([A-Z][a-z])/, '\1_\2'
|
10
|
+
str.gsub! /([a-z\d])([A-Z])/, '\1_\2'
|
11
|
+
str.tr! ".", "_"
|
12
|
+
str.tr! "-", "_"
|
13
|
+
str.downcase!
|
14
|
+
str
|
15
|
+
end unless method_defined?(:snakecase)
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
String.send :include, Wasabi::CoreExt::String
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require "nokogiri"
|
2
|
+
require "wasabi/parser"
|
3
|
+
|
4
|
+
module Wasabi
|
5
|
+
|
6
|
+
# = Wasabi::Document
|
7
|
+
#
|
8
|
+
# Represents a WSDL document.
|
9
|
+
class Document
|
10
|
+
|
11
|
+
# Accepts a WSDL +document+ to parse.
|
12
|
+
def initialize(document = nil)
|
13
|
+
self.document = document
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_accessor :document
|
17
|
+
|
18
|
+
# Returns whether a +document+ was set.
|
19
|
+
def document?
|
20
|
+
!!document
|
21
|
+
end
|
22
|
+
|
23
|
+
# Returns the SOAP endpoint.
|
24
|
+
def endpoint
|
25
|
+
@endpoint ||= parser.endpoint
|
26
|
+
end
|
27
|
+
|
28
|
+
# Sets the SOAP endpoint.
|
29
|
+
attr_writer :endpoint
|
30
|
+
|
31
|
+
# Returns the target namespace.
|
32
|
+
def namespace
|
33
|
+
@namespace ||= parser.namespace
|
34
|
+
end
|
35
|
+
|
36
|
+
# Sets the target namespace.
|
37
|
+
attr_writer :namespace
|
38
|
+
|
39
|
+
# Returns the value of elementFormDefault.
|
40
|
+
def element_form_default
|
41
|
+
@element_form_default ||= parser.element_form_default
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns a list of available SOAP actions.
|
45
|
+
def soap_actions
|
46
|
+
@soap_actions ||= parser.operations.keys
|
47
|
+
end
|
48
|
+
|
49
|
+
# Returns the SOAP action for a given +key+.
|
50
|
+
def soap_action(key)
|
51
|
+
operations[key][:action] if operations[key]
|
52
|
+
end
|
53
|
+
|
54
|
+
# Returns the SOAP input for a given +key+.
|
55
|
+
def soap_input(key)
|
56
|
+
operations[key][:input] if operations[key]
|
57
|
+
end
|
58
|
+
|
59
|
+
# Returns a map of SOAP operations.
|
60
|
+
def operations
|
61
|
+
@operations ||= parser.operations
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns the raw WSDL document.
|
65
|
+
# Can be used as a hook to extend the library.
|
66
|
+
def xml
|
67
|
+
@xml ||= document
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
# Parses the WSDL document and returns the <tt>Wasabi::Parser</tt>.
|
73
|
+
def parser
|
74
|
+
@parser ||= guard_parse && parse
|
75
|
+
end
|
76
|
+
|
77
|
+
# Raises an error if the WSDL document is missing.
|
78
|
+
def guard_parse
|
79
|
+
return true if xml.kind_of?(String)
|
80
|
+
raise ArgumentError, "Wasabi needs a WSDL document"
|
81
|
+
end
|
82
|
+
|
83
|
+
# Parses the WSDL document and returns <tt>Wasabi::Parser</tt>.
|
84
|
+
def parse
|
85
|
+
parser = Parser.new Nokogiri::XML(xml)
|
86
|
+
parser.parse
|
87
|
+
parser
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require "uri"
|
2
|
+
require "wasabi/core_ext/string"
|
3
|
+
|
4
|
+
module Wasabi
|
5
|
+
|
6
|
+
# = Wasabi::Parser
|
7
|
+
#
|
8
|
+
# Parses WSDL documents and remembers their important parts.
|
9
|
+
class Parser
|
10
|
+
|
11
|
+
def initialize(document)
|
12
|
+
@document = document
|
13
|
+
@path = []
|
14
|
+
@operations = {}
|
15
|
+
@namespaces = {}
|
16
|
+
@element_form_default = :unqualified
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns the SOAP endpoint.
|
20
|
+
attr_reader :endpoint
|
21
|
+
|
22
|
+
# Returns the target namespace.
|
23
|
+
attr_reader :namespace
|
24
|
+
|
25
|
+
# Returns the SOAP operations.
|
26
|
+
attr_reader :operations
|
27
|
+
|
28
|
+
# Returns the value of elementFormDefault.
|
29
|
+
attr_reader :element_form_default
|
30
|
+
|
31
|
+
def parse
|
32
|
+
parse_namespaces
|
33
|
+
parse_endpoint
|
34
|
+
parse_operations
|
35
|
+
end
|
36
|
+
|
37
|
+
def parse_namespaces
|
38
|
+
element_form_default = @document.at_xpath(
|
39
|
+
"s0:definitions/s0:types/xs:schema/@elementFormDefault",
|
40
|
+
"s0" => "http://schemas.xmlsoap.org/wsdl/",
|
41
|
+
"xs" => "http://www.w3.org/2001/XMLSchema")
|
42
|
+
@element_form_default = element_form_default.to_s.to_sym if element_form_default
|
43
|
+
|
44
|
+
namespace = @document.at_xpath(
|
45
|
+
"s0:definitions/@targetNamespace",
|
46
|
+
"s0" => "http://schemas.xmlsoap.org/wsdl/")
|
47
|
+
@namespace = namespace.to_s if namespace
|
48
|
+
end
|
49
|
+
|
50
|
+
def parse_endpoint
|
51
|
+
endpoint = @document.at_xpath(
|
52
|
+
"s0:definitions/s0:service//soap11:address/@location",
|
53
|
+
"s0" => "http://schemas.xmlsoap.org/wsdl/",
|
54
|
+
"soap11" => "http://schemas.xmlsoap.org/wsdl/soap/")
|
55
|
+
endpoint ||= @document.at_xpath(
|
56
|
+
"s0:definitions/s0:service//soap12:address/@location",
|
57
|
+
"s0" => "http://schemas.xmlsoap.org/wsdl/",
|
58
|
+
"soap12" => "http://schemas.xmlsoap.org/wsdl/soap12/")
|
59
|
+
|
60
|
+
@endpoint = URI(URI.escape(endpoint.to_s)) if endpoint
|
61
|
+
end
|
62
|
+
|
63
|
+
def parse_operations
|
64
|
+
operations = @document.xpath(
|
65
|
+
"s0:definitions/s0:binding/s0:operation",
|
66
|
+
"s0" => "http://schemas.xmlsoap.org/wsdl/")
|
67
|
+
|
68
|
+
operations.each do |operation|
|
69
|
+
name = operation.attribute("name").to_s
|
70
|
+
|
71
|
+
soap_action = operation.at_xpath(".//soap11:operation/@soapAction",
|
72
|
+
"soap11" => "http://schemas.xmlsoap.org/wsdl/soap/"
|
73
|
+
)
|
74
|
+
soap_action ||= operation.at_xpath(".//soap12:operation/@soapAction",
|
75
|
+
"soap12" => "http://schemas.xmlsoap.org/wsdl/soap12/"
|
76
|
+
)
|
77
|
+
|
78
|
+
if soap_action
|
79
|
+
soap_action = soap_action.to_s
|
80
|
+
|
81
|
+
action = soap_action && !soap_action.empty? ? soap_action : name
|
82
|
+
input = (!name || name.empty?) ? action.split("/").last : name
|
83
|
+
|
84
|
+
@operations[input.snakecase.to_sym] =
|
85
|
+
{ :action => action, :input => input }
|
86
|
+
elsif !@operations[name.snakecase.to_sym]
|
87
|
+
@operations[name.snakecase.to_sym] =
|
88
|
+
{ :action => name, :input => name }
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="AuthenticationWebServiceImplService" targetNamespace="http://v1_0.ws.auth.order.example.com/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://v1_0.ws.auth.order.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
2
|
+
<wsdl:types>
|
3
|
+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://v1_0.ws.auth.order.example.com/" xmlns:tns="http://v1_0.ws.auth.order.example.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
4
|
+
<xs:element name="authenticate" type="tns:authenticate" />
|
5
|
+
<xs:element name="authenticateResponse" type="tns:authenticateResponse" />
|
6
|
+
<xs:element name="authenticationResult" type="tns:authenticationResult" />
|
7
|
+
<xs:element name="authenticationValue" type="tns:authenticationValue" />
|
8
|
+
<xs:complexType name="authenticate">
|
9
|
+
<xs:sequence>
|
10
|
+
<xs:element minOccurs="0" name="user" type="xs:string" />
|
11
|
+
<xs:element minOccurs="0" name="password" type="xs:string" />
|
12
|
+
</xs:sequence>
|
13
|
+
</xs:complexType>
|
14
|
+
<xs:complexType name="authenticateResponse">
|
15
|
+
<xs:sequence>
|
16
|
+
<xs:element minOccurs="0" name="return" type="tns:authenticationResult" />
|
17
|
+
</xs:sequence>
|
18
|
+
</xs:complexType>
|
19
|
+
<xs:complexType name="authenticationResult">
|
20
|
+
<xs:sequence>
|
21
|
+
<xs:element minOccurs="0" name="authenticationValue" nillable="true" type="tns:authenticationValue" />
|
22
|
+
<xs:element name="success" type="xs:boolean" />
|
23
|
+
</xs:sequence>
|
24
|
+
</xs:complexType>
|
25
|
+
<xs:complexType name="authenticationValue">
|
26
|
+
<xs:sequence>
|
27
|
+
<xs:element name="token" type="xs:string" />
|
28
|
+
<xs:element name="tokenHash" type="xs:string" />
|
29
|
+
<xs:element name="client" type="xs:string" />
|
30
|
+
</xs:sequence>
|
31
|
+
</xs:complexType>
|
32
|
+
</xs:schema>
|
33
|
+
</wsdl:types>
|
34
|
+
<wsdl:message name="authenticate">
|
35
|
+
<wsdl:part element="tns:authenticate" name="parameters" />
|
36
|
+
</wsdl:message>
|
37
|
+
<wsdl:message name="authenticateResponse">
|
38
|
+
<wsdl:part element="tns:authenticateResponse" name="parameters" />
|
39
|
+
</wsdl:message>
|
40
|
+
<wsdl:portType name="AuthenticationWebService">
|
41
|
+
<wsdl:operation name="authenticate">
|
42
|
+
<wsdl:input message="tns:authenticate" name="authenticate" />
|
43
|
+
<wsdl:output message="tns:authenticateResponse" name="authenticateResponse" />
|
44
|
+
</wsdl:operation>
|
45
|
+
</wsdl:portType>
|
46
|
+
<wsdl:binding name="AuthenticationWebServiceImplServiceSoapBinding" type="tns:AuthenticationWebService">
|
47
|
+
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
|
48
|
+
<wsdl:operation name="authenticate">
|
49
|
+
<soap:operation soapAction="" style="document" />
|
50
|
+
<wsdl:input name="authenticate">
|
51
|
+
<soap:body use="literal" />
|
52
|
+
</wsdl:input>
|
53
|
+
<wsdl:output name="authenticateResponse">
|
54
|
+
<soap:body use="literal" />
|
55
|
+
</wsdl:output>
|
56
|
+
</wsdl:operation>
|
57
|
+
</wsdl:binding>
|
58
|
+
<wsdl:service name="AuthenticationWebServiceImplService">
|
59
|
+
<wsdl:port binding="tns:AuthenticationWebServiceImplServiceSoapBinding" name="AuthenticationWebServiceImplPort">
|
60
|
+
<soap:address location="http://example.com/validation/1.0/AuthenticationService" />
|
61
|
+
</wsdl:port>
|
62
|
+
</wsdl:service>
|
63
|
+
</wsdl:definitions>
|
@@ -0,0 +1,156 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<s0:definitions name="queryDefinitions" targetNamespace="http://api.geotrust.com/webtrust/query" xmlns="" xmlns:s0="http://schemas.xmlsoap.org/wsdl/" xmlns:s1="http://api.geotrust.com/webtrust/query" xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s3="http://www.openuri.org/2006/12/wsdl/upgradedJWS">
|
3
|
+
<s0:types>
|
4
|
+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://api.geotrust.com/webtrust/query" xmlns:s0="http://schemas.xmlsoap.org/wsdl/" xmlns:s1="http://api.geotrust.com/webtrust/query" xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s3="http://www.openuri.org/2006/12/wsdl/upgradedJWS" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
5
|
+
<xs:complexType name="GetQuickApproverListInput">
|
6
|
+
<xs:sequence>
|
7
|
+
<xs:element minOccurs="0" name="QueryRequestHeader" type="quer:queryRequestHeader" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
8
|
+
<xs:element minOccurs="0" name="Domain" type="xs:string"/>
|
9
|
+
<xs:element minOccurs="0" name="IncludeUserAgreement" type="quer:includeUserAgreement" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
10
|
+
</xs:sequence>
|
11
|
+
</xs:complexType>
|
12
|
+
<xs:complexType name="queryRequestHeader">
|
13
|
+
<xs:sequence>
|
14
|
+
<xs:element minOccurs="0" name="PartnerCode" type="xs:string"/>
|
15
|
+
<xs:element minOccurs="0" name="AuthToken" type="quer:authToken" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
16
|
+
<xs:element minOccurs="0" name="ReplayToken" type="xs:string"/>
|
17
|
+
<xs:element minOccurs="0" name="UseReplayToken" type="xs:boolean"/>
|
18
|
+
</xs:sequence>
|
19
|
+
</xs:complexType>
|
20
|
+
<xs:complexType name="authToken">
|
21
|
+
<xs:sequence>
|
22
|
+
<xs:element minOccurs="0" name="UserName" type="xs:string"/>
|
23
|
+
<xs:element minOccurs="0" name="Password" type="xs:string"/>
|
24
|
+
</xs:sequence>
|
25
|
+
</xs:complexType>
|
26
|
+
<xs:complexType name="includeUserAgreement">
|
27
|
+
<xs:sequence>
|
28
|
+
<xs:element minOccurs="0" name="UserAgreementProductCode" type="xs:string"/>
|
29
|
+
</xs:sequence>
|
30
|
+
</xs:complexType>
|
31
|
+
<xs:complexType name="GetUserAgreementInput">
|
32
|
+
<xs:sequence>
|
33
|
+
<xs:element minOccurs="0" name="QueryRequestHeader" type="quer:queryRequestHeader" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
34
|
+
<xs:element minOccurs="0" name="UserAgreementProductCode" type="xs:string"/>
|
35
|
+
</xs:sequence>
|
36
|
+
</xs:complexType>
|
37
|
+
<xs:complexType name="GetQuickApproverListOutput">
|
38
|
+
<xs:sequence>
|
39
|
+
<xs:element minOccurs="0" name="QueryResponseHeader" type="quer:queryResponseHeader" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
40
|
+
<xs:element minOccurs="0" name="ApproverList" type="quer:ArrayOfApprover" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
41
|
+
<xs:element minOccurs="0" name="UserAgreement" type="xs:string"/>
|
42
|
+
</xs:sequence>
|
43
|
+
</xs:complexType>
|
44
|
+
<xs:complexType name="queryResponseHeader">
|
45
|
+
<xs:sequence>
|
46
|
+
<xs:element name="SuccessCode" type="xs:int"/>
|
47
|
+
<xs:element minOccurs="0" name="Errors" type="quer:ArrayOfError" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
48
|
+
<xs:element minOccurs="0" name="Timestamp" type="xs:dateTime"/>
|
49
|
+
<xs:element name="ReturnCount" type="xs:int"/>
|
50
|
+
</xs:sequence>
|
51
|
+
</xs:complexType>
|
52
|
+
<xs:complexType name="Error">
|
53
|
+
<xs:sequence>
|
54
|
+
<xs:element name="ErrorCode" type="xs:int"/>
|
55
|
+
<xs:element minOccurs="0" name="ErrorField" type="xs:string"/>
|
56
|
+
<xs:element minOccurs="0" name="ErrorMessage" type="xs:string"/>
|
57
|
+
</xs:sequence>
|
58
|
+
</xs:complexType>
|
59
|
+
<xs:complexType name="ArrayOfError">
|
60
|
+
<xs:sequence>
|
61
|
+
<xs:element maxOccurs="unbounded" minOccurs="0" name="Error" type="quer:Error" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
62
|
+
</xs:sequence>
|
63
|
+
</xs:complexType>
|
64
|
+
<xs:element name="ArrayOfError" type="quer:ArrayOfError" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
65
|
+
<xs:complexType name="Approver">
|
66
|
+
<xs:sequence>
|
67
|
+
<xs:element minOccurs="0" name="ApproverType" type="xs:string"/>
|
68
|
+
<xs:element minOccurs="0" name="ApproverEmail" type="xs:string"/>
|
69
|
+
</xs:sequence>
|
70
|
+
</xs:complexType>
|
71
|
+
<xs:complexType name="ArrayOfApprover">
|
72
|
+
<xs:sequence>
|
73
|
+
<xs:element maxOccurs="unbounded" minOccurs="0" name="Approver" type="quer:Approver" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
74
|
+
</xs:sequence>
|
75
|
+
</xs:complexType>
|
76
|
+
<xs:element name="ArrayOfApprover" type="quer:ArrayOfApprover" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
77
|
+
<xs:complexType name="ArrayOfString">
|
78
|
+
<xs:sequence>
|
79
|
+
<xs:element maxOccurs="unbounded" minOccurs="0" name="String" type="xs:string"/>
|
80
|
+
</xs:sequence>
|
81
|
+
</xs:complexType>
|
82
|
+
<xs:element name="ArrayOfString" type="quer:ArrayOfString" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
83
|
+
<xs:element name="GetQuickApproverList">
|
84
|
+
<xs:complexType>
|
85
|
+
<xs:sequence>
|
86
|
+
<xs:element minOccurs="0" name="Request" type="quer:GetQuickApproverListInput" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
87
|
+
</xs:sequence>
|
88
|
+
</xs:complexType>
|
89
|
+
</xs:element>
|
90
|
+
<xs:element name="GetQuickApproverListResponse">
|
91
|
+
<xs:complexType>
|
92
|
+
<xs:sequence>
|
93
|
+
<xs:element minOccurs="0" name="GetQuickApproverListResult" type="quer:GetQuickApproverListOutput" xmlns:quer="http://api.geotrust.com/webtrust/query"/>
|
94
|
+
</xs:sequence>
|
95
|
+
</xs:complexType>
|
96
|
+
</xs:element>
|
97
|
+
<xs:element name="hello">
|
98
|
+
<xs:complexType>
|
99
|
+
<xs:sequence>
|
100
|
+
<xs:element minOccurs="0" name="Input" type="xs:string"/>
|
101
|
+
</xs:sequence>
|
102
|
+
</xs:complexType>
|
103
|
+
</xs:element>
|
104
|
+
<xs:element name="helloResponse">
|
105
|
+
<xs:complexType>
|
106
|
+
<xs:sequence>
|
107
|
+
<xs:element minOccurs="0" name="helloResult" type="xs:string"/>
|
108
|
+
</xs:sequence>
|
109
|
+
</xs:complexType>
|
110
|
+
</xs:element>
|
111
|
+
</xs:schema>
|
112
|
+
</s0:types>
|
113
|
+
<s0:message name="hello">
|
114
|
+
<s0:part element="s1:hello" name="parameters"/>
|
115
|
+
</s0:message>
|
116
|
+
<s0:message name="helloResponse">
|
117
|
+
<s0:part element="s1:helloResponse" name="helloResultPart"/>
|
118
|
+
</s0:message>
|
119
|
+
<s0:portType name="querySoap">
|
120
|
+
<s0:operation name="GetQuickApproverList" parameterOrder="parameters">
|
121
|
+
<s0:input message="s1:GetQuickApproverList"/>
|
122
|
+
<s0:output message="s1:GetQuickApproverListResponse"/>
|
123
|
+
</s0:operation>
|
124
|
+
<s0:operation name="hello" parameterOrder="parameters">
|
125
|
+
<s0:input message="s1:hello"/>
|
126
|
+
<s0:output message="s1:helloResponse"/>
|
127
|
+
</s0:operation>
|
128
|
+
</s0:portType>
|
129
|
+
<s0:binding name="querySoapBinding" type="s1:querySoap">
|
130
|
+
<s2:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
131
|
+
<s0:operation name="GetQuickApproverList">
|
132
|
+
<s2:operation style="document"/>
|
133
|
+
<s0:input>
|
134
|
+
<s2:body parts="parameters" use="literal"/>
|
135
|
+
</s0:input>
|
136
|
+
<s0:output>
|
137
|
+
<s2:body parts="GetQuickApproverListResultPart" use="literal"/>
|
138
|
+
</s0:output>
|
139
|
+
</s0:operation>
|
140
|
+
<s0:operation name="hello">
|
141
|
+
<s2:operation style="document"/>
|
142
|
+
<s0:input>
|
143
|
+
<s2:body parts="parameters" use="literal"/>
|
144
|
+
</s0:input>
|
145
|
+
<s0:output>
|
146
|
+
<s2:body parts="helloResultPart" use="literal"/>
|
147
|
+
</s0:output>
|
148
|
+
</s0:operation>
|
149
|
+
</s0:binding>
|
150
|
+
<s0:service name="query">
|
151
|
+
<s3:upgraded81/>
|
152
|
+
<s0:port binding="s1:querySoapBinding" name="querySoap">
|
153
|
+
<s2:address location="https://test-api.geotrust.com:443/webtrust/query.jws"/>
|
154
|
+
</s0:port>
|
155
|
+
</s0:service>
|
156
|
+
</s0:definitions>
|