Split the XFA_OBJECTTYPE enum into two parts.

Currently the object type and the node flags are both mixed into the single
XFA_OBJECTTYPE_* enum. These two things are un-related and should not share
a single type.  This Cl creates an XFA_ObjectType enum class and a
XFA_NodeFlag enum to hold the two types.

Accessors are added to determine if the flags are set (or called where they
already existed.

Review-Url: https://codereview.chromium.org/2083453003
diff --git a/xfa/fxfa/app/xfa_ffdocview.cpp b/xfa/fxfa/app/xfa_ffdocview.cpp
index 90ab7cd..7a5397f 100644
--- a/xfa/fxfa/app/xfa_ffdocview.cpp
+++ b/xfa/fxfa/app/xfa_ffdocview.cpp
@@ -217,7 +217,7 @@
   pWidgetAcc->UpdateUIDisplay();
   if (CXFA_Validate validate = pWidgetAcc->GetValidate()) {
     AddValidateWidget(pWidgetAcc);
-    validate.GetNode()->SetFlag(XFA_NODEFLAG_NeedsInitApp, false);
+    validate.GetNode()->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
   }
   return TRUE;
 }
@@ -417,9 +417,9 @@
       if (!calc) {
         return XFA_EVENTERROR_NotExist;
       }
-      if (pWidgetAcc->GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive)) {
+      if (pWidgetAcc->GetNode()->IsUserInteractive())
         return XFA_EVENTERROR_Disabled;
-      }
+
       CXFA_Script script = calc.GetScript();
       return pWidgetAcc->ExecuteScript(script, pParam);
     }
@@ -456,9 +456,9 @@
   }
   if (bRecursive) {
     for (CXFA_Node* pNode = pFormNode->GetNodeItem(
-             XFA_NODEITEM_FirstChild, XFA_OBJECTTYPE_ContainerNode);
+             XFA_NODEITEM_FirstChild, XFA_ObjectType::ContainerNode);
          pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling,
-                                           XFA_OBJECTTYPE_ContainerNode)) {
+                                           XFA_ObjectType::ContainerNode)) {
       elementType = pNode->GetClassID();
       if (elementType != XFA_ELEMENT_Variables &&
           elementType != XFA_ELEMENT_Draw) {
@@ -634,9 +634,9 @@
   int32_t iCount = pGlobalData ? pGlobalData->m_Globals.GetSize() : 0;
   for (int32_t i = 0; i < iCount; i++) {
     CXFA_WidgetAcc* pResultAcc = pGlobalData->m_Globals[i];
-    if (pResultAcc->GetNode()->HasFlag(XFA_NODEFLAG_HasRemoved)) {
+    if (pResultAcc->GetNode()->HasRemovedChildren())
       continue;
-    }
+
     int32_t iAccs = m_CalculateAccs.GetSize();
     CXFA_WidgetAcc* pCurrentAcc =
         iAccs > 0 ? m_CalculateAccs[iAccs - 1] : nullptr;
@@ -703,9 +703,9 @@
   int32_t iCounts = m_ValidateAccs.GetSize();
   for (int32_t i = 0; i < iCounts; i++) {
     CXFA_WidgetAcc* pAcc = m_ValidateAccs[i];
-    if (pAcc->GetNode()->HasFlag(XFA_NODEFLAG_HasRemoved)) {
+    if (pAcc->GetNode()->HasRemovedChildren())
       continue;
-    }
+
     pAcc->ProcessValidate();
   }
   m_ValidateAccs.RemoveAll();
@@ -723,7 +723,7 @@
 }
 void CXFA_FFDocView::RunBindItems() {
   for (int32_t i = 0; i < m_BindItems.GetSize(); i++) {
-    if (m_BindItems[i]->HasFlag(XFA_NODEFLAG_HasRemoved))
+    if (m_BindItems[i]->HasRemovedChildren())
       continue;
 
     CXFA_Node* pWidgetNode = m_BindItems[i]->GetNodeItem(XFA_NODEITEM_Parent);
diff --git a/xfa/fxfa/app/xfa_fffield.cpp b/xfa/fxfa/app/xfa_fffield.cpp
index 7fad583..6d2f1e8 100644
--- a/xfa/fxfa/app/xfa_fffield.cpp
+++ b/xfa/fxfa/app/xfa_fffield.cpp
@@ -740,9 +740,9 @@
             return 1;
           }
         }
-        if (pAcc->GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive)) {
+        if (pAcc->GetNode()->IsUserInteractive())
           return 1;
-        }
+
         IXFA_AppProvider* pAppProvider = GetApp()->GetAppProvider();
         if (pAppProvider) {
           CFX_WideString wsMessage;
@@ -757,7 +757,7 @@
           pAppProvider->LoadString(XFA_IDS_CalcOverride, wsTitle);
           if (pAppProvider->MsgBox(wsMessage, wsTitle, XFA_MBICON_Warning,
                                    XFA_MB_YesNo) == XFA_IDYes) {
-            pAcc->GetNode()->SetFlag(XFA_NODEFLAG_UserInteractive, false);
+            pAcc->GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false);
             return 1;
           }
         }
@@ -766,7 +766,7 @@
       case XFA_ATTRIBUTEENUM_Ignore:
         return 0;
       case XFA_ATTRIBUTEENUM_Disabled:
-        pAcc->GetNode()->SetFlag(XFA_NODEFLAG_UserInteractive, false);
+        pAcc->GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false);
       default:
         return 1;
     }
diff --git a/xfa/fxfa/app/xfa_ffnotify.cpp b/xfa/fxfa/app/xfa_ffnotify.cpp
index 6c4daeb..58618c2 100644
--- a/xfa/fxfa/app/xfa_ffnotify.cpp
+++ b/xfa/fxfa/app/xfa_ffnotify.cpp
@@ -331,7 +331,7 @@
       pDocView->m_BindItems.Add(pNode);
       break;
     case XFA_ELEMENT_Validate: {
-      pNode->SetFlag(XFA_NODEFLAG_NeedsInitApp, false);
+      pNode->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
     } break;
     default:
       break;
diff --git a/xfa/fxfa/app/xfa_ffwidgetacc.cpp b/xfa/fxfa/app/xfa_ffwidgetacc.cpp
index 9eeccdb..9bf07b4 100644
--- a/xfa/fxfa/app/xfa_ffwidgetacc.cpp
+++ b/xfa/fxfa/app/xfa_ffwidgetacc.cpp
@@ -214,7 +214,7 @@
     } break;
     case XFA_ELEMENT_ExclGroup: {
       CXFA_Node* pNextChild = m_pNode->GetNodeItem(
-          XFA_NODEITEM_FirstChild, XFA_OBJECTTYPE_ContainerNode);
+          XFA_NODEITEM_FirstChild, XFA_ObjectType::ContainerNode);
       while (pNextChild) {
         CXFA_Node* pChild = pNextChild;
         CXFA_WidgetAcc* pAcc =
@@ -239,7 +239,7 @@
           pAcc->SetValue(itemText, XFA_VALUEPICTURE_Raw);
         }
         pNextChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling,
-                                         XFA_OBJECTTYPE_ContainerNode);
+                                         XFA_ObjectType::ContainerNode);
       }
     } break;
     case XFA_ELEMENT_ChoiceList:
@@ -343,16 +343,15 @@
 }
 
 int32_t CXFA_WidgetAcc::ProcessCalculate() {
-  if (GetClassID() == XFA_ELEMENT_Draw) {
+  if (GetClassID() == XFA_ELEMENT_Draw)
     return XFA_EVENTERROR_NotExist;
-  }
+
   CXFA_Calculate calc = GetCalculate();
-  if (!calc) {
+  if (!calc)
     return XFA_EVENTERROR_NotExist;
-  }
-  if (GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive)) {
+  if (GetNode()->IsUserInteractive())
     return XFA_EVENTERROR_Disabled;
-  }
+
   CXFA_EventParam EventParam;
   EventParam.m_eType = XFA_EVENT_Calculate;
   CXFA_Script script = calc.GetScript();
@@ -383,12 +382,11 @@
       validate.GetScriptMessageText(wsScriptMsg);
       int32_t eScriptTest = validate.GetScriptTest();
       if (eScriptTest == XFA_ATTRIBUTEENUM_Warning) {
-        if (GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive)) {
+        if (GetNode()->IsUserInteractive())
           return;
-        }
-        if (wsScriptMsg.IsEmpty()) {
+        if (wsScriptMsg.IsEmpty())
           GetValidateMessage(pAppProvider, wsScriptMsg, FALSE, bVersionFlag);
-        }
+
         if (bVersionFlag) {
           pAppProvider->MsgBox(wsScriptMsg, wsTitle, XFA_MBICON_Warning,
                                XFA_MB_OK);
@@ -396,7 +394,7 @@
         }
         if (pAppProvider->MsgBox(wsScriptMsg, wsTitle, XFA_MBICON_Warning,
                                  XFA_MB_YesNo) == XFA_IDYes) {
-          GetNode()->SetFlag(XFA_NODEFLAG_UserInteractive, false);
+          GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false);
         }
       } else {
         if (wsScriptMsg.IsEmpty()) {
@@ -438,12 +436,11 @@
         pAppProvider->MsgBox(wsFormatMsg, wsTitle, XFA_MBICON_Error, XFA_MB_OK);
         return XFA_EVENTERROR_Success;
       }
-      if (GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive)) {
+      if (GetNode()->IsUserInteractive())
         return XFA_EVENTERROR_NotExist;
-      }
-      if (wsFormatMsg.IsEmpty()) {
+      if (wsFormatMsg.IsEmpty())
         GetValidateMessage(pAppProvider, wsFormatMsg, FALSE, bVersionFlag);
-      }
+
       if (bVersionFlag) {
         pAppProvider->MsgBox(wsFormatMsg, wsTitle, XFA_MBICON_Warning,
                              XFA_MB_OK);
@@ -451,7 +448,7 @@
       }
       if (pAppProvider->MsgBox(wsFormatMsg, wsTitle, XFA_MBICON_Warning,
                                XFA_MB_YesNo) == XFA_IDYes) {
-        GetNode()->SetFlag(XFA_NODEFLAG_UserInteractive, false);
+        GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false);
       }
       return XFA_EVENTERROR_Success;
     }
@@ -509,9 +506,9 @@
       return XFA_EVENTERROR_Error;
     }
     case XFA_ATTRIBUTEENUM_Warning: {
-      if (GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive)) {
+      if (GetNode()->IsUserInteractive())
         return TRUE;
-      }
+
       if (wsNullMsg.IsEmpty()) {
         GetValidateCaptionName(wsCaptionName, bVersionFlag);
         CFX_WideString wsWarning;
@@ -521,7 +518,7 @@
       }
       if (pAppProvider->MsgBox(wsNullMsg, wsTitle, XFA_MBICON_Warning,
                                XFA_MB_YesNo) == XFA_IDYes) {
-        GetNode()->SetFlag(XFA_NODEFLAG_UserInteractive, false);
+        GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false);
       }
       return XFA_EVENTERROR_Error;
     }
@@ -579,7 +576,7 @@
   if (!validate) {
     return XFA_EVENTERROR_NotExist;
   }
-  FX_BOOL bInitDoc = validate.GetNode()->HasFlag(XFA_NODEFLAG_NeedsInitApp);
+  FX_BOOL bInitDoc = validate.GetNode()->NeedsInitApp();
   FX_BOOL bStatus =
       m_pDocView->GetLayoutStatus() < XFA_DOCVIEW_LAYOUTSTATUS_End;
   int32_t iFormat = 0;
@@ -601,7 +598,7 @@
     bVersionFlag = TRUE;
   }
   if (bInitDoc) {
-    validate.GetNode()->ClearFlag(XFA_NODEFLAG_NeedsInitApp);
+    validate.GetNode()->ClearFlag(XFA_NodeFlag_NeedsInitApp);
   } else {
     iFormat = ProcessFormatTestValidate(validate, bVersionFlag);
     if (!bVersionFlag) {
diff --git a/xfa/fxfa/app/xfa_ffwidgethandler.cpp b/xfa/fxfa/app/xfa_ffwidgethandler.cpp
index 87ef610..eeaadc7 100644
--- a/xfa/fxfa/app/xfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/app/xfa_ffwidgethandler.cpp
@@ -235,7 +235,7 @@
       CXFA_Calculate calc = pWidgetAcc->GetCalculate();
       if (!calc)
         return XFA_EVENTERROR_NotExist;
-      if (pWidgetAcc->GetNode()->HasFlag(XFA_NODEFLAG_UserInteractive))
+      if (pWidgetAcc->GetNode()->IsUserInteractive())
         return XFA_EVENTERROR_Disabled;
 
       CXFA_Script script = calc.GetScript();
@@ -261,8 +261,8 @@
   if (!pNewFormItem)
     return nullptr;
 
-  pNewFormItem->GetTemplateNode()->SetFlag(XFA_NODEFLAG_Initialized, true);
-  pNewFormItem->SetFlag(XFA_NODEFLAG_Initialized, true);
+  pNewFormItem->GetTemplateNode()->SetFlag(XFA_NodeFlag_Initialized, true);
+  pNewFormItem->SetFlag(XFA_NodeFlag_Initialized, true);
   m_pDocView->RunLayout();
   CXFA_LayoutItem* pLayout =
       m_pDocView->GetXFALayout()->GetLayoutItem(pNewFormItem);
diff --git a/xfa/fxfa/include/fxfa_basic.h b/xfa/fxfa/include/fxfa_basic.h
index fc5b931..215b2e6 100644
--- a/xfa/fxfa/include/fxfa_basic.h
+++ b/xfa/fxfa/include/fxfa_basic.h
@@ -11,6 +11,7 @@
 #include "fxjse/include/fxjse.h"
 
 class CXFA_Measurement;
+enum class XFA_ObjectType;
 
 enum XFA_HashCode : uint32_t {
   XFA_HASHCODE_None = 0,
@@ -932,7 +933,7 @@
   const FX_WCHAR* pName;
   XFA_ELEMENT eName;
   uint32_t dwPackets;
-  uint32_t eObjectType;
+  XFA_ObjectType eObjectType;
 };
 
 const XFA_ELEMENTINFO* XFA_GetElementByName(const CFX_WideStringC& wsName);
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index 5e64647..e29e868 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -109,7 +109,7 @@
       return iAcc;
 
     pNode =
-        pNode->GetNodeItem(XFA_NODEITEM_Parent, XFA_OBJECTTYPE_ContainerNode);
+        pNode->GetNodeItem(XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode);
   }
   return XFA_ATTRIBUTEENUM_Open;
 }
