class WSDL::XMLSchema::ComplexExtension

Attributes

base[RW]
content[R]

Public Class Methods

new() click to toggle source
Calls superclass method WSDL::Info.new
# File lib/wsdl/xmlSchema/complexExtension.rb, line 21
def initialize
  super
  @base = nil
  @basetype = nil
  @content = nil
  @attributes = XSD::NamedElements.new
end

Public Instance Methods

attributes() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 59
def attributes
  basetype.attributes + @attributes
end
check_type() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 63
def check_type
  if @base == ::SOAP::ValueArrayName
    :TYPE_ARRAY
  elsif content or !@attributes.empty?
    :TYPE_STRUCT
  else
    basetype.check_type
  end
end
choice?() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 41
def choice?
  content and content.choice?
end
elementformdefault() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 33
def elementformdefault
  parent.elementformdefault
end
elements() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 45
def elements
  result = XSD::NamedElements.new
  result.concat(basetype.elements)
  result.concat(content.elements) if content
  result
end
have_any?() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 37
def have_any?
  basetype.have_any? or (content && content.have_any?)
end
nested_elements() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 52
def nested_elements
  result = XSD::NamedElements.new
  result.concat(basetype.nested_elements)
  result.concat(content.nested_elements) if content
  result
end
parse_attr(attr, value) click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 99
def parse_attr(attr, value)
  case attr
  when BaseAttrName
    @base = value
  end
end
parse_element(element) click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 73
def parse_element(element)
  case element
  when AllName
    @content = All.new
    @content
  when SequenceName
    @content = Sequence.new
    @content
  when ChoiceName
    @content = Choice.new
    @content
  when AttributeName
    o = Attribute.new
    @attributes << o
    o
  when AttributeGroupName
    o = AttributeGroup.new
    @attributes << o
    o
  when AnyAttributeName
    o = AnyAttribute.new
    @attributes << o
    o
  end
end
targetnamespace() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 29
def targetnamespace
  parent.targetnamespace
end

Private Instance Methods

basetype() click to toggle source
# File lib/wsdl/xmlSchema/complexExtension.rb, line 108
def basetype
  @basetype ||= root.collect_complextypes[@base]
  unless @basetype
    raise RuntimeError.new("base type definition not found: #{@base}")
  end
  @basetype
end