7. The apparatus of claim 1 , wherein the instructions cause the processor to provide assistance to the user by: providing assistance to the user for editing the markup language document based on a real markup language grammar defined in a markup language grammar file for portions of the markup language document having elements corresponding to information in the markup language grammar file, and providing assistance to the user for editing the markup language document based on the inferred markup language grammar for portions of the markup language document having elements that do not correspond to information in the markup language grammar file.
9. The apparatus of claim 7 , wherein the instructions cause the processor to provide grammatical assistance to the user based on a markup language grammar inferred from current content of the markup language document by: constructing a document object model associated with the current content of the markup language document, the document object model comprising a set of markup language grammar elements each associated with one or more portions of the current content of the markup language document; for each markup language grammar element of the set, determining whether the each markup language grammar element is associated with an available real markup language grammar and, if not, inferring one or more markup language grammar rules associated with the each markup language grammar element; and incorporating the inferred one or more markup language grammar rules into the inferred markup language grammar.