diff --git a/xfa/fxfa/parser/xfa_basic_data.cpp b/xfa/fxfa/parser/xfa_basic_data.cpp
index 82ca8d8..99d4eaf 100644
--- a/xfa/fxfa/parser/xfa_basic_data.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data.cpp
@@ -1072,652 +1072,662 @@
     sizeof(g_XFANotsureAttributes) / sizeof(XFA_NOTSUREATTRIBUTE);
 
 const XFA_ELEMENTINFO g_XFAElementData[] = {
-    {0x23ee3, L"ps", XFA_ELEMENT_Ps, XFA_XDPPACKET_Config, XFA_OBJECTTYPE_Node},
+    {0x23ee3, L"ps", XFA_ELEMENT_Ps, XFA_XDPPACKET_Config,
+     XFA_ObjectType::Node},
     {0x25363, L"to", XFA_ELEMENT_To, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x2587e, L"ui", XFA_ELEMENT_Ui,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x1c648b, L"recordSet", XFA_ELEMENT_RecordSet, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x171428f, L"subsetBelow", XFA_ELEMENT_SubsetBelow, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x1a0776a, L"subformSet", XFA_ELEMENT_SubformSet,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x2340d70, L"adobeExtensionLevel", XFA_ELEMENT_AdobeExtensionLevel,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x2c1c7f1, L"typeface", XFA_ELEMENT_Typeface, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x5518c25, L"break", XFA_ELEMENT_Break,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x5fff523, L"fontInfo", XFA_ELEMENT_FontInfo, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x653a227, L"numberPattern", XFA_ELEMENT_NumberPattern,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
     {0x65b4a05, L"dynamicRender", XFA_ELEMENT_DynamicRender,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x7e4362e, L"printScaling", XFA_ELEMENT_PrintScaling, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x7fe6d3a, L"checkButton", XFA_ELEMENT_CheckButton,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x80cf58f, L"datePatterns", XFA_ELEMENT_DatePatterns,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0x811929d, L"sourceSet", XFA_ELEMENT_SourceSet, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_ModelNode},
+     XFA_ObjectType::ModelNode},
     {0x9f9d612, L"amd", XFA_ELEMENT_Amd, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x9f9efb6, L"arc", XFA_ELEMENT_Arc,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xa48835e, L"day", XFA_ELEMENT_Day, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xa6328b8, L"era", XFA_ELEMENT_Era, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xae6a0a0, L"jog", XFA_ELEMENT_Jog, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xb1b3d22, L"log", XFA_ELEMENT_Log, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xb35439e, L"map", XFA_ELEMENT_Map,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_SourceSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Config | XFA_XDPPACKET_SourceSet, XFA_ObjectType::Node},
     {0xb355301, L"mdp", XFA_ELEMENT_Mdp,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xb420438, L"breakBefore", XFA_ELEMENT_BreakBefore,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xb6a091c, L"oid", XFA_ELEMENT_Oid,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0xb84389f, L"pcl", XFA_ELEMENT_Pcl, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xb843dba, L"pdf", XFA_ELEMENT_Pdf, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xbb8df5d, L"ref", XFA_ELEMENT_Ref,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0xc080cd0, L"uri", XFA_ELEMENT_Uri,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_ConnectionSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0xc56afbf, L"xdc", XFA_ELEMENT_Xdc,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Xdc, XFA_OBJECTTYPE_ModelNode},
+     XFA_XDPPACKET_Config | XFA_XDPPACKET_Xdc, XFA_ObjectType::ModelNode},
     {0xc56afcc, L"xdp", XFA_ELEMENT_Xdp, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc56b9ff, L"xfa", XFA_ELEMENT_Xfa, XFA_XDPPACKET_XDP,
-     XFA_OBJECTTYPE_ModelNode},
+     XFA_ObjectType::ModelNode},
     {0xc56fcb7, L"xsl", XFA_ELEMENT_Xsl, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc8b89d6, L"zpl", XFA_ELEMENT_Zpl, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc9bae94, L"cache", XFA_ELEMENT_Cache, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xcb016be, L"margin", XFA_ELEMENT_Margin,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xe1378fe, L"keyUsage", XFA_ELEMENT_KeyUsage,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xfe3596a, L"exclude", XFA_ELEMENT_Exclude, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x10395ac7, L"choiceList", XFA_ELEMENT_ChoiceList,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x1059ec18, L"level", XFA_ELEMENT_Level, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x10874804, L"labelPrinter", XFA_ELEMENT_LabelPrinter,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Config, XFA_ObjectType::Node},
     {0x10c40e03, L"calendarSymbols", XFA_ELEMENT_CalendarSymbols,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0x10f1ea24, L"para", XFA_ELEMENT_Para,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x10f1ea37, L"part", XFA_ELEMENT_Part, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x1140975b, L"pdfa", XFA_ELEMENT_Pdfa, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x1154efe6, L"filter", XFA_ELEMENT_Filter,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x13f41de1, L"present", XFA_ELEMENT_Present, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x1827e6ea, L"pagination", XFA_ELEMENT_Pagination, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x18463707, L"encoding", XFA_ELEMENT_Encoding,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_NodeC},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
     {0x185e41e2, L"event", XFA_ELEMENT_Event,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x1adb142d, L"whitespace", XFA_ELEMENT_Whitespace, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x1f3f64c3, L"defaultUi", XFA_ELEMENT_DefaultUi,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x204e87cb, L"dataModel", XFA_ELEMENT_DataModel, XFA_XDPPACKET_Datasets,
-     XFA_OBJECTTYPE_ModelNode},
+     XFA_ObjectType::ModelNode},
     {0x2057b350, L"barcode", XFA_ELEMENT_Barcode,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x20596bad, L"timePattern", XFA_ELEMENT_TimePattern,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
     {0x210b74d3, L"batchOutput", XFA_ELEMENT_BatchOutput, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x212ff0e2, L"enforce", XFA_ELEMENT_Enforce, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x21d351b4, L"currencySymbols", XFA_ELEMENT_CurrencySymbols,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0x21db83c5, L"addSilentPrint", XFA_ELEMENT_AddSilentPrint,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x22266258, L"rename", XFA_ELEMENT_Rename, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x226ca8f1, L"operation", XFA_ELEMENT_Operation,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
     {0x23e27b84, L"typefaces", XFA_ELEMENT_Typefaces, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x23f4aa75, L"subjectDNs", XFA_ELEMENT_SubjectDNs,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x240d5e8e, L"issuers", XFA_ELEMENT_Issuers,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x2457a033, L"signaturePseudoModel", XFA_ELEMENT_SignaturePseudoModel,
-     XFA_XDPPACKET_XDP, XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_XDPPACKET_XDP, XFA_ObjectType::OrdinaryObject},
     {0x24a52f8a, L"wsdlConnection", XFA_ELEMENT_WsdlConnection,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
     {0x254ebd07, L"debug", XFA_ELEMENT_Debug, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x2655c66a, L"delta", XFA_ELEMENT_Delta, XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_ObjectType::OrdinaryObject},
     {0x26c0daec, L"eraNames", XFA_ELEMENT_EraNames, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x273ab03b, L"modifyAnnots", XFA_ELEMENT_ModifyAnnots,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x27875bb4, L"startNode", XFA_ELEMENT_StartNode, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x285d0dbc, L"button", XFA_ELEMENT_Button,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x28dee6e9, L"format", XFA_ELEMENT_Format,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x2a23349e, L"border", XFA_ELEMENT_Border,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x2ae67f19, L"area", XFA_ELEMENT_Area,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContainerNode},
+     XFA_ObjectType::ContainerNode},
     {0x2c3c4c67, L"hyphenation", XFA_ELEMENT_Hyphenation,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x2d08af85, L"text", XFA_ELEMENT_Text,
      XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x2d71b00f, L"time", XFA_ELEMENT_Time,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0x2f16a382, L"type", XFA_ELEMENT_Type, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x2fe057e9, L"overprint", XFA_ELEMENT_Overprint, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x302aee16, L"certificates", XFA_ELEMENT_Certificates,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x30b227df, L"encryptionMethods", XFA_ELEMENT_EncryptionMethods,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x32b900d1, L"setProperty", XFA_ELEMENT_SetProperty,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x337d9e45, L"printerName", XFA_ELEMENT_PrinterName, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x33edda4b, L"startPage", XFA_ELEMENT_StartPage, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x381943e4, L"pageOffset", XFA_ELEMENT_PageOffset, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x382106cd, L"dateTime", XFA_ELEMENT_DateTime,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0x386e7421, L"comb", XFA_ELEMENT_Comb,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x390acd9e, L"pattern", XFA_ELEMENT_Pattern,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x3942163e, L"ifEmpty", XFA_ELEMENT_IfEmpty, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x39944a7b, L"suppressBanner", XFA_ELEMENT_SuppressBanner,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x3b3c3dca, L"outputBin", XFA_ELEMENT_OutputBin, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x3b8a4024, L"field", XFA_ELEMENT_Field,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x3c15352f, L"agent", XFA_ELEMENT_Agent, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x3d7e8668, L"outputXSL", XFA_ELEMENT_OutputXSL, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x3e1c91c5, L"adjustData", XFA_ELEMENT_AdjustData, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x3e7a9408, L"autoSave", XFA_ELEMENT_AutoSave, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x3ecead94, L"contentArea", XFA_ELEMENT_ContentArea,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x3ef334e3, L"eventPseudoModel", XFA_ELEMENT_EventPseudoModel,
-     XFA_XDPPACKET_XDP, XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_XDPPACKET_XDP, XFA_ObjectType::OrdinaryObject},
     {0x3fadaec0, L"wsdlAddress", XFA_ELEMENT_WsdlAddress,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
     {0x40623b5b, L"solid", XFA_ELEMENT_Solid,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x41f0bd76, L"dateTimeSymbols", XFA_ELEMENT_DateTimeSymbols,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
     {0x444e7523, L"encryptionLevel", XFA_ELEMENT_EncryptionLevel,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x4523af55, L"edge", XFA_ELEMENT_Edge,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x45d5e3c1, L"stipple", XFA_ELEMENT_Stipple,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x475e4e87, L"attributes", XFA_ELEMENT_Attributes, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x487a8c87, L"versionControl", XFA_ELEMENT_VersionControl,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Config, XFA_ObjectType::Node},
     {0x48e5248c, L"meridiem", XFA_ELEMENT_Meridiem, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x48f36719, L"exclGroup", XFA_ELEMENT_ExclGroup,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x4977356b, L"toolTip", XFA_ELEMENT_ToolTip,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0x499afecc, L"compress", XFA_ELEMENT_Compress, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x4a0c4948, L"reason", XFA_ELEMENT_Reason,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0x4bdcce13, L"execute", XFA_ELEMENT_Execute,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x4c56b216, L"contentCopy", XFA_ELEMENT_ContentCopy, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x4cc176d3, L"dateTimeEdit", XFA_ELEMENT_DateTimeEdit,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x4e1e39b6, L"config", XFA_ELEMENT_Config, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ModelNode},
+     XFA_ObjectType::ModelNode},
     {0x4e2d6083, L"image", XFA_ELEMENT_Image,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0x4e814150, L"#xHTML", XFA_ELEMENT_SharpxHTML,
      XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
          XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_SourceSet |
          XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x4f2388c1, L"numberOfCopies", XFA_ELEMENT_NumberOfCopies,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x4f512e30, L"behaviorOverride", XFA_ELEMENT_BehaviorOverride,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x4fdc3454, L"timeStamp", XFA_ELEMENT_TimeStamp,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x51d90546, L"month", XFA_ELEMENT_Month, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x523437e4, L"viewerPreferences", XFA_ELEMENT_ViewerPreferences,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Config, XFA_ObjectType::Node},
     {0x53abc1c6, L"scriptModel", XFA_ELEMENT_ScriptModel, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x54034c2f, L"decimal", XFA_ELEMENT_Decimal,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0x54202c9e, L"subform", XFA_ELEMENT_Subform,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x542c7300, L"select", XFA_ELEMENT_Select, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0x5436d198, L"window", XFA_ELEMENT_Window, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x5473b6dc, L"localeSet", XFA_ELEMENT_LocaleSet,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ModelNode},
+     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ModelNode},
     {0x56ae179e, L"handler", XFA_ELEMENT_Handler,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0x5700bd5f, L"hostPseudoModel", XFA_ELEMENT_HostPseudoModel,
-     XFA_XDPPACKET_XDP, XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_XDPPACKET_XDP, XFA_ObjectType::OrdinaryObject},
     {0x570ce835, L"presence", XFA_ELEMENT_Presence, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x5779d65f, L"record", XFA_ELEMENT_Record, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x59c8f27d, L"embed", XFA_ELEMENT_Embed, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x5a50e9e6, L"version", XFA_ELEMENT_Version, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x5b8383df, L"command", XFA_ELEMENT_Command, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x5c43c6c3, L"copies", XFA_ELEMENT_Copies, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x5e0c2c49, L"staple", XFA_ELEMENT_Staple, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x5e5083dd, L"submitFormat", XFA_ELEMENT_SubmitFormat,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x5e8c5d20, L"boolean", XFA_ELEMENT_Boolean,
      XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x60490a85, L"message", XFA_ELEMENT_Message,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x60d4c8b1, L"output", XFA_ELEMENT_Output, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x61810081, L"psMap", XFA_ELEMENT_PsMap, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x62bd904b, L"excludeNS", XFA_ELEMENT_ExcludeNS, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x669d4f77, L"assist", XFA_ELEMENT_Assist,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x67334a1c, L"picture", XFA_ELEMENT_Picture,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x67fe7334, L"traversal", XFA_ELEMENT_Traversal,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x6894589c, L"silentPrint", XFA_ELEMENT_SilentPrint, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x68a16bbd, L"webClient", XFA_ELEMENT_WebClient, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x69f115df, L"layoutPseudoModel", XFA_ELEMENT_LayoutPseudoModel,
-     XFA_XDPPACKET_XDP, XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_XDPPACKET_XDP, XFA_ObjectType::OrdinaryObject},
     {0x6a4bc084, L"producer", XFA_ELEMENT_Producer, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x6a9e04c9, L"corner", XFA_ELEMENT_Corner,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x6ccd7274, L"msgId", XFA_ELEMENT_MsgId, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x6e67921f, L"color", XFA_ELEMENT_Color,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x6ec217a5, L"keep", XFA_ELEMENT_Keep,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x6eef1116, L"query", XFA_ELEMENT_Query, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x7033bfd5, L"insert", XFA_ELEMENT_Insert, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0x704af389, L"imageEdit", XFA_ELEMENT_ImageEdit,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x7233018a, L"validate", XFA_ELEMENT_Validate,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x72ba47b4, L"digestMethods", XFA_ELEMENT_DigestMethods,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x72f2aa7a, L"numberPatterns", XFA_ELEMENT_NumberPatterns,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0x74caed29, L"pageSet", XFA_ELEMENT_PageSet,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x7568e6ae, L"integer", XFA_ELEMENT_Integer,
      XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x76182db9, L"soapAddress", XFA_ELEMENT_SoapAddress,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
     {0x773146c5, L"equate", XFA_ELEMENT_Equate, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x77d449dd, L"formFieldFilling", XFA_ELEMENT_FormFieldFilling,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x7889d68a, L"pageRange", XFA_ELEMENT_PageRange, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x7baca2e3, L"update", XFA_ELEMENT_Update, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0x7ce89001, L"connectString", XFA_ELEMENT_ConnectString,
-     XFA_XDPPACKET_SourceSet, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_SourceSet, XFA_ObjectType::TextNode},
     {0x7d9fd7c5, L"mode", XFA_ELEMENT_Mode, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x7e7e845e, L"layout", XFA_ELEMENT_Layout, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x7e845c34, L"#xml", XFA_ELEMENT_Sharpxml,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_NodeV},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeV},
     {0x7fb341df, L"xsdConnection", XFA_ELEMENT_XsdConnection,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
     {0x7ffb51cc, L"traverse", XFA_ELEMENT_Traverse,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x80203b5a, L"encodings", XFA_ELEMENT_Encodings,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x803550fc, L"template", XFA_ELEMENT_Template,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ModelNode},
+     XFA_ObjectType::ModelNode},
     {0x803d5bbc, L"acrobat", XFA_ELEMENT_Acrobat, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x821d6569, L"validationMessaging", XFA_ELEMENT_ValidationMessaging,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_NodeV},
+     XFA_XDPPACKET_Config, XFA_ObjectType::NodeV},
     {0x830e688f, L"signing", XFA_ELEMENT_Signing,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x83a550d2, L"dataWindow", XFA_ELEMENT_DataWindow, XFA_XDPPACKET_Datasets,
-     XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_ObjectType::OrdinaryObject},
     {0x83dab9f5, L"script", XFA_ELEMENT_Script,
      XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x8411ebcd, L"addViewerPreferences", XFA_ELEMENT_AddViewerPreferences,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x8777642e, L"alwaysEmbed", XFA_ELEMENT_AlwaysEmbed, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x877a6b39, L"passwordEdit", XFA_ELEMENT_PasswordEdit,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x87e84c99, L"numericEdit", XFA_ELEMENT_NumericEdit,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x8852cdec, L"encryptionMethod", XFA_ELEMENT_EncryptionMethod,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_NodeC},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
     {0x891f4606, L"change", XFA_ELEMENT_Change, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x89939f36, L"pageArea", XFA_ELEMENT_PageArea,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0x8a9d6247, L"submitUrl", XFA_ELEMENT_SubmitUrl, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0x8ad8b90f, L"oids", XFA_ELEMENT_Oids,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x8b036f32, L"signature", XFA_ELEMENT_Signature,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x8b128efb, L"ADBE_JSConsole", XFA_ELEMENT_ADBE_JSConsole,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0x8bcfe96e, L"caption", XFA_ELEMENT_Caption,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x8e1c2921, L"relevant", XFA_ELEMENT_Relevant, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x8e3f0a4b, L"flipLabel", XFA_ELEMENT_FlipLabel, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0x900280b7, L"exData", XFA_ELEMENT_ExData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0x91e80352, L"dayNames", XFA_ELEMENT_DayNames, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0x93113b11, L"soapAction", XFA_ELEMENT_SoapAction,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
     {0x938b09f6, L"defaultTypeface", XFA_ELEMENT_DefaultTypeface,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_NodeV},
+     XFA_XDPPACKET_Config, XFA_ObjectType::NodeV},
     {0x95b37897, L"manifest", XFA_ELEMENT_Manifest,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x97b76b54, L"overflow", XFA_ELEMENT_Overflow,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x9a57861b, L"linear", XFA_ELEMENT_Linear,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0x9ad5a821, L"currencySymbol", XFA_ELEMENT_CurrencySymbol,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
     {0x9c6471b3, L"delete", XFA_ELEMENT_Delete, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0x9deea61d, L"deltas", XFA_ELEMENT_Deltas, XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_ObjectType::OrdinaryObject},
     {0x9e67de21, L"digestMethod", XFA_ELEMENT_DigestMethod,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_NodeC},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
     {0x9f3e9510, L"instanceManager", XFA_ELEMENT_InstanceManager,
-     XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xa0799892, L"equateRange", XFA_ELEMENT_EquateRange, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xa084a381, L"medium", XFA_ELEMENT_Medium,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xa1211b8b, L"textEdit", XFA_ELEMENT_TextEdit,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xa17008f0, L"templateCache", XFA_ELEMENT_TemplateCache,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Config, XFA_ObjectType::Node},
     {0xa4f7b88f, L"compressObjectStream", XFA_ELEMENT_CompressObjectStream,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xa65f5d17, L"dataValue", XFA_ELEMENT_DataValue, XFA_XDPPACKET_Datasets,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xa6caaa89, L"accessibleContent", XFA_ELEMENT_AccessibleContent,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xa8c7d5e2, L"nodeList", XFA_ELEMENT_NodeList, XFA_XDPPACKET_XDP,
-     XFA_OBJECTTYPE_NodeList},
+     XFA_ObjectType::NodeList},
     {0xa94cc00b, L"includeXDPContent", XFA_ELEMENT_IncludeXDPContent,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xa9b081a1, L"xmlConnection", XFA_ELEMENT_XmlConnection,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
     {0xab2a3b74, L"validateApprovalSignatures",
      XFA_ELEMENT_ValidateApprovalSignatures, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xab8c5a2b, L"signData", XFA_ELEMENT_SignData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xabaa2ceb, L"packets", XFA_ELEMENT_Packets, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xadba359c, L"datePattern", XFA_ELEMENT_DatePattern,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
     {0xae222b2b, L"duplexOption", XFA_ELEMENT_DuplexOption,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xb012effb, L"base", XFA_ELEMENT_Base, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xb0e5485d, L"bind", XFA_ELEMENT_Bind,
      XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xb45d61b2, L"compression", XFA_ELEMENT_Compression, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xb563f0ff, L"user", XFA_ELEMENT_User, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0xb5848ad5, L"rectangle", XFA_ELEMENT_Rectangle,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xb6dacb72, L"effectiveOutputPolicy", XFA_ELEMENT_EffectiveOutputPolicy,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
     {0xb7d7654d, L"ADBE_JSDebugger", XFA_ELEMENT_ADBE_JSDebugger,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xbab37f73, L"acrobat7", XFA_ELEMENT_Acrobat7, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xbc70081e, L"interactive", XFA_ELEMENT_Interactive, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xbc8fa350, L"locale", XFA_ELEMENT_Locale,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0xbcd44940, L"currentPage", XFA_ELEMENT_CurrentPage, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xbde9abda, L"data", XFA_ELEMENT_Data, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xbde9abde, L"date", XFA_ELEMENT_Date,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0xbe52dfbf, L"desc", XFA_ELEMENT_Desc,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xbf4b6405, L"encrypt", XFA_ELEMENT_Encrypt,
      XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xbfa87cce, L"draw", XFA_ELEMENT_Draw,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0xc181ff4b, L"encryption", XFA_ELEMENT_Encryption, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc1970f40, L"meridiemNames", XFA_ELEMENT_MeridiemNames,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0xc5ad9f5e, L"messaging", XFA_ELEMENT_Messaging, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc69549f4, L"speak", XFA_ELEMENT_Speak,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0xc7743dc7, L"dataGroup", XFA_ELEMENT_DataGroup, XFA_XDPPACKET_Datasets,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc7eb20e9, L"common", XFA_ELEMENT_Common, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xc85d4528, L"#text", XFA_ELEMENT_Sharptext,
      XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
          XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_SourceSet |
          XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xc861556a, L"paginationOverride", XFA_ELEMENT_PaginationOverride,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xc903dabb, L"reasons", XFA_ELEMENT_Reasons,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xc9a8127f, L"signatureProperties", XFA_ELEMENT_SignatureProperties,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xca010c2d, L"threshold", XFA_ELEMENT_Threshold, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xcb4c5e96, L"appearanceFilter", XFA_ELEMENT_AppearanceFilter,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_NodeC},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
     {0xcc92aba7, L"fill", XFA_ELEMENT_Fill,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xcd308b77, L"font", XFA_ELEMENT_Font,
      XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xcd309ff4, L"form", XFA_ELEMENT_Form, XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_ModelNode},
+     XFA_ObjectType::ModelNode},
     {0xcebcca2d, L"mediumInfo", XFA_ELEMENT_MediumInfo, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xcfe0d643, L"certificate", XFA_ELEMENT_Certificate,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
     {0xd012c033, L"password", XFA_ELEMENT_Password, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_TextNode},
+     XFA_ObjectType::TextNode},
     {0xd01604bd, L"runScripts", XFA_ELEMENT_RunScripts, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xd1227e6f, L"trace", XFA_ELEMENT_Trace, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xd1532876, L"float", XFA_ELEMENT_Float,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0xd17a6c30, L"renderPolicy", XFA_ELEMENT_RenderPolicy,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xd4bf6823, L"logPseudoModel", XFA_ELEMENT_LogPseudoModel,
-     XFA_XDPPACKET_XDP, XFA_OBJECTTYPE_OrdinaryObject},
+     XFA_XDPPACKET_XDP, XFA_ObjectType::OrdinaryObject},
     {0xd58aa962, L"destination", XFA_ELEMENT_Destination, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xd6e27f1d, L"value", XFA_ELEMENT_Value,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xd7a14462, L"bookend", XFA_ELEMENT_Bookend,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xd8c31254, L"exObject", XFA_ELEMENT_ExObject,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xda6a8590, L"openAction", XFA_ELEMENT_OpenAction, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xdab4fb7d, L"neverEmbed", XFA_ELEMENT_NeverEmbed, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xdb98475f, L"bindItems", XFA_ELEMENT_BindItems,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xdbfbe02e, L"calculate", XFA_ELEMENT_Calculate,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xdd7676ed, L"print", XFA_ELEMENT_Print, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xdde273d7, L"extras", XFA_ELEMENT_Extras,
      XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xde146b34, L"proto", XFA_ELEMENT_Proto,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xdf059321, L"dSigData", XFA_ELEMENT_DSigData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xdfccf030, L"creator", XFA_ELEMENT_Creator, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xdff78c6a, L"connect", XFA_ELEMENT_Connect,
      XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xe11a2cbc, L"permissions", XFA_ELEMENT_Permissions, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xe14c801c, L"connectionSet", XFA_ELEMENT_ConnectionSet,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_ModelNode},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::ModelNode},
     {0xe1c83a14, L"submit", XFA_ELEMENT_Submit,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xe29821cd, L"range", XFA_ELEMENT_Range, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xe38d83c7, L"linearized", XFA_ELEMENT_Linearized, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xe3aa2578, L"packet", XFA_ELEMENT_Packet, XFA_XDPPACKET_XDP,
-     XFA_OBJECTTYPE_NodeC},
+     XFA_ObjectType::NodeC},
     {0xe3aa860e, L"rootElement", XFA_ELEMENT_RootElement,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_TextNode},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
     {0xe3e553fa, L"plaintextMetadata", XFA_ELEMENT_PlaintextMetadata,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xe3e6e4f2, L"numberSymbols", XFA_ELEMENT_NumberSymbols,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0xe3f067f6, L"printHighQuality", XFA_ELEMENT_PrintHighQuality,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xe3fd078c, L"driver", XFA_ELEMENT_Driver, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xe48b34f2, L"incrementalLoad", XFA_ELEMENT_IncrementalLoad,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_NodeV},
