Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1726

Show
Ignore:
Timestamp:
09/25/06 14:26:30 (2 years ago)
Author:
nahi
Message:

do not validate CES by default to avoid consuming memory. let XML processor check it instead. (you can turn it on by XSD::XSDString.strict_ces_check = true)
closes #265.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/mapping/factory.rb

    r1724 r1726  
    107107    begin 
    108108      externalces = Thread.current[:SOAPMapping][:ExternalCES] 
    109       unless XSD::Charset.is_ces(obj, externalces) 
    110         return nil 
    111       end 
    112109      encoded = XSD::Charset.encoding_conv(obj, externalces, 
    113110        XSD::Charset.encoding) 
  • trunk/lib/xsd/datatypes.rb

    r1567 r1726  
    192192  end 
    193193 
     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 
    194204private 
    195205 
    196206  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 
    199212    end 
    200213    value 
  • trunk/test/soap/test_basetype.rb

    r1548 r1726  
    4949    assert_equal(str, SOAP::SOAPString.new(str).data) 
    5050    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 
    5662    end 
    5763  end 
  • trunk/test/xsd/test_xsd.rb

    r1548 r1726  
    5959    assert_equal(str, XSD::XSDString.new(str).data) 
    6060    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 
    6672    end 
    6773  end 
     
    7985      assert_equal(str, XSD::XSDString.new(str).data) 
    8086      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 
    8698      end 
    8799    ensure