Backed out changeset 168dd0eb7283
authorJohnny Stenback <jst@mozilla.com>
Sun, 28 Jun 2009 11:47:11 -0700
changeset 29798 c11b50467863b929d45efc3ca2e6cf89f46a16b9
parent 29794 168dd0eb728303a5da0dfdda9d447fcb8dd6fb42
child 29799 f1dc757a5026b366c0470f5206640a415ca7f40e
push id7771
push userjst@mozilla.com
push dateSun, 28 Jun 2009 18:53:36 +0000
treeherdermozilla-central@f1dc757a5026 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone1.9.2a1pre
backs out168dd0eb728303a5da0dfdda9d447fcb8dd6fb42
Backed out changeset 168dd0eb7283
content/base/public/nsINode.h
content/base/src/Makefile.in
content/base/src/nsContentSink.cpp
content/base/src/nsContentSink.h
content/base/src/nsContentUtils.cpp
content/base/src/nsDOMAttribute.cpp
content/base/src/nsDOMAttribute.h
content/base/src/nsDocument.cpp
content/base/src/nsDocument.h
content/base/src/nsGenericDOMDataNode.cpp
content/base/src/nsGenericDOMDataNode.h
content/base/src/nsGenericElement.cpp
content/base/src/nsGenericElement.h
content/base/src/nsHTMLContentSerializer.cpp
content/base/test/test_bug417255.html
content/html/content/src/nsHTMLOptGroupElement.cpp
content/html/content/src/nsHTMLSelectElement.cpp
content/html/content/src/nsHTMLSelectElement.h
content/html/document/reftests/bug448564-2_malformed.html
content/html/document/reftests/bug448564-2_well-formed.html
content/html/document/reftests/bug448564-3_malformed.html
content/html/document/reftests/bug448564-3_well-formed.html
content/html/document/reftests/bug448564-5_malformed.html
content/html/document/reftests/bug448564-5_well-formed.html
content/html/document/reftests/reftests.list
content/html/document/src/Makefile.in
content/html/document/src/nsHTMLContentSink.cpp
content/html/document/src/nsHTMLDocument.cpp
content/html/parser/Makefile.in
content/html/parser/javasrc/AttributeName.java
content/html/parser/javasrc/ElementName.java
content/html/parser/javasrc/HtmlAttributes.java
content/html/parser/javasrc/MetaScanner.java
content/html/parser/javasrc/Portability.java
content/html/parser/javasrc/README.txt
content/html/parser/javasrc/StackNode.java
content/html/parser/javasrc/StateSnapshot.java
content/html/parser/javasrc/Tokenizer.java
content/html/parser/javasrc/TreeBuilder.java
content/html/parser/javasrc/UTF16Buffer.java
content/html/parser/public/Makefile.in
content/svg/content/src/nsSVGSwitchElement.cpp
content/svg/content/src/nsSVGSwitchElement.h
content/xml/document/src/nsXMLContentSink.cpp
content/xml/document/src/nsXMLContentSink.h
content/xtf/src/nsXTFElementWrapper.cpp
content/xtf/src/nsXTFElementWrapper.h
content/xul/content/src/nsXULElement.cpp
content/xul/content/src/nsXULElement.h
layout/build/Makefile.in
layout/build/nsLayoutStatics.cpp
layout/reftests/bugs/394534-1-ref.html
layout/reftests/bugs/394534-1.html
layout/reftests/bugs/444375-1-ref.html
layout/reftests/bugs/482659-1a.html
layout/reftests/bugs/482659-1b.html
layout/reftests/bugs/482659-1c.html
layout/reftests/bugs/482659-1d.html
layout/reftests/bugs/490182-1a.html
layout/reftests/bugs/490182-1b.html
layout/reftests/font-face/ex-unit-1-dynamic.html
layout/reftests/table-dom/deleteCol1.html
layout/reftests/table-dom/deleteCol2.html
layout/reftests/table-dom/deleteCol3.html
layout/reftests/table-dom/insertCols1.html
layout/reftests/table-dom/insertCols2.html
layout/reftests/table-dom/insertCols3.html
layout/reftests/text/justification-1.html
modules/libpref/src/init/all.js
parser/Makefile.in
parser/html/Makefile.in
parser/html/jArray.h
parser/html/nsHtml5ArrayCopy.h
parser/html/nsHtml5AtomList.h
parser/html/nsHtml5Atoms.cpp
parser/html/nsHtml5Atoms.h
parser/html/nsHtml5AttributeName.cpp
parser/html/nsHtml5AttributeName.h
parser/html/nsHtml5ByteReadable.h
parser/html/nsHtml5DocumentMode.h
parser/html/nsHtml5ElementName.cpp
parser/html/nsHtml5ElementName.h
parser/html/nsHtml5HtmlAttributes.cpp
parser/html/nsHtml5HtmlAttributes.h
parser/html/nsHtml5MetaScanner.cpp
parser/html/nsHtml5MetaScanner.h
parser/html/nsHtml5MetaScannerCppSupplement.h
parser/html/nsHtml5MetaScannerHSupplement.h
parser/html/nsHtml5Module.cpp
parser/html/nsHtml5Module.h
parser/html/nsHtml5NamedCharacters.cpp
parser/html/nsHtml5NamedCharacters.h
parser/html/nsHtml5Parser.cpp
parser/html/nsHtml5Parser.h
parser/html/nsHtml5PendingNotification.h
parser/html/nsHtml5Portability.cpp
parser/html/nsHtml5Portability.h
parser/html/nsHtml5ReleasableAttributeName.cpp
parser/html/nsHtml5ReleasableAttributeName.h
parser/html/nsHtml5ReleasableElementName.cpp
parser/html/nsHtml5ReleasableElementName.h
parser/html/nsHtml5StackNode.cpp
parser/html/nsHtml5StackNode.h
parser/html/nsHtml5StackNodeCppSupplement.h
parser/html/nsHtml5StackNodeHSupplement.h
parser/html/nsHtml5StateSnapshot.cpp
parser/html/nsHtml5StateSnapshot.h
parser/html/nsHtml5Tokenizer.cpp
parser/html/nsHtml5Tokenizer.h
parser/html/nsHtml5TreeBuilder.cpp
parser/html/nsHtml5TreeBuilder.h
parser/html/nsHtml5TreeBuilderCppSupplement.h
parser/html/nsHtml5TreeBuilderHSupplement.h
parser/html/nsHtml5TreeOperation.cpp
parser/html/nsHtml5TreeOperation.h
parser/html/nsHtml5UTF16Buffer.cpp
parser/html/nsHtml5UTF16Buffer.h
parser/html/nsHtml5UTF16BufferCppSupplement.h
parser/html/nsHtml5UTF16BufferHSupplement.h
parser/htmlparser/public/nsIParser.h
parser/htmlparser/src/nsParser.cpp
parser/htmlparser/src/nsParser.h
toolkit/toolkit-tiers.mk
--- a/content/base/public/nsINode.h
+++ b/content/base/public/nsINode.h
@@ -434,23 +434,20 @@ public:
   /**
    * Remove a child from this node.  This method handles calling UnbindFromTree
    * on the child appropriately.
    *
    * @param aIndex the index of the child to remove
    * @param aNotify whether to notify the document (current document for
    *        nsIContent, and |this| for nsIDocument) that the remove has
    *        occurred
-   * @param aMutationEvent whether to fire a mutation event
    *
    * Note: If there is no child at aIndex, this method will simply do nothing.
    */
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, 
-                                 PRBool aNotify, 
-                                 PRBool aMutationEvent = PR_TRUE) = 0;
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify) = 0;
 
   /**
    * Get a property associated with this node.
    *
    * @param aPropertyName  name of property to get.
    * @param aStatus        out parameter for storing resulting status.
    *                       Set to NS_PROPTABLE_PROP_NOT_THERE if the property
    *                       is not set.
--- a/content/base/src/Makefile.in
+++ b/content/base/src/Makefile.in
@@ -79,17 +79,16 @@ REQUIRES	= xpcom \
 		  uriloader \
 		  rdf \
 		  xultmpl \
 		  util \
 		  appshell \
 		  shistory \
 		  editor \
 		  windowwatcher \
-		  html5 \
 		  $(NULL)
 
 ifdef ACCESSIBILITY
 REQUIRES	+= accessibility
 endif
 
 EXPORTS		= \
 		nsAtomListUtils.h \
--- a/content/base/src/nsContentSink.cpp
+++ b/content/base/src/nsContentSink.cpp
@@ -789,42 +789,32 @@ nsContentSink::ProcessStyleLink(nsIConte
 
   return NS_OK;
 }
 
 
 nsresult
 nsContentSink::ProcessMETATag(nsIContent* aContent)
 {
-  NS_ASSERTION(aContent, "missing meta-element");
+  NS_ASSERTION(aContent, "missing base-element");
 
   nsresult rv = NS_OK;
 
   // set any HTTP-EQUIV data into document's header data as well as url
   nsAutoString header;
   aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::httpEquiv, header);
   if (!header.IsEmpty()) {
     nsAutoString result;
     aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::content, result);
     if (!result.IsEmpty()) {
       ToLowerCase(header);
       nsCOMPtr<nsIAtom> fieldAtom(do_GetAtom(header));
       rv = ProcessHeaderData(fieldAtom, result, aContent); 
     }
   }
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  /* Look for the viewport meta tag. If we find it, process it and put the
-   * data into the document header. */
-  if (aContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::name,
-                            nsGkAtoms::viewport, eIgnoreCase)) {
-    nsAutoString value;
-    aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::content, value);
-    rv = nsContentUtils::ProcessViewportInfo(mDocument, value);
-  }
 
   return rv;
 }
 
 
 void
 nsContentSink::PrefetchHref(const nsAString &aHref,
                             nsIContent *aSource,
--- a/content/base/src/nsContentSink.h
+++ b/content/base/src/nsContentSink.h
@@ -141,18 +141,16 @@ class nsContentSink : public nsICSSLoade
   void NotifyAppend(nsIContent* aContent, PRUint32 aStartIndex);
 
   // nsIDocumentObserver
   virtual void BeginUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
   virtual void EndUpdate(nsIDocument *aDocument, nsUpdateType aUpdateType);
 
   virtual void UpdateChildCounts() = 0;
 
-  PRBool IsTimeToNotify();
-
 protected:
   nsContentSink();
   virtual ~nsContentSink();
 
   enum CacheSelectionAction {
     // There is no offline cache manifest specified by the document,
     // or the document was loaded from a cache other than the one it
     // specifies via its manifest attribute and IS NOT a top-level
@@ -238,35 +236,34 @@ protected:
   //        was selected.
   // @param aAction
   //        Out parameter, returns the action that should be performed
   //        by the calling function.
   nsresult SelectDocAppCacheNoManifest(nsIApplicationCache *aLoadApplicationCache,
                                        nsIURI **aManifestURI,
                                        CacheSelectionAction *aAction);
 
-public:
   // Searches for the offline cache manifest attribute and calls one
   // of the above defined methods to select the document's application
   // cache, let it be associated with the document and eventually
   // schedule the cache update process.
   void ProcessOfflineManifest(nsIContent *aElement);
 
-protected:
   // Tries to scroll to the URI's named anchor. Once we've successfully
   // done that, further calls to this method will be ignored.
   void ScrollToRef();
   nsresult RefreshIfEnabled(nsIViewManager* vm);
 
   // Start layout.  If aIgnorePendingSheets is true, this will happen even if
   // we still have stylesheet loads pending.  Otherwise, we'll wait until the
   // stylesheets are all done loading.
-public:
   void StartLayout(PRBool aIgnorePendingSheets);
-protected:
+
+  PRBool IsTimeToNotify();
+
   void
   FavorPerformanceHint(PRBool perfOverStarvation, PRUint32 starvationDelay);
 
   inline PRInt32 GetNotificationInterval()
   {
     if (mDynamicLowerValue) {
       return 1000;
     }
--- a/content/base/src/nsContentUtils.cpp
+++ b/content/base/src/nsContentUtils.cpp
@@ -159,17 +159,16 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_
 #include "nsIChannelEventSink.h"
 #include "nsIInterfaceRequestor.h"
 #include "nsIOfflineCacheUpdate.h"
 #include "nsCPrefetchService.h"
 #include "nsIChromeRegistry.h"
 #include "nsIMIMEHeaderParam.h"
 #include "nsIDOMDragEvent.h"
 #include "nsDOMDataTransfer.h"
-#include "nsHtml5Module.h"
 
 #ifdef IBMBIDI
 #include "nsIBidiKeyboard.h"
 #endif
 #include "nsCycleCollectionParticipant.h"
 
 // for ReportToConsole
 #include "nsIStringBundle.h"
@@ -3574,68 +3573,16 @@ nsContentUtils::CreateContextualFragment
   nsresult rv;
   nsCOMPtr<nsINode> node = do_QueryInterface(aContextNode);
   NS_ENSURE_TRUE(node, NS_ERROR_NOT_AVAILABLE);
 
   // If we don't have a document here, we can't get the right security context
   // for compiling event handlers... so just bail out.
   nsCOMPtr<nsIDocument> document = node->GetOwnerDoc();
   NS_ENSURE_TRUE(document, NS_ERROR_NOT_AVAILABLE);
-  
-  PRBool bCaseSensitive = document->IsCaseSensitive();
-
-  nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(document));
-  PRBool bHTML = htmlDoc && !bCaseSensitive;
-
-  if (bHTML && nsHtml5Module::Enabled) {
-    // See if the document has a cached fragment parser. nsHTMLDocument is the
-    // only one that should really have one at the moment.
-    nsCOMPtr<nsIParser> parser = document->GetFragmentParser();
-    if (parser) {
-      // Get the parser ready to use.
-      parser->Reset();
-    }
-    else {
-      // Create a new parser for this operation.
-      parser = nsHtml5Module::NewHtml5Parser();
-      if (!parser) {
-        return NS_ERROR_OUT_OF_MEMORY;
-      }
-      document->SetFragmentParser(parser);
-    }
-    nsCOMPtr<nsIDOMDocumentFragment> frag;
-    rv = NS_NewDocumentFragment(getter_AddRefs(frag), document->NodeInfoManager());
-    NS_ENSURE_SUCCESS(rv, rv);
-    
-    nsCOMPtr<nsIContent> contextAsContent = do_QueryInterface(aContextNode);
-    if (contextAsContent && !contextAsContent->IsNodeOfType(nsINode::eELEMENT)) {
-      contextAsContent = contextAsContent->GetParent();
-      if (contextAsContent && !contextAsContent->IsNodeOfType(nsINode::eELEMENT)) {
-        // can this even happen?
-        contextAsContent = nsnull;
-      }
-    }
-    
-    if (contextAsContent) {
-      parser->ParseFragment(aFragment, 
-                            frag, 
-                            contextAsContent->Tag(), 
-                            contextAsContent->GetNameSpaceID(), 
-                            (document->GetCompatibilityMode() == eCompatibility_NavQuirks));    
-    } else {
-      parser->ParseFragment(aFragment, 
-                            frag, 
-                            nsGkAtoms::body, 
-                            kNameSpaceID_XHTML, 
-                            (document->GetCompatibilityMode() == eCompatibility_NavQuirks));
-    }
-  
-    NS_ADDREF(*aReturn = frag);
-    return NS_OK;
-  }
 
   nsAutoTArray<nsString, 32> tagStack;
   nsAutoString uriStr, nameStr;
   nsCOMPtr<nsIContent> content = do_QueryInterface(aContextNode);
   // just in case we have a text node
   if (content && !content->IsNodeOfType(nsINode::eELEMENT))
     content = content->GetParent();
 
@@ -3683,19 +3630,24 @@ nsContentUtils::CreateContextualFragment
                        NS_LITERAL_STRING("\""));
       }
     }
 
     content = content->GetParent();
   }
 
   nsCAutoString contentType;
+  PRBool bCaseSensitive = PR_TRUE;
   nsAutoString buf;
   document->GetContentType(buf);
   LossyCopyUTF16toASCII(buf, contentType);
+  bCaseSensitive = document->IsCaseSensitive();
+
+  nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(document));
+  PRBool bHTML = htmlDoc && !bCaseSensitive;
 
   // See if the document has a cached fragment parser. nsHTMLDocument is the
   // only one that should really have one at the moment.
   nsCOMPtr<nsIParser> parser = document->GetFragmentParser();
   if (parser) {
     // Get the parser ready to use.
     parser->Reset();
   }
--- a/content/base/src/nsDOMAttribute.cpp
+++ b/content/base/src/nsDOMAttribute.cpp
@@ -694,19 +694,18 @@ nsDOMAttribute::InsertChildAt(nsIContent
 
 nsresult
 nsDOMAttribute::AppendChildTo(nsIContent* aKid, PRBool aNotify)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 nsresult
-nsDOMAttribute::RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent)
+nsDOMAttribute::RemoveChildAt(PRUint32 aIndex, PRBool aNotify)
 {
-  NS_ASSERTION(aMutationEvent, "Someone tried to inhibit mutations on attribute child removal.");
   if (aIndex != 0 || !mChild) {
     return NS_OK;
   }
 
   nsCOMPtr<nsIContent> child = mChild;
   nsMutationGuard::DidMutate();
   mozAutoDocUpdate updateBatch(GetOwnerDoc(), UPDATE_CONTENT_MODEL, aNotify);
   nsMutationGuard guard;
--- a/content/base/src/nsDOMAttribute.h
+++ b/content/base/src/nsDOMAttribute.h
@@ -93,17 +93,17 @@ public:
   virtual PRBool IsNodeOfType(PRUint32 aFlags) const;
   virtual PRUint32 GetChildCount() const;
   virtual nsIContent *GetChildAt(PRUint32 aIndex) const;
   virtual nsIContent * const * GetChildArray(PRUint32* aChildCount) const;
   virtual PRInt32 IndexOf(nsINode* aPossibleChild) const;
   virtual nsresult InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                  PRBool aNotify);
   virtual nsresult AppendChildTo(nsIContent* aKid, PRBool aNotify);
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent = PR_TRUE);
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify);
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
   virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor);
   virtual nsresult DispatchDOMEvent(nsEvent* aEvent, nsIDOMEvent* aDOMEvent,
                                     nsPresContext* aPresContext,
                                     nsEventStatus* aEventStatus);
   virtual nsIEventListenerManager* GetListenerManager(PRBool aCreateIfNotFound);
   virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener,
                                          const nsIID& aIID);
--- a/content/base/src/nsDocument.cpp
+++ b/content/base/src/nsDocument.cpp
@@ -3216,32 +3216,30 @@ nsDocument::AppendChildTo(nsIContent* aK
   // subclasses wanted to hook into this stuff, they would have
   // overridden AppendChildTo.
   // XXXbz maybe this should just be a non-virtual method on nsINode?
   // Feels that way to me...
   return nsDocument::InsertChildAt(aKid, GetChildCount(), aNotify);
 }
 
 nsresult
-nsDocument::RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent)
-{
-  NS_ASSERTION(aMutationEvent, "Someone tried to inhibit mutations on document child removal.");
+nsDocument::RemoveChildAt(PRUint32 aIndex, PRBool aNotify)
+{
   nsCOMPtr<nsIContent> oldKid = GetChildAt(aIndex);
   if (!oldKid) {
     return NS_OK;
   }
 
   if (oldKid->IsNodeOfType(nsINode::eELEMENT)) {
     // Destroy the link map up front before we mess with the child list.
     DestroyLinkMap();
   }
 
   nsresult rv = nsGenericElement::doRemoveChildAt(aIndex, aNotify, oldKid,
-                                                  nsnull, this, mChildren, 
-                                                  aMutationEvent);
+                                                  nsnull, this, mChildren);
   mCachedRootContent = nsnull;
   return rv;
 }
 
 PRInt32
 nsDocument::GetNumberOfStyleSheets() const
 {
   return mStyleSheets.Count();
--- a/content/base/src/nsDocument.h
+++ b/content/base/src/nsDocument.h
@@ -805,17 +805,17 @@ public:
   virtual PRBool IsNodeOfType(PRUint32 aFlags) const;
   virtual nsIContent *GetChildAt(PRUint32 aIndex) const;
   virtual nsIContent * const * GetChildArray(PRUint32* aChildCount) const;
   virtual PRInt32 IndexOf(nsINode* aPossibleChild) const;
   virtual PRUint32 GetChildCount() const;
   virtual nsresult InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                  PRBool aNotify);
   virtual nsresult AppendChildTo(nsIContent* aKid, PRBool aNotify);
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent = PR_TRUE);
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify);
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
   virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor);
   virtual nsresult DispatchDOMEvent(nsEvent* aEvent, nsIDOMEvent* aDOMEvent,
                                     nsPresContext* aPresContext,
                                     nsEventStatus* aEventStatus);
   virtual nsIEventListenerManager* GetListenerManager(PRBool aCreateIfNotFound);
   virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener,
                                          const nsIID& aIID);
--- a/content/base/src/nsGenericDOMDataNode.cpp
+++ b/content/base/src/nsGenericDOMDataNode.cpp
@@ -747,17 +747,17 @@ nsGenericDOMDataNode::IndexOf(nsINode* a
 nsresult
 nsGenericDOMDataNode::InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                     PRBool aNotify)
 {
   return NS_OK;
 }
 
 nsresult
-nsGenericDOMDataNode::RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent)
+nsGenericDOMDataNode::RemoveChildAt(PRUint32 aIndex, PRBool aNotify)
 {
   return NS_OK;
 }
 
 // virtual
 PRBool
 nsGenericDOMDataNode::MayHaveFrame() const
 {
--- a/content/base/src/nsGenericDOMDataNode.h
+++ b/content/base/src/nsGenericDOMDataNode.h
@@ -161,17 +161,17 @@ public:
 
   // nsINode methods
   virtual PRUint32 GetChildCount() const;
   virtual nsIContent *GetChildAt(PRUint32 aIndex) const;
   virtual nsIContent * const * GetChildArray(PRUint32* aChildCount) const;
   virtual PRInt32 IndexOf(nsINode* aPossibleChild) const;
   virtual nsresult InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                  PRBool aNotify);
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent = PR_TRUE);
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify);
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
   virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor);
   virtual nsresult DispatchDOMEvent(nsEvent* aEvent, nsIDOMEvent* aDOMEvent,
                                     nsPresContext* aPresContext,
                                     nsEventStatus* aEventStatus);
   virtual nsIEventListenerManager* GetListenerManager(PRBool aCreateIfNotFound);
   virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener,
                                          const nsIID& aIID);
--- a/content/base/src/nsGenericElement.cpp
+++ b/content/base/src/nsGenericElement.cpp
@@ -3241,36 +3241,35 @@ nsGenericElement::doInsertChildAt(nsICon
       nsEventDispatcher::Dispatch(aKid, nsnull, &mutation);
     }
   }
 
   return NS_OK;
 }
 
 nsresult
-nsGenericElement::RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent)
+nsGenericElement::RemoveChildAt(PRUint32 aIndex, PRBool aNotify)
 {
   nsCOMPtr<nsIContent> oldKid = mAttrsAndChildren.GetSafeChildAt(aIndex);
   NS_ASSERTION(oldKid == GetChildAt(aIndex), "Unexpected child in RemoveChildAt");
 
   if (oldKid) {
     return doRemoveChildAt(aIndex, aNotify, oldKid, this, GetCurrentDoc(),
-                           mAttrsAndChildren, aMutationEvent);
+                           mAttrsAndChildren);
   }
 
   return NS_OK;
 }
 
 /* static */
 nsresult
 nsGenericElement::doRemoveChildAt(PRUint32 aIndex, PRBool aNotify,
                                   nsIContent* aKid, nsIContent* aParent,
                                   nsIDocument* aDocument,
-                                  nsAttrAndChildArray& aChildArray,
-                                  PRBool aMutationEvent)
+                                  nsAttrAndChildArray& aChildArray)
 {
   NS_PRECONDITION(aParent || aDocument, "Must have document if no parent!");
   NS_PRECONDITION(!aParent || aParent->GetCurrentDoc() == aDocument,
                   "Incorrect aDocument");
 
 #ifdef ACCESSIBILITY
   // A11y needs to be notified of content removals first, so accessibility
   // events can be fired before any changes occur
@@ -3296,17 +3295,16 @@ nsGenericElement::doRemoveChildAt(PRUint
                   container->IndexOf(aKid) == (PRInt32)aIndex, "Bogus aKid");
 
   mozAutoDocUpdate updateBatch(aDocument, UPDATE_CONTENT_MODEL, aNotify);
 
   nsMutationGuard guard;
 
   mozAutoSubtreeModified subtree(nsnull, nsnull);
   if (aNotify &&
-      aMutationEvent &&
       nsContentUtils::HasMutationListeners(aKid,
         NS_EVENT_BITS_MUTATION_NODEREMOVED, container)) {
     mozAutoRemovableBlockerRemover blockerRemover;
 
     nsMutationEvent mutation(PR_TRUE, NS_MUTATION_NODEREMOVED);
     mutation.mRelatedNode = do_QueryInterface(container);
 
     subtree.UpdateTarget(container->GetOwnerDoc(), container);
--- a/content/base/src/nsGenericElement.h
+++ b/content/base/src/nsGenericElement.h
@@ -349,17 +349,17 @@ public:
 
   // nsINode interface methods
   virtual PRUint32 GetChildCount() const;
   virtual nsIContent *GetChildAt(PRUint32 aIndex) const;
   virtual nsIContent * const * GetChildArray(PRUint32* aChildCount) const;
   virtual PRInt32 IndexOf(nsINode* aPossibleChild) const;
   virtual nsresult InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                  PRBool aNotify);
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent = PR_TRUE);
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify);
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
   virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor);
   virtual nsresult DispatchDOMEvent(nsEvent* aEvent, nsIDOMEvent* aDOMEvent,
                                     nsPresContext* aPresContext,
                                     nsEventStatus* aEventStatus);
   virtual nsIEventListenerManager* GetListenerManager(PRBool aCreateIfNotFound);
   virtual nsresult AddEventListenerByIID(nsIDOMEventListener *aListener,
                                          const nsIID& aIID);
@@ -649,18 +649,17 @@ public:
    *                  non-null if aParent is null (in which case aKid is being
    *                  removed as its child) and must match
    *                  aParent->GetCurrentDoc() if aParent is not null.
    * @param aChildArray The child array to work with
    */
   static nsresult doRemoveChildAt(PRUint32 aIndex, PRBool aNotify,
                                   nsIContent* aKid, nsIContent* aParent,
                                   nsIDocument* aDocument,
-                                  nsAttrAndChildArray& aChildArray,
-                                  PRBool aMutationEvent);
+                                  nsAttrAndChildArray& aChildArray);
 
   /**
    * Helper methods for implementing querySelector/querySelectorAll
    */
   static nsresult doQuerySelector(nsINode* aRoot, const nsAString& aSelector,
                                   nsIDOMElement **aReturn);
   static nsresult doQuerySelectorAll(nsINode* aRoot,
                                      const nsAString& aSelector,
--- a/content/base/src/nsHTMLContentSerializer.cpp
+++ b/content/base/src/nsHTMLContentSerializer.cpp
@@ -63,17 +63,16 @@
 #include "nsEscape.h"
 #include "nsITextToSubURI.h"
 #include "nsCRT.h"
 #include "nsIParserService.h"
 #include "nsContentUtils.h"
 #include "nsLWBrkCIID.h"
 #include "nsIScriptElement.h"
 #include "nsAttrName.h"
-#include "nsHtml5Module.h"
 
 static const char kMozStr[] = "moz";
 
 static const PRInt32 kLongLineLen = 128;
 
 nsresult NS_NewHTMLContentSerializer(nsIContentSerializer** aSerializer)
 {
   nsHTMLContentSerializer* it = new nsHTMLContentSerializer();
@@ -96,59 +95,37 @@ nsHTMLContentSerializer::~nsHTMLContentS
 
 NS_IMETHODIMP
 nsHTMLContentSerializer::AppendDocumentStart(nsIDOMDocument *aDocument,
                                              nsAString& aStr)
 {
   return NS_OK;
 }
 
-#include "nsIHTMLDocument.h"
 void 
 nsHTMLContentSerializer::SerializeAttributes(nsIContent* aContent,
                                              nsIDOMElement *aOriginalElement,
                                              nsAString& aTagPrefix,
                                              const nsAString& aTagNamespaceURI,
                                              nsIAtom* aTagName,
                                              nsAString& aStr)
 {
-  PRInt32 count = aContent->GetAttrCount();
-  if (!count)
-    return;
+  nsresult rv;
+  PRUint32 index, count;
+  nsAutoString nameStr, valueStr;
 
-  nsresult rv;
-  nsAutoString nameStr, valueStr;
+  count = aContent->GetAttrCount();
+
   NS_NAMED_LITERAL_STRING(_mozStr, "_moz");
 
-  // HTML5 parser stored them in the order they were parsed so we want to
-  // loop forward in that case.
-  nsIDocument* doc = aContent->GetOwnerDocument();
-  PRBool caseSensitive = doc && doc->IsCaseSensitive();
-  PRBool loopForward = PR_FALSE;
-  if (!caseSensitive) {
-    nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(doc));
-    if (htmlDoc) {
-      loopForward = nsHtml5Module::Enabled;
-    }
-  }
-  PRInt32 index, limit, step;
-  if (loopForward) {
-    index = 0;
-    limit = count;
-    step = 1;
-  }
-  else {
-    // Loop backward over the attributes, since the order they are stored in is
-    // the opposite of the order they were parsed in (see bug 213347 for reason).
-    index = count - 1;
-    limit = -1;
-    step = -1;
-  }
-  
-  for (; index != limit; index += step) {
+  // Loop backward over the attributes, since the order they are stored in is
+  // the opposite of the order they were parsed in (see bug 213347 for reason).
+  // index is unsigned, hence index >= 0 is always true.
+  for (index = count; index > 0; ) {
+    --index;
     const nsAttrName* name = aContent->GetAttrNameAt(index);
     PRInt32 namespaceID = name->NamespaceID();
     nsIAtom* attrName = name->LocalName();
 
     // Filter out any attribute starting with [-|_]moz
     const char* sharedName;
     attrName->GetUTF8String(&sharedName);
     if ((('_' == *sharedName) || ('-' == *sharedName)) &&
--- a/content/base/test/test_bug417255.html
+++ b/content/base/test/test_bug417255.html
@@ -10,30 +10,30 @@ https://bugzilla.mozilla.org/show_bug.cg
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
   <style>
   .spacer { display:inline-block; height:10px; }
   </style>
 </head>
 <body>
 
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=417255">Mozilla Bug 417255</a>
-<div id="display" style="width:800px"></div>
+<p id="display" style="width:800px"></p>
 
-<div><span id="s1" style="border:2px dotted red;"><span class="spacer" style="width:100px"></span>
+<p><span id="s1" style="border:2px dotted red;"><span class="spacer" style="width:100px"></span>
 <div style="width:500px; height:100px; background:yellow;"></div>
-<span class="spacer" style="width:200px"></span></span></div>
+<span class="spacer" style="width:200px"></span></span>
 
-<div><span id="s2" style="border:2px dotted red;"><span class="spacer" style="width:100px"></span>
+<p><span id="s2" style="border:2px dotted red;"><span class="spacer" style="width:100px"></span>
 <div style="width:150px; height:100px; background:yellow;"></div>
-<span class="spacer" style="width:200px"></span></span></div>
+<span class="spacer" style="width:200px"></span></span>
 
 <!-- test nested spans around the IB split -->
-<div><span id="s3" style="border:2px dotted red;"><span><span class="spacer" style="width:100px"></span>
+<p><span id="s3" style="border:2px dotted red;"><span><span class="spacer" style="width:100px"></span>
 <div style="width:500px; height:100px; background:yellow;"></div>
-<span class="spacer" style="width:200px"></span></span></span></div>
+<span class="spacer" style="width:200px"></span></span></span>
 
 <div id="content" style="display: none">
 
 </div>
 
 <pre id="test">
 <script class="testbody" type="text/javascript">
 
--- a/content/html/content/src/nsHTMLOptGroupElement.cpp
+++ b/content/html/content/src/nsHTMLOptGroupElement.cpp
@@ -73,17 +73,17 @@ public:
   NS_FORWARD_NSIDOMHTMLELEMENT(nsGenericHTMLElement::)
 
   // nsIDOMHTMLOptGroupElement
   NS_DECL_NSIDOMHTMLOPTGROUPELEMENT
 
   // nsGenericElement
   virtual nsresult InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                  PRBool aNotify);
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent = PR_TRUE);
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify);
 
   // nsIContent
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
 
   virtual PRInt32 IntrinsicState() const;
  
   virtual nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const;
 
@@ -180,21 +180,20 @@ nsHTMLOptGroupElement::InsertChildAt(nsI
   nsresult rv = nsGenericHTMLElement::InsertChildAt(aKid, aIndex, aNotify);
   if (NS_FAILED(rv)) {
     safeMutation.MutationFailed();
   }
   return rv;
 }
 
 nsresult
-nsHTMLOptGroupElement::RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent)
+nsHTMLOptGroupElement::RemoveChildAt(PRUint32 aIndex, PRBool aNotify)
 {
-  NS_ASSERTION(aMutationEvent, "Someone tried to inhibit mutation events on optgroup child removal.");
   nsSafeOptionListMutation safeMutation(GetSelect(), this, nsnull, aIndex);
-  nsresult rv = nsGenericHTMLElement::RemoveChildAt(aIndex, aNotify, aMutationEvent);
+  nsresult rv = nsGenericHTMLElement::RemoveChildAt(aIndex, aNotify);
   if (NS_FAILED(rv)) {
     safeMutation.MutationFailed();
   }
   return rv;
 }
 
 PRInt32
 nsHTMLOptGroupElement::IntrinsicState() const
--- a/content/html/content/src/nsHTMLSelectElement.cpp
+++ b/content/html/content/src/nsHTMLSelectElement.cpp
@@ -203,21 +203,20 @@ nsHTMLSelectElement::InsertChildAt(nsICo
   nsresult rv = nsGenericHTMLFormElement::InsertChildAt(aKid, aIndex, aNotify);
   if (NS_FAILED(rv)) {
     safeMutation.MutationFailed();
   }
   return rv;
 }
 
 nsresult
-nsHTMLSelectElement::RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent)
+nsHTMLSelectElement::RemoveChildAt(PRUint32 aIndex, PRBool aNotify)
 {
-  NS_ASSERTION(aMutationEvent, "Someone tried to inhibit mutations on select child removal.");
   nsSafeOptionListMutation safeMutation(this, this, nsnull, aIndex);
-  nsresult rv = nsGenericHTMLFormElement::RemoveChildAt(aIndex, aNotify, aMutationEvent);
+  nsresult rv = nsGenericHTMLFormElement::RemoveChildAt(aIndex, aNotify);
   if (NS_FAILED(rv)) {
     safeMutation.MutationFailed();
   }
   return rv;
 }
 
 
 // SelectElement methods