+     XFA_XDPPACKET_Config, XFA_ObjectType::NodeV},
     {0xe550e7c2, L"subjectDN", XFA_ELEMENT_SubjectDN,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_NodeC},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
     {0xe6669a78, L"compressLogicalStructure",
      XFA_ELEMENT_CompressLogicalStructure, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xe7a7ea02, L"incrementalMerge", XFA_ELEMENT_IncrementalMerge,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xe948530d, L"radial", XFA_ELEMENT_Radial,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xea8d6999, L"variables", XFA_ELEMENT_Variables,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContainerNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+     XFA_ObjectType::ContainerNode},
     {0xeaa142c0, L"timePatterns", XFA_ELEMENT_TimePatterns,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
     {0xeb943a71, L"effectiveInputPolicy", XFA_ELEMENT_EffectiveInputPolicy,
-     XFA_XDPPACKET_ConnectionSet, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
     {0xef04a2bc, L"nameAttr", XFA_ELEMENT_NameAttr, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xf07222ab, L"conformance", XFA_ELEMENT_Conformance, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xf0aaaadc, L"transform", XFA_ELEMENT_Transform, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xf1433e88, L"lockDocument", XFA_ELEMENT_LockDocument,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
     {0xf54eb997, L"breakAfter", XFA_ELEMENT_BreakAfter,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xf616da28, L"line", XFA_ELEMENT_Line,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xf616f3dc, L"list", XFA_ELEMENT_List, XFA_XDPPACKET_XDP,
-     XFA_OBJECTTYPE_OrdinaryList},
+     XFA_ObjectType::OrdinaryList},
     {0xf7055fb1, L"source", XFA_ELEMENT_Source, XFA_XDPPACKET_SourceSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xf7eebe1c, L"occur", XFA_ELEMENT_Occur,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
     {0xf8d10d97, L"pickTrayByPDFSize", XFA_ELEMENT_PickTrayByPDFSize,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xf8f19e3a, L"monthNames", XFA_ELEMENT_MonthNames, XFA_XDPPACKET_LocaleSet,
-     XFA_OBJECTTYPE_Node},
+     XFA_ObjectType::Node},
     {0xf984149b, L"severity", XFA_ELEMENT_Severity, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xf9bcb037, L"groupParent", XFA_ELEMENT_GroupParent, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_NodeV},
+     XFA_ObjectType::NodeV},
     {0xfbc42fff, L"documentAssembly", XFA_ELEMENT_DocumentAssembly,
-     XFA_XDPPACKET_Config, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
     {0xfc78159f, L"numberSymbol", XFA_ELEMENT_NumberSymbol,
-     XFA_XDPPACKET_LocaleSet, XFA_OBJECTTYPE_ContentNode},
+     XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
     {0xfcbd606c, L"tagged", XFA_ELEMENT_Tagged, XFA_XDPPACKET_Config,
-     XFA_OBJECTTYPE_ContentNode},
+     XFA_ObjectType::ContentNode},
     {0xff063802, L"items", XFA_ELEMENT_Items,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_OBJECTTYPE_Node},
+     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
 };
 const int32_t g_iXFAElementCount =
     sizeof(g_XFAElementData) / sizeof(XFA_ELEMENTINFO);
