code: function (tagName, tagAttributes) {
      if (this._done) {
        return;
      }
  
      this._openElementStack.push(tagName);
  
      try {
        this._errorIfUnexpectedTag(tagName);
  
        for (var attributeName in tagAttributes) {
          var attributeValue = tagAttributes[attributeName];
  
          this._errorIfUnexpectedAttribute(tagName, attributeName);
          this._errorIfUnexpectedAttributeValue(tagName, attributeName, attributeValue);
        }
      } catch (err) {
        this._finish(err);
      }
    }
docs: Check all tags, attributes, and attriute values against
  the allowed list in expectedTagsData.