code: function Attr(elt, lname, prefix, namespace, value) {
    // localName and namespace are constant for any attr object.
    // But value may change.  And so can prefix, and so, therefore can name.
    this.localName = lname;
    this.prefix = (prefix===null || prefix==='') ? null : ('' + prefix);
    this.namespaceURI = (namespace===null || namespace==='') ? null : ('' + namespace);
    this.data = value;
    // Set ownerElement last to ensure it is hooked up to onchange handler
    this._setOwnerElement(elt);
  }
docs: The Attr class represents a single attribute.  The values in _attrsByQName and _attrsByLName are instances of this class.