diff --git a/xfa/fxfa/parser/xfa_document_datadescription_imp.cpp b/xfa/fxfa/parser/xfa_document_datadescription_imp.cpp
index f52c105..652c3e3 100644
--- a/xfa/fxfa/parser/xfa_document_datadescription_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_datadescription_imp.cpp
@@ -78,7 +78,7 @@
     pDataNode->SetCData(XFA_ATTRIBUTE_Name, wsName);
     pDataNode->CreateXMLMappingNode();
     pDataParent->InsertChild(pDataNode);
-    pDataNode->SetFlag(XFA_NODEFLAG_Initialized, false);
+    pDataNode->SetFlag(XFA_NodeFlag_Initialized, false);
     return pDataNode;
   } else {
     CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_DDGroup>
@@ -115,7 +115,7 @@
       }
       pDataParent->InsertChild(pDataNode);
       pDataNode->SetDataDescriptionNode(pDDNode);
-      pDataNode->SetFlag(XFA_NODEFLAG_Initialized, false);
+      pDataNode->SetFlag(XFA_NodeFlag_Initialized, false);
       return pDataNode;
     }
     return NULL;
diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
index 7d7b50f..91e5086 100644
--- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
@@ -64,12 +64,11 @@
   ASSERT(pValueNode->GetPacketID() == XFA_XDPPACKET_Form);
   CXFA_Node* pChildNode =
       XFA_DataMerge_FormValueNode_CreateChild(pValueNode, iType);
-  if (!pChildNode) {
+  if (!pChildNode)
     return FALSE;
-  }
-  XFA_OBJECTTYPE objectType = pChildNode->GetObjectType();
-  switch (objectType) {
-    case XFA_OBJECTTYPE_ContentNode: {
+
+  switch (pChildNode->GetObjectType()) {
+    case XFA_ObjectType::ContentNode: {
       CXFA_Node* pContentRawDataNode =
           pChildNode->GetNodeItem(XFA_NODEITEM_FirstChild);
       if (!pContentRawDataNode) {
@@ -89,9 +88,9 @@
       }
       pContentRawDataNode->SetCData(XFA_ATTRIBUTE_Value, wsContent);
     } break;
-    case XFA_OBJECTTYPE_NodeC:
-    case XFA_OBJECTTYPE_TextNode:
-    case XFA_OBJECTTYPE_NodeV: {
+    case XFA_ObjectType::NodeC:
+    case XFA_ObjectType::TextNode:
+    case XFA_ObjectType::NodeV: {
       pChildNode->SetCData(XFA_ATTRIBUTE_Value, wsContent);
     } break;
     default:
@@ -473,8 +472,7 @@
   for (; pFormChild;
        pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
     if (pFormChild->GetClassID() == eClassID &&
-        pFormChild->GetNameHash() == dwNameHash &&
-        pFormChild->HasFlag(XFA_NODEFLAG_UnusedNode)) {
+        pFormChild->GetNameHash() == dwNameHash && pFormChild->IsUnusedNode()) {
       return pFormChild;
     }
   }
@@ -486,7 +484,7 @@
   if (eType == XFA_ELEMENT_Variables) {
     return TRUE;
   }
-  if (pTemplateChild->GetObjectType() == XFA_OBJECTTYPE_ContainerNode) {
+  if (pTemplateChild->IsContainerNode()) {
     return FALSE;
   }
   if (eType == XFA_ELEMENT_Proto ||
@@ -516,7 +514,7 @@
       pFormParent->RemoveChild(pExistingNode);
       pFormParent->InsertChild(pExistingNode);
     }
-    pExistingNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
+    pExistingNode->ClearFlag(XFA_NodeFlag_UnusedNode);
     pExistingNode->SetTemplateNode(pTemplateNode);
     if (bRecursive && pExistingNode->GetClassID() != XFA_ELEMENT_Items) {
       for (CXFA_Node* pTemplateChild =
@@ -529,7 +527,7 @@
         }
       }
     }
-    pExistingNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+    pExistingNode->SetFlag(XFA_NodeFlag_Initialized, true);
     return pExistingNode;
   }
   CXFA_Node* pNewNode = pTemplateNode->CloneTemplateToForm(FALSE);
@@ -582,7 +580,7 @@
     }
     pFormParent->RemoveChild(pExistingNode);
     pFormParent->InsertChild(pExistingNode);
-    pExistingNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
+    pExistingNode->ClearFlag(XFA_NodeFlag_UnusedNode);
     pExistingNode->SetTemplateNode(pTemplateNode);
     return pExistingNode;
   }
@@ -776,11 +774,11 @@
     } else if (pInstMgrNode) {
       pOccurNode = pInstMgrNode->GetFirstChildByClass(XFA_ELEMENT_Occur);
       if (pOccurNode) {
-        pOccurNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
+        pOccurNode->ClearFlag(XFA_NodeFlag_UnusedNode);
       }
     }
     if (pInstMgrNode) {
-      pInstMgrNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+      pInstMgrNode->SetFlag(XFA_NodeFlag_Initialized, true);
       pSearchArray = &subformArray;
       if (pFormParentNode->GetClassID() == XFA_ELEMENT_PageArea) {
         bOneInstance = TRUE;
@@ -844,8 +842,7 @@
           if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) {
             XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubform,
                                                 pTemplateChild, TRUE);
-          } else if (pTemplateChild->GetObjectType() ==
-                     XFA_OBJECTTYPE_ContainerNode) {
+          } else if (pTemplateChild->IsContainerNode()) {
             pDocument->DataMerge_CopyContainer(pTemplateChild, pSubform,
                                                pDataNode, FALSE, TRUE, FALSE);
           }
@@ -882,8 +879,7 @@
           if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) {
             XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformSetNode,
                                                 pTemplateChild, TRUE);
-          } else if (pTemplateChild->GetObjectType() ==
-                     XFA_OBJECTTYPE_ContainerNode) {
+          } else if (pTemplateChild->IsContainerNode()) {
             bSelfMatch = FALSE;
             eBindMatch = XFA_ATTRIBUTEENUM_None;
             CXFA_Node* pDataMatch;
@@ -943,8 +939,7 @@
           if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) {
             XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformSetNode,
                                                 pTemplateChild, TRUE);
-          } else if (pTemplateChild->GetObjectType() ==
-                     XFA_OBJECTTYPE_ContainerNode) {
+          } else if (pTemplateChild->IsContainerNode()) {
             pDocument->DataMerge_CopyContainer(pTemplateChild, pSubformSetNode,
                                                pDataScope);
           }
@@ -985,8 +980,7 @@
           if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) {
             XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformNode,
                                                 pTemplateChild, TRUE);
-          } else if (pTemplateChild->GetObjectType() ==
-                     XFA_OBJECTTYPE_ContainerNode) {
+          } else if (pTemplateChild->IsContainerNode()) {
             pDocument->DataMerge_CopyContainer(pTemplateChild, pSubformNode,
                                                pDataScope);
           }
@@ -1010,8 +1004,7 @@
       if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) {
         XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformSetNode,
                                             pTemplateChild, TRUE);
-      } else if (pTemplateChild->GetObjectType() ==
-                 XFA_OBJECTTYPE_ContainerNode) {
+      } else if (pTemplateChild->IsContainerNode()) {
         if (bFound && eRelation == XFA_ATTRIBUTEENUM_Choice) {
           continue;
         }
@@ -1209,12 +1202,11 @@
              pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild);
          pFormChild;
          pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
-      if (pFormChild->GetObjectType() != XFA_OBJECTTYPE_ContainerNode) {
+      if (!pFormChild->IsContainerNode())
         continue;
-      }
-      if (pFormChild->HasFlag(XFA_NODEFLAG_UnusedNode)) {
+      if (pFormChild->IsUnusedNode())
         continue;
-      }
+
       XFA_DataMerge_UpdateBindingRelations(pDocument, pFormChild,
                                            pDataNode ? pDataNode : pDataScope,
                                            bDataRef, bParentDataRef);
@@ -1223,8 +1215,7 @@
 }
 CXFA_Node* XFA_DataMerge_FindDataScope(CXFA_Node* pParentFormNode) {
   for (CXFA_Node* pRootBoundNode = pParentFormNode;
-       pRootBoundNode &&
-       pRootBoundNode->GetObjectType() == XFA_OBJECTTYPE_ContainerNode;
+       pRootBoundNode && pRootBoundNode->IsContainerNode();
        pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) {
     CXFA_Node* pDataScope = pRootBoundNode->GetBindData();
     if (pDataScope) {
@@ -1334,7 +1325,7 @@
         sIterator(pFormRoot);
     for (CXFA_Node* pNode = sIterator.MoveToNext(); pNode;
          pNode = sIterator.MoveToNext()) {
-      pNode->SetFlag(XFA_NODEFLAG_UnusedNode, true);
+      pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
     }
   }
   CXFA_Node* pSubformSetNode = XFA_NodeMerge_CloneOrMergeContainer(
@@ -1362,8 +1353,7 @@
     if (XFA_NeedGenerateForm(pTemplateChild)) {
       XFA_NodeMerge_CloneOrMergeContainer(this, pSubformSetNode, pTemplateChild,
                                           TRUE);
-    } else if (pTemplateChild->GetObjectType() ==
-               XFA_OBJECTTYPE_ContainerNode) {
+    } else if (pTemplateChild->IsContainerNode()) {
       DataMerge_CopyContainer(pTemplateChild, pSubformSetNode, pDataTopLevel);
     }
   }
@@ -1385,19 +1375,19 @@
         sIterator(pFormRoot);
     CXFA_Node* pNode = sIterator.MoveToNext();
     while (pNode) {
-      if (pNode->HasFlag(XFA_NODEFLAG_UnusedNode)) {
-        if (pNode->GetObjectType() == XFA_OBJECTTYPE_ContainerNode ||
+      if (pNode->IsUnusedNode()) {
+        if (pNode->IsContainerNode() ||
             pNode->GetClassID() == XFA_ELEMENT_InstanceManager) {
           CXFA_Node* pNext = sIterator.SkipChildrenAndMoveToNext();
           pNode->GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pNode);
           pNode = pNext;
         } else {
-          pNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
-          pNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+          pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+          pNode->SetFlag(XFA_NodeFlag_Initialized, true);
           pNode = sIterator.MoveToNext();
         }
       } else {
-        pNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+        pNode->SetFlag(XFA_NodeFlag_Initialized, true);
         pNode = sIterator.MoveToNext();
       }
     }
diff --git a/xfa/fxfa/parser/xfa_document_imp.cpp b/xfa/fxfa/parser/xfa_document_imp.cpp
index ffc7ed6..76ec4ec 100644
--- a/xfa/fxfa/parser/xfa_document_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_imp.cpp
@@ -292,8 +292,8 @@
        pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
     if (pFormChild->GetClassID() == pProtoNode->GetClassID() &&
         pFormChild->GetNameHash() == pProtoNode->GetNameHash() &&
-        pFormChild->HasFlag(XFA_NODEFLAG_UnusedNode)) {
-      pFormChild->ClearFlag(XFA_NODEFLAG_UnusedNode);
+        pFormChild->IsUnusedNode()) {
+      pFormChild->ClearFlag(XFA_NodeFlag_UnusedNode);
       pExistingNode = pFormChild;
       break;
     }
@@ -319,7 +319,7 @@
     CXFA_NodeIterator sIterator(pDestNode);
     for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
          pNode = sIterator.MoveToNext()) {
-      pNode->SetFlag(XFA_NODEFLAG_UnusedNode, true);
+      pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
     }
   }
   pDestNode->SetTemplateNode(pProtoNode);
@@ -333,7 +333,7 @@
     CXFA_NodeIterator sIterator(pDestNode);
     for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
          pNode = sIterator.MoveToNext()) {
-      pNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
+      pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
     }
   }
 }
diff --git a/xfa/fxfa/parser/xfa_document_layout_imp.cpp b/xfa/fxfa/parser/xfa_document_layout_imp.cpp
index 854e773..31733bb 100644
--- a/xfa/fxfa/parser/xfa_document_layout_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_layout_imp.cpp
@@ -115,7 +115,7 @@
   for (int32_t i = 0, c = m_rgChangedContainers.GetSize(); i < c; i++) {
     CXFA_Node* pNode = m_rgChangedContainers[i];
     CXFA_Node* pParentNode =
-        pNode->GetNodeItem(XFA_NODEITEM_Parent, XFA_OBJECTTYPE_ContainerNode);
+        pNode->GetNodeItem(XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode);
     if (!pParentNode) {
       return FALSE;
     }
diff --git a/xfa/fxfa/parser/xfa_document_serialize.cpp b/xfa/fxfa/parser/xfa_document_serialize.cpp
index d7b8bf0..9ffae18 100644
--- a/xfa/fxfa/parser/xfa_document_serialize.cpp
+++ b/xfa/fxfa/parser/xfa_document_serialize.cpp
@@ -161,22 +161,20 @@
 }
 FX_BOOL XFA_DataExporter_ContentNodeNeedtoExport(CXFA_Node* pContentNode) {
   CFX_WideString wsContent;
-  if (!pContentNode->TryContent(wsContent, FALSE, FALSE)) {
+  if (!pContentNode->TryContent(wsContent, FALSE, FALSE))
     return FALSE;
-  }
-  ASSERT(pContentNode->GetObjectType() == XFA_OBJECTTYPE_ContentNode);
+
+  ASSERT(pContentNode->IsContentNode());
   CXFA_Node* pParentNode = pContentNode->GetNodeItem(XFA_NODEITEM_Parent);
-  if (!pParentNode || pParentNode->GetClassID() != XFA_ELEMENT_Value) {
+  if (!pParentNode || pParentNode->GetClassID() != XFA_ELEMENT_Value)
     return TRUE;
-  }
+
   CXFA_Node* pGrandParentNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent);
