Changeset 1839
- Timestamp:
- 06/08/07 13:57:03 (1 year ago)
- Files:
-
- trunk/lib/soap/baseData.rb (modified) (1 diff)
- trunk/lib/soap/mapping/encodedregistry.rb (modified) (2 diffs)
- trunk/lib/soap/mapping/typeMap.rb (modified) (2 diffs)
- trunk/lib/xsd/datatypes.rb (modified) (3 diffs)
- trunk/test/xsd/test_xsd.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/baseData.rb
r1837 r1839 238 238 extend SOAPModuleUtils 239 239 SOAPENCType = QName.new(EncodingNamespace, StringLiteral) 240 end241 242 class SOAPNormalizedString < XSD::XSDNormalizedString243 include SOAPBasetype244 extend SOAPModuleUtils245 SOAPENCType = QName.new(EncodingNamespace, NormalizedStringLiteral)246 end247 248 class SOAPToken < XSD::XSDToken249 include SOAPBasetype250 extend SOAPModuleUtils251 SOAPENCType = QName.new(EncodingNamespace, TokenLiteral)252 end253 254 class SOAPLanguage < XSD::XSDLanguage255 include SOAPBasetype256 extend SOAPModuleUtils257 SOAPENCType = QName.new(EncodingNamespace, LanguageLiteral)258 240 end 259 241 trunk/lib/soap/mapping/encodedregistry.rb
r1824 r1839 188 188 [::String, ::SOAP::SOAPGMonth, BasetypeFactory], 189 189 [::String, ::SOAP::SOAPQName, BasetypeFactory], 190 [::String, ::SOAP::SOAPNormalizedString, BasetypeFactory],191 [::String, ::SOAP::SOAPToken, BasetypeFactory],192 [::String, ::SOAP::SOAPLanguage, BasetypeFactory],193 190 194 191 [::Hash, ::SOAP::SOAPArray, HashFactory], … … 254 251 [::String, ::SOAP::SOAPGMonth, BasetypeFactory], 255 252 [::String, ::SOAP::SOAPQName, BasetypeFactory], 256 [::String, ::SOAP::SOAPNormalizedString, BasetypeFactory],257 [::String, ::SOAP::SOAPToken, BasetypeFactory],258 [::String, ::SOAP::SOAPLanguage, BasetypeFactory],259 253 260 254 [::Hash, ::SOAP::SOAPArray, HashFactory], trunk/lib/soap/mapping/typeMap.rb
r1824 r1839 14 14 15 15 XSD::XSDString::Type => SOAPString, 16 XSD::XSDNormalizedString::Type => SOAPNormalizedString,17 XSD::XSDToken::Type => SOAPToken,18 XSD::XSDLanguage::Type => SOAPLanguage,19 16 XSD::XSDBoolean::Type => SOAPBoolean, 20 17 XSD::XSDDecimal::Type => SOAPDecimal, … … 50 47 # soap4r does not use soapenc types actively but it should be accepted. 51 48 SOAP::SOAPString::SOAPENCType => SOAPString, 52 SOAP::SOAPNormalizedString::SOAPENCType => SOAPNormalizedString,53 SOAP::SOAPToken::SOAPENCType => SOAPToken,54 SOAP::SOAPLanguage::SOAPENCType => SOAPLanguage,55 49 SOAP::SOAPBoolean::SOAPENCType => SOAPBoolean, 56 50 SOAP::SOAPDecimal::SOAPENCType => SOAPDecimal, trunk/lib/xsd/datatypes.rb
r1824 r1839 47 47 48 48 NormalizedStringLiteral = 'normalizedString' 49 TokenLiteral = 'token' 50 LanguageLiteral = 'language' 49 #3.3.2 token 50 ##3.3.3 language 51 51 #3.3.4 NMTOKEN 52 52 #3.3.5 NMTOKENS … … 256 256 if d.is_a?(String) 257 257 # Integer("00012") => 10 in Ruby. 258 d = d.sub(/^([+\-]?)0*(?=\d)/, "\\1")258 d.sub!(/^([+\-]?)0*(?=\d)/, "\\1") 259 259 end 260 260 screen_data_str(d) … … 1015 1015 end 1016 1016 1017 class XSDToken < XSDNormalizedString1018 Type = QName.new(Namespace, TokenLiteral)1019 1020 def initialize(value = nil)1021 init(Type, value)1022 end1023 1024 private1025 1026 def screen_data(value)1027 if /[\t\n]|\A | \z| / =~ value1028 raise ValueSpaceError.new("#{ type }: cannot accept '#{ value }'.")1029 end1030 super1031 end1032 end1033 1034 class XSDLanguage < XSDToken1035 Type = QName.new(Namespace, LanguageLiteral)1036 1037 def initialize(value = nil)1038 init(Type, value)1039 end1040 1041 private1042 1043 def screen_data(value)1044 if /\A(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mo|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|sh|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)\z/ =~ value1045 raise ValueSpaceError.new("#{ type }: cannot accept '#{ value }', see ISO 639 for more information.")1046 end1047 super1048 end1049 end1050 1051 1017 class XSDInteger < XSDDecimal 1052 1018 Type = QName.new(Namespace, IntegerLiteral) trunk/test/xsd/test_xsd.rb
r1776 r1839 102 102 end 103 103 104 =begin not implemented for now 104 105 def test_XSDNormalizedString 105 106 XSD::Charset.module_eval { @encoding_backup = @internal_encoding; @internal_encoding = "NONE" } … … 202 203 end 203 204 end 205 =end 204 206 205 207 def test_XSDBoolean