HtmlElement Insert(Token.StartTag startTag) { HtmlElementDefinition tag = TagLibrary.GetTag(startTag.Name); // TODO: wonder if for xml parsing, should treat all tags as unknown? because it's not html. HtmlElement el = new HtmlElement(startTag.Name, startTag.Attributes); InsertNode(el); if (startTag.IsSelfClosing) { tokeniser.AcknowledgeSelfClosingFlag(); // TODO Change to schema is not ideal if (!tag.IsReadOnly && tag.IsUnknownTag) // unknown tag, remember this is self closing for output. see above. { tag.IsSelfClosing = true; tag.IsEmpty = true; } } else { stack.AddLast(el); } return(el); }
public HtmlElement InsertEmpty(Token.StartTag startTag) { // TODO Use the semantic element here (via the factory) HtmlElementDefinition tag = TagLibrary.GetTag(startTag.Name); HtmlElement el = new HtmlElement(startTag.Name, startTag.Attributes); InsertNode(el); if (startTag.IsSelfClosing) { tokeniser.AcknowledgeSelfClosingFlag(); // TODO This change to the schema is not ideal if (!tag.IsReadOnly && tag.IsUnknownTag) // unknown tag, remember this is self closing for output { tag.IsSelfClosing = true; tag.IsEmpty = true; } } return(el); }