Class: SOAP::XSD::Sequence

Inherits:
Hash
  • Object
show all
Defined in:
lib/wsdl-reader/xsd/sequence.rb

Instance Method Summary collapse

Methods inherited from Hash

#keys_to_sym!, #kvTable

Constructor Details

#initialize(type) ⇒ Sequence

Returns a new instance of Sequence.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/wsdl-reader/xsd/sequence.rb', line 4

def initialize( type )
  type.attributes.each { |name, value|
    self[name.to_sym] = value
  }
  
  type.find_all{ |e| e.class == REXML::Element }.each { |content|
    case content.name
      when "annotation"
        ###############################################################################
        warn "xsd:annotation in xsd:sequence is not yet supported!"
        ###############################################################################
      when "element"
        raise SOAP::LCElementError, "Malformated sequence" unless self[:type].nil? or self[:type] = :element
        if self[:type].nil?
          self[:type] = :element
          self[:element] = Array.new
        end
        self[:element] << SOAP::XSD::Element.new( content )
      when "choice"
        raise SOAP::LCElementError, "Malformated sequence" unless self[:type].nil? or self[:type] = :choice
        self[:type] = :choice
        ###############################################################################
        warn "xsd:choice in xsd:sequence is not yet supported!"
        ###############################################################################              
      when "group"
        raise SOAP::LCElementError, "Malformated sequence" unless self[:type].nil? or self[:type] = :group
        self[:type] = :group
        ###############################################################################
        warn "xsd:group in xsd:sequence is not yet supported!"
        ###############################################################################              
      when "sequence"
        raise SOAP::LCElementError, "Malformated sequence" unless self[:type].nil? or self[:type] = :sequence
        self[:type] = :sequence
        ###############################################################################
        warn "xsd:sequence in xsd:sequence is not yet supported!"
        ###############################################################################              
      when "any"
        raise SOAP::LCElementError, "Malformated sequence" unless self[:type].nil? or self[:type] = :any
        self[:type] = :any
        ###############################################################################
        warn "xsd:any in xsd:sequence is not yet supported!"
        ###############################################################################              
      else
        raise SOAP::LCElementError, "Invalid element `#{content.name}' in xsd:sequence"
    end
  }
end

Instance Method Details

#display(types, args) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/wsdl-reader/xsd/sequence.rb', line 52

def display( types, args )
  r = ""
  
  case self[:type]
    when :element
      self[:element].each { |element|
        r << element.display( types, args )
      }
    when :choice
      ###############################################################################
      warn "xsd:choice in xsd:sequence is not yet supported!"
      ###############################################################################              
    when :group
      ###############################################################################
      warn "xsd:group in xsd:sequence is not yet supported!"
      ###############################################################################              
    when :sequence
      ###############################################################################
      warn "xsd:sequence in xsd:sequence is not yet supported!"
      ###############################################################################              
    when :any
      ###############################################################################
      warn "xsd:any in xsd:sequence is not yet supported!"
      ###############################################################################              
    else
      raise SOAP::LCWSDLError, "Malformated sequence `#{self[:name]}'"
  end

  return r
end

#responseToHash(xml, types) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/wsdl-reader/xsd/sequence.rb', line 83

def responseToHash( xml, types )
  r = {}
  
  case self[:type]
    when :element
      self[:element].each { |element|
        element.responseToHash( xml, types ).each { |k, v|
          r[k] = v
        }
      }
    when :choice
      ###############################################################################
      warn "xsd:choice in xsd:sequence is not yet supported!"
      ###############################################################################              
    when :group
      ###############################################################################
      warn "xsd:group in xsd:sequence is not yet supported!"
      ###############################################################################              
    when :sequence
      ###############################################################################
      warn "xsd:sequence in xsd:sequence is not yet supported!"
      ###############################################################################              
    when :any
      ###############################################################################
      warn "xsd:any in xsd:sequence is not yet supported!"
      ###############################################################################              
    else
      raise SOAP::LCWSDLError, "Malformated sequence `#{self[:name]}'"
  end
  
  return r
end