Changeset 1726
- Timestamp:
- 09/25/06 14:26:30 (2 years ago)
- Files:
-
- trunk/lib/soap/mapping/factory.rb (modified) (1 diff)
- trunk/lib/xsd/datatypes.rb (modified) (1 diff)
- trunk/test/soap/test_basetype.rb (modified) (1 diff)
- trunk/test/xsd/test_xsd.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/factory.rb
r1724 r1726 107 107 begin 108 108 externalces = Thread.current[:SOAPMapping][:ExternalCES] 109 unless XSD::Charset.is_ces(obj, externalces)110 return nil111 end112 109 encoded = XSD::Charset.encoding_conv(obj, externalces, 113 110 XSD::Charset.encoding) trunk/lib/xsd/datatypes.rb
r1567 r1726 192 192 end 193 193 194 @@strict_ces_validation = false 195 196 def self.strict_ces_validation=(strict_ces_validation) 197 @@strict_ces_validation = strict_ces_validation 198 end 199 200 def self.strict_ces_validation 201 @@strict_ces_validation 202 end 203 194 204 private 195 205 196 206 def screen_data(value) 197 unless XSD::Charset.is_ces(value, XSD::Charset.encoding) 198 raise ValueSpaceError.new("#{ type }: cannot accept '#{ value }'.") 207 if ::XSD::XSDString.strict_ces_validation 208 externalces = XSD::Charset.encoding 209 unless XSD::Charset.is_ces(value, externalces) 210 raise ValueSpaceError.new("#{ type }: cannot accept '#{ value }'.") 211 end 199 212 end 200 213 value trunk/test/soap/test_basetype.rb
r1548 r1726 49 49 assert_equal(str, SOAP::SOAPString.new(str).data) 50 50 assert_equal(str, SOAP::SOAPString.new(str).to_s) 51 assert_raises(XSD::ValueSpaceError) do 52 SOAP::SOAPString.new("\0") 53 end 54 assert_raises(XSD::ValueSpaceError) do 55 p SOAP::SOAPString.new("\xC0\xC0").to_s 51 back = XSD::XSDString.strict_ces_validation 52 XSD::XSDString.strict_ces_validation = true 53 begin 54 assert_raises(XSD::ValueSpaceError) do 55 SOAP::SOAPString.new("\0") 56 end 57 assert_raises(XSD::ValueSpaceError) do 58 SOAP::SOAPString.new("\xC0\xC0").to_s 59 end 60 ensure 61 XSD::XSDString.strict_ces_validation = back 56 62 end 57 63 end trunk/test/xsd/test_xsd.rb
r1548 r1726 59 59 assert_equal(str, XSD::XSDString.new(str).data) 60 60 assert_equal(str, XSD::XSDString.new(str).to_s) 61 assert_raises(XSD::ValueSpaceError) do 62 XSD::XSDString.new("\0") 63 end 64 assert_raises(XSD::ValueSpaceError) do 65 p XSD::XSDString.new("\xC0\xC0").to_s 61 back = XSD::XSDString.strict_ces_validation 62 XSD::XSDString.strict_ces_validation = true 63 begin 64 assert_raises(XSD::ValueSpaceError) do 65 XSD::XSDString.new("\0") 66 end 67 assert_raises(XSD::ValueSpaceError) do 68 p XSD::XSDString.new("\xC0\xC0").to_s 69 end 70 ensure 71 XSD::XSDString.strict_ces_validation = back 66 72 end 67 73 end … … 79 85 assert_equal(str, XSD::XSDString.new(str).data) 80 86 assert_equal(str, XSD::XSDString.new(str).to_s) 81 assert_raises(XSD::ValueSpaceError) do 82 XSD::XSDString.new("\0") 83 end 84 assert_raises(XSD::ValueSpaceError) do 85 p XSD::XSDString.new("\xC0\xC0").to_s 87 back = XSD::XSDString.strict_ces_validation 88 XSD::XSDString.strict_ces_validation = true 89 begin 90 assert_raises(XSD::ValueSpaceError) do 91 XSD::XSDString.new("\0") 92 end 93 assert_raises(XSD::ValueSpaceError) do 94 p XSD::XSDString.new("\xC0\xC0").to_s 95 end 96 ensure 97 XSD::XSDString.strict_ces_validation = back 86 98 end 87 99 ensure