--- a/content/html/content/src/nsHTMLSelectElement.h
+++ b/content/html/content/src/nsHTMLSelectElement.h
@@ -266,17 +266,17 @@ public:
   NS_DECL_NSIDOMNSHTMLSELECTELEMENT
 
   // nsIContent
   virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor);
 
   virtual PRBool IsHTMLFocusable(PRBool *aIsFocusable, PRInt32 *aTabIndex);
   virtual nsresult InsertChildAt(nsIContent* aKid, PRUint32 aIndex,
                                  PRBool aNotify);
-  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify, PRBool aMutationEvent = PR_TRUE);
+  virtual nsresult RemoveChildAt(PRUint32 aIndex, PRBool aNotify);
 
   // Overriden nsIFormControl methods
   NS_IMETHOD_(PRInt32) GetType() const { return NS_FORM_SELECT; }
   NS_IMETHOD Reset();
   NS_IMETHOD SubmitNamesValues(nsIFormSubmission* aFormSubmission,
                                nsIContent* aSubmitElement);
   NS_IMETHOD SaveState();
   virtual PRBool RestoreState(nsPresState* aState);
new file mode 100644
--- /dev/null
+++ b/content/html/document/reftests/bug448564-2_malformed.html
@@ -0,0 +1,11 @@
+<html>
+<body>
+  <s>
+  <form>a</form>
+  <iframe></iframe>
+  <script src=a></script>
+  <form></form>
+  <table>
+  <optgroup>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/content/html/document/reftests/bug448564-2_well-formed.html
@@ -0,0 +1,14 @@
+<html>
+<body>
+  <s>
+    <form>a</form>
+    <iframe></iframe>
+  </s>
+  <form></form>
+  <form>
+    <select>
+      <optgroup></optgroup>
+    </select>
+  </form>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/content/html/document/reftests/bug448564-3_malformed.html
@@ -0,0 +1,4 @@
+<table>
+  <th>head</th>
+  <optgroup></optgroup>
+</table>
new file mode 100644
--- /dev/null
+++ b/content/html/document/reftests/bug448564-3_well-formed.html
@@ -0,0 +1,8 @@
+<form>
+  <select>
+    <optgroup></optgroup>
+  </select>
+</form>
+<table>
+  <th>head</th>
+</table>
new file mode 100644
--- /dev/null
+++ b/content/html/document/reftests/bug448564-5_malformed.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css"
+        href="bug448564_forms.css">
+  </link>
+</head>
+<body>
+  <form>
+    <table>
+      <optgroup></optgroup>
+    </table>
+    <input type="button" value="button"></input>
+  </form>
+  <b>asdf</b>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/content/html/document/reftests/bug448564-5_well-formed.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css"
+        href="bug448564_forms.css">
+  </link>
+</head>
+<body>
+  <form>
+    <select>
+      <optgroup></optgroup>
+    </select>
+    <table></table>
+    <input type="button" value="button"></input>
+  </form>
+  <b>asdf</b>
+</body>
+</html>
--- a/content/html/document/reftests/reftests.list
+++ b/content/html/document/reftests/reftests.list
@@ -1,4 +1,10 @@
 == bug448564-1_malformed.html bug448564-1_well-formed.html
 == bug448564-1_malformed.html bug448564-1_ideal.html
 
+== bug448564-2_malformed.html bug448564-2_well-formed.html
+
+== bug448564-3_malformed.html bug448564-3_well-formed.html
+
 == bug448564-4a.html          bug448564-4b.html
+
+== bug448564-5_malformed.html bug448564-5_well-formed.html
--- a/content/html/document/src/Makefile.in
+++ b/content/html/document/src/Makefile.in
@@ -71,17 +71,16 @@ REQUIRES	= xpcom \
 		  xpconnect \
 		  unicharutil \
 		  commandhandler \
 		  composer \
 		  editor \
 		  plugin \
 		  txtsvc \
 		  uriloader \
-		  html5 \
 		  $(NULL)
 
 CPPSRCS		= \
 		nsHTMLContentSink.cpp \
 		nsHTMLFragmentContentSink.cpp \
 		nsHTMLDocument.cpp \
 		nsImageDocument.cpp \
 		nsMediaDocument.cpp \
--- a/content/html/document/src/nsHTMLContentSink.cpp
+++ b/content/html/document/src/nsHTMLContentSink.cpp
@@ -206,16 +206,18 @@ public:
   NS_IMETHOD DidProcessAToken(void);
   NS_IMETHOD NotifyTagObservers(nsIParserNode* aNode);
   NS_IMETHOD BeginContext(PRInt32 aID);
   NS_IMETHOD EndContext(PRInt32 aID);
   NS_IMETHOD OpenHead();
   NS_IMETHOD IsEnabled(PRInt32 aTag, PRBool* aReturn);
   NS_IMETHOD_(PRBool) IsFormOnStack();
 
+  virtual nsresult ProcessMETATag(nsIContent* aContent);
+
 #ifdef DEBUG
   // nsIDebugDumpContent
   NS_IMETHOD DumpContentModel();
 #endif
 
 protected:
   // If aCheckIfPresent is true, will only set an attribute in cases
   // when it's not already set.
@@ -2948,16 +2950,43 @@ HTMLContentSink::ProcessLINKTag(const ns
         }
       }
     }
   }
 
   return result;
 }
 
+/* 
+ * Extends nsContentSink::ProcessMETATag to grab the 'viewport' meta tag. This
+ * information is ignored by the generic content sink because it only stores
+ * http-equiv meta tags.
+ *
+ * Initially implemented for bug #436083
+ */
+nsresult
+HTMLContentSink::ProcessMETATag(nsIContent *aContent) {
+
+  /* Call the superclass method. */
+  nsContentSink::ProcessMETATag(aContent);
+
+  nsresult rv = NS_OK;
+
+  /* Look for the viewport meta tag. If we find it, process it and put the
+   * data into the document header. */
+  if (aContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::name,
+                            nsGkAtoms::viewport, eIgnoreCase)) {
+    nsAutoString value;
+    aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::content, value);
+    rv = nsContentUtils::ProcessViewportInfo(mDocument, value);
+  }
+
+  return rv;
+}
+
 #ifdef DEBUG
 void
 HTMLContentSink::ForceReflow()
 {
   mCurrentContext->FlushTags();
 }
 #endif
 
--- a/content/html/document/src/nsHTMLDocument.cpp
+++ b/content/html/document/src/nsHTMLDocument.cpp
@@ -136,17 +136,16 @@
 #include "nsNodeInfoManager.h"
 #include "nsIEditor.h"
 #include "nsIEditorDocShell.h"
 #include "nsIEditorStyleSheets.h"
 #include "nsIInlineSpellChecker.h"
 #include "nsRange.h"
 #include "mozAutoDocUpdate.h"
 #include "nsCCUncollectableMarker.h"
-#include "nsHtml5Module.h"
 #include "prprf.h"
 
 #define NS_MAX_DOCUMENT_WRITE_DEPTH 20
 
 #define DETECTOR_CONTRACTID_MAX 127
 static char g_detector_contractid[DETECTOR_CONTRACTID_MAX + 1];
 static PRBool gInitDetector = PR_FALSE;
 static PRBool gPlugDetector = PR_FALSE;
