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

Changeset 1902

Show
Ignore:
Timestamp:
07/22/07 16:28:26 (1 year ago)
Author:
nahi
Message:
  • added support of all XML Schema facets for restriction. No validation implemented yet. (do you want to validate XML messages by soap4r?) closes #364.
Files:

Legend:

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

    r1898 r1902  
    99require 'xsd/datatypes' 
    1010require 'xsd/ns' 
     11require 'soap/soap' 
    1112 
    1213 
  • trunk/lib/wsdl/info.rb

    r1824 r1902  
    3434 
    3535  def parse_epilogue; end               # abstract 
     36 
     37private 
     38 
     39  def to_int(value) 
     40    Integer(value.source) 
     41  end 
     42 
     43  def to_boolean(value) 
     44    s = value.source 
     45    s == "true" or s == "1" 
     46  end 
    3647end 
    3748 
  • trunk/lib/wsdl/xmlSchema/data.rb

    r1824 r1902  
    2929require 'wsdl/xmlSchema/union' 
    3030require 'wsdl/xmlSchema/unique' 
     31 
     32require 'wsdl/xmlSchema/length' 
     33require 'wsdl/xmlSchema/minlength' 
     34require 'wsdl/xmlSchema/maxlength' 
     35require 'wsdl/xmlSchema/pattern' 
    3136require 'wsdl/xmlSchema/enumeration' 
    32 require 'wsdl/xmlSchema/length' 
    33 require 'wsdl/xmlSchema/maxlength' 
    34 require 'wsdl/xmlSchema/minlength' 
    35 require 'wsdl/xmlSchema/pattern' 
     37require 'wsdl/xmlSchema/whitespace' 
     38require 'wsdl/xmlSchema/maxinclusive' 
     39require 'wsdl/xmlSchema/maxexclusive' 
     40require 'wsdl/xmlSchema/minexclusive' 
     41require 'wsdl/xmlSchema/mininclusive' 
     42require 'wsdl/xmlSchema/totaldigits' 
     43require 'wsdl/xmlSchema/fractiondigits' 
    3644 
    3745module WSDL 
     
    4755ComplexTypeName = XSD::QName.new(XSD::Namespace, 'complexType') 
    4856ElementName = XSD::QName.new(XSD::Namespace, 'element') 
    49 EnumerationName = XSD::QName.new(XSD::Namespace, 'enumeration') 
    5057ExtensionName = XSD::QName.new(XSD::Namespace, 'extension') 
    5158ImportName = XSD::QName.new(XSD::Namespace, 'import') 
    5259IncludeName = XSD::QName.new(XSD::Namespace, 'include') 
    53 LengthName = XSD::QName.new(XSD::Namespace, 'length') 
    5460ListName = XSD::QName.new(XSD::Namespace, 'list') 
    55 MaxLengthName = XSD::QName.new(XSD::Namespace, 'maxLength') 
    56 MinLengthName = XSD::QName.new(XSD::Namespace, 'minLength') 
    57 PatternName = XSD::QName.new(XSD::Namespace, 'pattern') 
    5861RestrictionName = XSD::QName.new(XSD::Namespace, 'restriction') 
    5962SequenceName = XSD::QName.new(XSD::Namespace, 'sequence') 
     
    6366UnionName = XSD::QName.new(XSD::Namespace, 'union') 
    6467UniqueName = XSD::QName.new(XSD::Namespace, 'unique') 
     68 
     69LengthName = XSD::QName.new(XSD::Namespace, 'length') 
     70MinLengthName = XSD::QName.new(XSD::Namespace, 'minLength') 
     71MaxLengthName = XSD::QName.new(XSD::Namespace, 'maxLength') 
     72PatternName = XSD::QName.new(XSD::Namespace, 'pattern') 
     73EnumerationName = XSD::QName.new(XSD::Namespace, 'enumeration') 
     74WhiteSpaceName = XSD::QName.new(XSD::Namespace, 'whiteSpace') 
     75MaxInclusiveName = XSD::QName.new(XSD::Namespace, 'maxInclusive') 
     76MaxExclusiveName = XSD::QName.new(XSD::Namespace, 'maxExclusive') 
     77MinExclusiveName = XSD::QName.new(XSD::Namespace, 'minExclusive') 
     78MinInclusiveName = XSD::QName.new(XSD::Namespace, 'minInclusive') 
     79TotalDigitsName = XSD::QName.new(XSD::Namespace, 'totalDigits') 
     80FractionDigitsName = XSD::QName.new(XSD::Namespace, 'fractionDigits') 
    6581 
    6682AbstractAttrName = XSD::QName.new(nil, 'abstract') 
  • trunk/lib/wsdl/xmlSchema/length.rb

    r1824 r1902  
    2525  def parse_attr(attr, value) 
    2626    case attr 
     27    when FixedAttrName 
     28      parent.fixed[:length] = to_boolean(value) 
    2729    when ValueAttrName 
    28       parent.length = Integer(value.source) 
     30      parent.length = to_int(value) 
    2931    end 
    3032  end 
  • trunk/lib/wsdl/xmlSchema/maxlength.rb

    r1824 r1902  
    2525  def parse_attr(attr, value) 
    2626    case attr 
     27    when FixedAttrName 
     28      parent.fixed[:maxlength] = to_boolean(value) 
    2729    when ValueAttrName 
    28       parent.maxlength = Integer(value.source) 
     30      parent.maxlength = to_int(value) 
    2931    end 
    3032  end 
  • trunk/lib/wsdl/xmlSchema/minlength.rb

    r1824 r1902  
    2525  def parse_attr(attr, value) 
    2626    case attr 
     27    when FixedAttrName 
     28      parent.fixed[:minlength] = to_boolean(value) 
    2729    when ValueAttrName 
    28       parent.minlength = Integer(value.source) 
     30      parent.minlength = to_int(value) 
    2931    end 
    3032  end 
  • trunk/lib/wsdl/xmlSchema/simpleRestriction.rb

    r1824 r1902  
    1717class SimpleRestriction < Info 
    1818  attr_reader :base 
     19  attr_accessor :length 
     20  attr_accessor :minlength 
     21  attr_accessor :maxlength 
     22  attr_accessor :pattern 
    1923  attr_reader :enumeration 
    20   attr_accessor :length 
    21   attr_accessor :maxlength 
    22   attr_accessor :minlength 
    23   attr_accessor :pattern 
     24  attr_reader :whitespace 
     25  attr_reader :maxinclusive 
     26  attr_reader :maxexlusive 
     27  attr_reader :minexlusive 
     28  attr_reader :mininclusive 
     29  attr_reader :totaldigits 
     30  attr_reader :fractiondigits 
     31  attr_reader :fixed 
    2432 
    2533  def initialize 
     
    3139    @minlength = nil 
    3240    @pattern = nil 
     41    @fixed = {} 
    3342  end 
    3443   
     
    4453  def parse_element(element) 
    4554    case element 
     55    when LengthName 
     56      Length.new 
     57    when MinLengthName 
     58      MinLength.new 
     59    when MaxLengthName 
     60      MaxLength.new 
     61    when PatternName 
     62      Pattern.new 
    4663    when EnumerationName 
    4764      Enumeration.new 
    48     when LengthName 
    49       Length.new 
    50     when PatternName 
    51       Pattern.new 
    52     when MaxLengthName 
    53       MaxLength.new 
    54     when MinLengthName 
    55       MinLength.new 
     65    when WhiteSpaceName 
     66      WhiteSpace.new 
     67    when MaxInclusiveName 
     68      MaxInclusive.new 
     69    when MaxExlusiveName 
     70      MaxExlusive.new 
     71    when MinExlusiveName 
     72      MinExlusive.new 
     73    when MinInclusiveName 
     74      MinInclusive.new 
     75    when TotalDigitsName 
     76      TotalDigitsName.new 
     77    when FractionDigitsName 
     78      FractionDigitsName.new 
    5679    end 
    5780  end