source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/wsdl/param.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 1.7 KB
Line 
1# WSDL4R - WSDL param definition.
2# Copyright (C) 2002, 2003 NAKAMURA, Hiroshi <[email protected]>.
3
4# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5# redistribute it and/or modify it under the same terms of Ruby's license;
6# either the dual license version in 2003, or any later version.
7
8
9require 'wsdl/info'
10
11
12module WSDL
13
14
15class Param < Info
16 attr_reader :message # required
17 attr_reader :name # optional but required for fault.
18 attr_reader :soapbody
19 attr_reader :soapheader
20 attr_reader :soapfault
21
22 def initialize
23 super
24 @message = nil
25 @name = nil
26 @soapbody = nil
27 @soapheader = []
28 @soapfault = nil
29 end
30
31 def targetnamespace
32 parent.targetnamespace
33 end
34
35 def find_message
36 root.message(@message) or raise RuntimeError.new("#{@message} not found")
37 end
38
39 def soapbody_use
40 if @soapbody
41 @soapbody.use || :literal
42 else
43 raise RuntimeError.new("soap:body not found")
44 end
45 end
46
47 def parse_element(element)
48 case element
49 when SOAPBodyName
50 o = WSDL::SOAP::Body.new
51 @soapbody = o
52 o
53 when SOAPHeaderName
54 o = WSDL::SOAP::Header.new
55 @soapheader << o
56 o
57 when SOAPFaultName
58 o = WSDL::SOAP::Fault.new
59 @soap_fault = o
60 o
61 when DocumentationName
62 o = Documentation.new
63 o
64 else
65 nil
66 end
67 end
68
69 def parse_attr(attr, value)
70 case attr
71 when MessageAttrName
72 if value.namespace.nil?
73 value = XSD::QName.new(targetnamespace, value.source)
74 end
75 @message = value
76 when NameAttrName
77 @name = XSD::QName.new(targetnamespace, value.source)
78 else
79 nil
80 end
81 end
82end
83
84
85end
Note: See TracBrowser for help on using the repository browser.