# File nqxml/tokenizer.rb, line 341 def nextTagAttributes(typeName, name) attrs = Hash.new() skipSpaces() c = peekChar() while !c.nil? && c =~ /[a-zA-Z_:]/ # next legal attrib name char key = nextName() skipSpaces() if peekMatches?('=') skipChar() skipSpaces() val = nextQuotedLiteral(name) val = normalizeAttributeValue(val) else val = '' end # Well-formedness constraint: attribute names may appear # only once. if !attrs[key].nil? str = "malformed #{typeName} '#{name}': attribute name" + " '#{key}' appears more than once" raise ParserError.new(str, self) end attrs[key] = val skipSpaces() c = peekChar() end return attrs end