def initialize( root, source=nil )
      super( root, root, 'UNA')
      raise "UNA.new requires 'version' in the interchange" unless root.version
      raise "UNA.new requires 'charset' in the interchange" unless root.charset
      if source =~ /^UNA(......)$/  
        @chars = $1
      elsif (source == nil or source.empty?) 
        if root.version==2 and root.charset=='UNOB'
          @chars = "\x11\x12.? \x14"
        elsif root.version==4
          @chars = ":+.?*'"
        else
          @chars = ":+.? '"
        end
        
      else
        raise "This is not a valid UNA source string: #{source}"
      end
      @ce_sep, @de_sep, @decimal_sign, 
      @esc_char, @rep_sep, @seg_term = @chars.split('').map{|c| c[0]}
      set_patterns
    end