-  if (!pGrandParentNode ||
-      pGrandParentNode->GetObjectType() != XFA_OBJECTTYPE_ContainerNode) {
+  if (!pGrandParentNode || !pGrandParentNode->IsContainerNode())
     return TRUE;
-  }
-  if (pGrandParentNode->GetBindData()) {
+  if (pGrandParentNode->GetBindData())
     return FALSE;
-  }
+
   CXFA_WidgetData* pWidgetData = pGrandParentNode->GetWidgetData();
   XFA_ELEMENT eUIType = pWidgetData->GetUIType();
   if (eUIType == XFA_ELEMENT_PasswordEdit) {
@@ -223,7 +221,7 @@
   }
   CFX_WideString wsChildren;
   switch (pNode->GetObjectType()) {
-    case XFA_OBJECTTYPE_ContentNode: {
+    case XFA_ObjectType::ContentNode: {
       if (!bSaveXML && !XFA_DataExporter_ContentNodeNeedtoExport(pNode)) {
         break;
       }
@@ -308,9 +306,9 @@
         wsChildren += XFA_ExportEncodeContent(wsValue);
       }
     } break;
-    case XFA_OBJECTTYPE_TextNode:
-    case XFA_OBJECTTYPE_NodeC:
-    case XFA_OBJECTTYPE_NodeV: {
+    case XFA_ObjectType::TextNode:
+    case XFA_ObjectType::NodeC:
+    case XFA_ObjectType::NodeV: {
       CFX_WideStringC wsValue = pNode->GetCData(XFA_ATTRIBUTE_Value);
       wsChildren += XFA_ExportEncodeContent(wsValue);
     } break;
@@ -425,7 +423,7 @@
                                          IFX_Stream* pStream,
                                          const FX_CHAR* pChecksum,
                                          FX_BOOL bSaveXML) {
-  if (pNode->GetObjectType() == XFA_OBJECTTYPE_ModelNode) {
+  if (pNode->IsModelNode()) {
     static const FX_WCHAR s_pwsTagName[] = L"<form";
     static const FX_WCHAR s_pwsClose[] = L"</form\n>";
     pStream->WriteString(s_pwsTagName, FXSYS_wcslen(s_pwsTagName));
@@ -490,7 +488,7 @@
                                   uint32_t dwFlag,
                                   const FX_CHAR* pChecksum) {
   CFDE_XMLDoc* pXMLDoc = m_pDocument->GetParser()->GetXMLDoc();
-  if (pNode->GetObjectType() == XFA_OBJECTTYPE_ModelNode) {
+  if (pNode->IsModelNode()) {
     switch (pNode->GetPacketID()) {
       case XFA_XDPPACKET_XDP: {
         static const FX_WCHAR s_pwsPreamble[] =
diff --git a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
index f44435a..5c6d40a 100644
--- a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
+++ b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
@@ -215,7 +215,7 @@
     eItemType = XFA_NODEITEM_NextSibling;
   }
   CXFA_Node* pPreContainer =
-      pCurNode->GetNodeItem(eItemType, XFA_OBJECTTYPE_ContainerNode);
+      pCurNode->GetNodeItem(eItemType, XFA_ObjectType::ContainerNode);
   if (pPreContainer == NULL) {
     return FALSE;
   }
@@ -767,17 +767,16 @@
       CXFA_Node* pNextChildContainer =
           pChildContainer == XFA_LAYOUT_INVALIDNODE
               ? pEntireContainer->GetNodeItem(XFA_NODEITEM_FirstChild,
-                                              XFA_OBJECTTYPE_ContainerNode)
+                                              XFA_ObjectType::ContainerNode)
               : pChildContainer->GetNodeItem(XFA_NODEITEM_NextSibling,
-                                             XFA_OBJECTTYPE_ContainerNode);
+                                             XFA_ObjectType::ContainerNode);
       while (pNextChildContainer &&
-             pNextChildContainer->HasFlag(XFA_NODEFLAG_LayoutGeneratedNode)) {
+             pNextChildContainer->IsLayoutGeneratedNode()) {
         CXFA_Node* pSaveNode = pNextChildContainer;
         pNextChildContainer = pNextChildContainer->GetNodeItem(
-            XFA_NODEITEM_NextSibling, XFA_OBJECTTYPE_ContainerNode);
-        if (pSaveNode->HasFlag(XFA_NODEFLAG_UnusedNode)) {
+            XFA_NODEITEM_NextSibling, XFA_ObjectType::ContainerNode);
+        if (pSaveNode->IsUnusedNode())
           XFA_DeleteLayoutGeneratedNode(pSaveNode);
-        }
       }
       if (!pNextChildContainer) {
         goto NoMoreChildContainer;
@@ -1896,7 +1895,7 @@
         pNode->SetObject(XFA_ATTRIBUTE_BindingNode, NULL);
       }
     }
-    pNode->SetFlag(XFA_NODEFLAG_UnusedNode, true);
+    pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
   }
 }
 void CXFA_ItemLayoutProcessor::ProcessUnUseOverFlow(
@@ -2167,11 +2166,10 @@
                                            pTrailerLayoutItem, pFormNode);
           pThis->m_bUseInheriated = TRUE;
         } else {
-          if (pProcessor->m_pLayoutItem->m_pFirstChild &&
-              pProcessor->m_pLayoutItem->m_pFirstChild->m_pNextSibling ==
-                  NULL &&
-              pProcessor->m_pLayoutItem->m_pFirstChild->m_pFormNode->HasFlag(
-                  XFA_NODEFLAG_LayoutGeneratedNode)) {
+          CXFA_LayoutItem* firstChild =
+              pProcessor->m_pLayoutItem->m_pFirstChild;
+          if (firstChild && !firstChild->m_pNextSibling &&
+              firstChild->m_pFormNode->IsLayoutGeneratedNode()) {
             pProcessor->ProcessUnUseOverFlow(pOverflowLeaderNode,
                                              pOverflowTrailerNode,
                                              pTrailerLayoutItem, pFormNode);
@@ -2304,10 +2302,10 @@
         XFA_ItemLayoutProcessor_GetLayout(pParentNode, bFocrTb) ==
             XFA_ATTRIBUTEENUM_Row) {
       CXFA_Node* pChildContainer = m_pFormNode->GetNodeItem(
-          XFA_NODEITEM_FirstChild, XFA_OBJECTTYPE_ContainerNode);
+          XFA_NODEITEM_FirstChild, XFA_ObjectType::ContainerNode);
       if (pChildContainer &&
           pChildContainer->GetNodeItem(XFA_NODEITEM_NextSibling,
-                                       XFA_OBJECTTYPE_ContainerNode)) {
+                                       XFA_ObjectType::ContainerNode)) {
         fContainerHeight = 0;
         bContainerHeightAutoSize = TRUE;
       }
diff --git a/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp b/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
index 4b36bc8..653ec93 100644
--- a/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
+++ b/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
@@ -179,8 +179,8 @@
 }
 
 void SetLayoutGeneratedNodeFlag(CXFA_Node* pNode) {
-  pNode->SetFlag(XFA_NODEFLAG_LayoutGeneratedNode, false);
-  pNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
+  pNode->SetFlag(XFA_NodeFlag_LayoutGeneratedNode, false);
+  pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
 }
 
 FX_BOOL CheckContentAreaNotUsed(
@@ -291,7 +291,7 @@
       return FALSE;
     }
     m_pTemplatePageSetRoot->InsertChild(pPageArea, NULL);
-    pPageArea->SetFlag(XFA_NODEFLAG_Initialized, true);
+    pPageArea->SetFlag(XFA_NodeFlag_Initialized, true);
   }
   CXFA_Node* pContentArea = pPageArea->GetChild(0, XFA_ELEMENT_ContentArea);
   if (!pContentArea) {
@@ -301,7 +301,7 @@
       return FALSE;
     }
     pPageArea->InsertChild(pContentArea, NULL);
-    pContentArea->SetFlag(XFA_NODEFLAG_Initialized, true);
+    pContentArea->SetFlag(XFA_NodeFlag_Initialized, true);
     pContentArea->SetMeasure(XFA_ATTRIBUTE_X,
                              CXFA_Measurement(0.25f, XFA_UNIT_In));
     pContentArea->SetMeasure(XFA_ATTRIBUTE_Y,
@@ -319,7 +319,7 @@
       return FALSE;
     }
     pPageArea->InsertChild(pMedium, NULL);
-    pMedium->SetFlag(XFA_NODEFLAG_Initialized, true);
+    pMedium->SetFlag(XFA_NodeFlag_Initialized, true);
     pMedium->SetMeasure(XFA_ATTRIBUTE_Short,
                         CXFA_Measurement(8.5f, XFA_UNIT_In));
     pMedium->SetMeasure(XFA_ATTRIBUTE_Long,
@@ -456,7 +456,7 @@
   }
   return pTestScript->GetDocument()->GetParser()->GetNotify()->RunScript(
       pTestScript, pTestScript->GetNodeItem(XFA_NODEITEM_Parent,
-                                            XFA_OBJECTTYPE_ContainerNode));
+                                            XFA_ObjectType::ContainerNode));
 }
 CXFA_ContainerRecord* CXFA_LayoutPageMgr::CreateContainerRecord(
     CXFA_Node* pPageNode,
@@ -768,7 +768,7 @@
     case XFA_ELEMENT_BreakAfter: {
       CFX_WideStringC wsBreakLeader, wsBreakTrailer;
       CXFA_Node* pFormNode = pCurNode->GetNodeItem(
-          XFA_NODEITEM_Parent, XFA_OBJECTTYPE_ContainerNode);
+          XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode);
       CXFA_Node* pContainer = pFormNode->GetTemplateNode();
       FX_BOOL bStartNew = pCurNode->GetInteger(XFA_ATTRIBUTE_StartNew) != 0;
       CXFA_Node* pScript = pCurNode->GetFirstChildByClass(XFA_ELEMENT_Script);
@@ -793,11 +793,11 @@
                 m_rgProposedContainerRecord.GetHeadPosition() &&
             eType == XFA_ELEMENT_BreakBefore) {
           CXFA_Node* pParentNode = pFormNode->GetNodeItem(
-              XFA_NODEITEM_Parent, XFA_OBJECTTYPE_ContainerNode);
+              XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode);
           if (!pParentNode ||
               pFormNode !=
                   pParentNode->GetNodeItem(XFA_NODEITEM_FirstChild,
-                                           XFA_OBJECTTYPE_ContainerNode)) {
+                                           XFA_ObjectType::ContainerNode)) {
             break;
           }
           pParentNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent);
@@ -835,14 +835,14 @@
     FX_BOOL& bCreatePage) {
   CXFA_Node *pLeaderTemplate = NULL, *pTrailerTemplate = NULL;
   CXFA_Node* pFormNode = pBreakNode->GetNodeItem(XFA_NODEITEM_Parent,
-                                                 XFA_OBJECTTYPE_ContainerNode);
+                                                 XFA_ObjectType::ContainerNode);
   if (XFA_ItemLayoutProcessor_IsTakingSpace(pFormNode)) {
     bCreatePage = ExecuteBreakBeforeOrAfter(pBreakNode, bBefore,
                                             pLeaderTemplate, pTrailerTemplate);
     CXFA_Document* pDocument = pBreakNode->GetDocument();
     CXFA_Node* pDataScope = NULL;
     pFormNode = pFormNode->GetNodeItem(XFA_NODEITEM_Parent,
-                                       XFA_OBJECTTYPE_ContainerNode);
+                                       XFA_ObjectType::ContainerNode);
     if (pLeaderTemplate) {
       if (!pDataScope) {
         pDataScope = XFA_DataMerge_FindDataScope(pFormNode);
@@ -871,7 +871,7 @@
     CXFA_Node*& pBookendAppendNode) {
   CXFA_Node* pLeaderTemplate = NULL;
   CXFA_Node* pFormNode = pBookendNode->GetNodeItem(
-      XFA_NODEITEM_Parent, XFA_OBJECTTYPE_ContainerNode);
+      XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode);
   if (ResolveBookendLeaderOrTrailer(pBookendNode, bLeader, pLeaderTemplate)) {
     CXFA_Document* pDocument = pBookendNode->GetDocument();
     CXFA_Node* pDataScope = NULL;
@@ -893,8 +893,8 @@
                                              CXFA_Node*& pTrailerTemplate,
                                              FX_BOOL bCreatePage) {
   CXFA_Node* pContainer =
-      pOverflowNode->GetNodeItem(XFA_NODEITEM_Parent,
-                                 XFA_OBJECTTYPE_ContainerNode)
+      pOverflowNode
+          ->GetNodeItem(XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode)
           ->GetTemplateNode();
   if (pOverflowNode->GetClassID() == XFA_ELEMENT_Break) {
     CFX_WideStringC wsOverflowLeader;
@@ -1027,8 +1027,8 @@
     CXFA_Node*& pBookendAppendTemplate) {
   CFX_WideStringC wsBookendLeader;
   CXFA_Node* pContainer =
-      pBookendNode->GetNodeItem(XFA_NODEITEM_Parent,
-                                XFA_OBJECTTYPE_ContainerNode)
+      pBookendNode
+          ->GetNodeItem(XFA_NODEITEM_Parent, XFA_ObjectType::ContainerNode)
           ->GetTemplateNode();
   if (pBookendNode->GetClassID() == XFA_ELEMENT_Break) {
     pBookendNode->TryCData(
@@ -1566,8 +1566,7 @@
   while (pCurLayoutItem) {
     pNextLayoutItem = pCurLayoutItem->m_pNextSibling;
     if (pCurLayoutItem->IsContentLayoutItem()) {
-      uint32_t dwFlag = pCurLayoutItem->m_pFormNode->GetFlag();
-      if (dwFlag & (XFA_NODEFLAG_HasRemoved)) {
+      if (pCurLayoutItem->m_pFormNode->HasRemovedChildren()) {
         CXFA_FFNotify* pNotify =
             m_pTemplatePageSetRoot->GetDocument()->GetParser()->GetNotify();
         CXFA_LayoutProcessor* pDocLayout =
@@ -1580,12 +1579,12 @@
         pCurLayoutItem = pNextLayoutItem;
         continue;
       }
-      if (dwFlag & XFA_NODEFLAG_LayoutGeneratedNode) {
+      if (pCurLayoutItem->m_pFormNode->IsLayoutGeneratedNode()) {
         CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_XFANode>
             sIterator(pCurLayoutItem->m_pFormNode);
         for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
              pNode = sIterator.MoveToNext()) {
-          pNode->SetFlag(XFA_NODEFLAG_UnusedNode, false);
+          pNode->SetFlag(XFA_NodeFlag_UnusedNode, false);
         }
       }
     }
@@ -1645,7 +1644,7 @@
             pNode->SetObject(XFA_ATTRIBUTE_BindingNode, NULL);
           }
         }
-        pNode->SetFlag(XFA_NODEFLAG_UnusedNode, true);
+        pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
       }
     }
   }
@@ -1679,7 +1678,7 @@
                                                           NULL);
     }
     pRootPageSetContainerItem->m_pFormNode = pPendingPageSet;
