Class: SOAP::XSD::ComplexType
- Defined in:
- lib/wsdl-reader/xsd/complextype.rb
Instance Method Summary collapse
- #display(types, args) ⇒ Object
-
#initialize(type) ⇒ ComplexType
constructor
A new instance of ComplexType.
- #responseToHash(xml, types) ⇒ Object
Methods inherited from Hash
Constructor Details
#initialize(type) ⇒ ComplexType
Returns a new instance of ComplexType.
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/wsdl-reader/xsd/complextype.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 "simpleContent" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" unless self[:type].nil? self[:type] = :simpleContent ############################################################################### warn "xsd:simpleContent in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "complexContent" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" unless self[:type].nil? self[:type] = :complexContent ############################################################################### warn "xsd:complexContent in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "group" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" unless self[:type].nil? self[:type] = :group ############################################################################### warn "xsd:group in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "all" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" unless self[:type].nil? self[:type] = :all ############################################################################### warn "xsd:all in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "choise" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" unless self[:type].nil? self[:type] = :choise ############################################################################### warn "xsd:choise in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "sequence" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" unless self[:type].nil? self[:type] = :sequence self[:sequence] = SOAP::XSD::Sequence.new( content ) when "attribute" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" if (not(self[:attributes_type].nil?) and self[:attributes_type] != :attribute) or [:simpleContent, :complexContent].include?(self[:type]) self[:attributes_type] = :attribute ############################################################################### warn "xsd:attribute in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "attributeGroup" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" if (not(self[:attributes_type].nil?) and self[:attributes_type] != :attributeGroup) or [:simpleContent, :complexContent].include?(self[:type]) self[:attributes_type] = :attributeGroup ############################################################################### warn "xsd:attributeGroup in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "anyAttribute" raise SOAP::LCElementError, "Malformated complexType `#{type.attributes['name']}'" if not(self[:any_attributes].nil?) or [:simpleContent, :complexContent].include?(self[:type]) self[:any_attributes] = :anyAttribute ############################################################################### warn "xsd:anyAttribute in xsd:complexType (global definition) is not yet supported!" ############################################################################### when "annotation" ############################################################################### warn "xsd:annotation in xsd:complexType (global definition) (global definition) is not yet supported!" ############################################################################### else raise SOAP::LCElementError, "Invalid element `#{content.name}' in xsd:complexType `#{type.attributes['name']}'" end } end |
Instance Method Details
#display(types, args) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/wsdl-reader/xsd/complextype.rb', line 73 def display( types, args ) r = "" case self[:type] when :simpleContent ############################################################################### warn "xsd:simpleContent in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :complexContent ############################################################################### warn "xsd:complexContent in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :group ############################################################################### warn "xsd:group in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :all ############################################################################### warn "xsd:all in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :choise ############################################################################### warn "xsd:choise in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :sequence r << self[:sequence].display( types, args ) #else # raise SOAP::LCWSDLError, "Malformated complexType `#{self[:name]}'" end return r end |
#responseToHash(xml, types) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/wsdl-reader/xsd/complextype.rb', line 106 def responseToHash( xml, types ) r = {} case self[:type] when :simpleContent ############################################################################### warn "xsd:simpleContent in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :complexContent ############################################################################### warn "xsd:complexContent in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :group ############################################################################### warn "xsd:group in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :all ############################################################################### warn "xsd:all in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :choise ############################################################################### warn "xsd:choise in xsd:complexType (global definition) is not yet supported!" ############################################################################### when :sequence r = self[:sequence].responseToHash( xml, types ) end return r end |