Class: SOAP::XSD::SimpleType

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

Instance Method Summary collapse

Methods inherited from Hash

#keys_to_sym!, #kvTable

Constructor Details

#initialize(type) ⇒ SimpleType

Returns a new instance of SimpleType.



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
# File 'lib/wsdl-reader/xsd/simpletype.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 "list"
        raise SOAP::LCElementError, "Malformated simpleType `#{type.attributes['name']}'" unless self[:type].nil?
        self[:type] = :list
        self[:list] = nil
        ###############################################################################
        warn "xsd:list in xsd:simpleType is not yet supported!"
        ###############################################################################
      when "union"
        raise SOAP::LCElementError, "Malformated simpleType `#{type.attributes['name']}'" unless self[:type].nil?
        self[:type] = :union
        self[:union] = nil
        ###############################################################################
        warn "xsd:union in xsd:simpleType is not yet supported!"
        ###############################################################################
      when "restriction"
        raise SOAP::LCElementError, "Malformated simpleType `#{type.attributes['name']}'" unless self[:type].nil?
        self[:type] = :restriction
        self[:restriction] = SOAP::XSD::Restriction.new( content )
      when "annotation"
        ###############################################################################
        warn "xsd:annotation in xsd:simpleType is not yet supported!"
        ###############################################################################            
      else
        raise SOAP::LCElementError, "Invalid element `#{content.name}' in xsd:simpleType `#{type.attributes['name']}'"
    end
  }
end

Instance Method Details

#display(types, args) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/wsdl-reader/xsd/simpletype.rb', line 39

def display( types, args )
  r = ""

  case self[:type]
    when :restriction
      # TODO ########################################################################
      # TODO ########################################################################
      # TODO ########################################################################
      # TODO ########################################################################              
    when :list
      ###############################################################################
      warn "xsd:list in xsd:simpleType is not yet supported!"
      ###############################################################################
    when :union
      ###############################################################################
      warn "xsd:union in xsd:simpleType is not yet supported!"
      ###############################################################################
    else
      raise SOAP::LCWSDLError, "Malformated simpleType `#{self[:name]}'"
  end

  return r
end

#responseToHash(xml, types) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/wsdl-reader/xsd/simpletype.rb', line 63

def responseToHash( xml, types )
  r = nil
  case self[:type]
    when :restriction
      r = self[:restriction].responseToHash( xml, types )
    when :list
      ###############################################################################
      warn "xsd:list in xsd:simpleType is not yet supported!"
      ###############################################################################
    when :union
      ###############################################################################
      warn "xsd:union in xsd:simpleType is not yet supported!"
      ###############################################################################
    else
      raise SOAP::LCWSDLError, "Malformated simpleType `#{self[:name]}'"
  end
  return r
end