Changeset 1956
- Timestamp:
- 09/12/07 19:02:32 (8 months ago)
- Files:
-
- trunk/lib/xsd/ns.rb (modified) (1 diff)
- trunk/lib/xsd/xmlparser.rb (modified) (1 diff)
- trunk/test/xsd/test_ns.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/xsd/ns.rb
r1947 r1956 58 58 def assign(ns, tag = nil) 59 59 if tag == '' 60 @default_namespace = ns 60 if ns.empty? 61 @default_namespace = nil 62 else 63 @default_namespace = ns 64 end 61 65 tag 62 66 else trunk/lib/xsd/xmlparser.rb
r1947 r1956 29 29 newattrs = {} 30 30 attrs.each do |key, value| 31 if (NSParseRegexp =~ key)31 if NSParseRegexp =~ key 32 32 unless ns_updated 33 33 ns = ns.clone_ns 34 34 ns_updated = true 35 35 end 36 # '' means 'default namespace'. 36 # tag == '' means 'default namespace' 37 # value == '' means 'no default namespace' 37 38 tag = $1 || '' 38 39 ns.assign(value, tag) trunk/test/xsd/test_ns.rb
r1704 r1956 15 15 assert_equal("EN", lang) 16 16 end 17 18 def test_no_default_namespace 19 env = SOAP::Processor.unmarshal(NO_DEFAULT_NAMESPACE) 20 array = env.body.root_node["array"] 21 item = array["item"] 22 assert_equal("urn:ns", array.elename.namespace) 23 assert_equal(nil, item.elename.namespace) 24 end 25 26 NO_DEFAULT_NAMESPACE = <<__XML__ 27 <?xml version="1.0" encoding="utf-8"?> 28 <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> 29 <env:Body> 30 <response xmlns="urn:ns"> 31 <array> 32 <item attr="1" xmlns=""/> 33 </array> 34 </response> 35 </env:Body> 36 </env:Envelope> 37 __XML__ 17 38 end 18 39