-    pPendingPageSet->ClearFlag(XFA_NODEFLAG_UnusedNode);
+    pPendingPageSet->ClearFlag(XFA_NodeFlag_UnusedNode);
     for (CXFA_ContainerLayoutItem* pContainerItem = iterator.MoveToNext();
          pContainerItem; pContainerItem = iterator.MoveToNext()) {
       CXFA_Node* pNode = pContainerItem->m_pFormNode;
@@ -1765,7 +1764,7 @@
       pFormToplevelSubform->InsertChild(pPendingPageSet);
     }
     pDocument->DataMerge_UpdateBindingRelations(pPendingPageSet);
-    pPendingPageSet->SetFlag(XFA_NODEFLAG_Initialized, true);
+    pPendingPageSet->SetFlag(XFA_NodeFlag_Initialized, true);
   }
   CXFA_Node* pPageSet = GetRootLayoutItem()->m_pFormNode;
   while (pPageSet) {
@@ -1775,8 +1774,8 @@
         sIterator(pPageSet);
     CXFA_Node* pNode = sIterator.GetCurrent();
     while (pNode) {
-      if (pNode->HasFlag(XFA_NODEFLAG_UnusedNode)) {
-        if (pNode->GetObjectType() == XFA_OBJECTTYPE_ContainerNode) {
+      if (pNode->IsUnusedNode()) {
+        if (pNode->IsContainerNode()) {
           XFA_ELEMENT eCurId = pNode->GetClassID();
           if (eCurId == XFA_ELEMENT_PageArea || eCurId == XFA_ELEMENT_PageSet) {
             CXFA_ContainerIterator iteChild(pNode);
@@ -1801,12 +1800,12 @@
           pNode->GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pNode);
           pNode = pNext;
         } else {
-          pNode->ClearFlag(XFA_NODEFLAG_UnusedNode);
-          pNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+          pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+          pNode->SetFlag(XFA_NodeFlag_Initialized, true);
           pNode = sIterator.MoveToNext();
         }
       } else {
-        pNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+        pNode->SetFlag(XFA_NodeFlag_Initialized, true);
         pNode = sIterator.MoveToNext();
       }
     }
@@ -1919,7 +1918,7 @@
       pRootLayoutItem->m_pFormNode->GetPacketID() == XFA_XDPPACKET_Form) {
     CXFA_Node* pPageSetFormNode = pRootLayoutItem->m_pFormNode;
     pRootLayoutItem->m_pFormNode->GetDocument()->m_pPendingPageSet.RemoveAll();
-    if (pPageSetFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) {
+    if (pPageSetFormNode->HasRemovedChildren()) {
       XFA_ReleaseLayoutItem(pRootLayoutItem);
       m_pPageSetLayoutItemRoot = NULL;
       pRootLayoutItem = NULL;
diff --git a/xfa/fxfa/parser/xfa_object.h b/xfa/fxfa/parser/xfa_object.h
index b5c31cf..6b2e4d8 100644
--- a/xfa/fxfa/parser/xfa_object.h
+++ b/xfa/fxfa/parser/xfa_object.h
@@ -18,58 +18,68 @@
 class CXFA_NodeList;
 class CXFA_OrdinaryObject;
 
-enum XFA_OBJECTTYPE {
-  XFA_OBJECTTYPE_OrdinaryObject = 0x0,
-  XFA_OBJECTTYPE_OrdinaryList = 0x1,
-  XFA_OBJECTTYPE_NodeList = 0x2,
-  XFA_OBJECTTYPE_Node = 0x4,
-  XFA_OBJECTTYPE_NodeC = 0x5,
-  XFA_OBJECTTYPE_NodeV = 0x6,
-  XFA_OBJECTTYPE_ModelNode = 0x8,
-  XFA_OBJECTTYPE_TextNode = 0x9,
-  XFA_OBJECTTYPE_ContainerNode = 0xA,
-  XFA_OBJECTTYPE_ContentNode = 0xB,
-  XFA_OBJECTTYPE_VariablesThis = 0xC,
-  XFA_OBJECTTYPEMASK = 0xF,
-  XFA_NODEFLAG_Initialized = 0x00020,
-  XFA_NODEFLAG_HasRemoved = 0x00200,
-  XFA_NODEFLAG_NeedsInitApp = 0x00400,
-  XFA_NODEFLAG_BindFormItems = 0x00800,
-  XFA_NODEFLAG_UserInteractive = 0x01000,
-  XFA_NODEFLAG_SkipDataBinding = 0x02000,
-  XFA_NODEFLAG_OwnXMLNode = 0x04000,
-  XFA_NODEFLAG_UnusedNode = 0x08000,
-  XFA_NODEFLAG_LayoutGeneratedNode = 0x10000,
+enum class XFA_ObjectType {
+  OrdinaryObject,
+  OrdinaryList,
+  NodeList,
+  Node,
+  NodeC,
+  NodeV,
+  ModelNode,
+  TextNode,
+  ContainerNode,
+  ContentNode,
+  VariablesThis
+};
+
+enum XFA_NodeFlag {
+  XFA_NodeFlag_None = 0,
+  XFA_NodeFlag_Initialized = 1 << 0,
+  XFA_NodeFlag_HasRemovedChildren = 1 << 1,
+  XFA_NodeFlag_NeedsInitApp = 1 << 2,
+  XFA_NodeFlag_BindFormItems = 1 << 3,
+  XFA_NodeFlag_UserInteractive = 1 << 4,
+  XFA_NodeFlag_SkipDataBinding = 1 << 5,
+  XFA_NodeFlag_OwnXMLNode = 1 << 6,
+  XFA_NodeFlag_UnusedNode = 1 << 7,
+  XFA_NodeFlag_LayoutGeneratedNode = 1 << 8
 };
 
 class CXFA_Object : public CFXJSE_HostObject {
  public:
-  CXFA_Object(CXFA_Document* pDocument, uint32_t uFlags);
+  CXFA_Object(CXFA_Document* pDocument, XFA_ObjectType type);
   ~CXFA_Object() override;
 
   CXFA_Document* GetDocument() const { return m_pDocument; }
-  uint32_t GetFlag() const { return m_uFlags; }
-  XFA_OBJECTTYPE GetObjectType() const {
-    return (XFA_OBJECTTYPE)(m_uFlags & XFA_OBJECTTYPEMASK);
-  }
+  XFA_ObjectType GetObjectType() const { return m_objectType; }
 
   bool IsNode() const {
-    return (m_uFlags & XFA_OBJECTTYPEMASK) >= XFA_OBJECTTYPE_Node;
+    return m_objectType == XFA_ObjectType::Node ||
+           m_objectType == XFA_ObjectType::NodeC ||
+           m_objectType == XFA_ObjectType::NodeV ||
+           m_objectType == XFA_ObjectType::ModelNode ||
+           m_objectType == XFA_ObjectType::TextNode ||
+           m_objectType == XFA_ObjectType::ContainerNode ||
+           m_objectType == XFA_ObjectType::ContentNode ||
+           m_objectType == XFA_ObjectType::VariablesThis;
   }
   bool IsOrdinaryObject() const {
-    return (m_uFlags & XFA_OBJECTTYPEMASK) == XFA_OBJECTTYPE_OrdinaryObject;
+    return m_objectType == XFA_ObjectType::OrdinaryObject;
   }
-  bool IsNodeList() const {
-    return (m_uFlags & XFA_OBJECTTYPEMASK) == XFA_OBJECTTYPE_NodeList;
-  }
+  bool IsNodeList() const { return m_objectType == XFA_ObjectType::NodeList; }
   bool IsOrdinaryList() const {
-    return (m_uFlags & XFA_OBJECTTYPEMASK) == XFA_OBJECTTYPE_OrdinaryList;
+    return m_objectType == XFA_ObjectType::OrdinaryList;
   }
   bool IsContentNode() const {
-    return (m_uFlags & XFA_OBJECTTYPEMASK) == XFA_OBJECTTYPE_ContentNode;
+    return m_objectType == XFA_ObjectType::ContentNode;
   }
   bool IsContainerNode() const {
-    return (m_uFlags & XFA_OBJECTTYPEMASK) == XFA_OBJECTTYPE_ContainerNode;
+    return m_objectType == XFA_ObjectType::ContainerNode;
+  }
+  bool IsModelNode() const { return m_objectType == XFA_ObjectType::ModelNode; }
+  bool IsNodeV() const { return m_objectType == XFA_ObjectType::NodeV; }
+  bool IsVariablesThis() const {
+    return m_objectType == XFA_ObjectType::VariablesThis;
   }
 
   CXFA_Node* AsNode();
@@ -90,7 +100,7 @@
 
  protected:
   CXFA_Document* const m_pDocument;
-  uint32_t m_uFlags;
+  XFA_ObjectType m_objectType;
 };
 using CXFA_ObjArray = CFX_ArrayTemplate<CXFA_Object*>;
 
@@ -140,12 +150,27 @@
 
 class CXFA_Node : public CXFA_Object {
  public:
-  XFA_ELEMENT GetClassID() const { return (XFA_ELEMENT)m_eNodeClass; }
+  XFA_ELEMENT GetClassID() const { return m_eNodeClass; }
   uint32_t GetPacketID() const { return m_ePacket; }
-  FX_BOOL HasFlag(uint32_t dwFlag) const;
+
   void SetFlag(uint32_t dwFlag, bool bNotify);
   void ClearFlag(uint32_t dwFlag);
 
+  bool IsInitialized() const { return HasFlag(XFA_NodeFlag_Initialized); }
+  bool IsOwnXMLNode() const { return HasFlag(XFA_NodeFlag_OwnXMLNode); }
+  bool IsUserInteractive() const {
+    return HasFlag(XFA_NodeFlag_UserInteractive);
+  }
+  bool IsUnusedNode() const { return HasFlag(XFA_NodeFlag_UnusedNode); }
+  bool IsLayoutGeneratedNode() const {
+    return HasFlag(XFA_NodeFlag_LayoutGeneratedNode);
+  }
+  bool BindsFormItems() const { return HasFlag(XFA_NodeFlag_BindFormItems); }
+  bool HasRemovedChildren() const {
+    return HasFlag(XFA_NodeFlag_HasRemovedChildren);
+  }
+  bool NeedsInitApp() const { return HasFlag(XFA_NodeFlag_NeedsInitApp); }
+
   FX_BOOL IsAttributeInXML();
   bool IsFormContainer() const {
     return m_ePacket == XFA_XDPPACKET_Form && IsContainerNode();
@@ -278,14 +303,14 @@
   FX_BOOL RemoveChild(CXFA_Node* pNode, bool bNotify = true);
   CXFA_Node* Clone(FX_BOOL bRecursive);
   CXFA_Node* GetNodeItem(XFA_NODEITEM eItem) const;
-  CXFA_Node* GetNodeItem(XFA_NODEITEM eItem, XFA_OBJECTTYPE eType) const;
+  CXFA_Node* GetNodeItem(XFA_NODEITEM eItem, XFA_ObjectType eType) const;
   int32_t GetNodeList(CXFA_NodeArray& nodes,
                       uint32_t dwTypeFilter = XFA_NODEFILTER_Children |
                                               XFA_NODEFILTER_Properties,
                       XFA_ELEMENT eElementFilter = XFA_ELEMENT_UNKNOWN,
                       int32_t iLevel = 1);
   CXFA_Node* CreateSamePacketNode(XFA_ELEMENT eElement,
-                                  uint32_t dwFlags = XFA_NODEFLAG_Initialized);
+                                  uint32_t dwFlags = XFA_NodeFlag_Initialized);
   CXFA_Node* CloneTemplateToForm(FX_BOOL bRecursive);
   CXFA_Node* GetTemplateNode() const;
   void SetTemplateNode(CXFA_Node* pTemplateNode);
@@ -596,9 +621,12 @@
                                XFA_ATTRIBUTE eAttribute);
 
  protected:
+  friend class CXFA_Document;
+
   CXFA_Node(CXFA_Document* pDoc, uint16_t ePacket, XFA_ELEMENT eElement);
   ~CXFA_Node() override;
-  friend class CXFA_Document;
+
+  bool HasFlag(XFA_NodeFlag dwFlag) const;
   CXFA_Node* Deprecated_GetPrevSibling();
   FX_BOOL SetValue(XFA_ATTRIBUTE eAttr,
                    XFA_ATTRIBUTETYPE eType,
@@ -649,6 +677,7 @@
   CFDE_XMLNode* m_pXMLNode;
   XFA_ELEMENT m_eNodeClass;
   uint16_t m_ePacket;
+  uint16_t m_uNodeFlags;
   uint32_t m_dwNameHash;
   CXFA_Node* m_pAuxNode;
   XFA_MAPMODULEDATA* m_pMapModuleData;
@@ -741,17 +770,17 @@
   static CXFA_Node* GetFirstChild(CXFA_Node* pTemplateNode,
                                   void* pUserData = NULL) {
     return pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild,
-                                      XFA_OBJECTTYPE_ContainerNode);
+                                      XFA_ObjectType::ContainerNode);
   }
   static CXFA_Node* GetNextSibling(CXFA_Node* pTemplateNode,
                                    void* pUserData = NULL) {
     return pTemplateNode->GetNodeItem(XFA_NODEITEM_NextSibling,
-                                      XFA_OBJECTTYPE_ContainerNode);
+                                      XFA_ObjectType::ContainerNode);
   }
   static CXFA_Node* GetParent(CXFA_Node* pTemplateNode,
                               void* pUserData = NULL) {
     return pTemplateNode->GetNodeItem(XFA_NODEITEM_Parent,
-                                      XFA_OBJECTTYPE_ContainerNode);
+                                      XFA_ObjectType::ContainerNode);
   }
 };
 typedef CXFA_NodeIteratorTemplate<CXFA_Node,
diff --git a/xfa/fxfa/parser/xfa_object_imp.cpp b/xfa/fxfa/parser/xfa_object_imp.cpp
index 02617f1..b2ddab1 100644
--- a/xfa/fxfa/parser/xfa_object_imp.cpp
+++ b/xfa/fxfa/parser/xfa_object_imp.cpp
@@ -43,8 +43,8 @@
 XFA_MAPDATABLOCKCALLBACKINFO deleteWideStringCallBack = {XFA_DeleteWideString,
                                                          XFA_CopyWideString};
 
-XFA_OBJECTTYPE XFA_GetElementObjectType(XFA_ELEMENT eElement) {
-  return static_cast<XFA_OBJECTTYPE>(XFA_GetElementByID(eElement)->eObjectType);
+XFA_ObjectType XFA_GetElementObjectType(XFA_ELEMENT eElement) {
+  return XFA_GetElementByID(eElement)->eObjectType;
 }
 
 void XFA_DataNodeDeleteBindItem(void* pData) {
@@ -56,8 +56,8 @@
 
 }  // namespace
 
-CXFA_Object::CXFA_Object(CXFA_Document* pDocument, uint32_t uFlags)
-    : m_pDocument(pDocument), m_uFlags(uFlags) {}
+CXFA_Object::CXFA_Object(CXFA_Document* pDocument, XFA_ObjectType type)
+    : m_pDocument(pDocument), m_objectType(type) {}
 
 CXFA_Object::~CXFA_Object() {}
 
@@ -124,6 +124,7 @@
       m_pXMLNode(nullptr),
       m_eNodeClass(eElement),
       m_ePacket(ePacket),
+      m_uNodeFlags(XFA_NodeFlag_None),
       m_dwNameHash(0),
       m_pAuxNode(nullptr),
       m_pMapModuleData(nullptr) {
@@ -140,7 +141,7 @@
     delete pNode;
     pNode = pNext;
   }
-  if (m_pXMLNode && HasFlag(XFA_NODEFLAG_OwnXMLNode))
+  if (m_pXMLNode && IsOwnXMLNode())
     m_pXMLNode->Release();
 }
 
@@ -169,7 +170,7 @@
       pCloneXML = m_pXMLNode->Clone(FALSE);
     }
     pClone->SetXMLMappingNode(pCloneXML);
-    pClone->SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
+    pClone->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
   }
   if (bRecursive) {
     for (CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); pChild;
@@ -177,7 +178,7 @@
       pClone->InsertChild(pChild->Clone(bRecursive));
     }
   }
