code: function XmlElement(tag) {
    // Capture the parser object off of the XmlDocument delegate
    var parser = delegates[delegates.length - 1].parser;
  
    this.name = tag.name;
    this.attr = tag.attributes || {};
    this.val = "";
    this.children = [];
    this.firstChild = null;
    this.lastChild = null;
  
    // Assign parse information
    this.line = parser.line;
    this.column = parser.column;
    this.position = parser.position;
    this.startTagPosition = parser.startTagPosition;
  }
docs: /*
  XmlElement is our basic building block. Everything is an XmlElement; even XmlDocument
  behaves like an XmlElement by inheriting its attributes and functions.