def self.type name
fail unless name and (name.is_a? String or name.is_a? Symbol)
name = $' if name.to_s =~ /^xsd:/
case name.to_sym
when :anyType then BasicTypes::AnyType
when :boolean then BasicTypes::Boolean
when :string then String
when :int, :long, :short, :byte then Integer
when :float, :double then Float
when :dateTime then Time
when :base64Binary then BasicTypes::Binary
when :KeyValue then BasicTypes::KeyValue
else
if @loader.has? name
const_get(name)
else
fail "no such type #{name.inspect}"
end
end
end