-  pClone->SetFlag(XFA_NODEFLAG_Initialized, true);
+  pClone->SetFlag(XFA_NodeFlag_Initialized, true);
   pClone->SetObject(XFA_ATTRIBUTE_BindingNode, nullptr);
   return pClone;
 }
@@ -208,38 +209,31 @@
 }
 
 CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem,
-                                  XFA_OBJECTTYPE eType) const {
+                                  XFA_ObjectType eType) const {
   CXFA_Node* pNode = nullptr;
   switch (eItem) {
     case XFA_NODEITEM_NextSibling:
       pNode = m_pNext;
-      if (eType != XFA_OBJECTTYPEMASK) {
-        while (pNode && pNode->GetObjectType() != eType)
-          pNode = pNode->m_pNext;
-      }
+      while (pNode && pNode->GetObjectType() != eType)
+        pNode = pNode->m_pNext;
       break;
     case XFA_NODEITEM_FirstChild:
       pNode = m_pChild;
-      if (eType != XFA_OBJECTTYPEMASK) {
-        while (pNode && pNode->GetObjectType() != eType)
-          pNode = pNode->m_pNext;
-      }
+      while (pNode && pNode->GetObjectType() != eType)
+        pNode = pNode->m_pNext;
       break;
     case XFA_NODEITEM_Parent:
       pNode = m_pParent;
-      if (eType != XFA_OBJECTTYPEMASK) {
-        while (pNode && pNode->GetObjectType() != eType)
-          pNode = pNode->m_pParent;
-      }
+      while (pNode && pNode->GetObjectType() != eType)
+        pNode = pNode->m_pParent;
       break;
     case XFA_NODEITEM_PrevSibling:
       if (m_pParent) {
         CXFA_Node* pSibling = m_pParent->m_pChild;
         while (pSibling && pSibling != this) {
-          if (eType == XFA_OBJECTTYPEMASK ||
-              eType == pSibling->GetObjectType()) {
+          if (eType == pSibling->GetObjectType())
             pNode = pSibling;
-          }
+
           pSibling = pSibling->m_pNext;
         }
       }
@@ -318,7 +312,7 @@
           if (!pNewNode)
             break;
           InsertChild(pNewNode, nullptr);
-          pNewNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+          pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
           nodes.Add(pNewNode);
           break;
         }
@@ -352,7 +346,7 @@
       pClone->InsertChild(pChild->CloneTemplateToForm(bRecursive));
     }
   }
-  pClone->SetFlag(XFA_NODEFLAG_Initialized, true);
+  pClone->SetFlag(XFA_NodeFlag_Initialized, true);
   return pClone;
 }
 