@@ -650,35 +649,25 @@ nsresult
 nsHTMLDocument::StartDocumentLoad(const char* aCommand,
                                   nsIChannel* aChannel,
                                   nsILoadGroup* aLoadGroup,
                                   nsISupports* aContainer,
                                   nsIStreamListener **aDocListener,
                                   PRBool aReset,
                                   nsIContentSink* aSink)
 {
-  PRBool loadAsHtml5 = nsHtml5Module::Enabled;
-  if (aSink) {
-    loadAsHtml5 = PR_FALSE;
-  }
-
   nsCAutoString contentType;
   aChannel->GetContentType(contentType);
 
   if (contentType.Equals("application/xhtml+xml") &&
       (!aCommand || nsCRT::strcmp(aCommand, "view-source") != 0)) {
     // We're parsing XHTML as XML, remember that.
 
     mIsRegularHTML = PR_FALSE;
     mCompatMode = eCompatibility_FullStandards;
-    loadAsHtml5 = PR_FALSE;
-  }
-  
-  if (!(contentType.Equals("text/html") && aCommand && !nsCRT::strcmp(aCommand, "view"))) {
-    loadAsHtml5 = PR_FALSE;
   }
 #ifdef DEBUG
   else {
     NS_ASSERTION(mIsRegularHTML,
                  "Hey, someone forgot to reset mIsRegularHTML!!!");
   }
 #endif
 
@@ -715,22 +704,18 @@ nsHTMLDocument::StartDocumentLoad(const 
   if (cachingChan) {
     nsCOMPtr<nsISupports> cacheToken;
     cachingChan->GetCacheToken(getter_AddRefs(cacheToken));
     if (cacheToken)
       cacheDescriptor = do_QueryInterface(cacheToken);
   }
 
   if (needsParser) {
-    if (loadAsHtml5) {
-      mParser = nsHtml5Module::NewHtml5Parser();
-    } else {
-      mParser = do_CreateInstance(kCParserCID, &rv);
-      NS_ENSURE_SUCCESS(rv, rv);
-    }
+    mParser = do_CreateInstance(kCParserCID, &rv);
+    NS_ENSURE_SUCCESS(rv, rv);
   }
 
   PRInt32 textType = GET_BIDI_OPTION_TEXTTYPE(GetBidiOptions());
 
   // Look for the parent document.  Note that at this point we don't have our
   // content viewer set up yet, and therefore do not have a useful
   // mParentDocument.
 
@@ -935,38 +920,32 @@ nsHTMLDocument::StartDocumentLoad(const 
           charset.get(), charsetSource);
 #endif
     mParser->SetDocumentCharset(parserCharset, parserCharsetSource);
     mParser->SetCommand(aCommand);
 
     // create the content sink
     nsCOMPtr<nsIContentSink> sink;
 
-    if (aSink) {
-      NS_ASSERTION((!loadAsHtml5), "Panic: We are loading as HTML5 and someone tries to set an external sink!");
+    if (aSink)
       sink = aSink;
-    } else {
+    else {
       if (IsXHTML()) {
         nsCOMPtr<nsIXMLContentSink> xmlsink;
         rv = NS_NewXMLContentSink(getter_AddRefs(xmlsink), this, uri,
                                   docShell, aChannel);
 
         sink = xmlsink;
       } else {
-        if (loadAsHtml5) {
-          nsHtml5Module::Initialize(mParser, this, uri, docShell, aChannel);
-          sink = mParser->GetContentSink();
-        } else {
-          nsCOMPtr<nsIHTMLContentSink> htmlsink;
-
-          rv = NS_NewHTMLContentSink(getter_AddRefs(htmlsink), this, uri,
-                                     docShell, aChannel);
-
-          sink = htmlsink;
-        }
+        nsCOMPtr<nsIHTMLContentSink> htmlsink;
+
+        rv = NS_NewHTMLContentSink(getter_AddRefs(htmlsink), this, uri,
+                                   docShell, aChannel);
+
+        sink = htmlsink;
       }
       NS_ENSURE_SUCCESS(rv, rv);
 
       NS_ASSERTION(sink,
                    "null sink with successful result from factory method");
     }
 
     mParser->SetContentSink(sink);
@@ -1800,18 +1779,16 @@ nsresult
 nsHTMLDocument::OpenCommon(const nsACString& aContentType, PRBool aReplace)
 {
   if (IsXHTML()) {
     // No calling document.open() on XHTML
 
     return NS_ERROR_DOM_NOT_SUPPORTED_ERR;
   }
 
-  PRBool loadAsHtml5 = nsHtml5Module::Enabled;
-
   nsresult rv = NS_OK;
 
   // If we already have a parser we ignore the document.open call.
   if (mParser) {
 
     return NS_OK;
   }
 
@@ -1953,45 +1930,36 @@ nsHTMLDocument::OpenCommon(const nsACStr
     TurnEditingOff();
     EditingStateChanged();
   }
 
   // Store the security info of the caller now that we're done
   // resetting the document.
   mSecurityInfo = securityInfo;
 
-  if (loadAsHtml5) {
-    mParser = nsHtml5Module::NewHtml5Parser();
-    rv = NS_OK;
-  } else {
-    mParser = do_CreateInstance(kCParserCID, &rv);  
-  }
+  mParser = do_CreateInstance(kCParserCID, &rv);
 
   // This will be propagated to the parser when someone actually calls write()
   mContentType = aContentType;
 
   mWriteState = eDocumentOpened;
 
   if (NS_SUCCEEDED(rv)) {
-    if (loadAsHtml5) {
-      nsHtml5Module::Initialize(mParser, this, uri, shell, channel);
-    } else {
-      nsCOMPtr<nsIHTMLContentSink> sink;
-
-      rv = NS_NewHTMLContentSink(getter_AddRefs(sink), this, uri, shell,
-                                 channel);
-      if (NS_FAILED(rv)) {
-        // Don't use a parser without a content sink.
-        mParser = nsnull;
-        mWriteState = eNotWriting;
-        return rv;
-      }
-
-      mParser->SetContentSink(sink);
+    nsCOMPtr<nsIHTMLContentSink> sink;
+
+    rv = NS_NewHTMLContentSink(getter_AddRefs(sink), this, uri, shell,
+                               channel);
+    if (NS_FAILED(rv)) {
+      // Don't use a parser without a content sink.
+      mParser = nsnull;
+      mWriteState = eNotWriting;
+      return rv;
     }
+
+    mParser->SetContentSink(sink);
   }
 
   // Prepare the docshell and the document viewer for the impending
   // out of band document.write()
   shell->PrepareForNewContentModel();
 
   // Now check whether we were opened with a "replace" argument.  If
   // so, we need to tell the docshell to not create a new history
deleted file mode 100644
--- a/content/html/parser/Makefile.in
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1998
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either of the GNU General Public License Version 2 or later (the "GPL"),
-# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-DEPTH		= ../../..
-topsrcdir	= @top_srcdir@
-srcdir		= @srcdir@
-VPATH		= @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-DIRS		= public src
-
-# ifdef ENABLE_TESTS
-# DIRS		+= test
-# endif
-
-include $(topsrcdir)/config/rules.mk
-
deleted file mode 100644
--- a/content/html/parser/javasrc/AttributeName.java
+++ /dev/null
@@ -1,2793 +0,0 @@
-/*
- * Copyright (c) 2008-2009 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-import java.util.Arrays;
-
-import nu.validator.htmlparser.annotation.IdType;
-import nu.validator.htmlparser.annotation.Local;
-import nu.validator.htmlparser.annotation.NoLength;
-import nu.validator.htmlparser.annotation.NsUri;
-import nu.validator.htmlparser.annotation.Prefix;
-import nu.validator.htmlparser.annotation.QName;
-import nu.validator.htmlparser.annotation.Virtual;
-
-public final class AttributeName
-// Uncomment to regenerate
-//        implements Comparable<AttributeName> 
-{
-
-    private static final @NoLength @NsUri String[] ALL_NO_NS = { "", "", "",
-    // [NOCPP[
-            ""
-    // ]NOCPP]
-    };
-
-    private static final @NoLength @NsUri String[] XMLNS_NS = { "",
-            "http://www.w3.org/2000/xmlns/", "http://www.w3.org/2000/xmlns/",
-            // [NOCPP[
-            ""
-    // ]NOCPP]
-    };
-
-    private static final @NoLength @NsUri String[] XML_NS = { "",
-            "http://www.w3.org/XML/1998/namespace",
-            "http://www.w3.org/XML/1998/namespace",
-            // [NOCPP[
-            ""
-    // ]NOCPP]
-    };
-
-    private static final @NoLength @NsUri String[] XLINK_NS = { "",
-            "http://www.w3.org/1999/xlink", "http://www.w3.org/1999/xlink",
-            // [NOCPP[
-            ""
-    // ]NOCPP]
-    };
-
-    // [NOCPP[
-    private static final @NoLength @NsUri String[] LANG_NS = { "", "", "",
-            "http://www.w3.org/XML/1998/namespace" };
-
-    // ]NOCPP]
-
-    private static final @NoLength @Prefix String[] ALL_NO_PREFIX = { null,
-            null, null,
-            // [NOCPP[
-            null
-    // ]NOCPP]
-    };
-
-    private static final @NoLength @Prefix String[] XMLNS_PREFIX = { null,
-            "xmlns", "xmlns",
-            // [NOCPP[
-            null
-    // ]NOCPP]
-    };
-
-    private static final @NoLength @Prefix String[] XLINK_PREFIX = { null,
-            "xlink", "xlink",
-            // [NOCPP[
-            null
-    // ]NOCPP]
-    };
-
-    private static final @NoLength @Prefix String[] XML_PREFIX = { null, "xml",
-            "xml",
-            // [NOCPP[
-            null
-    // ]NOCPP]
-    };
-
-    // [NOCPP[
-
-    private static final @NoLength @Prefix String[] LANG_PREFIX = { null, null,
-            null, "xml" };
-
-    private static final boolean[] ALL_NCNAME = { true, true, true, true };
-
-    private static final boolean[] ALL_NO_NCNAME = { false, false, false, false };
-
-    private static @QName String[] COMPUTE_QNAME(String[] local, String[] prefix) {
-        @QName String[] rv = new String[4];
-        for (int i = 0; i < rv.length; i++) {
-            if (prefix[i] == null) {
-                rv[i] = local[i];
-            } else {
-                rv[i] = (prefix[i] + ':' + local[i]).intern();
-            }
-        }
-        return rv;
-    }
-
-    // ]NOCPP]
-
-    private static @NoLength @Local String[] SVG_DIFFERENT(@Local String name,
-            @Local String camel) {
-        @NoLength @Local String[] rv = new String[4];
-        rv[0] = name;
-        rv[1] = name;
-        rv[2] = camel;
-        // [NOCPP[
-        rv[3] = name;
-        // ]NOCPP]
-        return rv;
-    }
-
-    private static @NoLength @Local String[] MATH_DIFFERENT(@Local String name,
-            @Local String camel) {
-        @NoLength @Local String[] rv = new String[4];
-        rv[0] = name;
-        rv[1] = camel;
-        rv[2] = name;
-        // [NOCPP[
-        rv[3] = name;
-        // ]NOCPP]
-        return rv;
-    }
-
-    private static @NoLength @Local String[] COLONIFIED_LOCAL(
-            @Local String name, @Local String suffix) {
-        @NoLength @Local String[] rv = new String[4];
-        rv[0] = name;
-        rv[1] = suffix;
-        rv[2] = suffix;
-        // [NOCPP[
-        rv[3] = name;
-        // ]NOCPP]
-        return rv;
-    }
-
-    private static @NoLength @Local String[] SAME_LOCAL(@Local String name) {
-        @NoLength @Local String[] rv = new String[4];
-        rv[0] = name;
-        rv[1] = name;
-        rv[2] = name;
-        // [NOCPP[
-        rv[3] = name;
-        // ]NOCPP]
-        return rv;
-    }
-
-    /**
-     * Returns an attribute name by buffer.
-     * 
-     * <p>
-     * C++ ownership: The return value is either released by the caller if the
-     * attribute is a duplicate or the ownership is transferred to
-     * HtmlAttributes and released upon clearing or destroying that object.
-     * 
-     * @param buf
-     * @param offset
-     * @param length
-     * @param checkNcName
-     * @return
-     */
-    static AttributeName nameByBuffer(@NoLength char[] buf, int offset,
-            int length
-            // [NOCPP[
-            , boolean checkNcName
-    // ]NOCPP]
-    ) {
-        // XXX deal with offset
-        int hash = AttributeName.bufToHash(buf, length);
-        int index = Arrays.binarySearch(AttributeName.ATTRIBUTE_HASHES, hash);
-        if (index < 0) {
-            return AttributeName.createAttributeName(
-                    Portability.newLocalNameFromBuffer(buf, offset, length)
-                    // [NOCPP[
-                    , checkNcName
-            // ]NOCPP]
-            );
-        } else {
-            AttributeName rv = AttributeName.ATTRIBUTE_NAMES[index];
-            @Local String name = rv.getLocal(AttributeName.HTML);
-            if (!Portability.localEqualsBuffer(name, buf, offset, length)) {
-                return AttributeName.createAttributeName(
-                        Portability.newLocalNameFromBuffer(buf, offset, length)
-                        // [NOCPP[
-                        , checkNcName
-                // ]NOCPP]
-                );
-            }
-            return rv;
-        }
-    }
-
-    /**
-     * This method has to return a unique integer for each well-known
-     * lower-cased attribute name.
-     * 
-     * @param buf
-     * @param len
-     * @return
-     */
-    private static int bufToHash(@NoLength char[] buf, int len) {
-        int hash2 = 0;
-        int hash = len;
-        hash <<= 5;
-        hash += buf[0] - 0x60;
-        int j = len;
-        for (int i = 0; i < 4 && j > 0; i++) {
-            j--;
-            hash <<= 5;
-            hash += buf[j] - 0x60;
-            hash2 <<= 6;
-            hash2 += buf[i] - 0x5F;
-        }
-        return hash ^ hash2;
-    }
-
-    public static final int HTML = 0;
-
-    public static final int MATHML = 1;
-
-    public static final int SVG = 2;
-
-    // [NOCPP[
-
-    public static final int HTML_LANG = 3;
-
-    private final @IdType String type;
-
-    // ]NOCPP]
-
-    private final @NsUri @NoLength String[] uri;
-
-    private final @Local @NoLength String[] local;
-
-    private final @Prefix @NoLength String[] prefix;
-
-    // [NOCPP[
-
-    private final @QName @NoLength String[] qName;
-
-    // XXX convert to bitfield
-    private final @NoLength boolean[] ncname;
-
-    private final boolean xmlns;
-
-    /**
-     * @param type
-     * @param uri
-     * @param local
-     * @param name
-     * @param ncname
-     * @param xmlns
-     */
-    private AttributeName(@NsUri @NoLength String[] uri,
-            @Local @NoLength String[] local, @Prefix @NoLength String[] prefix,
-            @NoLength boolean[] ncname, boolean xmlns, @IdType String type) {
-        this.type = type;
-        this.uri = uri;
-        this.local = local;
-        this.prefix = prefix;
-
-        this.qName = COMPUTE_QNAME(local, prefix);
-        this.ncname = ncname;
-        this.xmlns = xmlns;
-    }
-
-    // ]NOCPP]
-
-    protected AttributeName(@NsUri @NoLength String[] uri,
-            @Local @NoLength String[] local, @Prefix @NoLength String[] prefix
-            // [NOCPP[
-            , @NoLength boolean[] ncname, boolean xmlns
-    // ]NOCPP]
-    ) {
-        // [NOCPP[
-        this.type = "CDATA";
-        // ]NOCPP]
-        this.uri = uri;
-        this.local = local;
-        this.prefix = prefix;
-        // [NOCPP[
-        this.qName = COMPUTE_QNAME(local, prefix);
-        this.ncname = ncname;
-        this.xmlns = xmlns;
-        // ]NOCPP]
-    }
-
-    private static AttributeName createAttributeName(@Local String name
-    // [NOCPP[
-            , boolean checkNcName
-    // ]NOCPP]
-    ) {
-        // [NOCPP[
-        boolean ncName = true;
-        boolean xmlns = name.startsWith("xmlns:");
-        if (checkNcName) {
-            if (xmlns) {
-                ncName = false;
-            } else {
-                ncName = NCName.isNCName(name);
-            }
-        }
-        // ]NOCPP]
-        return new AttributeName(AttributeName.ALL_NO_NS,
-                AttributeName.SAME_LOCAL(name), ALL_NO_PREFIX
-                // ]NOCPP]
-                , (ncName ? AttributeName.ALL_NCNAME
-                        : AttributeName.ALL_NO_NCNAME), xmlns
-        // ]NOCPP]
-        );
-    }
-
-    @Virtual void release() {
-        // No-op in Java.
-        // Implement as |delete this;| in subclass.
-    }
-
-    @SuppressWarnings("unused") private void destructor() {
-        Portability.releaseLocal(local[0]); // this must be a no-op for static
-        // locals
-        // for non-static cases the other array slots contain the same pointer
-        // as weak references.
-        Portability.deleteArray(local);
-    }
-
-    // [NOCPP[
-    static AttributeName create(@Local String name) {
-        return new AttributeName(AttributeName.ALL_NO_NS,
-                AttributeName.SAME_LOCAL(name), ALL_NO_PREFIX,
-                AttributeName.ALL_NCNAME, false);
-    }
-
-    public boolean isNcName(int mode) {
-        return ncname[mode];
-    }
-
-    public boolean isXmlns() {
-        return xmlns;
-    }
-
-    boolean isCaseFolded() {
-        return this == AttributeName.ACTIVE || this == AttributeName.ALIGN
-                || this == AttributeName.ASYNC
-                || this == AttributeName.AUTOCOMPLETE
-                || this == AttributeName.AUTOFOCUS
-                || this == AttributeName.AUTOSUBMIT
-                || this == AttributeName.CHECKED || this == AttributeName.CLEAR
-                || this == AttributeName.COMPACT
-                || this == AttributeName.DATAFORMATAS
-                || this == AttributeName.DECLARE
-                || this == AttributeName.DEFAULT || this == AttributeName.DEFER
-                || this == AttributeName.DIR || this == AttributeName.DISABLED
-                || this == AttributeName.ENCTYPE || this == AttributeName.FRAME
-                || this == AttributeName.ISMAP || this == AttributeName.METHOD
-                || this == AttributeName.MULTIPLE
-                || this == AttributeName.NOHREF
-                || this == AttributeName.NORESIZE
-                || this == AttributeName.NOSHADE
-                || this == AttributeName.NOWRAP
-                || this == AttributeName.READONLY
-                || this == AttributeName.REPLACE
-                || this == AttributeName.REQUIRED
-                || this == AttributeName.RULES || this == AttributeName.SCOPE
-                || this == AttributeName.SCROLLING
-                || this == AttributeName.SELECTED
-                || this == AttributeName.SHAPE || this == AttributeName.STEP
-                || this == AttributeName.TYPE || this == AttributeName.VALIGN
-                || this == AttributeName.VALUETYPE;
-    }
-
-    boolean isBoolean() {
-        return this == AttributeName.ACTIVE || this == AttributeName.ASYNC
-                || this == AttributeName.AUTOFOCUS
-                || this == AttributeName.AUTOSUBMIT
-                || this == AttributeName.CHECKED
-                || this == AttributeName.COMPACT
-                || this == AttributeName.DECLARE
-                || this == AttributeName.DEFAULT || this == AttributeName.DEFER
-                || this == AttributeName.DISABLED
-                || this == AttributeName.ISMAP
-                || this == AttributeName.MULTIPLE
-                || this == AttributeName.NOHREF
-                || this == AttributeName.NORESIZE
-                || this == AttributeName.NOSHADE
-                || this == AttributeName.NOWRAP
-                || this == AttributeName.READONLY
-                || this == AttributeName.REQUIRED
-                || this == AttributeName.SELECTED;
-    }
-
-    public @QName String getQName(int mode) {
-        return qName[mode];
-    }
-
-    public @IdType String getType(int mode) {
-        return type;
-    }
-
-    // ]NOCPP]
-
-    public @NsUri String getUri(int mode) {
-        return uri[mode];
-    }
-
-    public @Local String getLocal(int mode) {
-        return local[mode];
-    }
-
-    public @Prefix String getPrefix(int mode) {
-        return prefix[mode];
-    }
-
-    boolean equalsAnother(AttributeName another) {
-        return this.getLocal(AttributeName.HTML) == another.getLocal(AttributeName.HTML);
-    }
-
-    // START CODE ONLY USED FOR GENERATING CODE uncomment to regenerate
-//
-//    /**
-//     * @see java.lang.Object#toString()
-//     */
-//    @Override public String toString() {
-//        return "(" + formatNs() + ", " + formatLocal() + ", " + formatPrefix()
-//                + ", " + formatNcname() + ", " + (xmlns ? "true" : "false")
-//                + ("ID" == type ? ", \"ID\"" : "") + ")";
-//    }
-//
-//    public int compareTo(AttributeName other) {
-//        int thisHash = this.hash();
-//        int otherHash = other.hash();
-//        if (thisHash < otherHash) {
-//            return -1;
-//        } else if (thisHash == otherHash) {
-//            return 0;
-//        } else {
-//            return 1;
-//        }
-//    }
-//
-//    private String formatPrefix() {
-//        if (prefix[0] == null && prefix[1] == null && prefix[2] == null
-//                && prefix[3] == null) {
-//            return "ALL_NO_PREFIX";
-//        } else if (prefix[0] == null && prefix[1] == prefix[2]
-//                && prefix[3] == null) {
-//            if ("xmlns".equals(prefix[1])) {
-//                return "XMLNS_PREFIX";
-//            } else if ("xml".equals(prefix[1])) {
-//                return "XML_PREFIX";
-//            } else if ("xlink".equals(prefix[1])) {
-//                return "XLINK_PREFIX";
-//            } else {
-//                throw new IllegalStateException();
-//            }
-//        } else if (prefix[0] == null && prefix[1] == null && prefix[2] == null
-//                && prefix[3] == "xml") {
-//            return "LANG_PREFIX";
-//        } else {
-//            throw new IllegalStateException();
-//        }
-//    }
-//
-//    private String formatLocal() {
-//        if (local[0] == local[1] && local[0] == local[3]
-//                && local[0] != local[2]) {
-//            return "SVG_DIFFERENT(\"" + local[0] + "\", \"" + local[2] + "\")";
-//        }
-//        if (local[0] == local[2] && local[0] == local[3]
-//                && local[0] != local[1]) {
-//            return "MATH_DIFFERENT(\"" + local[0] + "\", \"" + local[1] + "\")";
-//        }
-//        if (local[0] == local[3] && local[1] == local[2]
-//                && local[0] != local[1]) {
-//            return "COLONIFIED_LOCAL(\"" + local[0] + "\", \"" + local[1]
-//                    + "\")";
-//        }
-//        for (int i = 1; i < local.length; i++) {
-//            if (local[0] != local[i]) {
-//                throw new IllegalStateException();
-//            }
-//        }
-//        return "SAME_LOCAL(\"" + local[0] + "\")";
-//    }
-//
-//    private String formatNs() {
-//        if (uri[0] == "" && uri[1] == "" && uri[2] == "" && uri[3] == "") {
-//            return "ALL_NO_NS";
-//        } else if (uri[0] == "" && uri[1] == uri[2] && uri[3] == "") {
-//            if ("http://www.w3.org/2000/xmlns/".equals(uri[1])) {
-//                return "XMLNS_NS";
-//            } else if ("http://www.w3.org/XML/1998/namespace".equals(uri[1])) {
-//                return "XML_NS";
-//            } else if ("http://www.w3.org/1999/xlink".equals(uri[1])) {
-//                return "XLINK_NS";
-//            } else {
-//                throw new IllegalStateException();
-//            }
-//        } else if (uri[0] == "" && uri[1] == "" && uri[2] == ""
-//                && uri[3] == "http://www.w3.org/XML/1998/namespace") {
-//            return "LANG_NS";
-//        } else {
-//            throw new IllegalStateException();
-//        }
-//    }
-//
-//    private String formatNcname() {
-//        for (int i = 0; i < ncname.length; i++) {
-//            if (!ncname[i]) {
-//                return "new boolean[]{" + ncname[0] + ", " + ncname[1] + ", "
-//                        + ncname[2] + ", " + ncname[3] + "}";
-//            }
-//        }
-//        return "ALL_NCNAME";
-//    }
-//
-//    private String constName() {
-//        String name = getLocal(HTML);
-//        char[] buf = new char[name.length()];
-//        for (int i = 0; i < name.length(); i++) {
-//            char c = name.charAt(i);
-//            if (c == '-' || c == ':') {
-//                buf[i] = '_';
-//            } else if (c >= 'a' && c <= 'z') {
-//                buf[i] = (char) (c - 0x20);
-//            } else {
-//                buf[i] = c;
-//            }
-//        }
-//        String rv = new String(buf);
-//        if ("UNICODE".equals(rv)) {
-//            return "UNI_CODE"; 
-//        }
-//        return rv;
-//    }
-//
-//    private int hash() {
-//        String name = getLocal(HTML);
-//        return bufToHash(name.toCharArray(), name.length());
-//    }
-//
-//    /**
-//     * Regenerate self
-//     * 
-//     * @param args
-//     */
-//    public static void main(String[] args) {
-//        Arrays.sort(ATTRIBUTE_NAMES);
-//        for (int i = 1; i < ATTRIBUTE_NAMES.length; i++) {
-//            if (ATTRIBUTE_NAMES[i].hash() == ATTRIBUTE_NAMES[i - 1].hash()) {
-//                System.err.println("Hash collision: "
-//                        + ATTRIBUTE_NAMES[i].getLocal(HTML) + ", "
-//                        + ATTRIBUTE_NAMES[i - 1].getLocal(HTML));
-//                return;
-//            }
-//        }
-//        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
-//            AttributeName att = ATTRIBUTE_NAMES[i];
-//            System.out.println("public static final AttributeName "
-//                    + att.constName() + " = new AttributeName" + att.toString()
-//                    + ";");
-//        }
-//        System.out.println("private final static @NoLength AttributeName[] ATTRIBUTE_NAMES = {");
-//        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
-//            AttributeName att = ATTRIBUTE_NAMES[i];
-//            System.out.println(att.constName() + ",");
-//        }
-//        System.out.println("};");
-//        System.out.println("private final static int[] ATTRIBUTE_HASHES = {");
-//        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
-//            AttributeName att = ATTRIBUTE_NAMES[i];
-//            System.out.println(Integer.toString(att.hash()) + ",");
-//        }
-//        System.out.println("};");
-//    }
-
-    // START GENERATED CODE
-    public static final AttributeName D = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("d"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName K = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("k"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName R = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("r"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName X = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("x"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName Y = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("y"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName Z = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("z"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("by"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("cx"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("cy"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("dx"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("dy"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName G2 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("g2"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName G1 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("g1"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fx"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fy"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName K4 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("k4"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName K2 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("k2"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName K3 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("k3"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName K1 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("k1"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ID = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("id"), ALL_NO_PREFIX, ALL_NCNAME, false, "ID");
-
-    public static final AttributeName IN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("in"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName U2 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("u2"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName U1 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("u1"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rt"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rx"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ry"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TO = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("to"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName Y2 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("y2"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName Y1 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("y1"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName X1 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("x1"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName X2 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("x2"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ALT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("alt"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DIR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("dir"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DUR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("dur"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName END = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("end"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("for"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName IN2 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("in2"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MAX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("max"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MIN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("min"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LOW = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("low"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REL = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rel"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REV = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rev"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SRC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("src"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName AXIS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("axis"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ABBR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("abbr"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BBOX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("bbox"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CITE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("cite"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CODE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("code"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BIAS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("bias"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COLS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("cols"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLIP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("clip"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CHAR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("char"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BASE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("base"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName EDGE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("edge"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DATA = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("data"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FILL = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fill"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FROM = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("from"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FORM = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("form"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FACE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("face"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HIGH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("high"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HREF = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("href"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OPEN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("open"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ICON = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("icon"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NAME = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("name"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MODE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("mode"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MASK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("mask"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LINK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("link"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LANG = new AttributeName(LANG_NS,
-            SAME_LOCAL("lang"), LANG_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LIST = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("list"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TYPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("type"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName WHEN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("when"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName WRAP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("wrap"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TEXT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("text"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PATH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("path"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ping"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REFX = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("refx", "refX"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REFY = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("refy", "refY"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("size"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SEED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("seed"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROWS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rows"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SPAN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("span"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STEP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("step"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("role"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName XREF = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("xref"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ASYNC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("async"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ALINK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("alink"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ALIGN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("align"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLOSE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("close"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COLOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("color"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLASS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("class"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLEAR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("clear"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BEGIN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("begin"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DEPTH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("depth"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DEFER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("defer"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FENCE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fence"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FRAME = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("frame"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ISMAP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ismap"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONEND = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onend"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName INDEX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("index"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ORDER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("order"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OTHER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("other"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONCUT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("oncut"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NARGS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("nargs"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MEDIA = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("media"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LABEL = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("label"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LOCAL = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("local"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName WIDTH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("width"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TITLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("title"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VLINK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("vlink"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VALUE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("value"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SLOPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("slope"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SHAPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("shape"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCOPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("scope"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCALE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("scale"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SPEED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("speed"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STYLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("style"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RULES = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rules"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STEMH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("stemh"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STEMV = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("stemv"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName START = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("start"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName XMLNS = new AttributeName(XMLNS_NS,
-            SAME_LOCAL("xmlns"), ALL_NO_PREFIX, new boolean[] { false, false,
-                    false, false }, true);
-
-    public static final AttributeName ACCEPT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("accept"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ACCENT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("accent"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ASCENT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ascent"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ACTIVE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("active"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ALTIMG = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("altimg"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ACTION = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("action"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BORDER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("border"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CURSOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("cursor"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COORDS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("coords"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FILTER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("filter"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FORMAT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("format"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HIDDEN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("hidden"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HSPACE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("hspace"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HEIGHT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("height"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONMOVE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onmove"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONLOAD = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onload"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDRAG = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ondrag"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ORIGIN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("origin"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONZOOM = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onzoom"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONHELP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onhelp"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONSTOP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onstop"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDROP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ondrop"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONBLUR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onblur"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OBJECT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("object"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OFFSET = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("offset"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ORIENT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("orient"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONCOPY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("oncopy"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NOWRAP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("nowrap"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NOHREF = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("nohref"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MACROS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("macros"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName METHOD = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("method"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LOWSRC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("lowsrc"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LSPACE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("lspace"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LQUOTE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("lquote"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName USEMAP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("usemap"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName WIDTHS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("widths"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TARGET = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("target"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VALUES = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("values"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VALIGN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("valign"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VSPACE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("vspace"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName POSTER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("poster"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName POINTS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("points"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PROMPT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("prompt"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCOPED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("scoped"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STRING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("string"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCHEME = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("scheme"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STROKE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("stroke"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RADIUS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("radius"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RESULT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("result"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REPEAT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("repeat"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RSPACE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rspace"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROTATE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rotate"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RQUOTE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rquote"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ALTTEXT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("alttext"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARCHIVE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("archive"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName AZIMUTH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("azimuth"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLOSURE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("closure"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CHECKED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("checked"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLASSID = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("classid"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CHAROFF = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("charoff"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BGCOLOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("bgcolor"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COLSPAN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("colspan"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CHARSET = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("charset"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COMPACT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("compact"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CONTENT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("content"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ENCTYPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("enctype"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DATASRC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("datasrc"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DATAFLD = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("datafld"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DECLARE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("declare"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DISPLAY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("display"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DIVISOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("divisor"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DEFAULT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("default"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DESCENT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("descent"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName KERNING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("kerning"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HANGING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("hanging"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HEADERS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("headers"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONPASTE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onpaste"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONCLICK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onclick"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OPTIMUM = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("optimum"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONBEGIN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onbegin"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONKEYUP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onkeyup"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONFOCUS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onfocus"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONERROR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onerror"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONINPUT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("oninput"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONABORT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onabort"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONSTART = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onstart"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONRESET = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onreset"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OPACITY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("opacity"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NOSHADE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("noshade"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MINSIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("minsize"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MAXSIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("maxsize"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LOOPEND = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("loopend"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LARGEOP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("largeop"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName UNI_CODE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("unicode"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TARGETX = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("targetx", "targetX"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName TARGETY = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("targety", "targetY"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName VIEWBOX = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("viewbox", "viewBox"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName VERSION = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("version"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PATTERN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("pattern"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PROFILE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("profile"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SPACING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("spacing"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RESTART = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("restart"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROWSPAN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rowspan"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SANDBOX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("sandbox"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SUMMARY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("summary"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STANDBY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("standby"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REPLACE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("replace"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName AUTOPLAY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("autoplay"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ADDITIVE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("additive"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CALCMODE = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("calcmode", "calcMode"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName CODETYPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("codetype"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CODEBASE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("codebase"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CONTROLS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("controls"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BEVELLED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("bevelled"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BASELINE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("baseline"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName EXPONENT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("exponent"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName EDGEMODE = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("edgemode", "edgeMode"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ENCODING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("encoding"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName GLYPHREF = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("glyphref", "glyphRef"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName DATETIME = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("datetime"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DISABLED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("disabled"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONTSIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fontsize"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName KEYTIMES = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("keytimes", "keyTimes"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName PANOSE_1 = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("panose-1"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName HREFLANG = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("hreflang"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONRESIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onresize"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONCHANGE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onchange"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONBOUNCE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onbounce"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONUNLOAD = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onunload"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONFINISH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onfinish"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONSCROLL = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onscroll"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OPERATOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("operator"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OVERFLOW = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("overflow"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONSUBMIT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onsubmit"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONREPEAT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onrepeat"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONSELECT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onselect"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NOTATION = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("notation"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NORESIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("noresize"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MANIFEST = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("manifest"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MATHSIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("mathsize"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MULTIPLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("multiple"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LONGDESC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("longdesc"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LANGUAGE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("language"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TEMPLATE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("template"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TABINDEX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("tabindex"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName READONLY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("readonly"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SELECTED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("selected"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROWLINES = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rowlines"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SEAMLESS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("seamless"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROWALIGN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rowalign"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STRETCHY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("stretchy"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REQUIRED = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("required"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName XML_BASE = new AttributeName(XML_NS,
-            COLONIFIED_LOCAL("xml:base", "base"), XML_PREFIX, new boolean[] {
-                    false, true, true, false }, false);
-
-    public static final AttributeName XML_LANG = new AttributeName(XML_NS,
-            COLONIFIED_LOCAL("xml:lang", "lang"), XML_PREFIX, new boolean[] {
-                    false, true, true, false }, false);
-
-    public static final AttributeName X_HEIGHT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("x-height"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_OWNS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("aria-owns"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName AUTOFOCUS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("autofocus"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_SORT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("aria-sort"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ACCESSKEY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("accesskey"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_BUSY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("aria-busy"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_GRAB = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("aria-grab"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName AMPLITUDE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("amplitude"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_LIVE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("aria-live"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLIP_RULE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("clip-rule"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CLIP_PATH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("clip-path"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName EQUALROWS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("equalrows"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ELEVATION = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("elevation"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DIRECTION = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("direction"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DRAGGABLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("draggable"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FILTERRES = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("filterres", "filterRes"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FILL_RULE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fill-rule"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONTSTYLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fontstyle"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONT_SIZE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("font-size"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName KEYPOINTS = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("keypoints", "keyPoints"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName HIDEFOCUS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("hidefocus"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONMESSAGE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onmessage"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName INTERCEPT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("intercept"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDRAGEND = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ondragend"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONMOVEEND = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onmoveend"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONINVALID = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("oninvalid"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONKEYDOWN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onkeydown"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONFOCUSIN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onfocusin"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONMOUSEUP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onmouseup"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName INPUTMODE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("inputmode"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONROWEXIT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onrowexit"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MATHCOLOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("mathcolor"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MASKUNITS = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("maskunits", "maskUnits"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MAXLENGTH = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("maxlength"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LINEBREAK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("linebreak"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName LOOPSTART = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("loopstart"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TRANSFORM = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("transform"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName V_HANGING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("v-hanging"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VALUETYPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("valuetype"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName POINTSATZ = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("pointsatz", "pointsAtZ"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName POINTSATX = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("pointsatx", "pointsAtX"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName POINTSATY = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("pointsaty", "pointsAtY"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName PLAYCOUNT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("playcount"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SYMMETRIC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("symmetric"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCROLLING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("scrolling"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REPEATDUR = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("repeatdur", "repeatDur"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName SELECTION = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("selection"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SEPARATOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("separator"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName XML_SPACE = new AttributeName(XML_NS,
-            COLONIFIED_LOCAL("xml:space", "space"), XML_PREFIX, new boolean[] {
-                    false, true, true, false }, false);
-
-    public static final AttributeName AUTOSUBMIT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("autosubmit"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ALPHABETIC = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("alphabetic"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ACTIONTYPE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("actiontype"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ACCUMULATE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("accumulate"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_LEVEL = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("aria-level"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COLUMNSPAN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("columnspan"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName CAP_HEIGHT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("cap-height"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName BACKGROUND = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("background"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName GLYPH_NAME = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("glyph-name"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName GROUPALIGN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("groupalign"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONTFAMILY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fontfamily"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONTWEIGHT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("fontweight"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONT_STYLE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("font-style"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName KEYSPLINES = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("keysplines", "keySplines"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName HTTP_EQUIV = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("http-equiv"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONACTIVATE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onactivate"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName OCCURRENCE = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("occurrence"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName IRRELEVANT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("irrelevant"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDBLCLICK = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ondblclick"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDRAGDROP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ondragdrop"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONKEYPRESS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onkeypress"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONROWENTER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onrowenter"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDRAGOVER = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("ondragover"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONFOCUSOUT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onfocusout"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONMOUSEOUT = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("onmouseout"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName NUMOCTAVES = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("numoctaves", "numOctaves"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName MARKER_MID = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("marker-mid"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MARKER_END = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("marker-end"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TEXTLENGTH = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("textlength", "textLength"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName VISIBILITY = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("visibility"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VIEWTARGET = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("viewtarget", "viewTarget"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName VERT_ADV_Y = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("vert-adv-y"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PATHLENGTH = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("pathlength", "pathLength"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName REPEAT_MAX = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("repeat-max"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RADIOGROUP = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("radiogroup"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STOP_COLOR = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("stop-color"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SEPARATORS = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("separators"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REPEAT_MIN = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("repeat-min"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ROWSPACING = new AttributeName(ALL_NO_NS,
-            SAME_LOCAL("rowspacing"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ZOOMANDPAN = new AttributeName(ALL_NO_NS,
-            SVG_DIFFERENT("zoomandpan", "zoomAndPan"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName XLINK_TYPE = new AttributeName(XLINK_NS,
-            COLONIFIED_LOCAL("xlink:type", "type"), XLINK_PREFIX,
-            new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName XLINK_ROLE = new AttributeName(XLINK_NS,
-            COLONIFIED_LOCAL("xlink:role", "role"), XLINK_PREFIX,
-            new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName XLINK_HREF = new AttributeName(XLINK_NS,
-            COLONIFIED_LOCAL("xlink:href", "href"), XLINK_PREFIX,
-            new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName XLINK_SHOW = new AttributeName(XLINK_NS,
-            COLONIFIED_LOCAL("xlink:show", "show"), XLINK_PREFIX,
-            new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName ACCENTUNDER = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("accentunder"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_SECRET = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-secret"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_ATOMIC = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-atomic"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_HIDDEN = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-hidden"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_FLOWTO = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-flowto"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARABIC_FORM = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("arabic-form"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName CELLPADDING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("cellpadding"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName CELLSPACING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("cellspacing"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName COLUMNWIDTH = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("columnwidth"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName COLUMNALIGN = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("columnalign"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName COLUMNLINES = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("columnlines"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName CONTEXTMENU = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("contextmenu"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName BASEPROFILE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("baseprofile", "baseProfile"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONT_FAMILY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("font-family"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FRAMEBORDER = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("frameborder"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FILTERUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("filterunits", "filterUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FLOOD_COLOR = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("flood-color"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FONT_WEIGHT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("font-weight"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName HORIZ_ADV_X = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("horiz-adv-x"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONDRAGLEAVE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondragleave"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOUSEMOVE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmousemove"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ORIENTATION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("orientation"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOUSEDOWN = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmousedown"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOUSEOVER = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmouseover"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONDRAGENTER = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondragenter"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName IDEOGRAPHIC = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ideographic"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONBEFORECUT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforecut"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONFORMINPUT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onforminput"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONDRAGSTART = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondragstart"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOVESTART = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmovestart"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MARKERUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("markerunits", "markerUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MATHVARIANT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("mathvariant"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MARGINWIDTH = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("marginwidth"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MARKERWIDTH = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("markerwidth", "markerWidth"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName TEXT_ANCHOR = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("text-anchor"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName TABLEVALUES = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("tablevalues", "tableValues"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCRIPTLEVEL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("scriptlevel"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName REPEATCOUNT = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("repeatcount", "repeatCount"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STITCHTILES = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("stitchtiles", "stitchTiles"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STARTOFFSET = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("startoffset", "startOffset"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCROLLDELAY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("scrolldelay"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName XMLNS_XLINK = new AttributeName(XMLNS_NS,
-            COLONIFIED_LOCAL("xmlns:xlink", "xlink"), XMLNS_PREFIX,
-            new boolean[] { false, false, false, false }, true);
-
-    public static final AttributeName XLINK_TITLE = new AttributeName(XLINK_NS,
-            COLONIFIED_LOCAL("xlink:title", "title"), XLINK_PREFIX,
-            new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName ARIA_INVALID = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-invalid"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_PRESSED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-pressed"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_CHECKED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-checked"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName AUTOCOMPLETE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("autocomplete"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_SETSIZE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-setsize"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_CHANNEL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-channel"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName EQUALCOLUMNS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("equalcolumns"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName DISPLAYSTYLE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("displaystyle"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName DATAFORMATAS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("dataformatas"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FILL_OPACITY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("fill-opacity"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FONT_VARIANT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("font-variant"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FONT_STRETCH = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("font-stretch"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName FRAMESPACING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("framespacing"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName KERNELMATRIX = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("kernelmatrix", "kernelMatrix"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDEACTIVATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondeactivate"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONROWSDELETE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onrowsdelete"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOUSELEAVE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmouseleave"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONFORMCHANGE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onformchange"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONCELLCHANGE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("oncellchange"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOUSEWHEEL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmousewheel"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONMOUSEENTER = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onmouseenter"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONAFTERPRINT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onafterprint"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONBEFORECOPY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforecopy"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MARGINHEIGHT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("marginheight"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MARKERHEIGHT = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("markerheight", "markerHeight"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName MARKER_START = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("marker-start"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MATHEMATICAL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("mathematical"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName LENGTHADJUST = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("lengthadjust", "lengthAdjust"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName UNSELECTABLE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("unselectable"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName UNICODE_BIDI = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("unicode-bidi"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName UNITS_PER_EM = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("units-per-em"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName WORD_SPACING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("word-spacing"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName WRITING_MODE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("writing-mode"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName V_ALPHABETIC = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("v-alphabetic"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName PATTERNUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("patternunits", "patternUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SPREADMETHOD = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("spreadmethod", "spreadMethod"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SURFACESCALE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("surfacescale", "surfaceScale"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STROKE_WIDTH = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-width"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName REPEAT_START = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("repeat-start"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName STDDEVIATION = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("stddeviation", "stdDeviation"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STOP_OPACITY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stop-opacity"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_CONTROLS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-controls"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_HASPOPUP = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-haspopup"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ACCENT_HEIGHT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("accent-height"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_VALUENOW = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-valuenow"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_RELEVANT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-relevant"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_POSINSET = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-posinset"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_VALUEMAX = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-valuemax"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_READONLY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-readonly"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_SELECTED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-selected"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_REQUIRED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-required"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_EXPANDED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-expanded"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_DISABLED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-disabled"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ATTRIBUTETYPE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("attributetype", "attributeType"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ATTRIBUTENAME = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("attributename", "attributeName"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_DATATYPE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-datatype"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_VALUEMIN = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-valuemin"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName BASEFREQUENCY = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("basefrequency", "baseFrequency"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COLUMNSPACING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("columnspacing"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName COLOR_PROFILE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("color-profile"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName CLIPPATHUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("clippathunits", "clipPathUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName DEFINITIONURL = new AttributeName(
-            ALL_NO_NS, MATH_DIFFERENT("definitionurl", "definitionURL"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName GRADIENTUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("gradientunits", "gradientUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FLOOD_OPACITY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("flood-opacity"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONAFTERUPDATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onafterupdate"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONERRORUPDATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onerrorupdate"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONBEFOREPASTE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforepaste"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONLOSECAPTURE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onlosecapture"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONCONTEXTMENU = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("oncontextmenu"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONSELECTSTART = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onselectstart"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONBEFOREPRINT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforeprint"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MOVABLELIMITS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("movablelimits"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName LINETHICKNESS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("linethickness"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName UNICODE_RANGE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("unicode-range"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName THINMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("thinmathspace"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName VERT_ORIGIN_X = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("vert-origin-x"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName VERT_ORIGIN_Y = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("vert-origin-y"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName V_IDEOGRAPHIC = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("v-ideographic"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName PRESERVEALPHA = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("preservealpha", "preserveAlpha"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SCRIPTMINSIZE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("scriptminsize"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName SPECIFICATION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("specification"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName XLINK_ACTUATE = new AttributeName(
-            XLINK_NS, COLONIFIED_LOCAL("xlink:actuate", "actuate"),
-            XLINK_PREFIX, new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName XLINK_ARCROLE = new AttributeName(
-            XLINK_NS, COLONIFIED_LOCAL("xlink:arcrole", "arcrole"),
-            XLINK_PREFIX, new boolean[] { false, true, true, false }, false);
-
-    public static final AttributeName ACCEPT_CHARSET = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("accept-charset"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ALIGNMENTSCOPE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("alignmentscope"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_MULTILINE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-multiline"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName BASELINE_SHIFT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("baseline-shift"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName HORIZ_ORIGIN_X = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("horiz-origin-x"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName HORIZ_ORIGIN_Y = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("horiz-origin-y"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONBEFOREUPDATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforeupdate"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONFILTERCHANGE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onfilterchange"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONROWSINSERTED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onrowsinserted"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ONBEFOREUNLOAD = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforeunload"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName MATHBACKGROUND = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("mathbackground"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName LETTER_SPACING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("letter-spacing"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName LIGHTING_COLOR = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("lighting-color"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName THICKMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("thickmathspace"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName TEXT_RENDERING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("text-rendering"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName V_MATHEMATICAL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("v-mathematical"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName POINTER_EVENTS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("pointer-events"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName PRIMITIVEUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("primitiveunits", "primitiveUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SYSTEMLANGUAGE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("systemlanguage", "systemLanguage"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName STROKE_LINECAP = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-linecap"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName SUBSCRIPTSHIFT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("subscriptshift"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName STROKE_OPACITY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-opacity"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName ARIA_DROPEFFECT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-dropeffect"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_LABELLEDBY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-labelledby"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_TEMPLATEID = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-templateid"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName COLOR_RENDERING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("color-rendering"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName CONTENTEDITABLE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("contenteditable"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName DIFFUSECONSTANT = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("diffuseconstant", "diffuseConstant"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONDATAAVAILABLE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondataavailable"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ONCONTROLSELECT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("oncontrolselect"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName IMAGE_RENDERING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("image-rendering"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName MEDIUMMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("mediummathspace"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName TEXT_DECORATION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("text-decoration"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName SHAPE_RENDERING = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("shape-rendering"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName STROKE_LINEJOIN = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-linejoin"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName REPEAT_TEMPLATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("repeat-template"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_DESCRIBEDBY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-describedby"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName CONTENTSTYLETYPE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("contentstyletype", "contentStyleType"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName FONT_SIZE_ADJUST = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("font-size-adjust"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName KERNELUNITLENGTH = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("kernelunitlength", "kernelUnitLength"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONBEFOREACTIVATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforeactivate"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ONPROPERTYCHANGE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onpropertychange"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ONDATASETCHANGED = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondatasetchanged"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName MASKCONTENTUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("maskcontentunits", "maskContentUnits"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PATTERNTRANSFORM = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("patterntransform", "patternTransform"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName REQUIREDFEATURES = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("requiredfeatures", "requiredFeatures"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName RENDERING_INTENT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("rendering-intent"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName SPECULAREXPONENT = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("specularexponent", "specularExponent"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SPECULARCONSTANT = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("specularconstant", "specularConstant"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName SUPERSCRIPTSHIFT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("superscriptshift"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName STROKE_DASHARRAY = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-dasharray"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName XCHANNELSELECTOR = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("xchannelselector", "xChannelSelector"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName YCHANNELSELECTOR = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("ychannelselector", "yChannelSelector"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_AUTOCOMPLETE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-autocomplete"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName CONTENTSCRIPTTYPE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("contentscripttype", "contentScriptType"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ENABLE_BACKGROUND = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("enable-background"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName DOMINANT_BASELINE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("dominant-baseline"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName GRADIENTTRANSFORM = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("gradienttransform", "gradientTransform"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ONBEFORDEACTIVATE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbefordeactivate"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ONDATASETCOMPLETE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("ondatasetcomplete"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName OVERLINE_POSITION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("overline-position"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ONBEFOREEDITFOCUS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onbeforeeditfocus"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName LIMITINGCONEANGLE = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("limitingconeangle", "limitingConeAngle"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName VERYTHINMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("verythinmathspace"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName STROKE_DASHOFFSET = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-dashoffset"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName STROKE_MITERLIMIT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("stroke-miterlimit"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ALIGNMENT_BASELINE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("alignment-baseline"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ONREADYSTATECHANGE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("onreadystatechange"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName OVERLINE_THICKNESS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("overline-thickness"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName UNDERLINE_POSITION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("underline-position"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName VERYTHICKMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("verythickmathspace"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName REQUIREDEXTENSIONS = new AttributeName(
-            ALL_NO_NS,
-            SVG_DIFFERENT("requiredextensions", "requiredExtensions"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName COLOR_INTERPOLATION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("color-interpolation"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName UNDERLINE_THICKNESS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("underline-thickness"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName PRESERVEASPECTRATIO = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("preserveaspectratio",
-                    "preserveAspectRatio"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName PATTERNCONTENTUNITS = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("patterncontentunits",
-                    "patternContentUnits"), ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_MULTISELECTABLE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-multiselectable"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName SCRIPTSIZEMULTIPLIER = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("scriptsizemultiplier"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName ARIA_ACTIVEDESCENDANT = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("aria-activedescendant"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName VERYVERYTHINMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("veryverythinmathspace"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName VERYVERYTHICKMATHSPACE = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("veryverythickmathspace"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName STRIKETHROUGH_POSITION = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("strikethrough-position"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName STRIKETHROUGH_THICKNESS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("strikethrough-thickness"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName EXTERNALRESOURCESREQUIRED = new AttributeName(
-            ALL_NO_NS, SVG_DIFFERENT("externalresourcesrequired",
-                    "externalResourcesRequired"), ALL_NO_PREFIX, ALL_NCNAME,
-            false);
-
-    public static final AttributeName GLYPH_ORIENTATION_VERTICAL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("glyph-orientation-vertical"), ALL_NO_PREFIX,
-            ALL_NCNAME, false);
-
-    public static final AttributeName COLOR_INTERPOLATION_FILTERS = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("color-interpolation-filters"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    public static final AttributeName GLYPH_ORIENTATION_HORIZONTAL = new AttributeName(
-            ALL_NO_NS, SAME_LOCAL("glyph-orientation-horizontal"),
-            ALL_NO_PREFIX, ALL_NCNAME, false);
-
-    private final static @NoLength AttributeName[] ATTRIBUTE_NAMES = { D, K, R,
-            X, Y, Z, BY, CX, CY, DX, DY, G2, G1, FX, FY, K4, K2, K3, K1, ID,
-            IN, U2, U1, RT, RX, RY, TO, Y2, Y1, X1, X2, ALT, DIR, DUR, END,
-            FOR, IN2, MAX, MIN, LOW, REL, REV, SRC, AXIS, ABBR, BBOX, CITE,
-            CODE, BIAS, COLS, CLIP, CHAR, BASE, EDGE, DATA, FILL, FROM, FORM,
-            FACE, HIGH, HREF, OPEN, ICON, NAME, MODE, MASK, LINK, LANG, LIST,
-            TYPE, WHEN, WRAP, TEXT, PATH, PING, REFX, REFY, SIZE, SEED, ROWS,
-            SPAN, STEP, ROLE, XREF, ASYNC, ALINK, ALIGN, CLOSE, COLOR, CLASS,
-            CLEAR, BEGIN, DEPTH, DEFER, FENCE, FRAME, ISMAP, ONEND, INDEX,
-            ORDER, OTHER, ONCUT, NARGS, MEDIA, LABEL, LOCAL, WIDTH, TITLE,
-            VLINK, VALUE, SLOPE, SHAPE, SCOPE, SCALE, SPEED, STYLE, RULES,
-            STEMH, STEMV, START, XMLNS, ACCEPT, ACCENT, ASCENT, ACTIVE, ALTIMG,
-            ACTION, BORDER, CURSOR, COORDS, FILTER, FORMAT, HIDDEN, HSPACE,
-            HEIGHT, ONMOVE, ONLOAD, ONDRAG, ORIGIN, ONZOOM, ONHELP, ONSTOP,
-            ONDROP, ONBLUR, OBJECT, OFFSET, ORIENT, ONCOPY, NOWRAP, NOHREF,
-            MACROS, METHOD, LOWSRC, LSPACE, LQUOTE, USEMAP, WIDTHS, TARGET,
-            VALUES, VALIGN, VSPACE, POSTER, POINTS, PROMPT, SCOPED, STRING,
-            SCHEME, STROKE, RADIUS, RESULT, REPEAT, RSPACE, ROTATE, RQUOTE,
-            ALTTEXT, ARCHIVE, AZIMUTH, CLOSURE, CHECKED, CLASSID, CHAROFF,
-            BGCOLOR, COLSPAN, CHARSET, COMPACT, CONTENT, ENCTYPE, DATASRC,
-            DATAFLD, DECLARE, DISPLAY, DIVISOR, DEFAULT, DESCENT, KERNING,
-            HANGING, HEADERS, ONPASTE, ONCLICK, OPTIMUM, ONBEGIN, ONKEYUP,
-            ONFOCUS, ONERROR, ONINPUT, ONABORT, ONSTART, ONRESET, OPACITY,
-            NOSHADE, MINSIZE, MAXSIZE, LOOPEND, LARGEOP, UNI_CODE, TARGETX,
-            TARGETY, VIEWBOX, VERSION, PATTERN, PROFILE, SPACING, RESTART,
-            ROWSPAN, SANDBOX, SUMMARY, STANDBY, REPLACE, AUTOPLAY, ADDITIVE,
-            CALCMODE, CODETYPE, CODEBASE, CONTROLS, BEVELLED, BASELINE,
-            EXPONENT, EDGEMODE, ENCODING, GLYPHREF, DATETIME, DISABLED,
-            FONTSIZE, KEYTIMES, PANOSE_1, HREFLANG, ONRESIZE, ONCHANGE,
-            ONBOUNCE, ONUNLOAD, ONFINISH, ONSCROLL, OPERATOR, OVERFLOW,
-            ONSUBMIT, ONREPEAT, ONSELECT, NOTATION, NORESIZE, MANIFEST,
-            MATHSIZE, MULTIPLE, LONGDESC, LANGUAGE, TEMPLATE, TABINDEX,
-            READONLY, SELECTED, ROWLINES, SEAMLESS, ROWALIGN, STRETCHY,
-            REQUIRED, XML_BASE, XML_LANG, X_HEIGHT, ARIA_OWNS, AUTOFOCUS,
-            ARIA_SORT, ACCESSKEY, ARIA_BUSY, ARIA_GRAB, AMPLITUDE, ARIA_LIVE,
-            CLIP_RULE, CLIP_PATH, EQUALROWS, ELEVATION, DIRECTION, DRAGGABLE,
-            FILTERRES, FILL_RULE, FONTSTYLE, FONT_SIZE, KEYPOINTS, HIDEFOCUS,
-            ONMESSAGE, INTERCEPT, ONDRAGEND, ONMOVEEND, ONINVALID, ONKEYDOWN,
-            ONFOCUSIN, ONMOUSEUP, INPUTMODE, ONROWEXIT, MATHCOLOR, MASKUNITS,
-            MAXLENGTH, LINEBREAK, LOOPSTART, TRANSFORM, V_HANGING, VALUETYPE,
-            POINTSATZ, POINTSATX, POINTSATY, PLAYCOUNT, SYMMETRIC, SCROLLING,
-            REPEATDUR, SELECTION, SEPARATOR, XML_SPACE, AUTOSUBMIT, ALPHABETIC,
-            ACTIONTYPE, ACCUMULATE, ARIA_LEVEL, COLUMNSPAN, CAP_HEIGHT,
-            BACKGROUND, GLYPH_NAME, GROUPALIGN, FONTFAMILY, FONTWEIGHT,
-            FONT_STYLE, KEYSPLINES, HTTP_EQUIV, ONACTIVATE, OCCURRENCE,
-            IRRELEVANT, ONDBLCLICK, ONDRAGDROP, ONKEYPRESS, ONROWENTER,
-            ONDRAGOVER, ONFOCUSOUT, ONMOUSEOUT, NUMOCTAVES, MARKER_MID,
-            MARKER_END, TEXTLENGTH, VISIBILITY, VIEWTARGET, VERT_ADV_Y,
-            PATHLENGTH, REPEAT_MAX, RADIOGROUP, STOP_COLOR, SEPARATORS,
-            REPEAT_MIN, ROWSPACING, ZOOMANDPAN, XLINK_TYPE, XLINK_ROLE,
-            XLINK_HREF, XLINK_SHOW, ACCENTUNDER, ARIA_SECRET, ARIA_ATOMIC,
-            ARIA_HIDDEN, ARIA_FLOWTO, ARABIC_FORM, CELLPADDING, CELLSPACING,
-            COLUMNWIDTH, COLUMNALIGN, COLUMNLINES, CONTEXTMENU, BASEPROFILE,
-            FONT_FAMILY, FRAMEBORDER, FILTERUNITS, FLOOD_COLOR, FONT_WEIGHT,
-            HORIZ_ADV_X, ONDRAGLEAVE, ONMOUSEMOVE, ORIENTATION, ONMOUSEDOWN,
-            ONMOUSEOVER, ONDRAGENTER, IDEOGRAPHIC, ONBEFORECUT, ONFORMINPUT,
-            ONDRAGSTART, ONMOVESTART, MARKERUNITS, MATHVARIANT, MARGINWIDTH,
-            MARKERWIDTH, TEXT_ANCHOR, TABLEVALUES, SCRIPTLEVEL, REPEATCOUNT,
-            STITCHTILES, STARTOFFSET, SCROLLDELAY, XMLNS_XLINK, XLINK_TITLE,
-            ARIA_INVALID, ARIA_PRESSED, ARIA_CHECKED, AUTOCOMPLETE,
-            ARIA_SETSIZE, ARIA_CHANNEL, EQUALCOLUMNS, DISPLAYSTYLE,
-            DATAFORMATAS, FILL_OPACITY, FONT_VARIANT, FONT_STRETCH,
-            FRAMESPACING, KERNELMATRIX, ONDEACTIVATE, ONROWSDELETE,
-            ONMOUSELEAVE, ONFORMCHANGE, ONCELLCHANGE, ONMOUSEWHEEL,
-            ONMOUSEENTER, ONAFTERPRINT, ONBEFORECOPY, MARGINHEIGHT,
-            MARKERHEIGHT, MARKER_START, MATHEMATICAL, LENGTHADJUST,
-            UNSELECTABLE, UNICODE_BIDI, UNITS_PER_EM, WORD_SPACING,
-            WRITING_MODE, V_ALPHABETIC, PATTERNUNITS, SPREADMETHOD,
-            SURFACESCALE, STROKE_WIDTH, REPEAT_START, STDDEVIATION,
-            STOP_OPACITY, ARIA_CONTROLS, ARIA_HASPOPUP, ACCENT_HEIGHT,
-            ARIA_VALUENOW, ARIA_RELEVANT, ARIA_POSINSET, ARIA_VALUEMAX,
-            ARIA_READONLY, ARIA_SELECTED, ARIA_REQUIRED, ARIA_EXPANDED,
-            ARIA_DISABLED, ATTRIBUTETYPE, ATTRIBUTENAME, ARIA_DATATYPE,
-            ARIA_VALUEMIN, BASEFREQUENCY, COLUMNSPACING, COLOR_PROFILE,
-            CLIPPATHUNITS, DEFINITIONURL, GRADIENTUNITS, FLOOD_OPACITY,
-            ONAFTERUPDATE, ONERRORUPDATE, ONBEFOREPASTE, ONLOSECAPTURE,
-            ONCONTEXTMENU, ONSELECTSTART, ONBEFOREPRINT, MOVABLELIMITS,
-            LINETHICKNESS, UNICODE_RANGE, THINMATHSPACE, VERT_ORIGIN_X,
-            VERT_ORIGIN_Y, V_IDEOGRAPHIC, PRESERVEALPHA, SCRIPTMINSIZE,
-            SPECIFICATION, XLINK_ACTUATE, XLINK_ARCROLE, ACCEPT_CHARSET,
-            ALIGNMENTSCOPE, ARIA_MULTILINE, BASELINE_SHIFT, HORIZ_ORIGIN_X,
-            HORIZ_ORIGIN_Y, ONBEFOREUPDATE, ONFILTERCHANGE, ONROWSINSERTED,
-            ONBEFOREUNLOAD, MATHBACKGROUND, LETTER_SPACING, LIGHTING_COLOR,
-            THICKMATHSPACE, TEXT_RENDERING, V_MATHEMATICAL, POINTER_EVENTS,
-            PRIMITIVEUNITS, SYSTEMLANGUAGE, STROKE_LINECAP, SUBSCRIPTSHIFT,
-            STROKE_OPACITY, ARIA_DROPEFFECT, ARIA_LABELLEDBY, ARIA_TEMPLATEID,
-            COLOR_RENDERING, CONTENTEDITABLE, DIFFUSECONSTANT, ONDATAAVAILABLE,
-            ONCONTROLSELECT, IMAGE_RENDERING, MEDIUMMATHSPACE, TEXT_DECORATION,
-            SHAPE_RENDERING, STROKE_LINEJOIN, REPEAT_TEMPLATE,
-            ARIA_DESCRIBEDBY, CONTENTSTYLETYPE, FONT_SIZE_ADJUST,
-            KERNELUNITLENGTH, ONBEFOREACTIVATE, ONPROPERTYCHANGE,
-            ONDATASETCHANGED, MASKCONTENTUNITS, PATTERNTRANSFORM,
-            REQUIREDFEATURES, RENDERING_INTENT, SPECULAREXPONENT,
-            SPECULARCONSTANT, SUPERSCRIPTSHIFT, STROKE_DASHARRAY,
-            XCHANNELSELECTOR, YCHANNELSELECTOR, ARIA_AUTOCOMPLETE,
-            CONTENTSCRIPTTYPE, ENABLE_BACKGROUND, DOMINANT_BASELINE,
-            GRADIENTTRANSFORM, ONBEFORDEACTIVATE, ONDATASETCOMPLETE,
-            OVERLINE_POSITION, ONBEFOREEDITFOCUS, LIMITINGCONEANGLE,
-            VERYTHINMATHSPACE, STROKE_DASHOFFSET, STROKE_MITERLIMIT,
-            ALIGNMENT_BASELINE, ONREADYSTATECHANGE, OVERLINE_THICKNESS,
-            UNDERLINE_POSITION, VERYTHICKMATHSPACE, REQUIREDEXTENSIONS,
-            COLOR_INTERPOLATION, UNDERLINE_THICKNESS, PRESERVEASPECTRATIO,
-            PATTERNCONTENTUNITS, ARIA_MULTISELECTABLE, SCRIPTSIZEMULTIPLIER,
-            ARIA_ACTIVEDESCENDANT, VERYVERYTHINMATHSPACE,
-            VERYVERYTHICKMATHSPACE, STRIKETHROUGH_POSITION,
-            STRIKETHROUGH_THICKNESS, EXTERNALRESOURCESREQUIRED,
-            GLYPH_ORIENTATION_VERTICAL, COLOR_INTERPOLATION_FILTERS,
-            GLYPH_ORIENTATION_HORIZONTAL, };
-
-    private final static int[] ATTRIBUTE_HASHES = { 1153, 1383, 1601, 1793,
-            1827, 1857, 68600, 69146, 69177, 70237, 70270, 71572, 71669, 72415,
-            72444, 74846, 74904, 74943, 75001, 75276, 75590, 84742, 84839,
-            85575, 85963, 85992, 87204, 88074, 88171, 89130, 89163, 3207892,
-            3283895, 3284791, 3338752, 3358197, 3369562, 3539124, 3562402,
-            3574260, 3670335, 3696933, 3721879, 135280021, 135346322,
-            136317019, 136475749, 136548517, 136652214, 136884919, 136902418,
-            136942992, 137292068, 139120259, 139785574, 142250603, 142314056,
-            142331176, 142519584, 144752417, 145106895, 146147200, 146765926,
-            148805544, 149655723, 149809441, 150018784, 150445028, 150923321,
-            152528754, 152536216, 152647366, 152962785, 155219321, 155654904,
-            157317483, 157350248, 157437941, 157447478, 157604838, 157685404,
-            157894402, 158315188, 166078431, 169409980, 169700259, 169856932,
-            170007032, 170409695, 170466488, 170513710, 170608367, 173028944,
-            173896963, 176090625, 176129212, 179390001, 179489057, 179627464,
-            179840468, 179849042, 180004216, 181779081, 183027151, 183645319,
-            183698797, 185922012, 185997252, 188312483, 188675799, 190977533,
-            190992569, 191006194, 191033518, 191038774, 191096249, 191166163,
-            191194426, 191522106, 191568039, 200104642, 202506661, 202537381,
-            202602917, 203070590, 203120766, 203389054, 203690071, 203971238,
-            203986524, 209040857, 209125756, 212055489, 212322418, 212746849,
-            213002877, 213055164, 213088023, 213259873, 213273386, 213435118,
-            213437318, 213438231, 213493071, 213532268, 213542834, 213584431,
-            213659891, 215285828, 215880731, 216112976, 216684637, 217369699,
-            217565298, 217576549, 218186795, 219743185, 220082234, 221623802,
-            221986406, 222283890, 223089542, 223138630, 223311265, 224547358,
-            224587256, 224589550, 224655650, 224785518, 224810917, 224813302,
-            225429618, 225432950, 225440869, 236107233, 236709921, 236838947,
-            237117095, 237143271, 237172455, 237209953, 237354143, 237372743,
-            237668065, 237703073, 237714273, 239743521, 240512803, 240522627,
-            240560417, 240656513, 241015715, 241062755, 241065383, 243523041,
-            245865199, 246261793, 246556195, 246774817, 246923491, 246928419,
-            246981667, 247014847, 247058369, 247112833, 247118177, 247119137,
-            247128739, 247316903, 249533729, 250235623, 250269543, 251083937,
-            251402351, 252339047, 253260911, 253293679, 254844367, 255547879,
-            256077281, 256345377, 258124199, 258354465, 258605063, 258744193,
-            258845603, 258856961, 258926689, 269869248, 270174334, 270709417,
-            270778994, 270781796, 271102503, 271478858, 271490090, 272870654,
-            273335275, 273369140, 273924313, 274108530, 274116736, 276818662,
-            277476156, 279156579, 279349675, 280108533, 280128712, 280132869,
-            280162403, 280280292, 280413430, 280506130, 280677397, 280678580,
-            280686710, 280689066, 282736758, 283110901, 283275116, 283823226,
-            283890012, 284479340, 284606461, 286700477, 286798916, 291557706,
-            291665349, 291804100, 292138018, 292166446, 292418738, 292451039,
-            300298041, 300374839, 300597935, 303073389, 303083839, 303266673,
-            303354997, 303430688, 303576261, 303724281, 303819694, 304242723,
-            304382625, 306247792, 307227811, 307468786, 307724489, 309671175,
-            310252031, 310358241, 310373094, 311015256, 313357609, 313683893,
-            313701861, 313706996, 313707317, 313710350, 314027746, 314038181,
-            314091299, 314205627, 314233813, 316741830, 316797986, 317486755,
-            317794164, 318721061, 320076137, 322657125, 322887778, 323506876,
-            323572412, 323605180, 323938869, 325060058, 325320188, 325398738,
-            325541490, 325671619, 333868843, 336806130, 337212108, 337282686,
-            337285434, 337585223, 338036037, 338298087, 338566051, 340943551,
-            341190970, 342995704, 343352124, 343912673, 344585053, 346977248,
-            347218098, 347262163, 347278576, 347438191, 347655959, 347684788,
-            347726430, 347727772, 347776035, 347776629, 349500753, 350880161,
-            350887073, 353384123, 355496998, 355906922, 355979793, 356545959,
-            358637867, 358905016, 359164318, 359247286, 359350571, 359579447,
-            365560330, 367399355, 367420285, 367510727, 368013212, 370234760,
-            370353345, 370710317, 371074566, 371122285, 371194213, 371448425,
-            371448430, 371545055, 371596922, 371758751, 371964792, 372151328,
-            376550136, 376710172, 376795771, 376826271, 376906556, 380514830,
-            380774774, 380775037, 381030322, 381136500, 381281631, 381282269,
-            381285504, 381330595, 381331422, 381335911, 381336484, 383907298,
-            383917408, 384595009, 384595013, 387799894, 387823201, 392581647,
-            392584937, 392742684, 392906485, 393003349, 400644707, 400973830,
-            404428547, 404432113, 404432865, 404469244, 404478897, 404694860,
-            406887479, 408294949, 408789955, 410022510, 410467324, 410586448,
-            410945965, 411845275, 414327152, 414327932, 414329781, 414346257,
-            414346439, 414639928, 414835998, 414894517, 414986533, 417465377,
-            417465381, 417492216, 418259232, 419310946, 420103495, 420242342,
-            420380455, 420658662, 420717432, 423183880, 424539259, 425929170,
-            425972964, 426050649, 426126450, 426142833, 426607922, 437289840,
-            437347469, 437412335, 437423943, 437455540, 437462252, 437597991,
-            437617485, 437986305, 437986507, 437986828, 437987072, 438015591,
-            438034813, 438038966, 438179623, 438347971, 438483573, 438547062,
-            438895551, 441592676, 442032555, 443548979, 447881379, 447881655,
-            447881895, 447887844, 448416189, 448445746, 448449012, 450942191,
-            452816744, 453668677, 454434495, 456610076, 456642844, 456738709,
-            457544600, 459451897, 459680944, 468058810, 468083581, 470964084,
-            471470955, 471567278, 472267822, 481177859, 481210627, 481435874,
-            481455115, 481485378, 481490218, 485105638, 486005878, 486383494,
-            487988916, 488103783, 490661867, 491574090, 491578272, 493041952,
-            493441205, 493582844, 493716979, 504577572, 504740359, 505091638,
-            505592418, 505656212, 509516275, 514998531, 515571132, 515594682,
-            518712698, 521362273, 526592419, 526807354, 527348842, 538294791,
-            539214049, 544689535, 545535009, 548544752, 548563346, 548595116,
-            551679010, 558034099, 560329411, 560356209, 560671018, 560671152,
-            560692590, 560845442, 569212097, 569474241, 572252718, 572768481,
-            575326764, 576174758, 576190819, 582099184, 582099438, 582372519,
-            582558889, 586552164, 591325418, 594231990, 594243961, 605711268,
-            615672071, 616086845, 621792370, 624879850, 627432831, 640040548,
-            654392808, 658675477, 659420283, 672891587, 694768102, 705890982,
-            725543146, 759097578, 761686526, 795383908, 843809551, 878105336,
-            908643300, 945213471, };
-
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/ElementName.java
+++ /dev/null
@@ -1,1513 +0,0 @@
-/*
- * Copyright (c) 2008 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-import java.util.Arrays;
-
-import nu.validator.htmlparser.annotation.Local;
-import nu.validator.htmlparser.annotation.NoLength;
-import nu.validator.htmlparser.annotation.Virtual;
-
-public final class ElementName
-// uncomment when regenerating self
-//        implements Comparable<ElementName> 
-{
-
-    public final static ElementName NULL_ELEMENT_NAME = new ElementName(null);
-
-    public final @Local String name;
-
-    public final @Local String camelCaseName;
-    
-    public final int group;
-
-    public final boolean special;
-
-    public final boolean scoping;
-
-    public final boolean fosterParenting;
-
-    // [NOCPP[
-    
-    public final boolean custom;
-
-    // ]NOCPP]
-    
-    static ElementName elementNameByBuffer(char[] buf, int offset, int length) {
-        int hash = ElementName.bufToHash(buf, length);
-        int index = Arrays.binarySearch(ElementName.ELEMENT_HASHES, hash);
-        if (index < 0) {
-            return new ElementName(Portability.newLocalNameFromBuffer(buf, offset, length));
-        } else {
-            ElementName rv = ElementName.ELEMENT_NAMES[index];
-            @Local String name = rv.name;
-            if (!Portability.localEqualsBuffer(name, buf, offset, length)) {
-                return new ElementName(Portability.newLocalNameFromBuffer(buf,
-                        offset, length));                
-            }
-            return rv;
-        }
-    }
-
-    /**
-     * This method has to return a unique integer for each well-known
-     * lower-cased element name.
-     * 
-     * @param buf
-     * @param len
-     * @return
-     */
-    private static int bufToHash(char[] buf, int len) {
-        int hash = len;
-        hash <<= 5;
-        hash += buf[0] - 0x60;
-        int j = len;
-        for (int i = 0; i < 4 && j > 0; i++) {
-            j--;
-            hash <<= 5;
-            hash += buf[j] - 0x60;
-        }
-        return hash;
-    }
-
-    private ElementName(@Local String name, @Local String camelCaseName,
-            int group, boolean special, boolean scoping, boolean fosterParenting) {
-        this.name = name;
-        this.camelCaseName = camelCaseName;
-        this.group = group;
-        this.special = special;
-        this.scoping = scoping;
-        this.fosterParenting = fosterParenting;
-        // [NOCPP[
-        this.custom = false;
-        // ]NOCPP]
-    }
-
-    protected ElementName(@Local String name) {
-        this.name = name;
-        this.camelCaseName = name;
-        this.group = TreeBuilder.OTHER;
-        this.special = false;
-        this.scoping = false;
-        this.fosterParenting = false;
-        // [NOCPP[
-        this.custom = true;
-        // ]NOCPP]
-    }
-    
-    @Virtual void release() {
-        // No-op in Java. 
-        // Implement as delete this in subclass.
-        // Be sure to release the local name
-    }
-    
-    @SuppressWarnings("unused") private void destructor() {
-        Portability.releaseLocal(name); // this must be a no-op for static locals
-        // for non-static cases the camel case contains the same pointer as a weak reference.
-    }
-
-    // START CODE ONLY USED FOR GENERATING CODE uncomment and run to regenerate
-
-//    /**
-//     * @see java.lang.Object#toString()
-//     */
-//    @Override public String toString() {
-//        return "(\"" + name + "\", \"" + camelCaseName + "\", TreeBuilder."
-//                + treeBuilderGroupToName() + ", "
-//                + (special ? "true" : "false") + ", "
-//                + (scoping ? "true" : "false") + ", "
-//                + (fosterParenting ? "true" : "false") + ")";
-//    }
-//
-//    private String constName() {
-//        char[] buf = new char[name.length()];
-//        for (int i = 0; i < name.length(); i++) {
-//            char c = name.charAt(i);
-//            if (c == '-') {
-//                buf[i] = '_';
-//            } else if (c >= '0' && c <= '9') {
-//                buf[i] = c;
-//            } else {
-//                buf[i] = (char) (c - 0x20);
-//            }
-//        }
-//        return new String(buf);
-//    }
-//
-//    private int hash() {
-//        return bufToHash(name.toCharArray(), name.length());
-//    }
-//
-//    public int compareTo(ElementName other) {
-//        int thisHash = this.hash();
-//        int otherHash = other.hash();
-//        if (thisHash < otherHash) {
-//            return -1;
-//        } else if (thisHash == otherHash) {
-//            return 0;
-//        } else {
-//            return 1;
-//        }
-//    }
-//
-//    private String treeBuilderGroupToName() {
-//        switch (group) {
-//            case TreeBuilder.OTHER:
-//                return "OTHER";
-//            case TreeBuilder.A:
-//                return "A";
-//            case TreeBuilder.BASE:
-//                return "BASE";
-//            case TreeBuilder.BODY:
-//                return "BODY";
-//            case TreeBuilder.BR:
-//                return "BR";
-//            case TreeBuilder.BUTTON:
-//                return "BUTTON";
-//            case TreeBuilder.CAPTION:
-//                return "CAPTION";
-//            case TreeBuilder.COL:
-//                return "COL";
-//            case TreeBuilder.COLGROUP:
-//                return "COLGROUP";
-//            case TreeBuilder.FORM:
-//                return "FORM";
-//            case TreeBuilder.FRAME:
-//                return "FRAME";
-//            case TreeBuilder.FRAMESET:
-//                return "FRAMESET";
-//            case TreeBuilder.IMAGE:
-//                return "IMAGE";
-//            case TreeBuilder.INPUT:
-//                return "INPUT";
-//            case TreeBuilder.ISINDEX:
-//                return "ISINDEX";
-//            case TreeBuilder.LI:
-//                return "LI";
-//            case TreeBuilder.LINK:
-//                return "LINK";
-//            case TreeBuilder.MATH:
-//                return "MATH";
-//            case TreeBuilder.META:
-//                return "META";
-//            case TreeBuilder.SVG:
-//                return "SVG";
-//            case TreeBuilder.HEAD:
-//                return "HEAD";
-//            case TreeBuilder.HR:
-//                return "HR";
-//            case TreeBuilder.HTML:
-//                return "HTML";
-//            case TreeBuilder.NOBR:
-//                return "NOBR";
-//            case TreeBuilder.NOFRAMES:
-//                return "NOFRAMES";
-//            case TreeBuilder.NOSCRIPT:
-//                return "NOSCRIPT";
-//            case TreeBuilder.OPTGROUP:
-//                return "OPTGROUP";
-//            case TreeBuilder.OPTION:
-//                return "OPTION";
-//            case TreeBuilder.P:
-//                return "P";
-//            case TreeBuilder.PLAINTEXT:
-//                return "PLAINTEXT";
-//            case TreeBuilder.SCRIPT:
-//                return "SCRIPT";
-//            case TreeBuilder.SELECT:
-//                return "SELECT";
-//            case TreeBuilder.STYLE:
-//                return "STYLE";
-//            case TreeBuilder.TABLE:
-//                return "TABLE";
-//            case TreeBuilder.TEXTAREA:
-//                return "TEXTAREA";
-//            case TreeBuilder.TITLE:
-//                return "TITLE";
-//            case TreeBuilder.TR:
-//                return "TR";
-//            case TreeBuilder.XMP:
-//                return "XMP";
-//            case TreeBuilder.TBODY_OR_THEAD_OR_TFOOT:
-//                return "TBODY_OR_THEAD_OR_TFOOT";
-//            case TreeBuilder.TD_OR_TH:
-//                return "TD_OR_TH";
-//            case TreeBuilder.DD_OR_DT:
-//                return "DD_OR_DT";
-//            case TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6:
-//                return "H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6";
-//            case TreeBuilder.OBJECT_OR_MARQUEE_OR_APPLET:
-//                return "OBJECT_OR_MARQUEE_OR_APPLET";
-//            case TreeBuilder.PRE_OR_LISTING:
-//                return "PRE_OR_LISTING";
-//            case TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U:
-//                return "B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U";
-//            case TreeBuilder.UL_OR_OL_OR_DL:
-//                return "UL_OR_OL_OR_DL";
-//            case TreeBuilder.IFRAME:
-//                return "IFRAME";
-//  case TreeBuilder.NOEMBED:
-//  return "NOEMBED";
-//            case TreeBuilder.EMBED_OR_IMG:
-//                return "EMBED_OR_IMG";
-//            case TreeBuilder.AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR:
-//                return "AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR";
-//            case TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU:
-//                return "DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU";
-//            case TreeBuilder.FIELDSET_OR_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION:
-//                return "FIELDSET_OR_ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION";
-//            case TreeBuilder.CODE_OR_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR:
-//                return "CODE_OR_RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR";
-//            case TreeBuilder.RT_OR_RP:
-//                return "RT_OR_RP";
-//            case TreeBuilder.COMMAND_OR_EVENT_SOURCE:
-//                return "COMMAND_OR_EVENT_SOURCE";
-//            case TreeBuilder.PARAM_OR_SOURCE:
-//                return "PARAM_OR_SOURCE";
-//            case TreeBuilder.MGLYPH_OR_MALIGNMARK:
-//                return "MGLYPH_OR_MALIGNMARK";
-//            case TreeBuilder.MI_MO_MN_MS_MTEXT:
-//                return "MI_MO_MN_MS_MTEXT";
-//            case TreeBuilder.ANNOTATION_XML:
-//                return "ANNOTATION_XML";
-//            case TreeBuilder.FOREIGNOBJECT_OR_DESC:
-//                return "FOREIGNOBJECT_OR_DESC";
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * Regenerate self
-//     * 
-//     * @param args
-//     */
-//    public static void main(String[] args) {
-//        Arrays.sort(ELEMENT_NAMES);
-//        for (int i = 1; i < ELEMENT_NAMES.length; i++) {
-//            if (ELEMENT_NAMES[i].hash() == ELEMENT_NAMES[i - 1].hash()) {
-//                System.err.println("Hash collision: " + ELEMENT_NAMES[i].name
-//                        + ", " + ELEMENT_NAMES[i - 1].name);
-//                return;
-//            }
-//        }
-//        for (int i = 0; i < ELEMENT_NAMES.length; i++) {
-//            ElementName el = ELEMENT_NAMES[i];
-//            System.out.println("public static final ElementName "
-//                    + el.constName() + " = new ElementName" + el.toString()
-//                    + ";");
-//        }
-//        System.out.println("private final static @NoLength ElementName[] ELEMENT_NAMES = {");
-//        for (int i = 0; i < ELEMENT_NAMES.length; i++) {
-//            ElementName el = ELEMENT_NAMES[i];
-//            System.out.println(el.constName() + ",");
-//        }
-//        System.out.println("};");
-//        System.out.println("private final static int[] ELEMENT_HASHES = {");
-//        for (int i = 0; i < ELEMENT_NAMES.length; i++) {
-//            ElementName el = ELEMENT_NAMES[i];
-//            System.out.println(Integer.toString(el.hash()) + ",");
-//        }
-//        System.out.println("};");
-//    }
-
-    // START GENERATED CODE
-    public static final ElementName A = new ElementName("a", "a", TreeBuilder.A, false, false, false);
-    public static final ElementName B = new ElementName("b", "b", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName G = new ElementName("g", "g", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName I = new ElementName("i", "i", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName P = new ElementName("p", "p", TreeBuilder.P, true, false, false);
-    public static final ElementName Q = new ElementName("q", "q", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName S = new ElementName("s", "s", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName U = new ElementName("u", "u", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName BR = new ElementName("br", "br", TreeBuilder.BR, true, false, false);
-    public static final ElementName CI = new ElementName("ci", "ci", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CN = new ElementName("cn", "cn", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DD = new ElementName("dd", "dd", TreeBuilder.DD_OR_DT, true, false, false);
-    public static final ElementName DL = new ElementName("dl", "dl", TreeBuilder.UL_OR_OL_OR_DL, true, false, false);
-    public static final ElementName DT = new ElementName("dt", "dt", TreeBuilder.DD_OR_DT, true, false, false);
-    public static final ElementName EM = new ElementName("em", "em", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName EQ = new ElementName("eq", "eq", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FN = new ElementName("fn", "fn", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName H1 = new ElementName("h1", "h1", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6, true, false, false);
-    public static final ElementName H2 = new ElementName("h2", "h2", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6, true, false, false);
-    public static final ElementName H3 = new ElementName("h3", "h3", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6, true, false, false);
-    public static final ElementName H4 = new ElementName("h4", "h4", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6, true, false, false);
-    public static final ElementName H5 = new ElementName("h5", "h5", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6, true, false, false);
-    public static final ElementName H6 = new ElementName("h6", "h6", TreeBuilder.H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6, true, false, false);
-    public static final ElementName GT = new ElementName("gt", "gt", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName HR = new ElementName("hr", "hr", TreeBuilder.HR, true, false, false);
-    public static final ElementName IN = new ElementName("in", "in", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LI = new ElementName("li", "li", TreeBuilder.LI, true, false, false);
-    public static final ElementName LN = new ElementName("ln", "ln", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LT = new ElementName("lt", "lt", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MI = new ElementName("mi", "mi", TreeBuilder.MI_MO_MN_MS_MTEXT, false, false, false);
-    public static final ElementName MN = new ElementName("mn", "mn", TreeBuilder.MI_MO_MN_MS_MTEXT, false, false, false);
-    public static final ElementName MO = new ElementName("mo", "mo", TreeBuilder.MI_MO_MN_MS_MTEXT, false, false, false);
-    public static final ElementName MS = new ElementName("ms", "ms", TreeBuilder.MI_MO_MN_MS_MTEXT, false, false, false);
-    public static final ElementName OL = new ElementName("ol", "ol", TreeBuilder.UL_OR_OL_OR_DL, true, false, false);
-    public static final ElementName OR = new ElementName("or", "or", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PI = new ElementName("pi", "pi", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName RP = new ElementName("rp", "rp", TreeBuilder.RT_OR_RP, false, false, false);
-    public static final ElementName RT = new ElementName("rt", "rt", TreeBuilder.RT_OR_RP, false, false, false);
-    public static final ElementName TD = new ElementName("td", "td", TreeBuilder.TD_OR_TH, false, true, false);
-    public static final ElementName TH = new ElementName("th", "th", TreeBuilder.TD_OR_TH, false, true, false);
-    public static final ElementName TR = new ElementName("tr", "tr", TreeBuilder.TR, true, false, true);
-    public static final ElementName TT = new ElementName("tt", "tt", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName UL = new ElementName("ul", "ul", TreeBuilder.UL_OR_OL_OR_DL, true, false, false);
-    public static final ElementName AND = new ElementName("and", "and", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARG = new ElementName("arg", "arg", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ABS = new ElementName("abs", "abs", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName BIG = new ElementName("big", "big", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName BDO = new ElementName("bdo", "bdo", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CSC = new ElementName("csc", "csc", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COL = new ElementName("col", "col", TreeBuilder.COL, true, false, false);
-    public static final ElementName COS = new ElementName("cos", "cos", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COT = new ElementName("cot", "cot", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DEL = new ElementName("del", "del", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DFN = new ElementName("dfn", "dfn", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DIR = new ElementName("dir", "dir", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName DIV = new ElementName("div", "div", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU, true, false, false);
-    public static final ElementName EXP = new ElementName("exp", "exp", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName GCD = new ElementName("gcd", "gcd", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName GEQ = new ElementName("geq", "geq", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName IMG = new ElementName("img", "img", TreeBuilder.EMBED_OR_IMG, true, false, false);
-    public static final ElementName INS = new ElementName("ins", "ins", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INT = new ElementName("int", "int", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName KBD = new ElementName("kbd", "kbd", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LOG = new ElementName("log", "log", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LCM = new ElementName("lcm", "lcm", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LEQ = new ElementName("leq", "leq", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MTD = new ElementName("mtd", "mtd", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MIN = new ElementName("min", "min", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MAP = new ElementName("map", "map", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MTR = new ElementName("mtr", "mtr", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MAX = new ElementName("max", "max", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NEQ = new ElementName("neq", "neq", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOT = new ElementName("not", "not", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NAV = new ElementName("nav", "nav", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName PRE = new ElementName("pre", "pre", TreeBuilder.PRE_OR_LISTING, true, false, false);
-    public static final ElementName REM = new ElementName("rem", "rem", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SUB = new ElementName("sub", "sub", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
-    public static final ElementName SEC = new ElementName("sec", "sec", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SVG = new ElementName("svg", "svg", TreeBuilder.SVG, false, false, false);
-    public static final ElementName SUM = new ElementName("sum", "sum", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SIN = new ElementName("sin", "sin", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SEP = new ElementName("sep", "sep", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SUP = new ElementName("sup", "sup", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
-    public static final ElementName SET = new ElementName("set", "set", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TAN = new ElementName("tan", "tan", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName USE = new ElementName("use", "use", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VAR = new ElementName("var", "var", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
-    public static final ElementName WBR = new ElementName("wbr", "wbr", TreeBuilder.AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR, true, false, false);
-    public static final ElementName XMP = new ElementName("xmp", "xmp", TreeBuilder.XMP, false, false, false);
-    public static final ElementName XOR = new ElementName("xor", "xor", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName AREA = new ElementName("area", "area", TreeBuilder.AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR, true, false, false);
-    public static final ElementName ABBR = new ElementName("abbr", "abbr", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName BASE = new ElementName("base", "base", TreeBuilder.BASE, true, false, false);
-    public static final ElementName BVAR = new ElementName("bvar", "bvar", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName BODY = new ElementName("body", "body", TreeBuilder.BODY, true, false, false);
-    public static final ElementName CARD = new ElementName("card", "card", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CODE = new ElementName("code", "code", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName CITE = new ElementName("cite", "cite", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CSCH = new ElementName("csch", "csch", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COSH = new ElementName("cosh", "cosh", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COTH = new ElementName("coth", "coth", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CURL = new ElementName("curl", "curl", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DESC = new ElementName("desc", "desc", TreeBuilder.FOREIGNOBJECT_OR_DESC, false, false, false);
-    public static final ElementName DIFF = new ElementName("diff", "diff", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DEFS = new ElementName("defs", "defs", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FORM = new ElementName("form", "form", TreeBuilder.FORM, true, false, false);
-    public static final ElementName FONT = new ElementName("font", "font", TreeBuilder.FONT, false, false, false);
-    public static final ElementName GRAD = new ElementName("grad", "grad", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName HEAD = new ElementName("head", "head", TreeBuilder.HEAD, true, false, false);
-    public static final ElementName HTML = new ElementName("html", "html", TreeBuilder.HTML, false, true, false);
-    public static final ElementName LINE = new ElementName("line", "line", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LINK = new ElementName("link", "link", TreeBuilder.LINK, true, false, false);
-    public static final ElementName LIST = new ElementName("list", "list", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName META = new ElementName("meta", "meta", TreeBuilder.META, true, false, false);
-    public static final ElementName MSUB = new ElementName("msub", "msub", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MODE = new ElementName("mode", "mode", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MATH = new ElementName("math", "math", TreeBuilder.MATH, false, false, false);
-    public static final ElementName MARK = new ElementName("mark", "mark", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MASK = new ElementName("mask", "mask", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MEAN = new ElementName("mean", "mean", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MSUP = new ElementName("msup", "msup", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MENU = new ElementName("menu", "menu", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU, true, false, false);
-    public static final ElementName MROW = new ElementName("mrow", "mrow", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NONE = new ElementName("none", "none", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOBR = new ElementName("nobr", "nobr", TreeBuilder.NOBR, false, false, false);
-    public static final ElementName NEST = new ElementName("nest", "nest", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PATH = new ElementName("path", "path", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PLUS = new ElementName("plus", "plus", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName RULE = new ElementName("rule", "rule", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName REAL = new ElementName("real", "real", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName RELN = new ElementName("reln", "reln", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName RECT = new ElementName("rect", "rect", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ROOT = new ElementName("root", "root", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName RUBY = new ElementName("ruby", "ruby", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
-    public static final ElementName SECH = new ElementName("sech", "sech", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SINH = new ElementName("sinh", "sinh", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SPAN = new ElementName("span", "span", TreeBuilder.RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR, false, false, false);
-    public static final ElementName SAMP = new ElementName("samp", "samp", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName STOP = new ElementName("stop", "stop", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SDEV = new ElementName("sdev", "sdev", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TIME = new ElementName("time", "time", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TRUE = new ElementName("true", "true", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TREF = new ElementName("tref", "tref", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TANH = new ElementName("tanh", "tanh", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TEXT = new ElementName("text", "text", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VIEW = new ElementName("view", "view", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ASIDE = new ElementName("aside", "aside", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName AUDIO = new ElementName("audio", "audio", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName APPLY = new ElementName("apply", "apply", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName EMBED = new ElementName("embed", "embed", TreeBuilder.EMBED_OR_IMG, true, false, false);
-    public static final ElementName FRAME = new ElementName("frame", "frame", TreeBuilder.FRAME, true, false, false);
-    public static final ElementName FALSE = new ElementName("false", "false", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FLOOR = new ElementName("floor", "floor", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName GLYPH = new ElementName("glyph", "glyph", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName HKERN = new ElementName("hkern", "hkern", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName IMAGE = new ElementName("image", "image", TreeBuilder.IMAGE, true, false, false);
-    public static final ElementName IDENT = new ElementName("ident", "ident", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INPUT = new ElementName("input", "input", TreeBuilder.INPUT, true, false, false);
-    public static final ElementName LABEL = new ElementName("label", "label", TreeBuilder.OUTPUT_OR_LABEL, false, false, false);
-    public static final ElementName LIMIT = new ElementName("limit", "limit", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MFRAC = new ElementName("mfrac", "mfrac", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MPATH = new ElementName("mpath", "mpath", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName METER = new ElementName("meter", "meter", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MOVER = new ElementName("mover", "mover", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MINUS = new ElementName("minus", "minus", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MROOT = new ElementName("mroot", "mroot", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MSQRT = new ElementName("msqrt", "msqrt", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MTEXT = new ElementName("mtext", "mtext", TreeBuilder.MI_MO_MN_MS_MTEXT, false, false, false);
-    public static final ElementName NOTIN = new ElementName("notin", "notin", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PIECE = new ElementName("piece", "piece", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PARAM = new ElementName("param", "param", TreeBuilder.PARAM_OR_SOURCE, true, false, false);
-    public static final ElementName POWER = new ElementName("power", "power", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName REALS = new ElementName("reals", "reals", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName STYLE = new ElementName("style", "style", TreeBuilder.STYLE, true, false, false);
-    public static final ElementName SMALL = new ElementName("small", "small", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName THEAD = new ElementName("thead", "thead", TreeBuilder.TBODY_OR_THEAD_OR_TFOOT, true, false, true);
-    public static final ElementName TABLE = new ElementName("table", "table", TreeBuilder.TABLE, false, true, true);
-    public static final ElementName TITLE = new ElementName("title", "title", TreeBuilder.TITLE, true, false, false);
-    public static final ElementName TSPAN = new ElementName("tspan", "tspan", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TIMES = new ElementName("times", "times", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TFOOT = new ElementName("tfoot", "tfoot", TreeBuilder.TBODY_OR_THEAD_OR_TFOOT, true, false, true);
-    public static final ElementName TBODY = new ElementName("tbody", "tbody", TreeBuilder.TBODY_OR_THEAD_OR_TFOOT, true, false, true);
-    public static final ElementName UNION = new ElementName("union", "union", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VKERN = new ElementName("vkern", "vkern", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VIDEO = new ElementName("video", "video", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCSEC = new ElementName("arcsec", "arcsec", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCCSC = new ElementName("arccsc", "arccsc", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCTAN = new ElementName("arctan", "arctan", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCSIN = new ElementName("arcsin", "arcsin", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCCOS = new ElementName("arccos", "arccos", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName APPLET = new ElementName("applet", "applet", TreeBuilder.MARQUEE_OR_APPLET, false, true, false);
-    public static final ElementName ARCCOT = new ElementName("arccot", "arccot", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName APPROX = new ElementName("approx", "approx", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName BUTTON = new ElementName("button", "button", TreeBuilder.BUTTON, false, true, false);
-    public static final ElementName CIRCLE = new ElementName("circle", "circle", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CENTER = new ElementName("center", "center", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU, true, false, false);
-    public static final ElementName CURSOR = new ElementName("cursor", "cursor", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CANVAS = new ElementName("canvas", "canvas", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DIVIDE = new ElementName("divide", "divide", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DEGREE = new ElementName("degree", "degree", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DIALOG = new ElementName("dialog", "dialog", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName DOMAIN = new ElementName("domain", "domain", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName EXISTS = new ElementName("exists", "exists", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FETILE = new ElementName("fetile", "feTile", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FIGURE = new ElementName("figure", "figure", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName FORALL = new ElementName("forall", "forall", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FILTER = new ElementName("filter", "filter", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FOOTER = new ElementName("footer", "footer", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName HEADER = new ElementName("header", "header", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName IFRAME = new ElementName("iframe", "iframe", TreeBuilder.IFRAME, true, false, false);
-    public static final ElementName KEYGEN = new ElementName("keygen", "keygen", TreeBuilder.KEYGEN, true, false, false);
-    public static final ElementName LAMBDA = new ElementName("lambda", "lambda", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LEGEND = new ElementName("legend", "legend", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MSPACE = new ElementName("mspace", "mspace", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MTABLE = new ElementName("mtable", "mtable", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MSTYLE = new ElementName("mstyle", "mstyle", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MGLYPH = new ElementName("mglyph", "mglyph", TreeBuilder.MGLYPH_OR_MALIGNMARK, false, false, false);
-    public static final ElementName MEDIAN = new ElementName("median", "median", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MUNDER = new ElementName("munder", "munder", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MARKER = new ElementName("marker", "marker", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MERROR = new ElementName("merror", "merror", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MOMENT = new ElementName("moment", "moment", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MATRIX = new ElementName("matrix", "matrix", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName OPTION = new ElementName("option", "option", TreeBuilder.OPTION, true, false, false);
-    public static final ElementName OBJECT = new ElementName("object", "object", TreeBuilder.OBJECT, false, true, false);
-    public static final ElementName OUTPUT = new ElementName("output", "output", TreeBuilder.OUTPUT_OR_LABEL, false, false, false);
-    public static final ElementName PRIMES = new ElementName("primes", "primes", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SOURCE = new ElementName("source", "source", TreeBuilder.PARAM_OR_SOURCE, false, false, false);
-    public static final ElementName STRIKE = new ElementName("strike", "strike", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName STRONG = new ElementName("strong", "strong", TreeBuilder.B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U, false, false, false);
-    public static final ElementName SWITCH = new ElementName("switch", "switch", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SYMBOL = new ElementName("symbol", "symbol", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SPACER = new ElementName("spacer", "spacer", TreeBuilder.AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR, true, false, false);
-    public static final ElementName SELECT = new ElementName("select", "select", TreeBuilder.SELECT, true, false, false);
-    public static final ElementName SUBSET = new ElementName("subset", "subset", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SCRIPT = new ElementName("script", "script", TreeBuilder.SCRIPT, true, false, false);
-    public static final ElementName TBREAK = new ElementName("tbreak", "tbreak", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VECTOR = new ElementName("vector", "vector", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARTICLE = new ElementName("article", "article", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName ANIMATE = new ElementName("animate", "animate", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCSECH = new ElementName("arcsech", "arcsech", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCCSCH = new ElementName("arccsch", "arccsch", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCTANH = new ElementName("arctanh", "arctanh", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCSINH = new ElementName("arcsinh", "arcsinh", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCCOSH = new ElementName("arccosh", "arccosh", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ARCCOTH = new ElementName("arccoth", "arccoth", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ACRONYM = new ElementName("acronym", "acronym", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ADDRESS = new ElementName("address", "address", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName BGSOUND = new ElementName("bgsound", "bgsound", TreeBuilder.AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR, true, false, false);
-    public static final ElementName COMMAND = new ElementName("command", "command", TreeBuilder.COMMAND_OR_EVENT_SOURCE, true, false, false);
-    public static final ElementName COMPOSE = new ElementName("compose", "compose", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CEILING = new ElementName("ceiling", "ceiling", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CSYMBOL = new ElementName("csymbol", "csymbol", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CAPTION = new ElementName("caption", "caption", TreeBuilder.CAPTION, false, true, false);
-    public static final ElementName DISCARD = new ElementName("discard", "discard", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DECLARE = new ElementName("declare", "declare", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DETAILS = new ElementName("details", "details", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName ELLIPSE = new ElementName("ellipse", "ellipse", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEFUNCA = new ElementName("fefunca", "feFuncA", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEFUNCB = new ElementName("fefuncb", "feFuncB", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEBLEND = new ElementName("feblend", "feBlend", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEFLOOD = new ElementName("feflood", "feFlood", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEIMAGE = new ElementName("feimage", "feImage", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEMERGE = new ElementName("femerge", "feMerge", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEFUNCG = new ElementName("fefuncg", "feFuncG", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEFUNCR = new ElementName("fefuncr", "feFuncR", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName HANDLER = new ElementName("handler", "handler", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INVERSE = new ElementName("inverse", "inverse", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName IMPLIES = new ElementName("implies", "implies", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ISINDEX = new ElementName("isindex", "isindex", TreeBuilder.ISINDEX, true, false, false);
-    public static final ElementName LOGBASE = new ElementName("logbase", "logbase", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LISTING = new ElementName("listing", "listing", TreeBuilder.PRE_OR_LISTING, true, false, false);
-    public static final ElementName MFENCED = new ElementName("mfenced", "mfenced", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MPADDED = new ElementName("mpadded", "mpadded", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MARQUEE = new ElementName("marquee", "marquee", TreeBuilder.MARQUEE_OR_APPLET, false, true, false);
-    public static final ElementName MACTION = new ElementName("maction", "maction", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MSUBSUP = new ElementName("msubsup", "msubsup", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOEMBED = new ElementName("noembed", "noembed", TreeBuilder.NOEMBED, true, false, false);
-    public static final ElementName POLYGON = new ElementName("polygon", "polygon", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PATTERN = new ElementName("pattern", "pattern", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PRODUCT = new ElementName("product", "product", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SETDIFF = new ElementName("setdiff", "setdiff", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SECTION = new ElementName("section", "section", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName TENDSTO = new ElementName("tendsto", "tendsto", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName UPLIMIT = new ElementName("uplimit", "uplimit", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ALTGLYPH = new ElementName("altglyph", "altGlyph", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName BASEFONT = new ElementName("basefont", "basefont", TreeBuilder.AREA_OR_BASEFONT_OR_BGSOUND_OR_SPACER_OR_WBR, true, false, false);
-    public static final ElementName CLIPPATH = new ElementName("clippath", "clipPath", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CODOMAIN = new ElementName("codomain", "codomain", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COLGROUP = new ElementName("colgroup", "colgroup", TreeBuilder.COLGROUP, true, false, false);
-    public static final ElementName DATAGRID = new ElementName("datagrid", "datagrid", TreeBuilder.ADDRESS_OR_DIR_OR_ARTICLE_OR_ASIDE_OR_DATAGRID_OR_DETAILS_OR_DIALOG_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_NAV_OR_SECTION, true, false, false);
-    public static final ElementName EMPTYSET = new ElementName("emptyset", "emptyset", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FACTOROF = new ElementName("factorof", "factorof", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FIELDSET = new ElementName("fieldset", "fieldset", TreeBuilder.FIELDSET, true, false, false);
-    public static final ElementName FRAMESET = new ElementName("frameset", "frameset", TreeBuilder.FRAMESET, true, false, false);
-    public static final ElementName FEOFFSET = new ElementName("feoffset", "feOffset", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName GLYPHREF = new ElementName("glyphref", "glyphRef", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INTERVAL = new ElementName("interval", "interval", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INTEGERS = new ElementName("integers", "integers", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INFINITY = new ElementName("infinity", "infinity", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LISTENER = new ElementName("listener", "listener", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LOWLIMIT = new ElementName("lowlimit", "lowlimit", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName METADATA = new ElementName("metadata", "metadata", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MENCLOSE = new ElementName("menclose", "menclose", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MPHANTOM = new ElementName("mphantom", "mphantom", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOFRAMES = new ElementName("noframes", "noframes", TreeBuilder.NOFRAMES, true, false, false);
-    public static final ElementName NOSCRIPT = new ElementName("noscript", "noscript", TreeBuilder.NOSCRIPT, true, false, false);
-    public static final ElementName OPTGROUP = new ElementName("optgroup", "optgroup", TreeBuilder.OPTGROUP, true, false, false);
-    public static final ElementName POLYLINE = new ElementName("polyline", "polyline", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PREFETCH = new ElementName("prefetch", "prefetch", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PROGRESS = new ElementName("progress", "progress", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PRSUBSET = new ElementName("prsubset", "prsubset", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName QUOTIENT = new ElementName("quotient", "quotient", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SELECTOR = new ElementName("selector", "selector", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TEXTAREA = new ElementName("textarea", "textarea", TreeBuilder.TEXTAREA, true, false, false);
-    public static final ElementName TEXTPATH = new ElementName("textpath", "textPath", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VARIANCE = new ElementName("variance", "variance", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ANIMATION = new ElementName("animation", "animation", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CONJUGATE = new ElementName("conjugate", "conjugate", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CONDITION = new ElementName("condition", "condition", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COMPLEXES = new ElementName("complexes", "complexes", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FONT_FACE = new ElementName("font-face", "font-face", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FACTORIAL = new ElementName("factorial", "factorial", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName INTERSECT = new ElementName("intersect", "intersect", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName IMAGINARY = new ElementName("imaginary", "imaginary", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LAPLACIAN = new ElementName("laplacian", "laplacian", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MATRIXROW = new ElementName("matrixrow", "matrixrow", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOTSUBSET = new ElementName("notsubset", "notsubset", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName OTHERWISE = new ElementName("otherwise", "otherwise", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PIECEWISE = new ElementName("piecewise", "piecewise", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PLAINTEXT = new ElementName("plaintext", "plaintext", TreeBuilder.PLAINTEXT, true, false, false);
-    public static final ElementName RATIONALS = new ElementName("rationals", "rationals", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SEMANTICS = new ElementName("semantics", "semantics", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName TRANSPOSE = new ElementName("transpose", "transpose", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ANNOTATION = new ElementName("annotation", "annotation", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName BLOCKQUOTE = new ElementName("blockquote", "blockquote", TreeBuilder.DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU, true, false, false);
-    public static final ElementName DIVERGENCE = new ElementName("divergence", "divergence", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName EULERGAMMA = new ElementName("eulergamma", "eulergamma", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName EQUIVALENT = new ElementName("equivalent", "equivalent", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName IMAGINARYI = new ElementName("imaginaryi", "imaginaryi", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MALIGNMARK = new ElementName("malignmark", "malignmark", TreeBuilder.MGLYPH_OR_MALIGNMARK, false, false, false);
-    public static final ElementName MUNDEROVER = new ElementName("munderover", "munderover", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MLABELEDTR = new ElementName("mlabeledtr", "mlabeledtr", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOTANUMBER = new ElementName("notanumber", "notanumber", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SOLIDCOLOR = new ElementName("solidcolor", "solidcolor", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ALTGLYPHDEF = new ElementName("altglyphdef", "altGlyphDef", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DETERMINANT = new ElementName("determinant", "determinant", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName EVENTSOURCE = new ElementName("eventsource", "eventsource", TreeBuilder.COMMAND_OR_EVENT_SOURCE, true, false, false);
-    public static final ElementName FEMERGENODE = new ElementName("femergenode", "feMergeNode", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FECOMPOSITE = new ElementName("fecomposite", "feComposite", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FESPOTLIGHT = new ElementName("fespotlight", "feSpotLight", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MALIGNGROUP = new ElementName("maligngroup", "maligngroup", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MPRESCRIPTS = new ElementName("mprescripts", "mprescripts", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MOMENTABOUT = new ElementName("momentabout", "momentabout", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NOTPRSUBSET = new ElementName("notprsubset", "notprsubset", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName PARTIALDIFF = new ElementName("partialdiff", "partialdiff", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ALTGLYPHITEM = new ElementName("altglyphitem", "altGlyphItem", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ANIMATECOLOR = new ElementName("animatecolor", "animateColor", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DATATEMPLATE = new ElementName("datatemplate", "datatemplate", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName EXPONENTIALE = new ElementName("exponentiale", "exponentiale", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FETURBULENCE = new ElementName("feturbulence", "feTurbulence", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEPOINTLIGHT = new ElementName("fepointlight", "fePointLight", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEMORPHOLOGY = new ElementName("femorphology", "feMorphology", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName OUTERPRODUCT = new ElementName("outerproduct", "outerproduct", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ANIMATEMOTION = new ElementName("animatemotion", "animateMotion", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName COLOR_PROFILE = new ElementName("color-profile", "color-profile", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FONT_FACE_SRC = new ElementName("font-face-src", "font-face-src", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FONT_FACE_URI = new ElementName("font-face-uri", "font-face-uri", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FOREIGNOBJECT = new ElementName("foreignobject", "foreignObject", TreeBuilder.FOREIGNOBJECT_OR_DESC, false, false, false);
-    public static final ElementName FECOLORMATRIX = new ElementName("fecolormatrix", "feColorMatrix", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MISSING_GLYPH = new ElementName("missing-glyph", "missing-glyph", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName MMULTISCRIPTS = new ElementName("mmultiscripts", "mmultiscripts", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName SCALARPRODUCT = new ElementName("scalarproduct", "scalarproduct", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName VECTORPRODUCT = new ElementName("vectorproduct", "vectorproduct", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ANNOTATION_XML = new ElementName("annotation-xml", "annotation-xml", TreeBuilder.ANNOTATION_XML, false, false, false);
-    public static final ElementName DEFINITION_SRC = new ElementName("definition-src", "definition-src", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FONT_FACE_NAME = new ElementName("font-face-name", "font-face-name", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEGAUSSIANBLUR = new ElementName("fegaussianblur", "feGaussianBlur", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEDISTANTLIGHT = new ElementName("fedistantlight", "feDistantLight", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName LINEARGRADIENT = new ElementName("lineargradient", "linearGradient", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName NATURALNUMBERS = new ElementName("naturalnumbers", "naturalnumbers", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName RADIALGRADIENT = new ElementName("radialgradient", "radialGradient", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName ANIMATETRANSFORM = new ElementName("animatetransform", "animateTransform", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName CARTESIANPRODUCT = new ElementName("cartesianproduct", "cartesianproduct", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FONT_FACE_FORMAT = new ElementName("font-face-format", "font-face-format", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FECONVOLVEMATRIX = new ElementName("feconvolvematrix", "feConvolveMatrix", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEDIFFUSELIGHTING = new ElementName("fediffuselighting", "feDiffuseLighting", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FEDISPLACEMENTMAP = new ElementName("fedisplacementmap", "feDisplacementMap", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FESPECULARLIGHTING = new ElementName("fespecularlighting", "feSpecularLighting", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName DOMAINOFAPPLICATION = new ElementName("domainofapplication", "domainofapplication", TreeBuilder.OTHER, false, false, false);
-    public static final ElementName FECOMPONENTTRANSFER = new ElementName("fecomponenttransfer", "feComponentTransfer", TreeBuilder.OTHER, false, false, false);
-    private final static @NoLength ElementName[] ELEMENT_NAMES = {
-    A,
-    B,
-    G,
-    I,
-    P,
-    Q,
-    S,
-    U,
-    BR,
-    CI,
-    CN,
-    DD,
-    DL,
-    DT,
-    EM,
-    EQ,
-    FN,
-    H1,
-    H2,
-    H3,
-    H4,
-    H5,
-    H6,
-    GT,
-    HR,
-    IN,
-    LI,
-    LN,
-    LT,
-    MI,
-    MN,
-    MO,
-    MS,
-    OL,
-    OR,
-    PI,
-    RP,
-    RT,
-    TD,
-    TH,
-    TR,
-    TT,
-    UL,
-    AND,
-    ARG,
-    ABS,
-    BIG,
-    BDO,
-    CSC,
-    COL,
-    COS,
-    COT,
-    DEL,
-    DFN,
-    DIR,
-    DIV,
-    EXP,
-    GCD,
-    GEQ,
-    IMG,
-    INS,
-    INT,
-    KBD,
-    LOG,
-    LCM,
-    LEQ,
-    MTD,
-    MIN,
-    MAP,
-    MTR,
-    MAX,
-    NEQ,
-    NOT,
-    NAV,
-    PRE,
-    REM,
-    SUB,
-    SEC,
-    SVG,
-    SUM,
-    SIN,
-    SEP,
-    SUP,
-    SET,
-    TAN,
-    USE,
-    VAR,
-    WBR,
-    XMP,
-    XOR,
-    AREA,
-    ABBR,
-    BASE,
-    BVAR,
-    BODY,
-    CARD,
-    CODE,
-    CITE,
-    CSCH,
-    COSH,
-    COTH,
-    CURL,
-    DESC,
-    DIFF,
-    DEFS,
-    FORM,
-    FONT,
-    GRAD,
-    HEAD,
-    HTML,
-    LINE,
-    LINK,
-    LIST,
-    META,
-    MSUB,
-    MODE,
-    MATH,
-    MARK,
-    MASK,
-    MEAN,
-    MSUP,
-    MENU,
-    MROW,
-    NONE,
-    NOBR,
-    NEST,
-    PATH,
-    PLUS,
-    RULE,
-    REAL,
-    RELN,
-    RECT,
-    ROOT,
-    RUBY,
-    SECH,
-    SINH,
-    SPAN,
-    SAMP,
-    STOP,
-    SDEV,
-    TIME,
-    TRUE,
-    TREF,
-    TANH,
-    TEXT,
-    VIEW,
-    ASIDE,
-    AUDIO,
-    APPLY,
-    EMBED,
-    FRAME,
-    FALSE,
-    FLOOR,
-    GLYPH,
-    HKERN,
-    IMAGE,
-    IDENT,
-    INPUT,
-    LABEL,
-    LIMIT,
-    MFRAC,
-    MPATH,
-    METER,
-    MOVER,
-    MINUS,
-    MROOT,
-    MSQRT,
-    MTEXT,
-    NOTIN,
-    PIECE,
-    PARAM,
-    POWER,
-    REALS,
-    STYLE,
-    SMALL,
-    THEAD,
-    TABLE,
-    TITLE,
-    TSPAN,
-    TIMES,
-    TFOOT,
-    TBODY,
-    UNION,
-    VKERN,
-    VIDEO,
-    ARCSEC,
-    ARCCSC,
-    ARCTAN,
-    ARCSIN,
-    ARCCOS,
-    APPLET,
-    ARCCOT,
-    APPROX,
-    BUTTON,
-    CIRCLE,
-    CENTER,
-    CURSOR,
-    CANVAS,
-    DIVIDE,
-    DEGREE,
-    DIALOG,
-    DOMAIN,
-    EXISTS,
-    FETILE,
-    FIGURE,
-    FORALL,
-    FILTER,
-    FOOTER,
-    HEADER,
-    IFRAME,
-    KEYGEN,
-    LAMBDA,
-    LEGEND,
-    MSPACE,
-    MTABLE,
-    MSTYLE,
-    MGLYPH,
-    MEDIAN,
-    MUNDER,
-    MARKER,
-    MERROR,
-    MOMENT,
-    MATRIX,
-    OPTION,
-    OBJECT,
-    OUTPUT,
-    PRIMES,
-    SOURCE,
-    STRIKE,
-    STRONG,
-    SWITCH,
-    SYMBOL,
-    SPACER,
-    SELECT,
-    SUBSET,
-    SCRIPT,
-    TBREAK,
-    VECTOR,
-    ARTICLE,
-    ANIMATE,
-    ARCSECH,
-    ARCCSCH,
-    ARCTANH,
-    ARCSINH,
-    ARCCOSH,
-    ARCCOTH,
-    ACRONYM,
-    ADDRESS,
-    BGSOUND,
-    COMMAND,
-    COMPOSE,
-    CEILING,
-    CSYMBOL,
-    CAPTION,
-    DISCARD,
-    DECLARE,
-    DETAILS,
-    ELLIPSE,
-    FEFUNCA,
-    FEFUNCB,
-    FEBLEND,
-    FEFLOOD,
-    FEIMAGE,
-    FEMERGE,
-    FEFUNCG,
-    FEFUNCR,
-    HANDLER,
-    INVERSE,
-    IMPLIES,
-    ISINDEX,
-    LOGBASE,
-    LISTING,
-    MFENCED,
-    MPADDED,
-    MARQUEE,
-    MACTION,
-    MSUBSUP,
-    NOEMBED,
-    POLYGON,
-    PATTERN,
-    PRODUCT,
-    SETDIFF,
-    SECTION,
-    TENDSTO,
-    UPLIMIT,
-    ALTGLYPH,
-    BASEFONT,
-    CLIPPATH,
-    CODOMAIN,
-    COLGROUP,
-    DATAGRID,
-    EMPTYSET,
-    FACTOROF,
-    FIELDSET,
-    FRAMESET,
-    FEOFFSET,
-    GLYPHREF,
-    INTERVAL,
-    INTEGERS,
-    INFINITY,
-    LISTENER,
-    LOWLIMIT,
-    METADATA,
-    MENCLOSE,
-    MPHANTOM,
-    NOFRAMES,
-    NOSCRIPT,
-    OPTGROUP,
-    POLYLINE,
-    PREFETCH,
-    PROGRESS,
-    PRSUBSET,
-    QUOTIENT,
-    SELECTOR,
-    TEXTAREA,
-    TEXTPATH,
-    VARIANCE,
-    ANIMATION,
-    CONJUGATE,
-    CONDITION,
-    COMPLEXES,
-    FONT_FACE,
-    FACTORIAL,
-    INTERSECT,
-    IMAGINARY,
-    LAPLACIAN,
-    MATRIXROW,
-    NOTSUBSET,
-    OTHERWISE,
-    PIECEWISE,
-    PLAINTEXT,
-    RATIONALS,
-    SEMANTICS,
-    TRANSPOSE,
-    ANNOTATION,
-    BLOCKQUOTE,
-    DIVERGENCE,
-    EULERGAMMA,
-    EQUIVALENT,
-    IMAGINARYI,
-    MALIGNMARK,
-    MUNDEROVER,
-    MLABELEDTR,
-    NOTANUMBER,
-    SOLIDCOLOR,
-    ALTGLYPHDEF,
-    DETERMINANT,
-    EVENTSOURCE,
-    FEMERGENODE,
-    FECOMPOSITE,
-    FESPOTLIGHT,
-    MALIGNGROUP,
-    MPRESCRIPTS,
-    MOMENTABOUT,
-    NOTPRSUBSET,
-    PARTIALDIFF,
-    ALTGLYPHITEM,
-    ANIMATECOLOR,
-    DATATEMPLATE,
-    EXPONENTIALE,
-    FETURBULENCE,
-    FEPOINTLIGHT,
-    FEMORPHOLOGY,
-    OUTERPRODUCT,
-    ANIMATEMOTION,
-    COLOR_PROFILE,
-    FONT_FACE_SRC,
-    FONT_FACE_URI,
-    FOREIGNOBJECT,
-    FECOLORMATRIX,
-    MISSING_GLYPH,
-    MMULTISCRIPTS,
-    SCALARPRODUCT,
-    VECTORPRODUCT,
-    ANNOTATION_XML,
-    DEFINITION_SRC,
-    FONT_FACE_NAME,
-    FEGAUSSIANBLUR,
-    FEDISTANTLIGHT,
-    LINEARGRADIENT,
-    NATURALNUMBERS,
-    RADIALGRADIENT,
-    ANIMATETRANSFORM,
-    CARTESIANPRODUCT,
-    FONT_FACE_FORMAT,
-    FECONVOLVEMATRIX,
-    FEDIFFUSELIGHTING,
-    FEDISPLACEMENTMAP,
-    FESPECULARLIGHTING,
-    DOMAINOFAPPLICATION,
-    FECOMPONENTTRANSFER,
-    };
-    private final static int[] ELEMENT_HASHES = {
-    1057,
-    1090,
-    1255,
-    1321,
-    1552,
-    1585,
-    1651,
-    1717,
-    68162,
-    68899,
-    69059,
-    69764,
-    70020,
-    70276,
-    71077,
-    71205,
-    72134,
-    72232,
-    72264,
-    72296,
-    72328,
-    72360,
-    72392,
-    73351,
-    74312,
-    75209,
-    78124,
-    78284,
-    78476,
-    79149,
-    79309,
-    79341,
-    79469,
-    81295,
-    81487,
-    82224,
-    84498,
-    84626,
-    86164,
-    86292,
-    86612,
-    86676,
-    87445,
-    3183041,
-    3186241,
-    3198017,
-    3218722,
-    3226754,
-    3247715,
-    3256803,
-    3263971,
-    3264995,
-    3289252,
-    3291332,
-    3295524,
-    3299620,
-    3326725,
-    3379303,
-    3392679,
-    3448233,
-    3460553,
-    3461577,
-    3510347,
-    3546604,
-    3552364,
-    3556524,
-    3576461,
-    3586349,
-    3588141,
-    3590797,
-    3596333,
-    3622062,
-    3625454,
-    3627054,
-    3675728,
-    3749042,
-    3771059,
-    3771571,
-    3776211,
-    3782323,
-    3782963,
-    3784883,
-    3785395,
-    3788979,
-    3815476,
-    3839605,
-    3885110,
-    3917911,
-    3948984,
-    3951096,
-    135304769,
-    135858241,
-    136498210,
-    136906434,
-    137138658,
-    137512995,
-    137531875,
-    137548067,
-    137629283,
-    137645539,
-    137646563,
-    137775779,
-    138529956,
-    138615076,
-    139040932,
-    140954086,
-    141179366,
-    141690439,
-    142738600,
-    143013512,
-    146979116,
-    147175724,
-    147475756,
-    147902637,
-    147936877,
-    148017645,
-    148131885,
-    148228141,
-    148229165,
-    148309165,
-    148395629,
-    148551853,
-    148618829,
-    149076462,
-    149490158,
-    149572782,
-    151277616,
-    151639440,
-    153268914,
-    153486514,
-    153563314,
-    153750706,
-    153763314,
-    153914034,
-    154406067,
-    154417459,
-    154600979,
-    154678323,
-    154680979,
-    154866835,
-    155366708,
-    155375188,
-    155391572,
-    155465780,
-    155869364,
-    158045494,
-    168988979,
-    169321621,
-    169652752,
-    173151309,
-    174240818,
-    174247297,
-    174669292,
-    175391532,
-    176638123,
-    177380397,
-    177879204,
-    177886734,
-    180753473,
-    181020073,
-    181503558,
-    181686320,
-    181999237,
-    181999311,
-    182048201,
-    182074866,
-    182078003,
-    182083764,
-    182920847,
-    184716457,
-    184976961,
-    185145071,
-    187281445,
-    187872052,
-    188100653,
-    188875944,
-    188919873,
-    188920457,
-    189203987,
-    189371817,
-    189414886,
-    189567458,
-    190266670,
-    191318187,
-    191337609,
-    202479203,
-    202493027,
-    202835587,
-    202843747,
-    203013219,
-    203036048,
-    203045987,
-    203177552,
-    203898516,
-    204648562,
-    205067918,
-    205078130,
-    205096654,
-    205689142,
-    205690439,
-    205766017,
-    205988909,
-    207213161,
-    207794484,
-    207800999,
-    208023602,
-    208213644,
-    208213647,
-    210310273,
-    210940978,
-    213325049,
-    213946445,
-    214055079,
-    215125040,
-    215134273,
-    215135028,
-    215237420,
-    215418148,
-    215553166,
-    215553394,
-    215563858,
-    215627949,
-    215754324,
-    217529652,
-    217713834,
-    217732628,
-    218731945,
-    221417045,
-    221424946,
-    221493746,
-    221515401,
-    221658189,
-    221844577,
-    221908140,
-    221910626,
-    221921586,
-    222659762,
-    225001091,
-    236105833,
-    236113965,
-    236194995,
-    236195427,
-    236206132,
-    236206387,
-    236211683,
-    236212707,
-    236381647,
-    236571826,
-    237124271,
-    238172205,
-    238210544,
-    238270764,
-    238435405,
-    238501172,
-    239224867,
-    239257644,
-    239710497,
-    240307721,
-    241208789,
-    241241557,
-    241318060,
-    241319404,
-    241343533,
-    241344069,
-    241405397,
-    241765845,
-    243864964,
-    244502085,
-    244946220,
-    245109902,
-    247647266,
-    247707956,
-    248648814,
-    248648836,
-    248682161,
-    248986932,
-    249058914,
-    249697357,
-    252132601,
-    252135604,
-    252317348,
-    255007012,
-    255278388,
-    256365156,
-    257566121,
-    269763372,
-    271202790,
-    271863856,
-    272049197,
-    272127474,
-    272770631,
-    274339449,
-    274939471,
-    275388004,
-    275388005,
-    275388006,
-    275977800,
-    278267602,
-    278513831,
-    278712622,
-    281613765,
-    281683369,
-    282120228,
-    282250732,
-    282508942,
-    283743649,
-    283787570,
-    284710386,
-    285391148,
-    285478533,
-    285854898,
-    285873762,
-    286931113,
-    288964227,
-    289445441,
-    289689648,
-    291671489,
-    303512884,
-    305319975,
-    305610036,
-    305764101,
-    308448294,
-    308675890,
-    312085683,
-    312264750,
-    315032867,
-    316391000,
-    317331042,
-    317902135,
-    318950711,
-    319447220,
-    321499182,
-    322538804,
-    323145200,
-    337067316,
-    337826293,
-    339905989,
-    340833697,
-    341457068,
-    345302593,
-    349554733,
-    349771471,
-    349786245,
-    350819405,
-    356072847,
-    370349192,
-    373962798,
-    374509141,
-    375558638,
-    375574835,
-    376053993,
-    383276530,
-    383373833,
-    383407586,
-    384439906,
-    386079012,
-    404133513,
-    404307343,
-    407031852,
-    408072233,
-    409112005,
-    409608425,
-    409771500,
-    419040932,
-    437730612,
-    439529766,
-    442616365,
-    442813037,
-    443157674,
-    443295316,
-    450118444,
-    450482697,
-    456789668,
-    459935396,
-    471217869,
-    474073645,
-    476230702,
-    476665218,
-    476717289,
-    483014825,
-    485083298,
-    489306281,
-    538364390,
-    540675748,
-    543819186,
-    543958612,
-    576960820,
-    577242548,
-    610515252,
-    642202932,
-    644420819,
-    };
-
-
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/HtmlAttributes.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2007 Henri Sivonen
- * Copyright (c) 2008-2009 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-import nu.validator.htmlparser.annotation.IdType;
-import nu.validator.htmlparser.annotation.Local;
-import nu.validator.htmlparser.annotation.NsUri;
-import nu.validator.htmlparser.annotation.Prefix;
-import nu.validator.htmlparser.annotation.QName;
-import nu.validator.htmlparser.common.XmlViolationPolicy;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * Be careful with this class. QName is the name in from HTML tokenization.
- * Otherwise, please refer to the interface doc.
- * 
- * @version $Id: AttributesImpl.java 206 2008-03-20 14:09:29Z hsivonen $
- * @author hsivonen
- */
-public final class HtmlAttributes implements Attributes {
-
-    // [NOCPP[
-
-    private static final AttributeName[] EMPTY_ATTRIBUTENAMES = new AttributeName[0];
-
-    private static final String[] EMPTY_STRINGS = new String[0];
-
-    // ]NOCPP]
-
-    public static final HtmlAttributes EMPTY_ATTRIBUTES = new HtmlAttributes(
-            AttributeName.HTML);
-
-    private int mode;
-
-    private int length;
-
-    private AttributeName[] names;
-
-    private String[] values; // XXX perhaps make this @NoLength?
-
-    // [NOCPP[
-
-    private String idValue;
-
-    private int xmlnsLength;
-
-    private AttributeName[] xmlnsNames;
-
-    private String[] xmlnsValues;
-
-    // ]NOCPP]
-
-    public HtmlAttributes(int mode) {
-        this.mode = mode;
-        this.length = 0;
-        this.names = new AttributeName[5]; // covers 98.3% of elements
-                                            // according to
-        // Hixie
-        this.values = new String[5];
-
-        // [NOCPP[
-
-        this.idValue = null;
-
-        this.xmlnsLength = 0;
-
-        this.xmlnsNames = HtmlAttributes.EMPTY_ATTRIBUTENAMES;
-
-        this.xmlnsValues = HtmlAttributes.EMPTY_STRINGS;
-
-        // ]NOCPP]
-    }
-    /*
-    public HtmlAttributes(HtmlAttributes other) {
-        this.mode = other.mode;
-        this.length = other.length;
-        this.names = new AttributeName[other.length];
-        this.values = new String[other.length];
-        // [NOCPP[
-        this.idValue = other.idValue;
-        this.xmlnsLength = other.xmlnsLength;
-        this.xmlnsNames = new AttributeName[other.xmlnsLength];
-        this.xmlnsValues = new String[other.xmlnsLength];
-        // ]NOCPP]
-    }
-    */
-
-    void destructor() {
-        clear(0);
-        Portability.releaseArray(names);
-        Portability.releaseArray(values);
-    }
-    
-    /**
-     * Only use with a static argument
-     * 
-     * @param name
-     * @return
-     */
-    public int getIndex(AttributeName name) {
-        for (int i = 0; i < length; i++) {
-            if (names[i] == name) {
-                return i;
-            }
-        }
-        return -1;
-    }
-
-    // [NOCPP[
-    
-    public int getIndex(String qName) {
-        for (int i = 0; i < length; i++) {
-            if (names[i].getQName(mode).equals(qName)) {
-                return i;
-            }
-        }
-        return -1;
-    }
-    
-    public int getIndex(String uri, String localName) {
-        for (int i = 0; i < length; i++) {
-            if (names[i].getLocal(mode).equals(localName)
-                    && names[i].getUri(mode).equals(uri)) {
-                return i;
-            }
-        }
-        return -1;
-    }
-
-    public @IdType String getType(String qName) {
-        int index = getIndex(qName);
-        if (index == -1) {
-            return null;
-        } else {
-            return getType(index);
-        }
-    }
-
-    public @IdType String getType(String uri, String localName) {
-        int index = getIndex(uri, localName);
-        if (index == -1) {
-            return null;
-        } else {
-            return getType(index);
-        }
-    }
-    
-    public String getValue(String qName) {
-        int index = getIndex(qName);
-        if (index == -1) {
-            return null;
-        } else {
-            return getValue(index);
-        }
-    }
-
-    public String getValue(String uri, String localName) {
-        int index = getIndex(uri, localName);
-        if (index == -1) {
-            return null;
-        } else {
-            return getValue(index);
-        }
-    }
-    
-    // ]NOCPP]
-    
-    public int getLength() {
-        return length;
-    }
-
-    public @Local String getLocalName(int index) {
-        if (index < length && index >= 0) {
-            return names[index].getLocal(mode);
-        } else {
-            return null;
-        }
-    }
-
-    // [NOCPP[
-    
-    public @QName String getQName(int index) {
-        if (index < length && index >= 0) {
-            return names[index].getQName(mode);
-        } else {
-            return null;
-        }
-    }
-
-    public @IdType String getType(int index) {
-        if (index < length && index >= 0) {
-            return names[index].getType(mode);
-        } else {
-            return null;
-        }
-    }
-
-    // ]NOCPP]
-    
-    public AttributeName getAttributeName(int index) {
-        if (index < length && index >= 0) {
-            return names[index];
-        } else {
-            return null;
-        }
-    }
-
-    public @NsUri String getURI(int index) {
-        if (index < length && index >= 0) {
-            return names[index].getUri(mode);
-        } else {
-            return null;
-        }
-    }
-
-    public @Prefix String getPrefix(int index) {
-        if (index < length && index >= 0) {
-            return names[index].getPrefix(mode);
-        } else {
-            return null;
-        }
-    }
-
-    public String getValue(int index) {
-        if (index < length && index >= 0) {
-            return values[index];
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Only use with static argument.
-     * 
-     * @see org.xml.sax.Attributes#getValue(java.lang.String)
-     */
-    public String getValue(AttributeName name) {
-        int index = getIndex(name);
-        if (index == -1) {
-            return null;
-        } else {
-            return getValue(index);
-        }
-    }
-    
-    // [NOCPP[
-
-    public String getId() {
-        return idValue;
-    }
-
-    public int getXmlnsLength() {
-        return xmlnsLength;
-    }
-
-    public @Local String getXmlnsLocalName(int index) {
-        if (index < xmlnsLength && index >= 0) {
-            return xmlnsNames[index].getLocal(mode);
-        } else {
-            return null;
-        }
-    }
-
-    public @NsUri String getXmlnsURI(int index) {
-        if (index < xmlnsLength && index >= 0) {
-            return xmlnsNames[index].getUri(mode);
-        } else {
-            return null;
-        }
-    }
-
-    public String getXmlnsValue(int index) {
-        if (index < xmlnsLength && index >= 0) {
-            return xmlnsValues[index];
-        } else {
-            return null;
-        }
-    }
-    
-    public int getXmlnsIndex(AttributeName name) {
-        for (int i = 0; i < xmlnsLength; i++) {
-            if (xmlnsNames[i] == name) {
-                return i;
-            }
-        }
-        return -1;
-    }
-    
-    public String getXmlnsValue(AttributeName name) {
-        int index = getXmlnsIndex(name);
-        if (index == -1) {
-            return null;
-        } else {
-            return getXmlnsValue(index);
-        }
-    }
-    
-    public AttributeName getXmlnsAttributeName(int index) {
-        if (index < xmlnsLength && index >= 0) {
-            return xmlnsNames[index];
-        } else {
-            return null;
-        }
-    }
-
-    // ]NOCPP]
-
-    void addAttribute(AttributeName name, String value
-            // [NOCPP[
-            , XmlViolationPolicy xmlnsPolicy
-    // ]NOCPP]        
-    ) throws SAXException {
-        // [NOCPP[
-        if (name == AttributeName.ID) {
-            idValue = value;
-        }
-
-        if (name.isXmlns()) {
-            if (xmlnsNames.length == xmlnsLength) {
-                int newLen = xmlnsLength == 0 ? 2 : xmlnsLength << 1;
-                AttributeName[] newNames = new AttributeName[newLen];
-                System.arraycopy(xmlnsNames, 0, newNames, 0, xmlnsNames.length);
-                xmlnsNames = newNames;
-                String[] newValues = new String[newLen];
-                System.arraycopy(xmlnsValues, 0, newValues, 0, xmlnsValues.length);
-                xmlnsValues = newValues;
-            }
-            xmlnsNames[xmlnsLength] = name;
-            xmlnsValues[xmlnsLength] = value;
-            xmlnsLength++;
-            switch (xmlnsPolicy) {
-                case FATAL:
-                    // this is ugly
-                    throw new SAXException("Saw an xmlns attribute.");
-                case ALTER_INFOSET:
-                    return;
-                case ALLOW:
-                    // fall through
-            }
-        }
-
-        // ]NOCPP]
-
-        if (names.length == length) {
-            int newLen = length << 1; // The first growth covers virtually
-            // 100% of elements according to
-            // Hixie
-            AttributeName[] newNames = new AttributeName[newLen];
-            System.arraycopy(names, 0, newNames, 0, names.length);
-            Portability.releaseArray(names);
-            names = newNames;
-            String[] newValues = new String[newLen];
-            System.arraycopy(values, 0, newValues, 0, values.length);
-            Portability.releaseArray(values);
-            values = newValues;
-        }
-        names[length] = name;
-        values[length] = value;
-        length++;
-    }
-
-    void clear(int m) {
-        for (int i = 0; i < length; i++) {
-            names[i].release();
-            names[i] = null;
-            Portability.releaseString(values[i]);
-            values[i] = null;
-        }
-        length = 0;
-        mode = m;
-        // [NOCPP[
-        idValue = null;
-        for (int i = 0; i < xmlnsLength; i++) {
-            xmlnsNames[i] = null;
-            xmlnsValues[i] = null;
-        }
-        xmlnsLength = 0;
-        // ]NOCPP]
-    }
-    
-    /**
-     * This is used in C++ to release special <code>isindex</code>
-     * attribute values whose ownership is not transferred.
-     */
-    void releaseValue(int i) {
-        Portability.releaseString(values[i]);        
-    }
-    
-    /**
-     * This is only used for <code>AttributeName</code> ownership transfer
-     * in the isindex case to avoid freeing custom names twice in C++.
-     */
-    void clearWithoutReleasingContents() {
-        for (int i = 0; i < length; i++) {
-            names[i] = null;
-            values[i] = null;
-        }
-        length = 0;
-    }
-
-    boolean contains(AttributeName name) {
-        for (int i = 0; i < length; i++) {
-            if (name.equalsAnother(names[i])) {
-                return true;
-            }
-        }
-        // [NOCPP[
-        for (int i = 0; i < xmlnsLength; i++) {
-            if (name.equalsAnother(xmlnsNames[i])) {
-                return true;
-            }
-        }
-        // ]NOCPP]
-        return false;
-    }
-
-    public void adjustForMath() {
-        mode = AttributeName.MATHML;
-    }
-
-    public void adjustForSvg() {
-        mode = AttributeName.SVG;
-    }
-
-    // [NOCPP[
-    
-    void processNonNcNames(TreeBuilder<?> treeBuilder, XmlViolationPolicy namePolicy) throws SAXException {
-        for (int i = 0; i < length; i++) {
-            AttributeName attName = names[i];
-            if (!attName.isNcName(mode)) {
-                String name = attName.getLocal(mode);
-                switch (namePolicy) {
-                    case ALTER_INFOSET:
-                        names[i] = AttributeName.create(NCName.escapeName(name));
-                        // fall through
-                    case ALLOW:
-                        if (attName != AttributeName.XML_LANG) {
-                            treeBuilder.warn("Attribute \u201C" + name + "\u201D is not serializable as XML 1.0.");
-                        }
-                        break;
-                    case FATAL:
-                        treeBuilder.fatal("Attribute \u201C" + name + "\u201D is not serializable as XML 1.0.");
-                        break;
-                }
-            }
-        }
-    }
-    
-    public void merge(HtmlAttributes attributes) throws SAXException {
-        int len = attributes.getLength();
-        for (int i = 0; i < len; i++) {
-            AttributeName name = attributes.getAttributeName(i);
-            if (!contains(name)) {
-                addAttribute(name, attributes.getValue(i), XmlViolationPolicy.ALLOW);
-            }
-        }
-    }
-
-    // ]NOCPP]
-    
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/MetaScanner.java
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
- * Copyright (c) 2007 Henri Sivonen
- * Copyright (c) 2008-2009 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-import java.io.IOException;
-
-import nu.validator.htmlparser.annotation.NoLength;
-import nu.validator.htmlparser.common.ByteReadable;
-
-import org.xml.sax.SAXException;
-
-public abstract class MetaScanner {
-
-    private static final @NoLength char[] CHARSET = "charset".toCharArray();
-    
-    private static final @NoLength char[] CONTENT = "content".toCharArray();
-
-    private static final int NO = 0;
-
-    private static final int M = 1;
-    
-    private static final int E = 2;
-    
-    private static final int T = 3;
-
-    private static final int A = 4;
-    
-    private static final int DATA = 0;
-
-    private static final int TAG_OPEN = 1;
-
-    private static final int SCAN_UNTIL_GT = 2;
-
-    private static final int TAG_NAME = 3;
-
-    private static final int BEFORE_ATTRIBUTE_NAME = 4;
-
-    private static final int ATTRIBUTE_NAME = 5;
-
-    private static final int AFTER_ATTRIBUTE_NAME = 6;
-
-    private static final int BEFORE_ATTRIBUTE_VALUE = 7;
-
-    private static final int ATTRIBUTE_VALUE_DOUBLE_QUOTED = 8;
-
-    private static final int ATTRIBUTE_VALUE_SINGLE_QUOTED = 9;
-
-    private static final int ATTRIBUTE_VALUE_UNQUOTED = 10;
-
-    private static final int AFTER_ATTRIBUTE_VALUE_QUOTED = 11;
-
-    private static final int MARKUP_DECLARATION_OPEN = 13;
-    
-    private static final int MARKUP_DECLARATION_HYPHEN = 14;
-
-    private static final int COMMENT_START = 15;
-
-    private static final int COMMENT_START_DASH = 16;
-
-    private static final int COMMENT = 17;
-
-    private static final int COMMENT_END_DASH = 18;
-
-    private static final int COMMENT_END = 19;
-    
-    private static final int SELF_CLOSING_START_TAG = 20;
-    
-    protected ByteReadable readable;
-    
-    private int metaState = NO;
-
-    private int contentIndex = -1;
-    
-    private int charsetIndex = -1;
-
-    protected int stateSave = DATA;
-
-    private int strBufLen;
-
-    private char[] strBuf;
-    
-    // [NOCPP[
-    
-    /**
-     * @param source
-     * @param errorHandler
-     * @param publicId
-     * @param systemId
-     */
-    public MetaScanner() {
-        this.readable = null;
-        this.metaState = NO;
-        this.contentIndex = -1;
-        this.charsetIndex = -1;
-        this.stateSave = DATA;
-        strBufLen = 0;
-        strBuf = new char[36];
-    }
-    
-    /**
-     * -1 means end.
-     * @return
-     * @throws IOException
-     */
-    protected int read() throws IOException {
-        return readable.readByte();
-    }
-
-    // ]NOCPP]
-
-    // WARNING When editing this, makes sure the bytecode length shown by javap
-    // stays under 8000 bytes!
-    protected final void stateLoop(int state)
-            throws SAXException, IOException {
-        int c = -1;
-        boolean reconsume = false;
-        stateloop: for (;;) {
-            switch (state) {
-                case DATA:
-                    dataloop: for (;;) {
-                        if (reconsume) {
-                            reconsume = false;
-                        } else {
-                            c = read();
-                        }
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '<':
-                                state = MetaScanner.TAG_OPEN;
-                                break dataloop; // FALL THROUGH continue
-                            // stateloop;
-                            default:
-                                continue;
-                        }
-                    }
-                    // WARNING FALLTHRU CASE TRANSITION: DON'T REORDER
-                case TAG_OPEN:
-                    tagopenloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case 'm':
-                            case 'M':
-                                metaState = M;
-                                state = MetaScanner.TAG_NAME;
-                                break tagopenloop;
-                                // continue stateloop;                                
-                            case '!':
-                                state = MetaScanner.MARKUP_DECLARATION_OPEN;
-                                continue stateloop;
-                            case '?':
-                            case '/':
-                                state = MetaScanner.SCAN_UNTIL_GT;
-                                continue stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
-                                    metaState = NO;
-                                    state = MetaScanner.TAG_NAME;
-                                    break tagopenloop;
-                                    // continue stateloop;
-                                }
-                                state = MetaScanner.DATA;
-                                reconsume = true;
-                                continue stateloop;
-                        }
-                    }
-                    // FALL THROUGH DON'T REORDER
-                case TAG_NAME:
-                    tagnameloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-                            case '\u000C':
-                                state = MetaScanner.BEFORE_ATTRIBUTE_NAME;
-                                break tagnameloop;
-                            // continue stateloop;
-                            case '/':
-                                state = MetaScanner.SELF_CLOSING_START_TAG;
-                                continue stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            case 'e':
-                            case 'E':
-                                if (metaState == M) {
-                                    metaState = E;
-                                } else {
-                                    metaState = NO;
-                                }
-                                continue;
-                            case 't':
-                            case 'T':
-                                if (metaState == E) {
-                                    metaState = T;
-                                } else {
-                                    metaState = NO;
-                                }
-                                continue;
-                            case 'a':
-                            case 'A':
-                                if (metaState == T) {
-                                    metaState = A;
-                                } else {
-                                    metaState = NO;
-                                }
-                                continue;
-                            default:
-                                metaState = NO;
-                                continue;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case BEFORE_ATTRIBUTE_NAME:
-                    beforeattributenameloop: for (;;) {
-                        if (reconsume) {
-                            reconsume = false;
-                        } else {
-                            c = read();
-                        }
-                        /*
-                         * Consume the next input character:
-                         */
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-                            case '\u000C':
-                                continue;
-                            case '/':
-                                state = MetaScanner.SELF_CLOSING_START_TAG;
-                                continue stateloop;
-                            case '>':
-                                state = DATA;
-                                continue stateloop;
-                            case 'c':
-                            case 'C':
-                                contentIndex = 0;
-                                charsetIndex = 0;
-                                state = MetaScanner.ATTRIBUTE_NAME;
-                                break beforeattributenameloop;                                
-                            default:
-                                contentIndex = -1;
-                                charsetIndex = -1;
-                                state = MetaScanner.ATTRIBUTE_NAME;
-                                break beforeattributenameloop;
-                            // continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case ATTRIBUTE_NAME:
-                    attributenameloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-                            case '\u000C':
-                                state = MetaScanner.AFTER_ATTRIBUTE_NAME;
-                                continue stateloop;
-                            case '/':
-                                state = MetaScanner.SELF_CLOSING_START_TAG;
-                                continue stateloop;
-                            case '=':
-                                strBufLen = 0;
-                                state = MetaScanner.BEFORE_ATTRIBUTE_VALUE;
-                                break attributenameloop;
-                            // continue stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                if (metaState == A) {
-                                    if (c >= 'A' && c <= 'Z') {
-                                        c += 0x20;
-                                    }
-                                    if (contentIndex == 6) {
-                                        contentIndex = -1;
-                                    } else if (contentIndex > -1
-                                            && contentIndex < 6
-                                            && (c == CONTENT[contentIndex + 1])) {
-                                        contentIndex++;
-                                    }
-                                    if (charsetIndex == 6) {
-                                        charsetIndex = -1;
-                                    } else if (charsetIndex > -1
-                                            && charsetIndex < 6
-                                            && (c == CHARSET[charsetIndex + 1])) {
-                                        charsetIndex++;
-                                    }
-                                }
-                                continue;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case BEFORE_ATTRIBUTE_VALUE:
-                    beforeattributevalueloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-                            case '\u000C':
-                                continue;
-                            case '"':
-                                state = MetaScanner.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
-                                break beforeattributevalueloop;
-                            // continue stateloop;
-                            case '\'':
-                                state = MetaScanner.ATTRIBUTE_VALUE_SINGLE_QUOTED;
-                                continue stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                if (charsetIndex == 6 || contentIndex == 6) {
-                                    addToBuffer(c);
-                                }
-                                state = MetaScanner.ATTRIBUTE_VALUE_UNQUOTED;
-                                continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case ATTRIBUTE_VALUE_DOUBLE_QUOTED:
-                    attributevaluedoublequotedloop: for (;;) {
-                        if (reconsume) {
-                            reconsume = false;
-                        } else {
-                            c = read();
-                        }
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '"':
-                                if (tryCharset()) {
-                                    break stateloop;
-                                }
-                                state = MetaScanner.AFTER_ATTRIBUTE_VALUE_QUOTED;
-                                break attributevaluedoublequotedloop;
-                            // continue stateloop;
-                            default:
-                                if (metaState == A && (contentIndex == 6 || charsetIndex == 6)) {
-                                    addToBuffer(c);
-                                }
-                                continue;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case AFTER_ATTRIBUTE_VALUE_QUOTED:
-                    afterattributevaluequotedloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-                            case '\u000C':
-                                state = MetaScanner.BEFORE_ATTRIBUTE_NAME;
-                                continue stateloop;
-                            case '/':
-                                state = MetaScanner.SELF_CLOSING_START_TAG;
-                                break afterattributevaluequotedloop;
-                            // continue stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                state = MetaScanner.BEFORE_ATTRIBUTE_NAME;
-                                reconsume = true;
-                                continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case SELF_CLOSING_START_TAG:
-                    c = read();
-                    switch (c) {
-                        case -1:
-                            break stateloop;
-                        case '>':
-                            state = MetaScanner.DATA;
-                            continue stateloop;
-                        default:
-                            state = MetaScanner.BEFORE_ATTRIBUTE_NAME;
-                            reconsume = true;
-                            continue stateloop;
-                    }
-                    // XXX reorder point
-                case ATTRIBUTE_VALUE_UNQUOTED:
-                    for (;;) {
-                        if (reconsume) {
-                            reconsume = false;
-                        } else {
-                            c = read();
-                        }
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-
-                            case '\u000C':
-                                if (tryCharset()) {
-                                    break stateloop;
-                                }
-                                state = MetaScanner.BEFORE_ATTRIBUTE_NAME;
-                                continue stateloop;
-                            case '>':
-                                if (tryCharset()) {
-                                    break stateloop;
-                                }
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                if (metaState == A && (contentIndex == 6 || charsetIndex == 6)) {
-                                    addToBuffer(c);
-                                }
-                                continue;
-                        }
-                    }
-                    // XXX reorder point
-                case AFTER_ATTRIBUTE_NAME:
-                    for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case ' ':
-                            case '\t':
-                            case '\n':
-                            case '\u000C':
-                                continue;
-                            case '/':
-                                if (tryCharset()) {
-                                    break stateloop;
-                                }
-                                state = MetaScanner.SELF_CLOSING_START_TAG;
-                                continue stateloop;
-                            case '=':
-                                state = MetaScanner.BEFORE_ATTRIBUTE_VALUE;
-                                continue stateloop;
-                            case '>':
-                                if (tryCharset()) {
-                                    break stateloop;
-                                }
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            case 'c':
-                            case 'C':
-                                contentIndex = 0;
-                                charsetIndex = 0;
-                                state = MetaScanner.ATTRIBUTE_NAME;
-                                continue stateloop;
-                            default:
-                                contentIndex = -1;
-                                charsetIndex = -1;
-                                state = MetaScanner.ATTRIBUTE_NAME;
-                                continue stateloop;
-                        }
-                    }
-                    // XXX reorder point
-                case MARKUP_DECLARATION_OPEN:
-                    markupdeclarationopenloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '-':
-                                state = MetaScanner.MARKUP_DECLARATION_HYPHEN;
-                                break markupdeclarationopenloop;
-                            // continue stateloop;
-                            default:
-                                state = MetaScanner.SCAN_UNTIL_GT;
-                                reconsume = true;
-                                continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case MARKUP_DECLARATION_HYPHEN:
-                    markupdeclarationhyphenloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '-':
-                                state = MetaScanner.COMMENT_START;
-                                break markupdeclarationhyphenloop;
-                            // continue stateloop;
-                            default:
-                                state = MetaScanner.SCAN_UNTIL_GT;
-                                reconsume = true;
-                                continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case COMMENT_START:
-                    commentstartloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '-':
-                                state = MetaScanner.COMMENT_START_DASH;
-                                continue stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                state = MetaScanner.COMMENT;
-                                break commentstartloop;
-                            // continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case COMMENT:
-                    commentloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '-':
-                                state = MetaScanner.COMMENT_END_DASH;
-                                break commentloop;
-                            // continue stateloop;
-                            default:
-                                continue;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case COMMENT_END_DASH:
-                    commentenddashloop: for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '-':
-                                state = MetaScanner.COMMENT_END;
-                                break commentenddashloop;
-                            // continue stateloop;
-                            default:
-                                state = MetaScanner.COMMENT;
-                                continue stateloop;
-                        }
-                    }
-                    // FALLTHRU DON'T REORDER
-                case COMMENT_END:
-                    for (;;) {
-                        c = read();
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            case '-':
-                                continue;
-                            default:
-                                state = MetaScanner.COMMENT;
-                                continue stateloop;
-                        }
-                    }
-                    // XXX reorder point
-                case COMMENT_START_DASH:
-                    c = read();
-                    switch (c) {
-                        case -1:
-                            break stateloop;
-                        case '-':
-                            state = MetaScanner.COMMENT_END;
-                            continue stateloop;
-                        case '>':
-                            state = MetaScanner.DATA;
-                            continue stateloop;
-                        default:
-                            state = MetaScanner.COMMENT;
-                            continue stateloop;
-                    }
-                    // XXX reorder point
-                case ATTRIBUTE_VALUE_SINGLE_QUOTED:
-                    for (;;) {
-                        if (reconsume) {
-                            reconsume = false;
-                        } else {
-                            c = read();
-                        }
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '\'':
-                                if (tryCharset()) {
-                                    break stateloop;
-                                }
-                                state = MetaScanner.AFTER_ATTRIBUTE_VALUE_QUOTED;
-                                continue stateloop;
-                            default:
-                                if (metaState == A && (contentIndex == 6 || charsetIndex == 6)) {
-                                    addToBuffer(c);
-                                }
-                                continue;
-                        }
-                    }
-                    // XXX reorder point
-                case SCAN_UNTIL_GT:
-                    for (;;) {
-                        if (reconsume) {
-                            reconsume = false;
-                        } else {
-                            c = read();
-                        }
-                        switch (c) {
-                            case -1:
-                                break stateloop;
-                            case '>':
-                                state = MetaScanner.DATA;
-                                continue stateloop;
-                            default:
-                                continue;
-                        }
-                    }
-            }
-        }
-        stateSave  = state;
-    }
-
-    private void addToBuffer(int c) {
-        if (strBufLen == strBuf.length) {
-            char[] newBuf = new char[strBuf.length + (strBuf.length << 1)];
-            System.arraycopy(strBuf, 0, newBuf, 0, strBuf.length);
-            Portability.releaseArray(strBuf);
-            strBuf = newBuf;
-        }
-        strBuf[strBufLen++] = (char)c;
-    }
-
-    private boolean tryCharset() throws SAXException {
-        if (metaState != A || !(contentIndex == 6 || charsetIndex == 6)) {
-            return false;
-        }
-        String attVal = Portability.newStringFromBuffer(strBuf, 0, strBufLen);
-        String candidateEncoding;
-        if (contentIndex == 6) {
-            candidateEncoding = TreeBuilder.extractCharsetFromContent(attVal);
-            Portability.releaseString(attVal);
-        } else {
-            candidateEncoding = attVal;
-        }
-        if (candidateEncoding == null) {
-            return false;
-        }
-        boolean rv = tryCharset(candidateEncoding);
-        Portability.releaseString(candidateEncoding);
-        contentIndex = -1;
-        charsetIndex = -1;
-        return rv;
-    }
-    
-    protected abstract boolean tryCharset(String encoding) throws SAXException;
-
-    
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/Portability.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2008-2009 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-import nu.validator.htmlparser.annotation.Literal;
-import nu.validator.htmlparser.annotation.Local;
-import nu.validator.htmlparser.annotation.NoLength;
-
-public final class Portability {
-
-    // Allocating methods
-
-    /**
-     * Allocates a new local name object. In C++, the refcount must be set up in such a way that 
-     * calling <code>releaseLocal</code> on the return value balances the refcount set by this method.
-     */
-    public static @Local String newLocalNameFromBuffer(@NoLength char[] buf, int offset, int length) {
-        return new String(buf, offset, length).intern();
-    }
-
-    public static String newStringFromBuffer(@NoLength char[] buf, int offset, int length) {
-        return new String(buf, offset, length);
-    }
-
-    public static String newEmptyString() {
-        return "";
-    }
-
-    public static String newStringFromLiteral(@Literal String literal) {
-        return literal;
-    }
-    
-    // XXX get rid of this
-    public static char[] newCharArrayFromLocal(@Local String local) {
-        return local.toCharArray();
-    }
-
-    public static char[] newCharArrayFromString(String string) {
-        return string.toCharArray();
-    }
-    
-    // Deallocation methods
-    
-    public static void releaseString(String str) {
-        // No-op in Java
-    }
-    
-    public static void retainLocal(@Local String local) {
-        // No-op in Java
-    }
-
-    /**
-     * This MUST be a no-op on locals that are known at compile time.
-     * @param local
-     */
-    public static void releaseLocal(@Local String local) {
-        // No-op in Java
-    }
-    
-    /**
-     * Releases a Java array. This method is magically replaced by a macro in C++.
-     * @param arr
-     */
-    public static void releaseArray(Object arr) {
-        // No-op in Java
-    }    
-    
-    public static void retainElement(Object elt) {
-        // No-op in Java
-    }
-
-    public static void releaseElement(Object elt) {
-        // No-op in Java
-    }
-    
-    // Comparison methods
-    
-    public static boolean localEqualsBuffer(@Local String local, @NoLength char[] buf, int offset, int length) {
-        if (local.length() != length) {
-            return false;
-        }
-        for (int i = 0; i < length; i++) {
-            if (local.charAt(i) != buf[offset + i]) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    public static boolean lowerCaseLiteralIsPrefixOfIgnoreAsciiCaseString(@Literal String lowerCaseLiteral,
-            String string) {
-        if (string == null) {
-            return false;
-        }
-        if (lowerCaseLiteral.length() > string.length()) {
-            return false;
-        }
-        for (int i = 0; i < lowerCaseLiteral.length(); i++) {
-            char c0 = lowerCaseLiteral.charAt(i);
-            char c1 = string.charAt(i);
-            if (c1 >= 'A' && c1 <= 'Z') {
-                c1 += 0x20;
-            }
-            if (c0 != c1) {
-                return false;
-            }
-        }
-        return true;
-    }
-    
-    public static boolean lowerCaseLiteralEqualsIgnoreAsciiCaseString(@Literal String lowerCaseLiteral,
-            String string) {
-        if (string == null) {
-            return false;
-        }
-        if (lowerCaseLiteral.length() != string.length()) {
-            return false;
-        }
-        for (int i = 0; i < lowerCaseLiteral.length(); i++) {
-            char c0 = lowerCaseLiteral.charAt(i);
-            char c1 = string.charAt(i);
-            if (c1 >= 'A' && c1 <= 'Z') {
-                c1 += 0x20;
-            }
-            if (c0 != c1) {
-                return false;
-            }
-        }
-        return true;
-    }
-    
-    public static boolean literalEqualsString(@Literal String literal, String string) {
-        return literal.equals(string);
-    }
-
-    public static char[] isIndexPrompt() {
-        return "This is a searchable index. Insert your search keywords here: ".toCharArray();
-    }
-
-    public static void delete(Object o) {
-        
-    }
-
-    public static void deleteArray(Object o) {
-        
-    }
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-The *.java files in this directory are the source files from which the 
-corresponding nsHtml5*.cpp and nsHtml5*.h files were generated in
-../src/.
-
-You can obtain the full Java version of the parser and the translator
-program from
-svn co http://svn.versiondude.net/whattf/htmlparser/trunk/ htmlparser
-
-See run-cpp-translate.sh at the top level of the SVN checkout.
deleted file mode 100644
--- a/content/html/parser/javasrc/StackNode.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2007 Henri Sivonen
- * Copyright (c) 2007-2009 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-import nu.validator.htmlparser.annotation.Local;
-import nu.validator.htmlparser.annotation.NsUri;
-
-final class StackNode<T> {
-    final int group;
-
-    final @Local String name;
-
-    final @Local String popName;
-
-    final @NsUri String ns;
-
-    final T node;
-
-    final boolean scoping;
-
-    final boolean special;
-
-    final boolean fosterParenting;
-    
-    private int refcount = 1;
-
-    /**
-     * @param group
-     *            TODO
-     * @param name
-     * @param node
-     * @param scoping
-     * @param special
-     * @param popName
-     *            TODO
-     */
-    StackNode(int group, final @NsUri String ns, final @Local String name, final T node,
-            final boolean scoping, final boolean special,
-            final boolean fosterParenting, final @Local String popName) {
-        this.group = group;
-        this.name = name;
-        this.popName = popName;
-        this.ns = ns;
-        this.node = node;
-        this.scoping = scoping;
-        this.special = special;
-        this.fosterParenting = fosterParenting;
-        this.refcount = 1;
-        Portability.retainLocal(name);
-        Portability.retainLocal(popName);
-        Portability.retainElement(node);
-        // not retaining namespace for now        
-    }
-
-    /**
-     * @param elementName
-     *            TODO
-     * @param node
-     */
-    StackNode(final @NsUri String ns, ElementName elementName, final T node) {
-        this.group = elementName.group;
-        this.name = elementName.name;
-        this.popName = elementName.name;
-        this.ns = ns;
-        this.node = node;
-        this.scoping = elementName.scoping;
-        this.special = elementName.special;
-        this.fosterParenting = elementName.fosterParenting;
-        this.refcount = 1;
-        Portability.retainLocal(name);
-        Portability.retainLocal(popName);
-        Portability.retainElement(node);
-        // not retaining namespace for now        
-    }
-
-    StackNode(final @NsUri String ns, ElementName elementName, final T node, @Local String popName) {
-        this.group = elementName.group;
-        this.name = elementName.name;
-        this.popName = popName;
-        this.ns = ns;
-        this.node = node;
-        this.scoping = elementName.scoping;
-        this.special = elementName.special;
-        this.fosterParenting = elementName.fosterParenting;
-        this.refcount = 1;
-        Portability.retainLocal(name);
-        Portability.retainLocal(popName);
-        Portability.retainElement(node);
-        // not retaining namespace for now        
-    }
-
-    StackNode(final @NsUri String ns, ElementName elementName, final T node, @Local String popName, boolean scoping) {
-        this.group = elementName.group;
-        this.name = elementName.name;
-        this.popName = popName;
-        this.ns = ns;
-        this.node = node;
-        this.scoping = scoping;
-        this.special = false;
-        this.fosterParenting = false;
-        this.refcount = 1;
-        Portability.retainLocal(name);
-        Portability.retainLocal(popName);
-        Portability.retainElement(node);
-        // not retaining namespace for now        
-    }
-    
-    @SuppressWarnings("unused") private void destructor() {
-        Portability.releaseLocal(name);
-        Portability.releaseLocal(popName);
-        Portability.releaseElement(node);
-        // not releasing namespace for now        
-    }
-    
-    // [NOCPP[
-    /**
-     * @see java.lang.Object#toString()
-     */
-    @Override public @Local String toString() {
-        return name;
-    }
-    // ]NOCPP]
-    
-    public void retain() {   
-        refcount++;
-    }
-    
-    public void release() {
-        refcount--;
-        if (refcount == 0) {
-            Portability.delete(this);
-        }
-    }
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/StateSnapshot.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2009 Mozilla Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-package nu.validator.htmlparser.impl;
-
-
-public class StateSnapshot<T> {
-
-    /**
-     * @param stack
-     * @param listOfActiveFormattingElements
-     * @param formPointer
-     */
-    StateSnapshot(StackNode<T>[] stack,
-            StackNode<T>[] listOfActiveFormattingElements, T formPointer) {
-        this.stack = stack;
-        this.listOfActiveFormattingElements = listOfActiveFormattingElements;
-        this.formPointer = formPointer;
-    }
-
-    final StackNode<T>[] stack;
-
-    final StackNode<T>[] listOfActiveFormattingElements;
-
-    final T formPointer;
-    
-    @SuppressWarnings("unused") private void destructor() {
-        for (int i = 0; i < stack.length; i++) {
-            stack[i].release();
-        }
-        Portability.releaseArray(stack);
-        for (int i = 0; i < listOfActiveFormattingElements.length; i++) {
-            if (listOfActiveFormattingElements[i] != null) {
-                listOfActiveFormattingElements[i].release();                
-            }
-        }
-        Portability.releaseArray(listOfActiveFormattingElements);
-        Portability.retainElement(formPointer);
-    }
-}
deleted file mode 100644
--- a/content/html/parser/javasrc/Tokenizer.java
+++ /dev/null
@@ -1,5709 +0,0 @@
-/*
- * Copyright (c) 2005-2007 Henri Sivonen
- * Copyright (c) 2007-2009 Mozilla Foundation
- * Portions of comments Copyright 2004-2008 Apple Computer, Inc., Mozilla 
- * Foundation, and Opera Software ASA.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a 
- * copy of this software and associated documentation files (the "Software"), 
- * to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- * and/or sell copies of the Software, and to permit persons to whom the 
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * The comments following this one that use the same comment syntax as this 
- * comment are quotes from the WHATWG HTML 5 spec as of 2 June 2007 
- * amended as of June 18 2008.
- * That document came with this statement:
- * "© Copyright 2004-2008 Apple Computer, Inc., Mozilla Foundation, and 
- * Opera Software ASA. You are granted a license to use, reproduce and 
- * create derivative works of this document."
- */
-
-package nu.validator.htmlparser.impl;
-
-import nu.validator.htmlparser.annotation.Inline;
-import nu.validator.htmlparser.annotation.Local;
-import nu.validator.htmlparser.annotation.NoLength;
-import nu.validator.htmlparser.common.EncodingDeclarationHandler;
-import nu.validator.htmlparser.common.TokenHandler;
-import nu.validator.htmlparser.common.XmlViolationPolicy;
-
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * An implementation of
- * http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html
- * 
- * This class implements the <code>Locator</code> interface. This is not an
- * incidental implementation detail: Users of this class are encouraged to make
- * use of the <code>Locator</code> nature.
- * 
- * By default, the tokenizer may report data that XML 1.0 bans. The tokenizer
- * can be configured to treat these conditions as fatal or to coerce the infoset
- * to something that XML 1.0 allows.
- * 
- * @version $Id: Tokenizer.java 555 2009-06-25 07:17:28Z hsivonen $
- * @author hsivonen
- */
-public class Tokenizer implements Locator {
-
-    public static final int DATA = 0;
-
-    public static final int RCDATA = 1;
-
-    public static final int CDATA = 2;
-
-    public static final int PLAINTEXT = 3;
-
-    private static final int TAG_OPEN = 49;
-
-    private static final int CLOSE_TAG_OPEN_PCDATA = 50;
-
-    private static final int TAG_NAME = 58;
-
-    private static final int BEFORE_ATTRIBUTE_NAME = 4;
-
-    private static final int ATTRIBUTE_NAME = 5;
-
-    private static final int AFTER_ATTRIBUTE_NAME = 6;
-
-    private static final int BEFORE_ATTRIBUTE_VALUE = 7;
-
-    private static final int ATTRIBUTE_VALUE_DOUBLE_QUOTED = 8;
-
-    private static final int ATTRIBUTE_VALUE_SINGLE_QUOTED = 9;
-
-    private static final int ATTRIBUTE_VALUE_UNQUOTED = 10;
-
-    private static final int AFTER_ATTRIBUTE_VALUE_QUOTED = 11;
-
-    private static final int BOGUS_COMMENT = 12;
-
-    private static final int MARKUP_DECLARATION_OPEN = 13;
-
-    private static final int DOCTYPE = 14;
-
-    private static final int BEFORE_DOCTYPE_NAME = 15;
-
-    private static final int DOCTYPE_NAME = 16;
-
-    private static final int AFTER_DOCTYPE_NAME = 17;
-
-    private static final int BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 18;
-
-    private static final int DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 19;
-
-    private static final int DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 20;
-
-    private static final int AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 21;
-
-    private static final int BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 22;
-
-    private static final int DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 23;
-
-    private static final int DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 24;
-
-    private static final int AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 25;
-
-    private static final int BOGUS_DOCTYPE = 26;
-
-    private static final int COMMENT_START = 27;
-
-    private static final int COMMENT_START_DASH = 28;
-
-    private static final int COMMENT = 29;
-
-    private static final int COMMENT_END_DASH = 30;
-
-    private static final int COMMENT_END = 31;
-
-    private static final int CLOSE_TAG_OPEN_NOT_PCDATA = 32;
-
-    private static final int MARKUP_DECLARATION_HYPHEN = 33;
-
-    private static final int MARKUP_DECLARATION_OCTYPE = 34;
-
-    private static final int DOCTYPE_UBLIC = 35;
-
-    private static final int DOCTYPE_YSTEM = 36;
-
-    private static final int CONSUME_CHARACTER_REFERENCE = 37;
-
-    private static final int CONSUME_NCR = 38;
-
-    private static final int CHARACTER_REFERENCE_LOOP = 39;
-
-    private static final int HEX_NCR_LOOP = 41;
-
-    private static final int DECIMAL_NRC_LOOP = 42;
-
-    private static final int HANDLE_NCR_VALUE = 43;
-
-    private static final int SELF_CLOSING_START_TAG = 44;
-
-    private static final int CDATA_START = 45;
-
-    private static final int CDATA_SECTION = 46;
-
-    private static final int CDATA_RSQB = 47;
-
-    private static final int CDATA_RSQB_RSQB = 48;
-
-    private static final int TAG_OPEN_NON_PCDATA = 51;
-
-    private static final int ESCAPE_EXCLAMATION = 52;
-
-    private static final int ESCAPE_EXCLAMATION_HYPHEN = 53;
-
-    private static final int ESCAPE = 54;
-
-    private static final int ESCAPE_HYPHEN = 55;
-
-    private static final int ESCAPE_HYPHEN_HYPHEN = 56;
-
-    private static final int BOGUS_COMMENT_HYPHEN = 57;
-
-    /**
-     * Magic value for UTF-16 operations.
-     */
-    private static final int LEAD_OFFSET = (0xD800 - (0x10000 >> 10));
-
-    /**
-     * UTF-16 code unit array containing less than and greater than for emitting
-     * those characters on certain parse errors.
-     */
-    private static final @NoLength char[] LT_GT = { '<', '>' };
-
-    /**
-     * UTF-16 code unit array containing less than and solidus for emitting
-     * those characters on certain parse errors.
-     */
-    private static final @NoLength char[] LT_SOLIDUS = { '<', '/' };
-
-    /**
-     * UTF-16 code unit array containing ]] for emitting those characters on
-     * state transitions.
-     */
-    private static final @NoLength char[] RSQB_RSQB = { ']', ']' };
-
-    /**
-     * Array version of U+FFFD.
-     */
-    private static final @NoLength char[] REPLACEMENT_CHARACTER = { '\uFFFD' };
-
-    // [NOCPP[
-
-    /**
-     * Array version of space.
-     */
-    private static final @NoLength char[] SPACE = { ' ' };
-
-    // ]NOCPP]
-
-    /**
-     * Array version of line feed.
-     */
-    private static final @NoLength char[] LF = { '\n' };
-
-    /**
-     * Buffer growth parameter.
-     */
-    private static final int BUFFER_GROW_BY = 1024;
-
-    /**
-     * "CDATA[" as <code>char[]</code>
-     */
-    private static final @NoLength char[] CDATA_LSQB = "CDATA[".toCharArray();
-
-    /**
-     * "octype" as <code>char[]</code>
-     */
-    private static final @NoLength char[] OCTYPE = "octype".toCharArray();
-
-    /**
-     * "ublic" as <code>char[]</code>
-     */
-    private static final @NoLength char[] UBLIC = "ublic".toCharArray();
-
-    /**
-     * "ystem" as <code>char[]</code>
-     */
-    private static final @NoLength char[] YSTEM = "ystem".toCharArray();
-
-    private static final char[] TITLE_ARR = { 't', 'i', 't', 'l', 'e' };
-
-    private static final char[] SCRIPT_ARR = { 's', 'c', 'r', 'i', 'p', 't' };
-
-    private static final char[] STYLE_ARR = { 's', 't', 'y', 'l', 'e' };
-
-    private static final char[] PLAINTEXT_ARR = { 'p', 'l', 'a', 'i', 'n', 't',
-            'e', 'x', 't' };
-
-    private static final char[] XMP_ARR = { 'x', 'm', 'p' };
-
-    private static final char[] TEXTAREA_ARR = { 't', 'e', 'x', 't', 'a', 'r',
-            'e', 'a' };
-
-    private static final char[] IFRAME_ARR = { 'i', 'f', 'r', 'a', 'm', 'e' };
-
-    private static final char[] NOEMBED_ARR = { 'n', 'o', 'e', 'm', 'b', 'e',
-            'd' };
-
-    private static final char[] NOSCRIPT_ARR = { 'n', 'o', 's', 'c', 'r', 'i',
-            'p', 't' };
-
-    private static final char[] NOFRAMES_ARR = { 'n', 'o', 'f', 'r', 'a', 'm',
-            'e', 's' };
-
-    /**
-     * The token handler.
-     */
-    protected final TokenHandler tokenHandler;
-
-    protected EncodingDeclarationHandler encodingDeclarationHandler;
-
-    // [NOCPP[
-
-    /**
-     * The error handler.
-     */
-    protected ErrorHandler errorHandler;
-
-    // ]NOCPP]
-
-    /**
-     * Whether the previous char read was CR.
-     */
-    protected boolean lastCR;
-
-    protected int stateSave;
-
-    private int returnStateSave;
-
-    protected int index;
-
-    private boolean forceQuirks;
-
-    private char additional;
-
-    private int entCol;
-
-    private int lo;
-
-    private int hi;
-
-    private int candidate;
-
-    private int strBufMark;
-
-    private int prevValue;
-
-    protected int value;
-
-    private boolean seenDigits;
-
-    protected int cstart;
-
-    /**
-     * The SAX public id for the resource being tokenized. (Only passed to back
-     * as part of locator data.)
-     */
-    private String publicId;
-
-    /**
-     * The SAX system id for the resource being tokenized. (Only passed to back
-     * as part of locator data.)
-     */
-    private String systemId;
-
-    /**
-     * Buffer for short identifiers.
-     */
-    private char[] strBuf;
-
-    /**
-     * Number of significant <code>char</code>s in <code>strBuf</code>.
-     */
-    private int strBufLen;
-
-    /**
-     * <code>-1</code> to indicate that <code>strBuf</code> is used or otherwise
-     * an offset to the main buffer.
-     */
-    // private int strBufOffset = -1;
-    /**
-     * Buffer for long strings.
-     */
-    private char[] longStrBuf;
-
-    /**
-     * Number of significant <code>char</code>s in <code>longStrBuf</code>.
-     */
-    private int longStrBufLen;
-
-    /**
-     * <code>-1</code> to indicate that <code>longStrBuf</code> is used or
-     * otherwise an offset to the main buffer.
-     */
-    // private int longStrBufOffset = -1;
-    /**
-     * The attribute holder.
-     */
-    private HtmlAttributes attributes;
-
-    /**
-     * Buffer for expanding NCRs falling into the Basic Multilingual Plane.
-     */
-    private final char[] bmpChar;
-
-    /**
-     * Buffer for expanding astral NCRs.
-     */
-    private final char[] astralChar;
-
-    /**
-     * The element whose end tag closes the current CDATA or RCDATA element.
-     */
-    protected ElementName contentModelElement = null;
-
-    private char[] contentModelElementNameAsArray;
-
-    /**
-     * <code>true</code> if tokenizing an end tag
-     */
-    protected boolean endTag;
-
-    /**
-     * The current tag token name.
-     */
-    private ElementName tagName = null;
-
-    /**
-     * The current attribute name.
-     */
-    protected AttributeName attributeName = null;
-
-    // [NOCPP[
-
-    /**
-     * Whether comment tokens are emitted.
-     */
-    private boolean wantsComments = false;
-
-    /**
-     * <code>true</code> when HTML4-specific additional errors are requested.
-     */
-    protected boolean html4;
-
-    /**
-     * Whether the stream is past the first 512 bytes.
-     */
-    private boolean metaBoundaryPassed;
-
-    // ]NOCPP]
-
-    /**
-     * The name of the current doctype token.
-     */
-    private @Local String doctypeName;
-
-    /**
-     * The public id of the current doctype token.
-     */
-    private String publicIdentifier;
-
-    /**
-     * The system id of the current doctype token.
-     */
-    private String systemIdentifier;
-
-    // [NOCPP[
-
-    /**
-     * The policy for vertical tab and form feed.
-     */
-    private XmlViolationPolicy contentSpacePolicy = XmlViolationPolicy.ALTER_INFOSET;
-
-    /**
-     * The policy for comments.
-     */
-    private XmlViolationPolicy commentPolicy = XmlViolationPolicy.ALTER_INFOSET;
-
-    private XmlViolationPolicy xmlnsPolicy = XmlViolationPolicy.ALTER_INFOSET;
-
-    private XmlViolationPolicy namePolicy = XmlViolationPolicy.ALTER_INFOSET;
-
-    private boolean html4ModeCompatibleWithXhtml1Schemata;
-
-    private final boolean newAttributesEachTime;
-
-    // ]NOCPP]
-
-    private int mappingLangToXmlLang;
-
-    private boolean shouldSuspend;
-
-    protected boolean confident;
-    
-    private int line;
-
-    // [NOCPP[
-
-    protected LocatorImpl ampersandLocation;
-
-    public Tokenizer(TokenHandler tokenHandler,
-            boolean newAttributesEachTime) {
-        this.tokenHandler = tokenHandler;
-        this.encodingDeclarationHandler = null;
-        this.newAttributesEachTime = newAttributesEachTime;
-        this.bmpChar = new char[1];
-        this.astralChar = new char[2];
-    }
-
-    // ]NOCPP]
-
-    /**
-     * The constructor.
-     * 
-     * @param tokenHandler
-     *            the handler for receiving tokens
-     */
-    public Tokenizer(TokenHandler tokenHandler) {
-        this.tokenHandler = tokenHandler;
-        this.encodingDeclarationHandler = null;
-        // [NOCPP[
-        this.newAttributesEachTime = false;
-        // ]NOCPP]
-        this.bmpChar = new char[1];
-        this.astralChar = new char[2];
-    }
-
-    public void initLocation(String newPublicId, String newSystemId) {
-        this.systemId = newSystemId;
-        this.publicId = newPublicId;
-
-    }
-
-    void destructor() {
-        Portability.releaseArray(bmpChar);
-        Portability.releaseArray(astralChar);
-    }
-
-    // [NOCPP[
-
-    /**
-     * Returns the mappingLangToXmlLang.
-     * 
-     * @return the mappingLangToXmlLang
-     */
-    public boolean isMappingLangToXmlLang() {
-        return mappingLangToXmlLang == AttributeName.HTML_LANG;
-    }
-
-    /**
-     * Sets the mappingLangToXmlLang.
-     * 
-     * @param mappingLangToXmlLang
-     *            the mappingLangToXmlLang to set
-     */
-    public void setMappingLangToXmlLang(boolean mappingLangToXmlLang) {
-        this.mappingLangToXmlLang = mappingLangToXmlLang ? AttributeName.HTML_LANG
-                : AttributeName.HTML;
-    }
-
-    /**
-     * Sets the error handler.
-     * 
-     * @see org.xml.sax.XMLReader#setErrorHandler(org.xml.sax.ErrorHandler)
-     */
-    public void setErrorHandler(ErrorHandler eh) {
-        this.errorHandler = eh;
-    }
-
-    public ErrorHandler getErrorHandler() {
-        return this.errorHandler;
-    }
-
-    /**
-     * Sets the commentPolicy.
-     * 
-     * @param commentPolicy
-     *            the commentPolicy to set
-     */
-    public void setCommentPolicy(XmlViolationPolicy commentPolicy) {
-        this.commentPolicy = commentPolicy;
-    }
-
-    /**
-     * Sets the contentNonXmlCharPolicy.
-     * 
-     * @param contentNonXmlCharPolicy
-     *            the contentNonXmlCharPolicy to set
-     */
-    public void setContentNonXmlCharPolicy(
-            XmlViolationPolicy contentNonXmlCharPolicy) {
-        if (contentNonXmlCharPolicy != XmlViolationPolicy.ALLOW) {
-            throw new IllegalArgumentException("Must use ErrorReportingTokenizer to set contentNonXmlCharPolicy to non-ALLOW.");
-        }
-    }
-
-    /**
-     * Sets the contentSpacePolicy.
-     * 
-     * @param contentSpacePolicy
-     *            the contentSpacePolicy to set
-     */
-    public void setContentSpacePolicy(XmlViolationPolicy contentSpacePolicy) {
-        this.contentSpacePolicy = contentSpacePolicy;
-    }
-
-    /**
-     * Sets the xmlnsPolicy.
-     * 
-     * @param xmlnsPolicy
-     *            the xmlnsPolicy to set
-     */
-    public void setXmlnsPolicy(XmlViolationPolicy xmlnsPolicy) {
-        if (xmlnsPolicy == XmlViolationPolicy.FATAL) {
-            throw new IllegalArgumentException("Can't use FATAL here.");
-        }
-        this.xmlnsPolicy = xmlnsPolicy;
-    }
-
-    public void setNamePolicy(XmlViolationPolicy namePolicy) {
-        this.namePolicy = namePolicy;
-    }
-
-    /**
-     * Sets the html4ModeCompatibleWithXhtml1Schemata.
-     * 
-     * @param html4ModeCompatibleWithXhtml1Schemata
-     *            the html4ModeCompatibleWithXhtml1Schemata to set
-     */
-    public void setHtml4ModeCompatibleWithXhtml1Schemata(
-            boolean html4ModeCompatibleWithXhtml1Schemata) {
-        this.html4ModeCompatibleWithXhtml1Schemata = html4ModeCompatibleWithXhtml1Schemata;
-    }
-
-    // ]NOCPP]
-
-    // For the token handler to call
-    /**
-     * Sets the content model flag and the associated element name.
-     * 
-     * @param contentModelFlag
-     *            the flag
-     * @param contentModelElement
-     *            the element causing the flag to be set
-     */
-    public void setContentModelFlag(int contentModelFlag,
-            @Local String contentModelElement) {
-        this.stateSave = contentModelFlag;
-        if (contentModelFlag == Tokenizer.DATA) {
-            return;
-        }
-        // XXX does this make any sense?
-        char[] asArray = Portability.newCharArrayFromLocal(contentModelElement);
-        this.contentModelElement = ElementName.elementNameByBuffer(asArray, 0,
-                asArray.length);
-        Portability.releaseArray(asArray);
-        contentModelElementToArray();
-    }
-
-    /**
-     * Sets the content model flag and the associated element name.
-     * 
-     * @param contentModelFlag
-     *            the flag
-     * @param contentModelElement
-     *            the element causing the flag to be set
-     */
-    public void setContentModelFlag(int contentModelFlag,
-            ElementName contentModelElement) {
-        this.stateSave = contentModelFlag;
-        this.contentModelElement = contentModelElement;
-        contentModelElementToArray();
-    }
-
-    private void contentModelElementToArray() {
-        switch (contentModelElement.group) {
-            case TreeBuilder.TITLE:
-                contentModelElementNameAsArray = TITLE_ARR;
-                return;
-            case TreeBuilder.SCRIPT:
-                contentModelElementNameAsArray = SCRIPT_ARR;
-                return;
-            case TreeBuilder.STYLE:
-                contentModelElementNameAsArray = STYLE_ARR;
-                return;
-            case TreeBuilder.PLAINTEXT:
-                contentModelElementNameAsArray = PLAINTEXT_ARR;
-                return;
-            case TreeBuilder.XMP:
-                contentModelElementNameAsArray = XMP_ARR;
-                return;
-            case TreeBuilder.TEXTAREA:
-                contentModelElementNameAsArray = TEXTAREA_ARR;
-                return;
-            case TreeBuilder.IFRAME:
-                contentModelElementNameAsArray = IFRAME_ARR;
-                return;
-            case TreeBuilder.NOEMBED:
-                contentModelElementNameAsArray = NOEMBED_ARR;
-                return;
-            case TreeBuilder.NOSCRIPT:
-                contentModelElementNameAsArray = NOSCRIPT_ARR;
-                return;
-            case TreeBuilder.NOFRAMES:
-                contentModelElementNameAsArray = NOFRAMES_ARR;
-                return;
-            default:
-                assert false;
-                return;
-        }
-    }
-
-    /**
-     * For C++ use only.
-     */
-    public void setLineNumber(int line) {
-        this.line = line;
-    }
-    
-    // start Locator impl
-
-    /**
-     * @see org.xml.sax.Locator#getLineNumber()
-     */
-    @Inline public int getLineNumber() {
-        return line;
-    }
-
-    // [NOCPP[
-
-    /**
-     * @see org.xml.sax.Locator#getColumnNumber()
-     */
-    @Inline public int getColumnNumber() {
-        return -1;
-    }
-
-    /**
-     * @see org.xml.sax.Locator#getPublicId()
-     */
-    public String getPublicId() {
-        return publicId;
-    }
-
-    /**
-     * @see org.xml.sax.Locator#getSystemId()
-     */
-    public String getSystemId() {
-        return systemId;
-    }
-
-    // end Locator impl
-
-    // end public API
-
-
-    public void notifyAboutMetaBoundary() {
-        metaBoundaryPassed = true;
-    }
-
-    void turnOnAdditionalHtml4Errors() {
-        html4 = true;
-    }
-
-    // ]NOCPP]
-
-    HtmlAttributes emptyAttributes() {
-        // [NOCPP[
-        if (newAttributesEachTime) {
-            return new HtmlAttributes(mappingLangToXmlLang);
-        } else {
-            // ]NOCPP]
-            return HtmlAttributes.EMPTY_ATTRIBUTES;
-            // [NOCPP[
-        }
-        // ]NOCPP]
-    }
-
-    private void clearStrBufAndAppendCurrentC(char c) {
-        strBuf[0] = c;
-
-        strBufLen = 1;
-        // strBufOffset = pos;
-    }
-
-    private void clearStrBufAndAppendForceWrite(char c) {
-        strBuf[0] = c; // test
-
-        strBufLen = 1;
-        // strBufOffset = pos;
-        // buf[pos] = c;
-    }
-
-    private void clearStrBufForNextState() {
-        strBufLen = 0;
-        // strBufOffset = pos + 1;
-    }
-
-    /**
-     * Appends to the smaller buffer.
-     * 
-     * @param c
-     *            the UTF-16 code unit to append
-     */
-    private void appendStrBuf(char c) {
-        // if (strBufOffset != -1) {
-        // strBufLen++;
-        // } else {
-        if (strBufLen == strBuf.length) {
-            char[] newBuf = new char[strBuf.length + Tokenizer.BUFFER_GROW_BY];
-            System.arraycopy(strBuf, 0, newBuf, 0, strBuf.length);
-            Portability.releaseArray(strBuf);
-            strBuf = newBuf;
-        }
-        strBuf[strBufLen++] = c;
-        // }
-    }
-
-    /**
-     * Appends to the smaller buffer.
-     * 
-     * @param c
-     *            the UTF-16 code unit to append
-     */
-    private void appendStrBufForceWrite(char c) {
-        // if (strBufOffset != -1) {
-        // strBufLen++;
-        // buf[pos] = c;
-        // } else {
-        if (strBufLen == strBuf.length) {
-            char[] newBuf = new char[strBuf.length + Tokenizer.BUFFER_GROW_BY];
-            System.arraycopy(strBuf, 0, newBuf, 0, strBuf.length);
-            Portability.releaseArray(strBuf);
-            strBuf = newBuf;
-        }
-        strBuf[strBufLen++] = c;
-        // }
-    }
-
-    /**
-     * The smaller buffer as a String. Currently only used for error reporting.
-     * 
-     * <p>
-     * C++ memory note: The return value must be released.
-     * 
-     * @return the smaller buffer as a string
-     */
-    protected String strBufToString() {
-        // if (strBufOffset != -1) {
-        // return Portability.newStringFromBuffer(buf, strBufOffset, strBufLen);
-        // } else {
-        return Portability.newStringFromBuffer(strBuf, 0, strBufLen);
-        // }
-    }
-
-    /**
-     * Returns the short buffer as a local name. The return value is released in
-     * emitDoctypeToken().
-     * 
-     * @return the smaller buffer as local name
-     */
-    private void strBufToDoctypeName() {
-        doctypeName = Portability.newLocalNameFromBuffer(strBuf, 0, strBufLen);
-    }
-
-    /**
-     * Emits the smaller buffer as character tokens.
-     * 
-     * @throws SAXException
-     *             if the token handler threw
-     */
-    private void emitStrBuf() throws SAXException {
-        if (strBufLen > 0) {
-            // if (strBufOffset != -1) {
-            // tokenHandler.characters(buf, strBufOffset, strBufLen);
-            // } else {
-            tokenHandler.characters(strBuf, 0, strBufLen);
-            // }
-        }
-    }
-
-    private void clearLongStrBufForNextState() {
-        // longStrBufOffset = pos + 1;
-        longStrBufLen = 0;
-    }
-
-    private void clearLongStrBuf() {
-        // longStrBufOffset = pos;
-        longStrBufLen = 0;
-    }
-
-    private void clearLongStrBufAndAppendCurrentC(char c) {
-        longStrBuf[0] = c;
-        longStrBufLen = 1;
-        // longStrBufOffset = pos;
-    }
-
-    private void clearLongStrBufAndAppendToComment(char c) {
-        longStrBuf[0] = c;
-        // longStrBufOffset = pos;
-        longStrBufLen = 1;
-    }
-
-    /**
-     * Appends to the larger buffer.
-     * 
-     * @param c
-     *            the UTF-16 code unit to append
-     */
-    private void appendLongStrBuf(char c) {
-        // if (longStrBufOffset != -1) {
-        // longStrBufLen++;
-        // } else {
-        if (longStrBufLen == longStrBuf.length) {
-            char[] newBuf = new char[longStrBufLen + (longStrBufLen >> 1)];
-            System.arraycopy(longStrBuf, 0, newBuf, 0, longStrBuf.length);
-            Portability.releaseArray(longStrBuf);
-            longStrBuf = newBuf;
-        }
-        longStrBuf[longStrBufLen++] = c;
-        // }
-    }
-
-    private void appendSecondHyphenToBogusComment() throws SAXException {
-        // [NOCPP[
-        switch (commentPolicy) {
-            case ALTER_INFOSET:
-                // detachLongStrBuf();
-                appendLongStrBuf(' ');
-                // FALLTHROUGH
-            case ALLOW:
-                warn("The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.");
-                // ]NOCPP]
-                appendLongStrBuf('-');
-                // [NOCPP[
-                break;
-            case FATAL:
-                fatal("The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.");
-                break;
-        }
-        // ]NOCPP]
-    }
-
-    // [NOCPP[
-    private void maybeAppendSpaceToBogusComment() throws SAXException {
-        switch (commentPolicy) {
-            case ALTER_INFOSET:
-                // detachLongStrBuf();
-                appendLongStrBuf(' ');
-                // FALLTHROUGH
-            case ALLOW:
-                warn("The document is not mappable to XML 1.0 due to a trailing hyphen in a comment.");
-                break;
-            case FATAL:
-                fatal("The document is not mappable to XML 1.0 due to a trailing hyphen in a comment.");
-                break;
-        }
-    }
-
-    // ]NOCPP]
-
-    private void adjustDoubleHyphenAndAppendToLongStrBuf(char c)
-            throws SAXException {
-        errConsecutiveHyphens();
-        // [NOCPP[
-        switch (commentPolicy) {
-            case ALTER_INFOSET:
-                // detachLongStrBuf();
-                longStrBufLen--;
-                appendLongStrBuf(' ');
-                appendLongStrBuf('-');
-                // FALLTHROUGH
-            case ALLOW:
-                warn("The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.");
-                // ]NOCPP]
-                appendLongStrBuf(c);
-                // [NOCPP[
-                break;
-            case FATAL:
-                fatal("The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.");
-                break;
-        }
-        // ]NOCPP]
-    }
-
-    private void appendLongStrBuf(char[] buffer, int offset, int length) {
-        int reqLen = longStrBufLen + length;
-        if (longStrBuf.length < reqLen) {
-            char[] newBuf = new char[reqLen + (reqLen >> 1)];
-            System.arraycopy(longStrBuf, 0, newBuf, 0, longStrBuf.length);
-            Portability.releaseArray(longStrBuf);
-            longStrBuf = newBuf;
-        }
-        System.arraycopy(buffer, offset, longStrBuf, longStrBufLen, length);
-        longStrBufLen = reqLen;
-    }
-
-    /**
-     * Appends to the larger buffer.
-     * 
-     * @param arr
-     *            the UTF-16 code units to append
-     */
-    private void appendLongStrBuf(char[] arr) {
-        // assert longStrBufOffset == -1;
-        appendLongStrBuf(arr, 0, arr.length);
-    }
-
-    /**
-     * Append the contents of the smaller buffer to the larger one.
-     */
-    private void appendStrBufToLongStrBuf() {
-        // assert longStrBufOffset == -1;
-        // if (strBufOffset != -1) {
-        // appendLongStrBuf(buf, strBufOffset, strBufLen);
-        // } else {
-        appendLongStrBuf(strBuf, 0, strBufLen);
-        // }
-    }
-
-    /**
-     * The larger buffer as a string.
-     * 
-     * <p>
-     * C++ memory note: The return value must be released.
-     * 
-     * @return the larger buffer as a string
-     */
-    private String longStrBufToString() {
-        // if (longStrBufOffset != -1) {
-        // return Portability.newStringFromBuffer(buf, longStrBufOffset,
-        // longStrBufLen);
-        // } else {
-        return Portability.newStringFromBuffer(longStrBuf, 0, longStrBufLen);
-        // }
-    }
-
-    /**
-     * Emits the current comment token.
-     * @param pos TODO
-     * 
-     * @throws SAXException
-     */
-    private void emitComment(int provisionalHyphens, int pos) throws SAXException {
-        // [NOCPP[
-        if (wantsComments) {
-            // ]NOCPP]
-            // if (longStrBufOffset != -1) {
-            // tokenHandler.comment(buf, longStrBufOffset, longStrBufLen
-            // - provisionalHyphens);
-            // } else {
-            tokenHandler.comment(longStrBuf, 0, longStrBufLen
-                    - provisionalHyphens);
-            // }
-            // [NOCPP[
-        }
-        // ]NOCPP]
-        cstart = pos + 1;
-    }
-
-    /**
-     * Flushes coalesced character tokens.
-     * @param buf TODO
-     * @param pos TODO
-     * 
-     * @throws SAXException
-     */
-    protected void flushChars(@NoLength char[] buf, int pos) throws SAXException {
-        if (pos > cstart) {
-            tokenHandler.characters(buf, cstart, pos - cstart);
-        }
-        cstart = 0x7fffffff;
-    }
-
-    /**
-     * Reports an condition that would make the infoset incompatible with XML
-     * 1.0 as fatal.
-     * 
-     * @param message
-     *            the message
-     * @throws SAXException
-     * @throws SAXParseException
-     */
-    public void fatal(String message) throws SAXException {
-        SAXParseException spe = new SAXParseException(message, this);
-        if (errorHandler != null) {
-            errorHandler.fatalError(spe);
-        }
-        throw spe;
-    }
-
-    /**
-     * Reports a Parse Error.
-     * 
-     * @param message
-     *            the message
-     * @throws SAXException
-     */
-    public void err(String message) throws SAXException {
-        if (errorHandler == null) {
-            return;
-        }
-        SAXParseException spe = new SAXParseException(message, this);
-        errorHandler.error(spe);
-    }
-
-    public void errTreeBuilder(String message) throws SAXException {
-        ErrorHandler eh = null;
-        if (tokenHandler instanceof TreeBuilder<?>) {
-            TreeBuilder<?> treeBuilder = (TreeBuilder<?>) tokenHandler;
-            eh = treeBuilder.getErrorHandler();
-        }
-        if (eh == null) {
-            eh = errorHandler;
-        }
-        if (eh == null) {
-            return;
-        }
-        SAXParseException spe = new SAXParseException(message, this);
-        eh.error(spe);
-    }
-
-    /**
-     * Reports a warning
-     * 
-     * @param message
-     *            the message
-     * @throws SAXException
-     */
-    public void warn(String message) throws SAXException {
-        if (errorHandler == null) {
-            return;
-        }
-        SAXParseException spe = new SAXParseException(message, this);
-        errorHandler.warning(spe);
-    }
-
-    /**
-     * 
-     */
-    private void resetAttributes() {
-        // [NOCPP[
-        if (newAttributesEachTime) {
-            attributes = null;
-        } else {
-            // ]NOCPP]
-            attributes.clear(mappingLangToXmlLang);
-            // [NOCPP[
-        }
-        // ]NOCPP]
-    }
-
-    private void strBufToElementNameString() {
-        // if (strBufOffset != -1) {
-        // return ElementName.elementNameByBuffer(buf, strBufOffset, strBufLen);
-        // } else {
-        tagName = ElementName.elementNameByBuffer(strBuf, 0, strBufLen);
-        // }
-    }
-
-    private int emitCurrentTagToken(boolean selfClosing, int pos) throws SAXException {
-        cstart = pos + 1;
-        maybeErrSlashInEndTag(selfClosing);
-        stateSave = Tokenizer.DATA;
-        HtmlAttributes attrs = (attributes == null ? HtmlAttributes.EMPTY_ATTRIBUTES
-                : attributes);
-        if (endTag) {
-            /*
-             * When an end tag token is emitted, the content model flag must be
-             * switched to the PCDATA state.
-             */
-            maybeErrAttributesOnEndTag(attrs);
-            tokenHandler.endTag(tagName);
-        } else {
-            tokenHandler.startTag(tagName, attrs, selfClosing);
-        }
-        resetAttributes();
-        return stateSave;
-    }
-
-    private void attributeNameComplete() throws SAXException {
-        // if (strBufOffset != -1) {
-        // attributeName = AttributeName.nameByBuffer(buf, strBufOffset,
-        // strBufLen, namePolicy != XmlViolationPolicy.ALLOW);
-        // } else {
-        attributeName = AttributeName.nameByBuffer(strBuf, 0, strBufLen
-        // [NOCPP[
-                , namePolicy != XmlViolationPolicy.ALLOW
-        // ]NOCPP]
-        );
-        // }
-
-        // [NOCPP[
-        if (attributes == null) {
-            attributes = new HtmlAttributes(mappingLangToXmlLang);
-        }
-        // ]NOCPP]
-
-        /*
-         * When the user agent leaves the attribute name state (and before
-         * emitting the tag token, if appropriate), the complete attribute's
-         * name must be compared to the other attributes on the same token; if
-         * there is already an attribute on the token with the exact same name,
-         * then this is a parse error and the new attribute must be dropped,
-         * along with the value that gets associated with it (if any).
-         */
-        if (attributes.contains(attributeName)) {
-            errDuplicateAttribute();
-            attributeName.release();
-            attributeName = null;
-        }
-    }
-
-    private void addAttributeWithoutValue() throws SAXException {
-        // [NOCPP[
-        if (metaBoundaryPassed && AttributeName.CHARSET == attributeName
-                && ElementName.META == tagName) {
-            err("A \u201Ccharset\u201D attribute on a \u201Cmeta\u201D element found after the first 512 bytes.");
-        }
-        // ]NOCPP]
-        if (attributeName != null) {
-            // [NOCPP[
-            if (html4) {
-                if (attributeName.isBoolean()) {
-                    if (html4ModeCompatibleWithXhtml1Schemata) {
-                        attributes.addAttribute(attributeName,
-                                attributeName.getLocal(AttributeName.HTML),
-                                xmlnsPolicy);
-                    } else {
-                        attributes.addAttribute(attributeName, "", xmlnsPolicy);
-                    }
-                } else {
-                    err("Attribute value omitted for a non-boolean attribute. (HTML4-only error.)");
-                    attributes.addAttribute(attributeName, "", xmlnsPolicy);
-                }
-            } else {
-                if (AttributeName.SRC == attributeName
-                        || AttributeName.HREF == attributeName) {
-                    warn("Attribute \u201C"
-                            + attributeName.getLocal(AttributeName.HTML)
-                            + "\u201D without an explicit value seen. The attribute may be dropped by IE7.");
-                }
-                // ]NOCPP]
-                attributes.addAttribute(attributeName,
-                        Portability.newEmptyString()
-                        // [NOCPP[
-                        , xmlnsPolicy
-                // ]NOCPP]
-                );
-                // [NOCPP[
-            }
-            // ]NOCPP]
-        }
-    }
-
-    private void addAttributeWithValue() throws SAXException {
-        // [NOCPP[
-        if (metaBoundaryPassed && ElementName.META == tagName
-                && AttributeName.CHARSET == attributeName) {
-            err("A \u201Ccharset\u201D attribute on a \u201Cmeta\u201D element found after the first 512 bytes.");
-        }
-        // ]NOCPP]
-        if (attributeName != null) {
-            String value = longStrBufToString(); // Ownership transferred to
-            // HtmlAttributes
-            // [NOCPP[
-            if (!endTag && html4 && html4ModeCompatibleWithXhtml1Schemata
-                    && attributeName.isCaseFolded()) {
-                value = newAsciiLowerCaseStringFromString(value);
-            }
-            // ]NOCPP]
-            attributes.addAttribute(attributeName, value
-            // [NOCPP[
-                    , xmlnsPolicy
-            // ]NOCPP]
-            );
-        }
-    }
-
-    // [NOCPP[
-
-    private static String newAsciiLowerCaseStringFromString(String str) {
-        if (str == null) {
-            return null;
-        }
-        char[] buf = new char[str.length()];
-        for (int i = 0; i < str.length(); i++) {
-            char c = str.charAt(i);
-            if (c >= 'A' && c <= 'Z') {
-                c += 0x20;
-            }
-            buf[i] = c;
-        }
-        return new String(buf);
-    }
-
-    // ]NOCPP]
-    
-    protected void startErrorReporting() throws SAXException {
-
-    }
-
-    public void start() throws SAXException {
-        confident = false;
-        strBuf = new char[64];
-        strBufLen = 0;
-        longStrBuf = new char[1024];
-        longStrBufLen = 0;
-        stateSave = Tokenizer.DATA;
-        line = 1;
-        lastCR = false;
-        // [NOCPP[
-        html4 = false;
-        metaBoundaryPassed = false;
-        // ]NOCPP]
-        tokenHandler.startTokenization(this);
-        // [NOCPP[
-        wantsComments = tokenHandler.wantsComments();
-        // ]NOCPP]
-        index = 0;
-        forceQuirks = false;
-        additional = '\u0000';
-        entCol = -1;
-        lo = 0;
-        hi = (NamedCharacters.NAMES.length - 1);
-        candidate = -1;
-        strBufMark = 0;
-        prevValue = -1;
-        value = 0;
-        seenDigits = false;
-        shouldSuspend = false;
-        // [NOCPP[
-        if (!newAttributesEachTime) {
-            // ]NOCPP]