Changeset 1478
- Timestamp:
- 04/15/05 16:40:17 (4 years ago)
- Files:
-
- trunk/lib/soap/mapping/wsdlliteralregistry.rb (modified) (1 diff)
- trunk/lib/wsdl/xmlSchema/data.rb (modified) (2 diffs)
- trunk/lib/wsdl/xmlSchema/simpleRestriction.rb (modified) (4 diffs)
- trunk/test/wsdl/simpletype/test_simpletype.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/wsdlliteralregistry.rb
r1469 r1478 106 106 def simple2soap(obj, type) 107 107 o = base2soap(obj, TypeMap[type.base]) 108 if type.restriction.enumeration.empty?109 STDERR.puts(110 "#{type.name}: simpleType which is not enum type not supported")111 return o112 end113 108 type.check_lexical_format(obj) 114 109 o trunk/lib/wsdl/xmlSchema/data.rb
r1439 r1478 25 25 require 'wsdl/xmlSchema/unique' 26 26 require 'wsdl/xmlSchema/enumeration' 27 require 'wsdl/xmlSchema/length' 28 require 'wsdl/xmlSchema/pattern' 27 29 28 30 module WSDL … … 41 43 ExtensionName = XSD::QName.new(XSD::Namespace, 'extension') 42 44 ImportName = XSD::QName.new(XSD::Namespace, 'import') 45 LengthName = XSD::QName.new(XSD::Namespace, 'length') 46 PatternName = XSD::QName.new(XSD::Namespace, 'pattern') 43 47 RestrictionName = XSD::QName.new(XSD::Namespace, 'restriction') 44 48 SequenceName = XSD::QName.new(XSD::Namespace, 'sequence') trunk/lib/wsdl/xmlSchema/simpleRestriction.rb
r1439 r1478 18 18 attr_reader :base 19 19 attr_reader :enumeration 20 attr_accessor :length 21 attr_accessor :pattern 20 22 21 23 def initialize … … 23 25 @base = nil 24 26 @enumeration = [] # NamedElements? 27 @length = nil 28 @pattern = nil 25 29 end 26 30 27 31 def valid?(value) 28 @enumeration.include?(value) 32 return false unless check_restriction(value) 33 return false unless check_length(value) 34 return false unless check_pattern(value) 35 true 29 36 end 30 37 … … 33 40 when EnumerationName 34 41 Enumeration.new # just a parsing handler 42 when LengthName 43 Length.new # just a parsing handler 44 when PatternName 45 Pattern.new # just a parsing handler 35 46 end 36 47 end … … 42 53 end 43 54 end 55 56 private 57 58 def check_restriction(value) 59 @enumeration.empty? or @enumeration.include?(value) 60 end 61 62 def check_length(value) 63 @length.nil? or value.size == @length 64 end 65 66 def check_pattern(value) 67 @pattern.nil? or @pattern =~ value 68 end 44 69 end 45 70 trunk/test/wsdl/simpletype/test_simpletype.rb
r1477 r1478 84 84 ret = @client.ping_id("012345678901234567") 85 85 assert_equal("012345678901234567", ret) 86 # length 86 87 assert_raise(XSD::ValueSpaceError) do 87 88 @client.ping_id("0123456789012345678") 88 89 end 90 # pattern 89 91 assert_raise(XSD::ValueSpaceError) do 90 92 @client.ping_id("01234567890123456;")