WSDL::XMLSchema::Element (Class)

In: wsdl/xmlSchema/element.rb
Parent: Info

Methods

Attributes

constraint  [RW] 
local_complextype  [RW] 
maxoccurs  [RW] 
minoccurs  [RW] 
name  [RW] 
nillable  [RW] 
type  [RW] 

Public Class methods

[Source]

# File wsdl/xmlSchema/element.rb, line 25
  def initialize(name = nil, type = XSD::AnyTypeName)
    super()
    @name = name
    @type = type
    @local_complextype = nil
    @constraint = nil
    @maxoccurs = 1
    @minoccurs = 1
    @nillable = nil
  end

Public Instance methods

[Source]

# File wsdl/xmlSchema/element.rb, line 54
  def parse_attr(attr, value)
    case attr
    when NameAttrName
      #@name = XSD::QName.new(nil, value)

      @name = XSD::QName.new(targetnamespace, value)
    when TypeAttrName
      @type = if value.is_a?(XSD::QName)
          value
        else
          XSD::QName.new(XSD::Namespace, value)
        end
    when MaxOccursAttrName
      case parent
      when All
        if value != '1'
          raise Parser::AttrConstraintError.new(
            "Cannot parse #{ value } for #{ attr }.")
        end
        @maxoccurs = value
      when Sequence
        @maxoccurs = value
      else
        raise NotImplementedError.new
      end
      @maxoccurs
    when MinOccursAttrName
      case parent
      when All
        if ['0', '1'].include?(value)
          @minoccurs = value
        else
          raise Parser::AttrConstraintError.new(
            "Cannot parse #{ value } for #{ attr }.")
        end
      when Sequence
        @minoccurs = value
      else
        raise NotImplementedError.new
      end
      @minoccurs
    when NillableAttrName
      @nillable = (value == 'true')
    else
      nil
    end
  end

[Source]

# File wsdl/xmlSchema/element.rb, line 40
  def parse_element(element)
    case element
    when ComplexTypeName
      @type = nil
      @local_complextype = ComplexType.new
      @local_complextype
    when UniqueName
      @constraint = Unique.new
      @constraint
    else
      nil
    end
  end

[Source]

# File wsdl/xmlSchema/element.rb, line 36
  def targetnamespace
    parent.targetnamespace
  end

[Validate]