| Class | WSDL::XMLSchema::Element |
| In: |
lib/wsdl/soap/element.rb
lib/wsdl/xmlSchema/element.rb |
| Parent: | Info |
| constraint | [W] | |
| form | [W] | |
| local_complextype | [W] | |
| local_simpletype | [W] | |
| maxoccurs | [W] | |
| minoccurs | [W] | |
| name | [W] | |
| nillable | [W] | |
| ref | [RW] | |
| type | [W] |
# File lib/wsdl/xmlSchema/element.rb, line 27
27: def attr_reader_ref(symbol)
28: name = symbol.to_s
29: module_eval "def \#{name}\n@\#{name} || (refelement ? refelement.\#{name} : nil)\nend\n"
30: end
# File lib/wsdl/xmlSchema/element.rb, line 19
19: def attr_reader_ref(symbol)
20: name = symbol.to_s
21: define_method(name) {
22: instance_variable_get("@#{name}") ||
23: (refelement ? refelement.__send__(name) : nil)
24: }
25: end
# File lib/wsdl/xmlSchema/element.rb, line 61
61: def initialize(name = nil, type = nil)
62: super()
63: @name = name
64: @form = nil
65: @type = type
66: @local_simpletype = @local_complextype = nil
67: @constraint = nil
68: @maxoccurs = '1'
69: @minoccurs = '1'
70: @nillable = nil
71: @ref = nil
72: @refelement = nil
73: end
# File lib/wsdl/soap/element.rb, line 21
21: def attributes
22: @local_complextype.attributes
23: end
# File lib/wsdl/xmlSchema/element.rb, line 87
87: def elementform
88: self.form.nil? ? parent.elementformdefault : self.form
89: end
# File lib/wsdl/xmlSchema/element.rb, line 83
83: def elementformdefault
84: parent.elementformdefault
85: end
# File lib/wsdl/xmlSchema/element.rb, line 108
108: def parse_attr(attr, value)
109: case attr
110: when NameAttrName
111: # namespace may be nil
112: if directelement? or elementform == 'qualified'
113: @name = XSD::QName.new(targetnamespace, value.source)
114: else
115: @name = XSD::QName.new(nil, value.source)
116: end
117: when FormAttrName
118: @form = value.source
119: when TypeAttrName
120: @type = value
121: when RefAttrName
122: @ref = value
123: when MaxOccursAttrName
124: if parent.is_a?(All)
125: if value.source != '1'
126: raise Parser::AttrConstraintError.new(
127: "cannot parse #{value} for #{attr}")
128: end
129: end
130: @maxoccurs = value.source
131: when MinOccursAttrName
132: if parent.is_a?(All)
133: unless ['0', '1'].include?(value.source)
134: raise Parser::AttrConstraintError.new(
135: "cannot parse #{value} for #{attr}")
136: end
137: end
138: @minoccurs = value.source
139: when NillableAttrName
140: @nillable = (value.source == 'true')
141: else
142: nil
143: end
144: end
# File lib/wsdl/xmlSchema/element.rb, line 91
91: def parse_element(element)
92: case element
93: when SimpleTypeName
94: @local_simpletype = SimpleType.new
95: @local_simpletype
96: when ComplexTypeName
97: @type = nil
98: @local_complextype = ComplexType.new
99: @local_complextype
100: when UniqueName
101: @constraint = Unique.new
102: @constraint
103: else
104: nil
105: end
106: end
# File lib/wsdl/xmlSchema/element.rb, line 75
75: def refelement
76: @refelement ||= (@ref ? root.collect_elements[@ref] : nil)
77: end
# File lib/wsdl/xmlSchema/element.rb, line 79
79: def targetnamespace
80: parent.targetnamespace
81: end