@@ -370,7 +364,7 @@
 }
 
 int32_t CXFA_Node::GetBindItems(CXFA_NodeArray& formItems) {
-  if (m_uFlags & XFA_NODEFLAG_BindFormItems) {
+  if (BindsFormItems()) {
     CXFA_NodeArray* pItems = nullptr;
     TryObject(XFA_ATTRIBUTE_BindingNode, (void*&)pItems);
     formItems.Copy(*pItems);
@@ -385,7 +379,7 @@
 
 int32_t CXFA_Node::AddBindItem(CXFA_Node* pFormNode) {
   ASSERT(pFormNode);
-  if (m_uFlags & XFA_NODEFLAG_BindFormItems) {
+  if (BindsFormItems()) {
     CXFA_NodeArray* pItems = nullptr;
     TryObject(XFA_ATTRIBUTE_BindingNode, (void*&)pItems);
     ASSERT(pItems);
@@ -406,12 +400,12 @@
   SetObject(XFA_ATTRIBUTE_BindingNode, pItems, &deleteBindItemCallBack);
   pItems->Add(pOldFormItem);
   pItems->Add(pFormNode);
-  m_uFlags |= XFA_NODEFLAG_BindFormItems;
+  m_uNodeFlags |= XFA_NodeFlag_BindFormItems;
   return 2;
 }
 
 int32_t CXFA_Node::RemoveBindItem(CXFA_Node* pFormNode) {
-  if (m_uFlags & XFA_NODEFLAG_BindFormItems) {
+  if (BindsFormItems()) {
     CXFA_NodeArray* pItems = nullptr;
     TryObject(XFA_ATTRIBUTE_BindingNode, (void*&)pItems);
     ASSERT(pItems);
@@ -424,7 +418,7 @@
       if (iCount == 2) {
         CXFA_Node* pLastFormNode = pItems->GetAt(0);
         SetObject(XFA_ATTRIBUTE_BindingNode, pLastFormNode);
-        m_uFlags &= ~XFA_NODEFLAG_BindFormItems;
+        m_uNodeFlags &= ~XFA_NodeFlag_BindFormItems;
       }
       iCount--;
     }
@@ -480,7 +474,7 @@
       pDataNode->GetBindItems(formNodes);
       for (int32_t i = 0; i < formNodes.GetSize(); i++) {
         CXFA_Node* pFormNode = formNodes.GetAt(i);
-        if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved))
+        if (!pFormNode || pFormNode->HasRemovedChildren())
           continue;
         pFieldWidgetData = pFormNode->GetWidgetData();
         if (pFieldWidgetData) {
@@ -551,8 +545,8 @@
       if (eIntact == XFA_ATTRIBUTEENUM_None &&
           eLayoutType == XFA_ATTRIBUTEENUM_Row &&
           m_pDocument->GetCurVersionMode() < XFA_VERSION_208) {
-        CXFA_Node* pPreviewRow =
-            GetNodeItem(XFA_NODEITEM_PrevSibling, XFA_OBJECTTYPE_ContainerNode);
+        CXFA_Node* pPreviewRow = GetNodeItem(XFA_NODEITEM_PrevSibling,
+                                             XFA_ObjectType::ContainerNode);
         if (pPreviewRow &&
             pPreviewRow->GetEnum(XFA_ATTRIBUTE_Layout) ==
                 XFA_ATTRIBUTEENUM_Row) {
@@ -1013,7 +1007,7 @@
         CXFA_Node* pItem = pNewChild->GetNodeItem(XFA_NODEITEM_NextSibling);
         pFakeRoot->RemoveChild(pNewChild);
         InsertChild(index++, pNewChild);
-        pNewChild->SetFlag(XFA_NODEFLAG_Initialized, true);
+        pNewChild->SetFlag(XFA_NodeFlag_Initialized, true);
         pNewChild = pItem;
       }
       while (pChild) {
@@ -1026,7 +1020,7 @@
           GetClassID() == XFA_ELEMENT_ExData) {
         CFDE_XMLNode* pTempXMLNode = GetXMLMappingNode();
         SetXMLMappingNode(pFakeXMLRoot);
-        SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
+        SetFlag(XFA_NodeFlag_OwnXMLNode, false);
         if (pTempXMLNode && !pTempXMLNode->GetNodeItem(CFDE_XMLNode::Parent)) {
           pFakeXMLRoot = pTempXMLNode;
         } else {
@@ -1040,15 +1034,15 @@
         CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling);
         pFakeRoot->RemoveChild(pChild);
         InsertChild(pChild);
-        pChild->SetFlag(XFA_NODEFLAG_Initialized, true);
+        pChild->SetFlag(XFA_NodeFlag_Initialized, true);
         pChild = pItem;
       }
     }
     if (pFakeXMLRoot) {
       pFakeRoot->SetXMLMappingNode(pFakeXMLRoot);
-      pFakeRoot->SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
+      pFakeRoot->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
     }
-    pFakeRoot->SetFlag(XFA_NODEFLAG_HasRemoved, false);
+    pFakeRoot->SetFlag(XFA_NodeFlag_HasRemovedChildren, false);
   } else {
     if (pFakeXMLRoot) {
       pFakeXMLRoot->Release();
@@ -1631,7 +1625,7 @@
       CFX_WideString wsPicture;
       for (int32_t i = 0; i < formNodes.GetSize(); i++) {
         CXFA_Node* pFormNode = formNodes.GetAt(i);
-        if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) {
+        if (!pFormNode || pFormNode->HasRemovedChildren()) {
           continue;
         }
         pContainerWidgetData = pFormNode->GetContainerWidgetData();
@@ -2985,8 +2979,7 @@
   CXFA_Node* pFormParent = pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent);
   CXFA_Node* pDataScope = nullptr;
   for (CXFA_Node* pRootBoundNode = pFormParent;
-       pRootBoundNode &&
-       pRootBoundNode->GetObjectType() == XFA_OBJECTTYPE_ContainerNode;
+       pRootBoundNode && pRootBoundNode->IsContainerNode();
        pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) {
     pDataScope = pRootBoundNode->GetBindData();
     if (pDataScope) {
@@ -4065,7 +4058,7 @@
   CXFA_Node* pNode = nullptr;
   CXFA_Node* pBindNode = nullptr;
   switch (GetObjectType()) {
-    case XFA_OBJECTTYPE_ContainerNode: {
+    case XFA_ObjectType::ContainerNode: {
       if (XFA_FieldIsMultiListBox(this)) {
         CXFA_Node* pValue = GetProperty(0, XFA_ELEMENT_Value);
         CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild);
@@ -4166,7 +4159,7 @@
       pBindNode = nullptr;
       break;
     }
-    case XFA_OBJECTTYPE_ContentNode: {
+    case XFA_ObjectType::ContentNode: {
       CFX_WideString wsContentType;
       if (GetClassID() == XFA_ELEMENT_ExData) {
         GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE);
@@ -4185,11 +4178,11 @@
       return pContentRawDataNode->SetScriptContent(
           wsContent, wsXMLValue, bNotify, bScriptModify, bSyncData);
     } break;
-    case XFA_OBJECTTYPE_NodeC:
-    case XFA_OBJECTTYPE_TextNode:
+    case XFA_ObjectType::NodeC:
+    case XFA_ObjectType::TextNode:
       pNode = this;
       break;
-    case XFA_OBJECTTYPE_NodeV:
+    case XFA_ObjectType::NodeV:
       pNode = this;
       if (bSyncData && GetPacketID() == XFA_XDPPACKET_Form) {
         CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent);
@@ -4249,7 +4242,7 @@
                               FX_BOOL bProto) {
   CXFA_Node* pNode = nullptr;
   switch (GetObjectType()) {
-    case XFA_OBJECTTYPE_ContainerNode:
+    case XFA_ObjectType::ContainerNode:
       if (GetClassID() == XFA_ELEMENT_ExclGroup) {
         pNode = this;
       } else {
@@ -4267,7 +4260,7 @@
                    : FALSE;
       }
       break;
-    case XFA_OBJECTTYPE_ContentNode: {
+    case XFA_ObjectType::ContentNode: {
       CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild);
       if (!pContentRawDataNode) {
         XFA_ELEMENT element = XFA_ELEMENT_Sharptext;
@@ -4285,9 +4278,9 @@
       }
       return pContentRawDataNode->TryContent(wsContent, bScriptModify, bProto);
     }
-    case XFA_OBJECTTYPE_NodeC:
-    case XFA_OBJECTTYPE_NodeV:
-    case XFA_OBJECTTYPE_TextNode:
+    case XFA_ObjectType::NodeC:
+    case XFA_ObjectType::NodeV:
+    case XFA_ObjectType::TextNode:
       pNode = this;
     default:
       if (GetClassID() == XFA_ELEMENT_DataValue) {
@@ -4332,8 +4325,7 @@
 }
 FX_BOOL CXFA_Node::TryNamespace(CFX_WideString& wsNamespace) {
   wsNamespace.clear();
-  if (GetObjectType() == XFA_OBJECTTYPE_ModelNode ||
-      GetClassID() == XFA_ELEMENT_Packet) {
+  if (IsModelNode() || GetClassID() == XFA_ELEMENT_Packet) {
     CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
     if (!pXMLNode || pXMLNode->GetType() != FDE_XMLNODE_Element) {
       return FALSE;
@@ -4401,7 +4393,7 @@
     if (!pNewNode)
       return nullptr;
     InsertChild(pNewNode, nullptr);
-    pNewNode->SetFlag(XFA_NODEFLAG_Initialized, true);
+    pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
   }
   return pNewNode;
 }
@@ -4479,7 +4471,7 @@
   }
   ASSERT(m_pLastChild);
   ASSERT(!m_pLastChild->m_pNext);
-  pNode->ClearFlag(XFA_NODEFLAG_HasRemoved);
+  pNode->ClearFlag(XFA_NodeFlag_HasRemovedChildren);
   CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
   if (pNotify)
     pNotify->OnChildAdded(this);
@@ -4487,7 +4479,7 @@
   if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) {
     ASSERT(!pNode->m_pXMLNode->GetNodeItem(CFDE_XMLNode::Parent));
     m_pXMLNode->InsertChildNode(pNode->m_pXMLNode, index);
-    pNode->ClearFlag(XFA_NODEFLAG_OwnXMLNode);
+    pNode->ClearFlag(XFA_NodeFlag_OwnXMLNode);
   }
   return index;
 }
@@ -4526,7 +4518,7 @@
   }
   ASSERT(m_pLastChild);
   ASSERT(!m_pLastChild->m_pNext);
-  pNode->ClearFlag(XFA_NODEFLAG_HasRemoved);
+  pNode->ClearFlag(XFA_NodeFlag_HasRemovedChildren);
   CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
   if (pNotify)
     pNotify->OnChildAdded(this);
@@ -4534,7 +4526,7 @@
   if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) {
     ASSERT(!pNode->m_pXMLNode->GetNodeItem(CFDE_XMLNode::Parent));
     m_pXMLNode->InsertChildNode(pNode->m_pXMLNode, nIndex);
-    pNode->ClearFlag(XFA_NODEFLAG_OwnXMLNode);
+    pNode->ClearFlag(XFA_NodeFlag_OwnXMLNode);
   }
   return TRUE;
 }
@@ -4573,7 +4565,7 @@
   }
   ASSERT(!m_pLastChild || !m_pLastChild->m_pNext);
   OnRemoved(bNotify);
-  pNode->SetFlag(XFA_NODEFLAG_HasRemoved, true);
+  pNode->SetFlag(XFA_NodeFlag_HasRemovedChildren, true);
   m_pDocument->AddPurgeNode(pNode);
   if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) {
     if (pNode->IsAttributeInXML()) {
@@ -4598,7 +4590,7 @@
     } else {
       m_pXMLNode->RemoveChildNode(pNode->m_pXMLNode);
     }
-    pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
+    pNode->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
   }
   return TRUE;
 }
@@ -4696,32 +4688,26 @@
 CXFA_Node* CXFA_Node::GetOccurNode() {
   return GetFirstChildByClass(XFA_ELEMENT_Occur);
 }
-FX_BOOL CXFA_Node::HasFlag(uint32_t dwFlag) const {
-  if (m_uFlags & dwFlag) {
-    return TRUE;
-  }
-  switch (dwFlag) {
-    case XFA_NODEFLAG_HasRemoved:
-      return m_pParent && m_pParent->HasFlag(dwFlag);
-    default:
-      break;
-  }
-  return FALSE;
+bool CXFA_Node::HasFlag(XFA_NodeFlag dwFlag) const {
+  if (m_uNodeFlags & dwFlag)
+    return true;
+  if (dwFlag == XFA_NodeFlag_HasRemovedChildren)
+    return m_pParent && m_pParent->HasFlag(dwFlag);
+  return false;
 }
 
 void CXFA_Node::SetFlag(uint32_t dwFlag, bool bNotify) {
-  if (dwFlag == XFA_NODEFLAG_Initialized && bNotify &&
-      !HasFlag(XFA_NODEFLAG_Initialized)) {
+  if (dwFlag == XFA_NodeFlag_Initialized && bNotify && !IsInitialized()) {
     CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
     if (pNotify) {
       pNotify->OnNodeReady(this);
     }
   }
-  m_uFlags |= dwFlag;
+  m_uNodeFlags |= dwFlag;
 }
 
 void CXFA_Node::ClearFlag(uint32_t dwFlag) {
-  m_uFlags &= ~dwFlag;
+  m_uNodeFlags &= ~dwFlag;
 }
 
 FX_BOOL CXFA_Node::IsAttributeInXML() {
@@ -4738,7 +4724,7 @@
 }
 
 void CXFA_Node::OnChanging(XFA_ATTRIBUTE eAttr, bool bNotify) {
-  if (bNotify && HasFlag(XFA_NODEFLAG_Initialized)) {
+  if (bNotify && IsInitialized()) {
     CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
     if (pNotify) {
       pNotify->OnValueChanging(this, eAttr);
@@ -4749,7 +4735,7 @@
 void CXFA_Node::OnChanged(XFA_ATTRIBUTE eAttr,
                           bool bNotify,
                           FX_BOOL bScriptModify) {
-  if (bNotify && HasFlag(XFA_NODEFLAG_Initialized)) {
+  if (bNotify && IsInitialized()) {
     Script_Attribute_SendAttributeChangeMessage(eAttr, bScriptModify);
   }
 }
@@ -4830,7 +4816,7 @@
   if (!m_pXMLNode) {
     CFX_WideString wsTag(GetCData(XFA_ATTRIBUTE_Name));
     m_pXMLNode = new CFDE_XMLElement(wsTag);
-    SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
+    SetFlag(XFA_NodeFlag_OwnXMLNode, false);
   }
   return m_pXMLNode;
 }
@@ -5062,7 +5048,7 @@
                                         (XFA_MAPDATABLOCK*)pBufferBlockData);
     }
   }
-  if (pDstModule->GetObjectType() == XFA_OBJECTTYPE_NodeV) {
+  if (pDstModule->IsNodeV()) {
     CFX_WideString wsValue = pDstModule->GetScriptContent(FALSE);
     CFX_WideString wsFormatValue(wsValue);
     CXFA_WidgetData* pWidgetData = pDstModule->GetContainerWidgetData();
@@ -5093,7 +5079,7 @@
 
 CXFA_OrdinaryObject::CXFA_OrdinaryObject(CXFA_Document* pDocument,
                                          XFA_ELEMENT eElement)
-    : CXFA_Object(pDocument, XFA_OBJECTTYPE_OrdinaryObject), m_uScriptHash(0) {
+    : CXFA_Object(pDocument, XFA_ObjectType::OrdinaryObject), m_uScriptHash(0) {
   m_eNodeClass = eElement;
 }
 
@@ -5108,7 +5094,7 @@
 }
 
 CXFA_ThisProxy::CXFA_ThisProxy(CXFA_Node* pThisNode, CXFA_Node* pScriptNode)
-    : CXFA_Object(pThisNode->GetDocument(), XFA_OBJECTTYPE_VariablesThis),
+    : CXFA_Object(pThisNode->GetDocument(), XFA_ObjectType::VariablesThis),
       m_pThisNode(NULL),
       m_pScriptNode(NULL) {
   m_pThisNode = pThisNode;
@@ -5126,7 +5112,7 @@
 }
 
 CXFA_NodeList::CXFA_NodeList(CXFA_Document* pDocument)
-    : CXFA_Object(pDocument, XFA_OBJECTTYPE_NodeList) {
+    : CXFA_Object(pDocument, XFA_ObjectType::NodeList) {
   m_pDocument->GetScriptContext()->AddToCacheList(
       std::unique_ptr<CXFA_NodeList>(this));
 }
diff --git a/xfa/fxfa/parser/xfa_parser_imp.cpp b/xfa/fxfa/parser/xfa_parser_imp.cpp
index 9cc324a..8d6d7b7 100644
--- a/xfa/fxfa/parser/xfa_parser_imp.cpp
+++ b/xfa/fxfa/parser/xfa_parser_imp.cpp
@@ -178,7 +178,7 @@
 
           pXFANode->InsertChild(pXFAChild);
           pXFAChild->SetXMLMappingNode(pXMLChild);
-          pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+          pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
           break;
         }
       }
@@ -186,7 +186,7 @@
     } else {
       m_pRootNode = DataLoader(pXFANode, pXMLNode, TRUE);
     }
-  } else if (pXFANode->GetObjectType() == XFA_OBJECTTYPE_ContentNode) {
+  } else if (pXFANode->IsContentNode()) {
     ParseContentNode(pXFANode, pXMLNode, ePacketID);
     m_pRootNode = pXFANode;
   } else {
@@ -705,7 +705,7 @@
     }
     pNode->SetXMLMappingNode(pDataXMLNode);
     if (pDataXMLNode != pXMLDocumentNode) {
-      pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
+      pNode->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
     }
     return pNode;
   }
@@ -891,10 +891,10 @@
           break;
         }
         switch (pXFAChild->GetObjectType()) {
-          case XFA_OBJECTTYPE_ContentNode:
-          case XFA_OBJECTTYPE_TextNode:
-          case XFA_OBJECTTYPE_NodeC:
-          case XFA_OBJECTTYPE_NodeV:
+          case XFA_ObjectType::ContentNode:
+          case XFA_ObjectType::TextNode:
+          case XFA_ObjectType::NodeC:
+          case XFA_ObjectType::NodeV:
             if (IsNeedValue) {
               ParseContentNode(pXFAChild, pXMLElement, ePacketID);
             }
@@ -1023,7 +1023,7 @@
     break;
   }
   if (!wsValue.IsEmpty()) {
-    if (pXFANode->GetObjectType() == XFA_OBJECTTYPE_ContentNode) {
+    if (pXFANode->IsContentNode()) {
       CXFA_Node* pContentRawDataNode =
           m_pFactory->CreateNode(ePacketID, element);
       ASSERT(pContentRawDataNode);
@@ -1156,7 +1156,7 @@
                                   XFA_ATTRIBUTEENUM_MetaData);
             pXFAChild->InsertChild(pXFAMetaData);
             pXFAMetaData->SetXMLMappingNode(pXMLElement);
-            pXFAMetaData->SetFlag(XFA_NODEFLAG_Initialized, false);
+            pXFAMetaData->SetFlag(XFA_NodeFlag_Initialized, false);
           }
           if (!bNeedValue) {
             CFX_WideString wsNilName(L"xsi:nil");
@@ -1172,7 +1172,7 @@
           }
         }
         pXFAChild->SetXMLMappingNode(pXMLElement);
-        pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
       }
         continue;
       case FDE_XMLNODE_CharData: {
@@ -1191,7 +1191,7 @@
         pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsCharData);
         pXFANode->InsertChild(pXFAChild);
         pXFAChild->SetXMLMappingNode(pXMLCharData);
-        pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
       }
         continue;
       case FDE_XMLNODE_Text: {
@@ -1209,7 +1209,7 @@
         pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsText);
         pXFANode->InsertChild(pXFAChild);
         pXFAChild->SetXMLMappingNode(pXMLText);
-        pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
       }
         continue;
       case FDE_XMLNODE_Instruction:
@@ -1270,7 +1270,7 @@
           pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsCurValue);
           pXFANode->InsertChild(pXFAChild);
           pXFAChild->SetXMLMappingNode(pXMLCurValueNode);
-          pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+          pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
           wsValueTextBuf << wsCurValue;
           wsCurValueTextBuf.Clear();
         }
@@ -1287,7 +1287,7 @@
       ParseDataValue(pXFAChild, pXMLChild, ePacketID);
       pXFANode->InsertChild(pXFAChild);
       pXFAChild->SetXMLMappingNode(pXMLChild);
-      pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+      pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
       CFX_WideStringC wsCurValue = pXFAChild->GetCData(XFA_ATTRIBUTE_Value);
       wsValueTextBuf << wsCurValue;
     }
@@ -1305,7 +1305,7 @@
         pXFAChild->SetCData(XFA_ATTRIBUTE_Value, wsCurValue);
         pXFANode->InsertChild(pXFAChild);
         pXFAChild->SetXMLMappingNode(pXMLCurValueNode);
-        pXFAChild->SetFlag(XFA_NODEFLAG_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
       }
       wsValueTextBuf << wsCurValue;
       wsCurValueTextBuf.Clear();
diff --git a/xfa/fxfa/parser/xfa_script_imp.cpp b/xfa/fxfa/parser/xfa_script_imp.cpp
index 7a97899..e9b7020 100644
--- a/xfa/fxfa/parser/xfa_script_imp.cpp
+++ b/xfa/fxfa/parser/xfa_script_imp.cpp
@@ -156,14 +156,13 @@
                     XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
                     XFA_RESOLVENODE_Attributes;
   CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
-  if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) {
+  if (lpOrginalNode->IsVariablesThis())
     pRefNode = ToNode(lpCurNode);
-  }
   if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName.AsStringC(), pValue,
                                        dwFlag, TRUE)) {
     return;
   }
-  if (lpOrginalNode->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) {
+  if (lpOrginalNode->IsVariablesThis()) {
     if (pValue && pValue->IsUndefined()) {
       pObject->SetObjectOwnProperty(szPropName, pValue);
       return;
@@ -226,7 +225,7 @@
   uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
                     XFA_RESOLVENODE_Attributes;
   CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
-  if (pOriginalObject->GetObjectType() == XFA_OBJECTTYPE_VariablesThis) {
+  if (pOriginalObject->IsVariablesThis()) {
     pRefNode = ToNode(lpCurNode);
   }
   if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName.AsStringC(), pValue,
@@ -433,7 +432,7 @@
 }
 CXFA_Object* CXFA_ScriptContext::GetVariablesThis(CXFA_Object* pObject,
                                                   FX_BOOL bScriptNode) {
-  if (pObject->GetObjectType() != XFA_OBJECTTYPE_VariablesThis)
+  if (!pObject->IsVariablesThis())
     return pObject;
 
   CXFA_ThisProxy* pProxy = static_cast<CXFA_ThisProxy*>(pObject);