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

Changeset 1704

Show
Ignore:
Timestamp:
08/29/06 09:46:14 (2 years ago)
Author:
nahi
Message:

define default namespace tag 'xml' for xml:lang, id, base and space. closes #237.

Files:

Legend:

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

    r1604 r1704  
    11# XSD4R - XML Schema Namespace library 
    2 # Copyright (C) 2000-2003, 2005  NAKAMURA, Hiroshi <nahi@ruby-lang.org>. 
     2# Copyright (C) 2000-2003, 2005, 2006  NAKAMURA, Hiroshi <nahi@ruby-lang.org>. 
    33 
    44# This program is copyrighted free software by NAKAMURA, Hiroshi.  You can 
     
    1414 
    1515class NS 
     16  Namespace = 'http://www.w3.org/XML/1998/namespace' 
     17 
    1618  class Assigner 
    1719    def initialize 
     
    3133public 
    3234 
    33   def initialize(tag2ns = {}
    34     @tag2ns = tag2ns 
     35  def initialize(tag2ns = nil
     36    @tag2ns = tag2ns || ns_default 
    3537    @assigner = nil 
    3638    @ns2tag = {} 
    37     @tag2ns.each do |tag, ns| 
    38       @ns2tag[ns] = tag 
    39     end 
     39    @ns2tag = @tag2ns.invert 
    4040    @default_namespace = nil 
    4141  end 
     
    7272    if (name.namespace == @default_namespace) 
    7373      name.name 
    74     elsif @ns2tag.key?(name.namespace) 
    75       "#{@ns2tag[name.namespace]}:#{name.name}" 
     74    elsif tag = @ns2tag[name.namespace] 
     75      "#{tag}:#{name.name}" 
    7676    else 
    7777      raise FormatError.new("namespace: #{name.namespace} not defined yet") 
     
    135135    @assigner = assigner 
    136136  end 
     137 
     138private 
     139 
     140  def ns_default 
     141    {'xml' => Namespace} 
     142  end 
    137143end 
    138144