lib/Element.js
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);
}
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);
}
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 ) ; }
The Attr class represents a single attribute.  The values in _attrsByQName and _attrsByLName are instances of this class.
The Attr class represents a single attribute . The values in _attrsByQName and _attrsByLName are instances of this class .