attributes()
click to toggle source
def attributes
@local_complextype.attributes
end
map_as_array?()
click to toggle source
def map_as_array?
maxoccurs != '1'
end
parse_attr(attr, value)
click to toggle source
def parse_attr(attr, value)
case attr
when NameAttrName
if directelement? or elementform == 'qualified'
@name = XSD::QName.new(targetnamespace, value.source)
else
@name = XSD::QName.new(nil, value.source)
end
when FormAttrName
@form = value.source
when TypeAttrName
@type = value
when RefAttrName
@ref = value
when MaxOccursAttrName
if parent.is_a?(All)
if value.source != '1'
raise Parser::AttrConstraintError.new(
"cannot parse #{value} for #{attr}")
end
end
@maxoccurs = value.source
when MinOccursAttrName
if parent.is_a?(All)
unless ['0', '1'].include?(value.source)
raise Parser::AttrConstraintError.new(
"cannot parse #{value} for #{attr}")
end
end
@minoccurs = value.source
when NillableAttrName
@nillable = (value.source == 'true')
else
nil
end
end
parse_element(element)
click to toggle source
def parse_element(element)
case element
when SimpleTypeName
@local_simpletype = SimpleType.new
@local_simpletype
when ComplexTypeName
@type = nil
@local_complextype = ComplexType.new
@local_complextype
when UniqueName
@constraint = Unique.new
@constraint
else
nil
end
end
refelement()
click to toggle source
def refelement
@refelement ||= (@ref ? root.collect_elements[@ref] : nil)
end
targetnamespace()
click to toggle source
def targetnamespace
parent.targetnamespace
end