diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index 7e66e4e..fc425c5 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -360,7 +360,7 @@
 void CXFA_FFNotify::OnValueChanging(CXFA_Node* pSender, XFA_Attribute eAttr) {
   if (eAttr != XFA_Attribute::Presence)
     return;
-  if (pSender->GetPacketID() & XFA_XDPPACKET_Datasets)
+  if (pSender->GetPacketType() == XFA_PacketType::Datasets)
     return;
   if (!pSender->IsFormContainer())
     return;
@@ -390,7 +390,7 @@
   if (!pDocView)
     return;
 
-  if (!(pSender->GetPacketID() & XFA_XDPPACKET_Form)) {
+  if (pSender->GetPacketType() != XFA_PacketType::Form) {
     if (eAttr == XFA_Attribute::Value)
       pDocView->AddCalculateNodeNotify(pSender);
     return;
diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp
index 89fed79..6e142d3 100644
--- a/xfa/fxfa/cxfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp
@@ -503,7 +503,7 @@
                                                     CXFA_Node* pBefore) const {
   CXFA_Document* pXFADoc = GetXFADoc();
   CXFA_Node* pNewTemplateNode =
-      pXFADoc->CreateNode(XFA_XDPPACKET_Template, eElement);
+      pXFADoc->CreateNode(XFA_PacketType::Template, eElement);
   if (pParent)
     pParent->InsertChild(pNewTemplateNode, pBefore);
   return pNewTemplateNode;
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index 1f79608..f4d3383 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -86,9 +86,7 @@
   XFA_XDPPACKET_Stylesheet =
       1 << static_cast<uint8_t>(XFA_PacketType::Stylesheet),
   XFA_XDPPACKET_USER = 1 << static_cast<uint8_t>(XFA_PacketType::User),
-  XFA_XDPPACKET_XDP = 1 << static_cast<uint8_t>(XFA_PacketType::Xdp),
-
-  XFA_XDPPACKET_LAST = XFA_XDPPACKET_ConnectionSet + 1
+  XFA_XDPPACKET_XDP = 1 << static_cast<uint8_t>(XFA_PacketType::Xdp)
 };
 
 enum XFA_XDPPACKET_FLAGS {
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
index f603d20..0a24615 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_AccessibleContent::CXFA_AccessibleContent(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.h b/xfa/fxfa/parser/cxfa_accessiblecontent.h
index 75e7f38..84ad8fc 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.h
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.h
@@ -11,7 +11,7 @@
 
 class CXFA_AccessibleContent : public CXFA_Node {
  public:
-  CXFA_AccessibleContent(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AccessibleContent(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AccessibleContent() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_acrobat.cpp b/xfa/fxfa/parser/cxfa_acrobat.cpp
index 88f3928..2327c08 100644
--- a/xfa/fxfa/parser/cxfa_acrobat.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Acrobat::CXFA_Acrobat(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Acrobat::CXFA_Acrobat(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_acrobat.h b/xfa/fxfa/parser/cxfa_acrobat.h
index a7f85eb..3701d59 100644
--- a/xfa/fxfa/parser/cxfa_acrobat.h
+++ b/xfa/fxfa/parser/cxfa_acrobat.h
@@ -11,7 +11,7 @@
 
 class CXFA_Acrobat : public CXFA_Node {
  public:
-  CXFA_Acrobat(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Acrobat(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Acrobat() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.cpp b/xfa/fxfa/parser/cxfa_acrobat7.cpp
index 860cf1d..089ab60 100644
--- a/xfa/fxfa/parser/cxfa_acrobat7.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat7.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Acrobat7::CXFA_Acrobat7(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Acrobat7::CXFA_Acrobat7(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.h b/xfa/fxfa/parser/cxfa_acrobat7.h
index e9ef61b..579864a 100644
--- a/xfa/fxfa/parser/cxfa_acrobat7.h
+++ b/xfa/fxfa/parser/cxfa_acrobat7.h
@@ -11,7 +11,7 @@
 
 class CXFA_Acrobat7 : public CXFA_Node {
  public:
-  CXFA_Acrobat7(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Acrobat7(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Acrobat7() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
index 1ecca4e9..af33636 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_aDBE_JSConsole::CXFA_aDBE_JSConsole(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.h b/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
index 40369f4..9fab6a1 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
@@ -11,7 +11,7 @@
 
 class CXFA_aDBE_JSConsole : public CXFA_Node {
  public:
-  CXFA_aDBE_JSConsole(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_aDBE_JSConsole(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_aDBE_JSConsole() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
index eefcdb0..bcb62eb 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_aDBE_JSDebugger::CXFA_aDBE_JSDebugger(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
index 0c2f122..ed821d4 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
@@ -11,7 +11,7 @@
 
 class CXFA_aDBE_JSDebugger : public CXFA_Node {
  public:
-  CXFA_aDBE_JSDebugger(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_aDBE_JSDebugger(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_aDBE_JSDebugger() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
index 4dc1acf..13f7f83 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_AddSilentPrint::CXFA_AddSilentPrint(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.h b/xfa/fxfa/parser/cxfa_addsilentprint.h
index 844a0c1..a251969 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.h
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.h
@@ -11,7 +11,7 @@
 
 class CXFA_AddSilentPrint : public CXFA_Node {
  public:
-  CXFA_AddSilentPrint(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AddSilentPrint(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AddSilentPrint() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
index 6cfa024..3e3d060 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_AddViewerPreferences::CXFA_AddViewerPreferences(CXFA_Document* doc,
-                                                     XFA_XDPPACKET packet)
+                                                     XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.h b/xfa/fxfa/parser/cxfa_addviewerpreferences.h
index 92d3f81..cf10868 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.h
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.h
@@ -11,7 +11,7 @@
 
 class CXFA_AddViewerPreferences : public CXFA_Node {
  public:
-  CXFA_AddViewerPreferences(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AddViewerPreferences(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AddViewerPreferences() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp
index cf58242..60a4f2c 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.cpp
+++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_AdjustData::CXFA_AdjustData(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_AdjustData::CXFA_AdjustData(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.h b/xfa/fxfa/parser/cxfa_adjustdata.h
index 59aced8..3c004c2 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.h
+++ b/xfa/fxfa/parser/cxfa_adjustdata.h
@@ -11,7 +11,7 @@
 
 class CXFA_AdjustData : public CXFA_Node {
  public:
-  CXFA_AdjustData(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AdjustData(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AdjustData() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
index d03728c..d253f8b 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_AdobeExtensionLevel::CXFA_AdobeExtensionLevel(CXFA_Document* doc,
-                                                   XFA_XDPPACKET packet)
+                                                   XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.h b/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
index 0fe4184..91a830f 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
@@ -11,7 +11,7 @@
 
 class CXFA_AdobeExtensionLevel : public CXFA_Node {
  public:
-  CXFA_AdobeExtensionLevel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AdobeExtensionLevel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AdobeExtensionLevel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp
index 3dcd75e..468b938 100644
--- a/xfa/fxfa/parser/cxfa_agent.cpp
+++ b/xfa/fxfa/parser/cxfa_agent.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_Agent::CXFA_Agent(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Agent::CXFA_Agent(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_agent.h b/xfa/fxfa/parser/cxfa_agent.h
index a7b244b..65d826d 100644
--- a/xfa/fxfa/parser/cxfa_agent.h
+++ b/xfa/fxfa/parser/cxfa_agent.h
@@ -11,7 +11,7 @@
 
 class CXFA_Agent : public CXFA_Node {
  public:
-  CXFA_Agent(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Agent(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Agent() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
index 0138a9b..13f9717 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.cpp
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_AlwaysEmbed::CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_AlwaysEmbed::CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.h b/xfa/fxfa/parser/cxfa_alwaysembed.h
index 865f2a0..1780976 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.h
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.h
@@ -11,7 +11,7 @@
 
 class CXFA_AlwaysEmbed : public CXFA_Node {
  public:
-  CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AlwaysEmbed() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp
index b174c1a..7580304 100644
--- a/xfa/fxfa/parser/cxfa_amd.cpp
+++ b/xfa/fxfa/parser/cxfa_amd.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Amd::CXFA_Amd(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Amd::CXFA_Amd(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_amd.h b/xfa/fxfa/parser/cxfa_amd.h
index bf5ece8..951c6ca 100644
--- a/xfa/fxfa/parser/cxfa_amd.h
+++ b/xfa/fxfa/parser/cxfa_amd.h
@@ -11,7 +11,7 @@
 
 class CXFA_Amd : public CXFA_Node {
  public:
-  CXFA_Amd(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Amd(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Amd() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
index eb8b449..eca2a92 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.cpp
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
@@ -21,7 +21,7 @@
 }  // namespace
 
 CXFA_AppearanceFilter::CXFA_AppearanceFilter(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.h b/xfa/fxfa/parser/cxfa_appearancefilter.h
index e495809..341232e 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.h
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.h
@@ -11,7 +11,7 @@
 
 class CXFA_AppearanceFilter : public CXFA_Node {
  public:
-  CXFA_AppearanceFilter(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AppearanceFilter(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AppearanceFilter() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp
index 3465420..2af650e 100644
--- a/xfa/fxfa/parser/cxfa_arc.cpp
+++ b/xfa/fxfa/parser/cxfa_arc.cpp
@@ -26,7 +26,7 @@
 
 }  // namespace
 
-CXFA_Arc::CXFA_Arc(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Arc::CXFA_Arc(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_arc.h b/xfa/fxfa/parser/cxfa_arc.h
index 6127784..6e838f8 100644
--- a/xfa/fxfa/parser/cxfa_arc.h
+++ b/xfa/fxfa/parser/cxfa_arc.h
@@ -11,7 +11,7 @@
 
 class CXFA_Arc : public CXFA_Node {
  public:
-  CXFA_Arc(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Arc(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Arc() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp
index d3007fb..c242e31 100644
--- a/xfa/fxfa/parser/cxfa_area.cpp
+++ b/xfa/fxfa/parser/cxfa_area.cpp
@@ -28,7 +28,7 @@
 
 }  // namespace
 
-CXFA_Area::CXFA_Area(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Area::CXFA_Area(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_area.h b/xfa/fxfa/parser/cxfa_area.h
index c187580..6568e73 100644
--- a/xfa/fxfa/parser/cxfa_area.h
+++ b/xfa/fxfa/parser/cxfa_area.h
@@ -11,7 +11,7 @@
 
 class CXFA_Area : public CXFA_Node {
  public:
-  CXFA_Area(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Area(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Area() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp
index fbf42c2..93f3358 100644
--- a/xfa/fxfa/parser/cxfa_assist.cpp
+++ b/xfa/fxfa/parser/cxfa_assist.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Assist::CXFA_Assist(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Assist::CXFA_Assist(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_assist.h b/xfa/fxfa/parser/cxfa_assist.h
index 642a501..d0e9020 100644
--- a/xfa/fxfa/parser/cxfa_assist.h
+++ b/xfa/fxfa/parser/cxfa_assist.h
@@ -11,7 +11,7 @@
 
 class CXFA_Assist : public CXFA_Node {
  public:
-  CXFA_Assist(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Assist(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Assist() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp
index e9406ef..80e58bd 100644
--- a/xfa/fxfa/parser/cxfa_attributes.cpp
+++ b/xfa/fxfa/parser/cxfa_attributes.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Attributes::CXFA_Attributes(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Attributes::CXFA_Attributes(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_attributes.h b/xfa/fxfa/parser/cxfa_attributes.h
index 8441d75..fd73da8 100644
--- a/xfa/fxfa/parser/cxfa_attributes.h
+++ b/xfa/fxfa/parser/cxfa_attributes.h
@@ -11,7 +11,7 @@
 
 class CXFA_Attributes : public CXFA_Node {
  public:
-  CXFA_Attributes(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Attributes(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Attributes() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp
index 1ab6eb9..d77c252 100644
--- a/xfa/fxfa/parser/cxfa_autosave.cpp
+++ b/xfa/fxfa/parser/cxfa_autosave.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_AutoSave::CXFA_AutoSave(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_AutoSave::CXFA_AutoSave(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_autosave.h b/xfa/fxfa/parser/cxfa_autosave.h
index 208917f..b58ccf1 100644
--- a/xfa/fxfa/parser/cxfa_autosave.h
+++ b/xfa/fxfa/parser/cxfa_autosave.h
@@ -11,7 +11,7 @@
 
 class CXFA_AutoSave : public CXFA_Node {
  public:
-  CXFA_AutoSave(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_AutoSave(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_AutoSave() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
index f81e6ca..357270c 100644
--- a/xfa/fxfa/parser/cxfa_barcode.cpp
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -40,7 +40,7 @@
 
 }  // namespace
 
-CXFA_Barcode::CXFA_Barcode(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Barcode::CXFA_Barcode(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_barcode.h b/xfa/fxfa/parser/cxfa_barcode.h
index 78a27f3..469889b 100644
--- a/xfa/fxfa/parser/cxfa_barcode.h
+++ b/xfa/fxfa/parser/cxfa_barcode.h
@@ -11,7 +11,7 @@
 
 class CXFA_Barcode : public CXFA_Node {
  public:
-  CXFA_Barcode(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Barcode(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Barcode() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp
index 106049b..a82a79a 100644
--- a/xfa/fxfa/parser/cxfa_base.cpp
+++ b/xfa/fxfa/parser/cxfa_base.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Base::CXFA_Base(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Base::CXFA_Base(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_base.h b/xfa/fxfa/parser/cxfa_base.h
index e92bd79..3974343 100644
--- a/xfa/fxfa/parser/cxfa_base.h
+++ b/xfa/fxfa/parser/cxfa_base.h
@@ -11,7 +11,7 @@
 
 class CXFA_Base : public CXFA_Node {
  public:
-  CXFA_Base(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Base(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Base() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp
index e11a6d7..64c2cce 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.cpp
+++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_BatchOutput::CXFA_BatchOutput(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_BatchOutput::CXFA_BatchOutput(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.h b/xfa/fxfa/parser/cxfa_batchoutput.h
index f06332a..9faa6cf 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.h
+++ b/xfa/fxfa/parser/cxfa_batchoutput.h
@@ -11,7 +11,7 @@
 
 class CXFA_BatchOutput : public CXFA_Node {
  public:
-  CXFA_BatchOutput(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_BatchOutput(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_BatchOutput() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
index 6ae3a3d..addf8f1 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.cpp
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_BehaviorOverride::CXFA_BehaviorOverride(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.h b/xfa/fxfa/parser/cxfa_behavioroverride.h
index fa9f54a..cb082112 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.h
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.h
@@ -11,7 +11,7 @@
 
 class CXFA_BehaviorOverride : public CXFA_Node {
  public:
-  CXFA_BehaviorOverride(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_BehaviorOverride(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_BehaviorOverride() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp
index d188010..e3f61da 100644
--- a/xfa/fxfa/parser/cxfa_bind.cpp
+++ b/xfa/fxfa/parser/cxfa_bind.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_Bind::CXFA_Bind(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Bind::CXFA_Bind(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
diff --git a/xfa/fxfa/parser/cxfa_bind.h b/xfa/fxfa/parser/cxfa_bind.h
index 961adc7..9c457bb 100644
--- a/xfa/fxfa/parser/cxfa_bind.h
+++ b/xfa/fxfa/parser/cxfa_bind.h
@@ -11,7 +11,7 @@
 
 class CXFA_Bind : public CXFA_Node {
  public:
-  CXFA_Bind(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Bind(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Bind() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index f7e7eac..fd27043 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_BindItems::CXFA_BindItems(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_BindItems::CXFA_BindItems(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_binditems.h b/xfa/fxfa/parser/cxfa_binditems.h
index 4c31be1..f226342 100644
--- a/xfa/fxfa/parser/cxfa_binditems.h
+++ b/xfa/fxfa/parser/cxfa_binditems.h
@@ -11,7 +11,7 @@
 
 class CXFA_BindItems : public CXFA_Node {
  public:
-  CXFA_BindItems(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_BindItems(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_BindItems() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
index a057595..20037f0 100644
--- a/xfa/fxfa/parser/cxfa_bookend.cpp
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Bookend::CXFA_Bookend(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Bookend::CXFA_Bookend(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_bookend.h b/xfa/fxfa/parser/cxfa_bookend.h
index 51308e0..82eb13c 100644
--- a/xfa/fxfa/parser/cxfa_bookend.h
+++ b/xfa/fxfa/parser/cxfa_bookend.h
@@ -11,7 +11,7 @@
 
 class CXFA_Bookend : public CXFA_Node {
  public:
-  CXFA_Bookend(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Bookend(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Bookend() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index 0d49c98..74fe2be 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Boolean::CXFA_Boolean(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Boolean::CXFA_Boolean(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
diff --git a/xfa/fxfa/parser/cxfa_boolean.h b/xfa/fxfa/parser/cxfa_boolean.h
index a43d870..4121e36 100644
--- a/xfa/fxfa/parser/cxfa_boolean.h
+++ b/xfa/fxfa/parser/cxfa_boolean.h
@@ -11,7 +11,7 @@
 
 class CXFA_Boolean : public CXFA_Node {
  public:
-  CXFA_Boolean(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Boolean(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Boolean() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp
index d2a2afa..fe58a93 100644
--- a/xfa/fxfa/parser/cxfa_border.cpp
+++ b/xfa/fxfa/parser/cxfa_border.cpp
@@ -29,7 +29,7 @@
 
 }  // namespace
 
-CXFA_Border::CXFA_Border(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Border::CXFA_Border(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_border.h b/xfa/fxfa/parser/cxfa_border.h
index 050dd16..041999b 100644
--- a/xfa/fxfa/parser/cxfa_border.h
+++ b/xfa/fxfa/parser/cxfa_border.h
@@ -11,7 +11,7 @@
 
 class CXFA_Border : public CXFA_Node {
  public:
-  CXFA_Border(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Border(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Border() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp
index 7bbd3a8..7d820f9 100644
--- a/xfa/fxfa/parser/cxfa_break.cpp
+++ b/xfa/fxfa/parser/cxfa_break.cpp
@@ -32,7 +32,7 @@
 
 }  // namespace
 
-CXFA_Break::CXFA_Break(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Break::CXFA_Break(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_break.h b/xfa/fxfa/parser/cxfa_break.h
index 25aa8c1..c0d937c 100644
--- a/xfa/fxfa/parser/cxfa_break.h
+++ b/xfa/fxfa/parser/cxfa_break.h
@@ -11,7 +11,7 @@
 
 class CXFA_Break : public CXFA_Node {
  public:
-  CXFA_Break(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Break(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Break() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp
index 46d244c..e80a572 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.cpp
+++ b/xfa/fxfa/parser/cxfa_breakafter.cpp
@@ -26,7 +26,7 @@
 
 }  // namespace
 
-CXFA_BreakAfter::CXFA_BreakAfter(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_BreakAfter::CXFA_BreakAfter(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_breakafter.h b/xfa/fxfa/parser/cxfa_breakafter.h
index 242bf9f..952b0c9 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.h
+++ b/xfa/fxfa/parser/cxfa_breakafter.h
@@ -11,7 +11,7 @@
 
 class CXFA_BreakAfter : public CXFA_Node {
  public:
-  CXFA_BreakAfter(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_BreakAfter(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_BreakAfter() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp
index 5b712f7..94d9130 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.cpp
+++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp
@@ -26,7 +26,7 @@
 
 }  // namespace
 
-CXFA_BreakBefore::CXFA_BreakBefore(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_BreakBefore::CXFA_BreakBefore(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.h b/xfa/fxfa/parser/cxfa_breakbefore.h
index 76078f0..358e477 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.h
+++ b/xfa/fxfa/parser/cxfa_breakbefore.h
@@ -11,7 +11,7 @@
 
 class CXFA_BreakBefore : public CXFA_Node {
  public:
-  CXFA_BreakBefore(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_BreakBefore(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_BreakBefore() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp
index 0191a94..245f00e 100644
--- a/xfa/fxfa/parser/cxfa_button.cpp
+++ b/xfa/fxfa/parser/cxfa_button.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Button::CXFA_Button(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Button::CXFA_Button(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_button.h b/xfa/fxfa/parser/cxfa_button.h
index dbf9102..86ffb52 100644
--- a/xfa/fxfa/parser/cxfa_button.h
+++ b/xfa/fxfa/parser/cxfa_button.h
@@ -11,7 +11,7 @@
 
 class CXFA_Button : public CXFA_Node {
  public:
-  CXFA_Button(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Button(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Button() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp
index 55cbaf9..74227a3 100644
--- a/xfa/fxfa/parser/cxfa_cache.cpp
+++ b/xfa/fxfa/parser/cxfa_cache.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Cache::CXFA_Cache(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Cache::CXFA_Cache(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_cache.h b/xfa/fxfa/parser/cxfa_cache.h
index 2e4ca12..e3907c6 100644
--- a/xfa/fxfa/parser/cxfa_cache.h
+++ b/xfa/fxfa/parser/cxfa_cache.h
@@ -11,7 +11,7 @@
 
 class CXFA_Cache : public CXFA_Node {
  public:
-  CXFA_Cache(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Cache(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Cache() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
index a4a1d04..44c060f 100644
--- a/xfa/fxfa/parser/cxfa_calculate.cpp
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Calculate::CXFA_Calculate(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Calculate::CXFA_Calculate(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_calculate.h b/xfa/fxfa/parser/cxfa_calculate.h
index 9853c23..01fe853 100644
--- a/xfa/fxfa/parser/cxfa_calculate.h
+++ b/xfa/fxfa/parser/cxfa_calculate.h
@@ -11,7 +11,7 @@
 
 class CXFA_Calculate : public CXFA_Node {
  public:
-  CXFA_Calculate(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Calculate(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Calculate() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
index 0fb8b62..810349f 100644
--- a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
@@ -24,7 +24,7 @@
 }  // namespace
 
 CXFA_CalendarSymbols::CXFA_CalendarSymbols(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.h b/xfa/fxfa/parser/cxfa_calendarsymbols.h
index c12bdb0..1b1f007 100644
--- a/xfa/fxfa/parser/cxfa_calendarsymbols.h
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.h
@@ -11,7 +11,7 @@
 
 class CXFA_CalendarSymbols : public CXFA_Node {
  public:
-  CXFA_CalendarSymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CalendarSymbols(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CalendarSymbols() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
index 7998cf3..cfd61c0 100644
--- a/xfa/fxfa/parser/cxfa_caption.cpp
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_Caption::CXFA_Caption(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Caption::CXFA_Caption(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_caption.h b/xfa/fxfa/parser/cxfa_caption.h
index 3b3b8b5..8d6ce13 100644
--- a/xfa/fxfa/parser/cxfa_caption.h
+++ b/xfa/fxfa/parser/cxfa_caption.h
@@ -11,7 +11,7 @@
 
 class CXFA_Caption : public CXFA_Node {
  public:
-  CXFA_Caption(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Caption(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Caption() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
index e7ccffc..d512bf3 100644
--- a/xfa/fxfa/parser/cxfa_certificate.cpp
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Certificate::CXFA_Certificate(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Certificate::CXFA_Certificate(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_certificate.h b/xfa/fxfa/parser/cxfa_certificate.h
index 7e0ffbe..48106da 100644
--- a/xfa/fxfa/parser/cxfa_certificate.h
+++ b/xfa/fxfa/parser/cxfa_certificate.h
@@ -11,7 +11,7 @@
 
 class CXFA_Certificate : public CXFA_Node {
  public:
-  CXFA_Certificate(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Certificate(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Certificate() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp
index 16a77ce..3ad4537 100644
--- a/xfa/fxfa/parser/cxfa_certificates.cpp
+++ b/xfa/fxfa/parser/cxfa_certificates.cpp
@@ -26,7 +26,7 @@
 
 }  // namespace
 
-CXFA_Certificates::CXFA_Certificates(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Certificates::CXFA_Certificates(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_certificates.h b/xfa/fxfa/parser/cxfa_certificates.h
index dc26239..a1bed73 100644
--- a/xfa/fxfa/parser/cxfa_certificates.h
+++ b/xfa/fxfa/parser/cxfa_certificates.h
@@ -11,7 +11,7 @@
 
 class CXFA_Certificates : public CXFA_Node {
  public:
-  CXFA_Certificates(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Certificates(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Certificates() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp
index c8bee05..520c556 100644
--- a/xfa/fxfa/parser/cxfa_change.cpp
+++ b/xfa/fxfa/parser/cxfa_change.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Change::CXFA_Change(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Change::CXFA_Change(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_change.h b/xfa/fxfa/parser/cxfa_change.h
index a332e85..f39b92e 100644
--- a/xfa/fxfa/parser/cxfa_change.h
+++ b/xfa/fxfa/parser/cxfa_change.h
@@ -11,7 +11,7 @@
 
 class CXFA_Change : public CXFA_Node {
  public:
-  CXFA_Change(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Change(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Change() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp
index 6260e45..b9d0689 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.cpp
+++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp
@@ -28,7 +28,7 @@
 
 }  // namespace
 
-CXFA_CheckButton::CXFA_CheckButton(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_CheckButton::CXFA_CheckButton(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.h b/xfa/fxfa/parser/cxfa_checkbutton.h
index d81de78..dbfb4bb 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.h
+++ b/xfa/fxfa/parser/cxfa_checkbutton.h
@@ -11,7 +11,7 @@
 
 class CXFA_CheckButton : public CXFA_Node {
  public:
-  CXFA_CheckButton(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CheckButton(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CheckButton() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp
index a8e88ea..89eb8fa 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.cpp
+++ b/xfa/fxfa/parser/cxfa_choicelist.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_ChoiceList::CXFA_ChoiceList(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ChoiceList::CXFA_ChoiceList(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_choicelist.h b/xfa/fxfa/parser/cxfa_choicelist.h
index 8d96070..9e94880 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.h
+++ b/xfa/fxfa/parser/cxfa_choicelist.h
@@ -11,7 +11,7 @@
 
 class CXFA_ChoiceList : public CXFA_Node {
  public:
-  CXFA_ChoiceList(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ChoiceList(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ChoiceList() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
index 5246218..9211af7 100644
--- a/xfa/fxfa/parser/cxfa_color.cpp
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Color::CXFA_Color(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Color::CXFA_Color(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_color.h b/xfa/fxfa/parser/cxfa_color.h
index 88b2e3b..590bcc6 100644
--- a/xfa/fxfa/parser/cxfa_color.h
+++ b/xfa/fxfa/parser/cxfa_color.h
@@ -11,7 +11,7 @@
 
 class CXFA_Color : public CXFA_Node {
  public:
-  CXFA_Color(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Color(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Color() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index de28a7a..af3567d 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Comb::CXFA_Comb(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Comb::CXFA_Comb(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_comb.h b/xfa/fxfa/parser/cxfa_comb.h
index f08bbdd0..1f2b538 100644
--- a/xfa/fxfa/parser/cxfa_comb.h
+++ b/xfa/fxfa/parser/cxfa_comb.h
@@ -11,7 +11,7 @@
 
 class CXFA_Comb : public CXFA_Node {
  public:
-  CXFA_Comb(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Comb(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Comb() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp
index 7f03ddd..3ed2316 100644
--- a/xfa/fxfa/parser/cxfa_command.cpp
+++ b/xfa/fxfa/parser/cxfa_command.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_Command::CXFA_Command(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Command::CXFA_Command(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_command.h b/xfa/fxfa/parser/cxfa_command.h
index a594267..88b74f3 100644
--- a/xfa/fxfa/parser/cxfa_command.h
+++ b/xfa/fxfa/parser/cxfa_command.h
@@ -11,7 +11,7 @@
 
 class CXFA_Command : public CXFA_Node {
  public:
-  CXFA_Command(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Command(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Command() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_common.cpp b/xfa/fxfa/parser/cxfa_common.cpp
index bf25b9d..e95f02f 100644
--- a/xfa/fxfa/parser/cxfa_common.cpp
+++ b/xfa/fxfa/parser/cxfa_common.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_Common::CXFA_Common(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Common::CXFA_Common(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_common.h b/xfa/fxfa/parser/cxfa_common.h
index 51c3398..d0ce0ea 100644
--- a/xfa/fxfa/parser/cxfa_common.h
+++ b/xfa/fxfa/parser/cxfa_common.h
@@ -11,7 +11,7 @@
 
 class CXFA_Common : public CXFA_Node {
  public:
-  CXFA_Common(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Common(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Common() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp
index 54eb10c..5658b20 100644
--- a/xfa/fxfa/parser/cxfa_compress.cpp
+++ b/xfa/fxfa/parser/cxfa_compress.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Compress::CXFA_Compress(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Compress::CXFA_Compress(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_compress.h b/xfa/fxfa/parser/cxfa_compress.h
index 6a0243f..bec1883 100644
--- a/xfa/fxfa/parser/cxfa_compress.h
+++ b/xfa/fxfa/parser/cxfa_compress.h
@@ -11,7 +11,7 @@
 
 class CXFA_Compress : public CXFA_Node {
  public:
-  CXFA_Compress(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Compress(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Compress() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_compression.cpp b/xfa/fxfa/parser/cxfa_compression.cpp
index 1efbc55..3d2bfde 100644
--- a/xfa/fxfa/parser/cxfa_compression.cpp
+++ b/xfa/fxfa/parser/cxfa_compression.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Compression::CXFA_Compression(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Compression::CXFA_Compression(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_compression.h b/xfa/fxfa/parser/cxfa_compression.h
index 03b6f07..f0e26cb 100644
--- a/xfa/fxfa/parser/cxfa_compression.h
+++ b/xfa/fxfa/parser/cxfa_compression.h
@@ -11,7 +11,7 @@
 
 class CXFA_Compression : public CXFA_Node {
  public:
-  CXFA_Compression(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Compression(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Compression() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
index e2798ff..a9c2baf 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
@@ -19,7 +19,7 @@
 
 CXFA_CompressLogicalStructure::CXFA_CompressLogicalStructure(
     CXFA_Document* doc,
-    XFA_XDPPACKET packet)
+    XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.h b/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
index 01f9df7..a8b5068 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
@@ -11,7 +11,7 @@
 
 class CXFA_CompressLogicalStructure : public CXFA_Node {
  public:
-  CXFA_CompressLogicalStructure(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CompressLogicalStructure(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CompressLogicalStructure() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
index e42b7a7..49eaed0 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_CompressObjectStream::CXFA_CompressObjectStream(CXFA_Document* doc,
-                                                     XFA_XDPPACKET packet)
+                                                     XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.h b/xfa/fxfa/parser/cxfa_compressobjectstream.h
index 2a72521..94e02ce 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.h
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.h
@@ -11,7 +11,7 @@
 
 class CXFA_CompressObjectStream : public CXFA_Node {
  public:
-  CXFA_CompressObjectStream(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CompressObjectStream(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CompressObjectStream() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_config.cpp b/xfa/fxfa/parser/cxfa_config.cpp
index 104b907..79232a2 100644
--- a/xfa/fxfa/parser/cxfa_config.cpp
+++ b/xfa/fxfa/parser/cxfa_config.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Config::CXFA_Config(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Config::CXFA_Config(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_config.h b/xfa/fxfa/parser/cxfa_config.h
index e995380..2ddb692 100644
--- a/xfa/fxfa/parser/cxfa_config.h
+++ b/xfa/fxfa/parser/cxfa_config.h
@@ -11,7 +11,7 @@
 
 class CXFA_Config : public CXFA_Node {
  public:
-  CXFA_Config(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Config(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Config() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp
index a86a327..f83c8ea 100644
--- a/xfa/fxfa/parser/cxfa_conformance.cpp
+++ b/xfa/fxfa/parser/cxfa_conformance.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Conformance::CXFA_Conformance(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Conformance::CXFA_Conformance(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_conformance.h b/xfa/fxfa/parser/cxfa_conformance.h
index bb0b765..11a72e7 100644
--- a/xfa/fxfa/parser/cxfa_conformance.h
+++ b/xfa/fxfa/parser/cxfa_conformance.h
@@ -11,7 +11,7 @@
 
 class CXFA_Conformance : public CXFA_Node {
  public:
-  CXFA_Conformance(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Conformance(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Conformance() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp
index 1490718..723be1e 100644
--- a/xfa/fxfa/parser/cxfa_connect.cpp
+++ b/xfa/fxfa/parser/cxfa_connect.cpp
@@ -31,7 +31,7 @@
 
 }  // namespace
 
-CXFA_Connect::CXFA_Connect(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Connect::CXFA_Connect(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
diff --git a/xfa/fxfa/parser/cxfa_connect.h b/xfa/fxfa/parser/cxfa_connect.h
index a052c9c..ac91577 100644
--- a/xfa/fxfa/parser/cxfa_connect.h
+++ b/xfa/fxfa/parser/cxfa_connect.h
@@ -11,7 +11,7 @@
 
 class CXFA_Connect : public CXFA_Node {
  public:
-  CXFA_Connect(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Connect(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Connect() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_connectionset.cpp b/xfa/fxfa/parser/cxfa_connectionset.cpp
index 9f0d1a4..6dc86b4 100644
--- a/xfa/fxfa/parser/cxfa_connectionset.cpp
+++ b/xfa/fxfa/parser/cxfa_connectionset.cpp
@@ -12,7 +12,8 @@
 
 }  // namespace
 
-CXFA_ConnectionSet::CXFA_ConnectionSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ConnectionSet::CXFA_ConnectionSet(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_connectionset.h b/xfa/fxfa/parser/cxfa_connectionset.h
index cf36cda..59316f7 100644
--- a/xfa/fxfa/parser/cxfa_connectionset.h
+++ b/xfa/fxfa/parser/cxfa_connectionset.h
@@ -11,7 +11,7 @@
 
 class CXFA_ConnectionSet : public CXFA_Node {
  public:
-  CXFA_ConnectionSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ConnectionSet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ConnectionSet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
index 0d3b5a0..12e3777 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.cpp
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -19,7 +19,8 @@
 
 }  // namespace
 
-CXFA_ConnectString::CXFA_ConnectString(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ConnectString::CXFA_ConnectString(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_connectstring.h b/xfa/fxfa/parser/cxfa_connectstring.h
index f60d937..6c3a0b0 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.h
+++ b/xfa/fxfa/parser/cxfa_connectstring.h
@@ -11,7 +11,7 @@
 
 class CXFA_ConnectString : public CXFA_Node {
  public:
-  CXFA_ConnectString(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ConnectString(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ConnectString() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp
index 42492a6..45e2a3e 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.cpp
+++ b/xfa/fxfa/parser/cxfa_contentarea.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_ContentArea::CXFA_ContentArea(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ContentArea::CXFA_ContentArea(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_contentarea.h b/xfa/fxfa/parser/cxfa_contentarea.h
index 4977681..3c5ff60 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.h
+++ b/xfa/fxfa/parser/cxfa_contentarea.h
@@ -11,7 +11,7 @@
 
 class CXFA_ContentArea : public CXFA_Node {
  public:
-  CXFA_ContentArea(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ContentArea(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ContentArea() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp
index 57e42af..a55d576 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.cpp
+++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_ContentCopy::CXFA_ContentCopy(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ContentCopy::CXFA_ContentCopy(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.h b/xfa/fxfa/parser/cxfa_contentcopy.h
index d7a3e15..d394c74 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.h
+++ b/xfa/fxfa/parser/cxfa_contentcopy.h
@@ -11,7 +11,7 @@
 
 class CXFA_ContentCopy : public CXFA_Node {
  public:
-  CXFA_ContentCopy(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ContentCopy(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ContentCopy() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp
index 06bbea1..4ddf07f 100644
--- a/xfa/fxfa/parser/cxfa_copies.cpp
+++ b/xfa/fxfa/parser/cxfa_copies.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Copies::CXFA_Copies(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Copies::CXFA_Copies(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_copies.h b/xfa/fxfa/parser/cxfa_copies.h
index 00128e3..1ecd616 100644
--- a/xfa/fxfa/parser/cxfa_copies.h
+++ b/xfa/fxfa/parser/cxfa_copies.h
@@ -11,7 +11,7 @@
 
 class CXFA_Copies : public CXFA_Node {
  public:
-  CXFA_Copies(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Copies(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Copies() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp
index 124be2b..7b8eecf 100644
--- a/xfa/fxfa/parser/cxfa_corner.cpp
+++ b/xfa/fxfa/parser/cxfa_corner.cpp
@@ -30,7 +30,7 @@
 
 }  // namespace
 
-CXFA_Corner::CXFA_Corner(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Corner::CXFA_Corner(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_corner.h b/xfa/fxfa/parser/cxfa_corner.h
index 44b40a0..df21984 100644
--- a/xfa/fxfa/parser/cxfa_corner.h
+++ b/xfa/fxfa/parser/cxfa_corner.h
@@ -11,7 +11,7 @@
 
 class CXFA_Corner : public CXFA_Node {
  public:
-  CXFA_Corner(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Corner(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Corner() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp
index 234391b..2e65068 100644
--- a/xfa/fxfa/parser/cxfa_creator.cpp
+++ b/xfa/fxfa/parser/cxfa_creator.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Creator::CXFA_Creator(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Creator::CXFA_Creator(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_creator.h b/xfa/fxfa/parser/cxfa_creator.h
index d9c9238..c046883 100644
--- a/xfa/fxfa/parser/cxfa_creator.h
+++ b/xfa/fxfa/parser/cxfa_creator.h
@@ -11,7 +11,7 @@
 
 class CXFA_Creator : public CXFA_Node {
  public:
-  CXFA_Creator(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Creator(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Creator() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
index 3f60e3d..f403720 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_CurrencySymbol::CXFA_CurrencySymbol(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.h b/xfa/fxfa/parser/cxfa_currencysymbol.h
index 6cdb024..271f7fc 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.h
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.h
@@ -11,7 +11,7 @@
 
 class CXFA_CurrencySymbol : public CXFA_Node {
  public:
-  CXFA_CurrencySymbol(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CurrencySymbol(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CurrencySymbol() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.cpp b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
index 24d8196..4160be9 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
@@ -17,7 +17,7 @@
 }  // namespace
 
 CXFA_CurrencySymbols::CXFA_CurrencySymbols(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.h b/xfa/fxfa/parser/cxfa_currencysymbols.h
index 764f877..acd3f2a 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbols.h
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.h
@@ -11,7 +11,7 @@
 
 class CXFA_CurrencySymbols : public CXFA_Node {
  public:
-  CXFA_CurrencySymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CurrencySymbols(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CurrencySymbols() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp
index b4d89bc..be200e4 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.cpp
+++ b/xfa/fxfa/parser/cxfa_currentpage.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_CurrentPage::CXFA_CurrentPage(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_CurrentPage::CXFA_CurrentPage(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_currentpage.h b/xfa/fxfa/parser/cxfa_currentpage.h
index 55e4b54..d526b4a 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.h
+++ b/xfa/fxfa/parser/cxfa_currentpage.h
@@ -11,7 +11,7 @@
 
 class CXFA_CurrentPage : public CXFA_Node {
  public:
-  CXFA_CurrentPage(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_CurrentPage(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_CurrentPage() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp
index 45374f8..6fd66a9 100644
--- a/xfa/fxfa/parser/cxfa_data.cpp
+++ b/xfa/fxfa/parser/cxfa_data.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Data::CXFA_Data(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Data::CXFA_Data(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_data.h b/xfa/fxfa/parser/cxfa_data.h
index a294ac6..cb30f61 100644
--- a/xfa/fxfa/parser/cxfa_data.h
+++ b/xfa/fxfa/parser/cxfa_data.h
@@ -11,7 +11,7 @@
 
 class CXFA_Data : public CXFA_Node {
  public:
-  CXFA_Data(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Data(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Data() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp
index edb7e1e..1113ba4 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp
@@ -489,8 +489,8 @@
     const char* pChecksum) {
   CFX_XMLDoc* pXMLDoc = m_pDocument->GetXMLDoc();
   if (pNode->IsModelNode()) {
-    switch (pNode->GetPacketID()) {
-      case XFA_XDPPACKET_XDP: {
+    switch (pNode->GetPacketType()) {
+      case XFA_PacketType::Xdp: {
         pStream->WriteString(
             L"<xdp:xdp xmlns:xdp=\"http://ns.adobe.com/xdp/\">");
         for (CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild);
@@ -500,7 +500,7 @@
         pStream->WriteString(L"</xdp:xdp\n>");
         break;
       }
-      case XFA_XDPPACKET_Datasets: {
+      case XFA_PacketType::Datasets: {
         CFX_XMLElement* pElement =
             static_cast<CFX_XMLElement*>(pNode->GetXMLMappingNode());
         if (!pElement || pElement->GetType() != FX_XMLNODE_Element)
@@ -512,11 +512,11 @@
         pXMLDoc->SaveXMLNode(pStream, pElement);
         break;
       }
-      case XFA_XDPPACKET_Form: {
+      case XFA_PacketType::Form: {
         XFA_DataExporter_RegenerateFormFile(pNode, pStream, pChecksum);
         break;
       }
-      case XFA_XDPPACKET_Template:
+      case XFA_PacketType::Template:
       default: {
         CFX_XMLElement* pElement =
             static_cast<CFX_XMLElement*>(pNode->GetXMLMappingNode());
diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp
index e2d5b30..9b65146 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.cpp
+++ b/xfa/fxfa/parser/cxfa_datagroup.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_DataGroup::CXFA_DataGroup(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DataGroup::CXFA_DataGroup(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Datasets,
diff --git a/xfa/fxfa/parser/cxfa_datagroup.h b/xfa/fxfa/parser/cxfa_datagroup.h
index 6bc432d..649b096 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.h
+++ b/xfa/fxfa/parser/cxfa_datagroup.h
@@ -11,7 +11,7 @@
 
 class CXFA_DataGroup : public CXFA_Node {
  public:
-  CXFA_DataGroup(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DataGroup(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DataGroup() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datamodel.cpp b/xfa/fxfa/parser/cxfa_datamodel.cpp
index c100115..bda8ab5 100644
--- a/xfa/fxfa/parser/cxfa_datamodel.cpp
+++ b/xfa/fxfa/parser/cxfa_datamodel.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_DataModel::CXFA_DataModel(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DataModel::CXFA_DataModel(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Datasets,
diff --git a/xfa/fxfa/parser/cxfa_datamodel.h b/xfa/fxfa/parser/cxfa_datamodel.h
index 6769d72..f414ea3 100644
--- a/xfa/fxfa/parser/cxfa_datamodel.h
+++ b/xfa/fxfa/parser/cxfa_datamodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_DataModel : public CXFA_Node {
  public:
-  CXFA_DataModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DataModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DataModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
index b1d1f6e..5eb439b 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.cpp
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_DataValue::CXFA_DataValue(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DataValue::CXFA_DataValue(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Datasets,
diff --git a/xfa/fxfa/parser/cxfa_datavalue.h b/xfa/fxfa/parser/cxfa_datavalue.h
index 7d11f85..8170aba 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.h
+++ b/xfa/fxfa/parser/cxfa_datavalue.h
@@ -11,7 +11,7 @@
 
 class CXFA_DataValue : public CXFA_Node {
  public:
-  CXFA_DataValue(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DataValue(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DataValue() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datawindow.cpp b/xfa/fxfa/parser/cxfa_datawindow.cpp
index 556bab4..8be722d 100644
--- a/xfa/fxfa/parser/cxfa_datawindow.cpp
+++ b/xfa/fxfa/parser/cxfa_datawindow.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_DataWindow::CXFA_DataWindow(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DataWindow::CXFA_DataWindow(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Datasets,
diff --git a/xfa/fxfa/parser/cxfa_datawindow.h b/xfa/fxfa/parser/cxfa_datawindow.h
index 3cafa94..cd2406f 100644
--- a/xfa/fxfa/parser/cxfa_datawindow.h
+++ b/xfa/fxfa/parser/cxfa_datawindow.h
@@ -11,7 +11,7 @@
 
 class CXFA_DataWindow : public CXFA_Node {
  public:
-  CXFA_DataWindow(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DataWindow(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DataWindow() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
index 76eba5b..671a4d5 100644
--- a/xfa/fxfa/parser/cxfa_date.cpp
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Date::CXFA_Date(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Date::CXFA_Date(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_date.h b/xfa/fxfa/parser/cxfa_date.h
index abe47db..e5ebb25 100644
--- a/xfa/fxfa/parser/cxfa_date.h
+++ b/xfa/fxfa/parser/cxfa_date.h
@@ -11,7 +11,7 @@
 
 class CXFA_Date : public CXFA_Node {
  public:
-  CXFA_Date(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Date(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Date() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp
index 4fbecb6..ff116b1 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_datepattern.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_DatePattern::CXFA_DatePattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DatePattern::CXFA_DatePattern(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_datepattern.h b/xfa/fxfa/parser/cxfa_datepattern.h
index b54a78f..b661478 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.h
+++ b/xfa/fxfa/parser/cxfa_datepattern.h
@@ -11,7 +11,7 @@
 
 class CXFA_DatePattern : public CXFA_Node {
  public:
-  CXFA_DatePattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DatePattern(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DatePattern() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.cpp b/xfa/fxfa/parser/cxfa_datepatterns.cpp
index bf9ce61..37a380d 100644
--- a/xfa/fxfa/parser/cxfa_datepatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_datepatterns.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_DatePatterns::CXFA_DatePatterns(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DatePatterns::CXFA_DatePatterns(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.h b/xfa/fxfa/parser/cxfa_datepatterns.h
index a6ca493..dfc55d0 100644
--- a/xfa/fxfa/parser/cxfa_datepatterns.h
+++ b/xfa/fxfa/parser/cxfa_datepatterns.h
@@ -11,7 +11,7 @@
 
 class CXFA_DatePatterns : public CXFA_Node {
  public:
-  CXFA_DatePatterns(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DatePatterns(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DatePatterns() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
index a1c6fe8..d6f99a0 100644
--- a/xfa/fxfa/parser/cxfa_datetime.cpp
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_DateTime::CXFA_DateTime(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DateTime::CXFA_DateTime(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_datetime.h b/xfa/fxfa/parser/cxfa_datetime.h
index 6033ee3..f5cd6f6 100644
--- a/xfa/fxfa/parser/cxfa_datetime.h
+++ b/xfa/fxfa/parser/cxfa_datetime.h
@@ -11,7 +11,7 @@
 
 class CXFA_DateTime : public CXFA_Node {
  public:
-  CXFA_DateTime(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DateTime(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DateTime() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
index 57bd907..8635f63 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_DateTimeEdit::CXFA_DateTimeEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DateTimeEdit::CXFA_DateTimeEdit(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.h b/xfa/fxfa/parser/cxfa_datetimeedit.h
index 19463af..bac7879 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.h
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.h
@@ -11,7 +11,7 @@
 
 class CXFA_DateTimeEdit : public CXFA_Node {
  public:
-  CXFA_DateTimeEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DateTimeEdit(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DateTimeEdit() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
index 981b13e..9f29666 100644
--- a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
@@ -13,7 +13,7 @@
 }  // namespace
 
 CXFA_DateTimeSymbols::CXFA_DateTimeSymbols(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.h b/xfa/fxfa/parser/cxfa_datetimesymbols.h
index b837123..e2296d6 100644
--- a/xfa/fxfa/parser/cxfa_datetimesymbols.h
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.h
@@ -11,7 +11,7 @@
 
 class CXFA_DateTimeSymbols : public CXFA_Node {
  public:
-  CXFA_DateTimeSymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DateTimeSymbols(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DateTimeSymbols() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_day.cpp b/xfa/fxfa/parser/cxfa_day.cpp
index 0d36dbb..c08b820 100644
--- a/xfa/fxfa/parser/cxfa_day.cpp
+++ b/xfa/fxfa/parser/cxfa_day.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Day::CXFA_Day(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Day::CXFA_Day(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_day.h b/xfa/fxfa/parser/cxfa_day.h
index 5cf30ea..8d04bf4 100644
--- a/xfa/fxfa/parser/cxfa_day.h
+++ b/xfa/fxfa/parser/cxfa_day.h
@@ -11,7 +11,7 @@
 
 class CXFA_Day : public CXFA_Node {
  public:
-  CXFA_Day(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Day(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Day() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_daynames.cpp b/xfa/fxfa/parser/cxfa_daynames.cpp
index 91ea08e..47468e9 100644
--- a/xfa/fxfa/parser/cxfa_daynames.cpp
+++ b/xfa/fxfa/parser/cxfa_daynames.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_DayNames::CXFA_DayNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DayNames::CXFA_DayNames(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_daynames.h b/xfa/fxfa/parser/cxfa_daynames.h
index 8765908..d566e50 100644
--- a/xfa/fxfa/parser/cxfa_daynames.h
+++ b/xfa/fxfa/parser/cxfa_daynames.h
@@ -11,7 +11,7 @@
 
 class CXFA_DayNames : public CXFA_Node {
  public:
-  CXFA_DayNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DayNames(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DayNames() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_debug.cpp b/xfa/fxfa/parser/cxfa_debug.cpp
index d72bfc1..91cfd63 100644
--- a/xfa/fxfa/parser/cxfa_debug.cpp
+++ b/xfa/fxfa/parser/cxfa_debug.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Debug::CXFA_Debug(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Debug::CXFA_Debug(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_debug.h b/xfa/fxfa/parser/cxfa_debug.h
index e42ab9f..e2e4ed1 100644
--- a/xfa/fxfa/parser/cxfa_debug.h
+++ b/xfa/fxfa/parser/cxfa_debug.h
@@ -11,7 +11,7 @@
 
 class CXFA_Debug : public CXFA_Node {
  public:
-  CXFA_Debug(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Debug(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Debug() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
index 6231e49..a8eaaea 100644
--- a/xfa/fxfa/parser/cxfa_decimal.cpp
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Decimal::CXFA_Decimal(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Decimal::CXFA_Decimal(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_decimal.h b/xfa/fxfa/parser/cxfa_decimal.h
index bb19933..da58896 100644
--- a/xfa/fxfa/parser/cxfa_decimal.h
+++ b/xfa/fxfa/parser/cxfa_decimal.h
@@ -11,7 +11,7 @@
 
 class CXFA_Decimal : public CXFA_Node {
  public:
-  CXFA_Decimal(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Decimal(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Decimal() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
index 31afda4..31a93cc 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
@@ -20,7 +20,7 @@
 }  // namespace
 
 CXFA_DefaultTypeface::CXFA_DefaultTypeface(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.h b/xfa/fxfa/parser/cxfa_defaulttypeface.h
index 31ea0d4..511ed8f 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.h
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.h
@@ -11,7 +11,7 @@
 
 class CXFA_DefaultTypeface : public CXFA_Node {
  public:
-  CXFA_DefaultTypeface(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DefaultTypeface(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DefaultTypeface() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp
index b93eebc..9b8c9c0 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.cpp
+++ b/xfa/fxfa/parser/cxfa_defaultui.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_DefaultUi::CXFA_DefaultUi(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DefaultUi::CXFA_DefaultUi(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_defaultui.h b/xfa/fxfa/parser/cxfa_defaultui.h
index 27dc961..ce14941 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.h
+++ b/xfa/fxfa/parser/cxfa_defaultui.h
@@ -11,7 +11,7 @@
 
 class CXFA_DefaultUi : public CXFA_Node {
  public:
-  CXFA_DefaultUi(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DefaultUi(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DefaultUi() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
index 41e619d..b7519e1 100644
--- a/xfa/fxfa/parser/cxfa_delete.cpp
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Delete::CXFA_Delete(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Delete::CXFA_Delete(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_delete.h b/xfa/fxfa/parser/cxfa_delete.h
index f39d2e6..7c6058a 100644
--- a/xfa/fxfa/parser/cxfa_delete.h
+++ b/xfa/fxfa/parser/cxfa_delete.h
@@ -11,7 +11,7 @@
 
 class CXFA_Delete : public CXFA_Node {
  public:
-  CXFA_Delete(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Delete(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Delete() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_delta.cpp b/xfa/fxfa/parser/cxfa_delta.cpp
index c5da9c3..4d472b8 100644
--- a/xfa/fxfa/parser/cxfa_delta.cpp
+++ b/xfa/fxfa/parser/cxfa_delta.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Delta::CXFA_Delta(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Delta::CXFA_Delta(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Form,
diff --git a/xfa/fxfa/parser/cxfa_delta.h b/xfa/fxfa/parser/cxfa_delta.h
index 249ffb9..693287b 100644
--- a/xfa/fxfa/parser/cxfa_delta.h
+++ b/xfa/fxfa/parser/cxfa_delta.h
@@ -11,7 +11,7 @@
 
 class CXFA_Delta : public CXFA_Node {
  public:
-  CXFA_Delta(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Delta(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Delta() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_deltas.cpp b/xfa/fxfa/parser/cxfa_deltas.cpp
index 89ef3a5..2b843b5 100644
--- a/xfa/fxfa/parser/cxfa_deltas.cpp
+++ b/xfa/fxfa/parser/cxfa_deltas.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Deltas::CXFA_Deltas(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Deltas::CXFA_Deltas(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Form,
diff --git a/xfa/fxfa/parser/cxfa_deltas.h b/xfa/fxfa/parser/cxfa_deltas.h
index a996cd5..37566ae 100644
--- a/xfa/fxfa/parser/cxfa_deltas.h
+++ b/xfa/fxfa/parser/cxfa_deltas.h
@@ -11,7 +11,7 @@
 
 class CXFA_Deltas : public CXFA_Node {
  public:
-  CXFA_Deltas(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Deltas(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Deltas() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp
index e1321f8..5c9df2c 100644
--- a/xfa/fxfa/parser/cxfa_desc.cpp
+++ b/xfa/fxfa/parser/cxfa_desc.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_Desc::CXFA_Desc(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Desc::CXFA_Desc(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_desc.h b/xfa/fxfa/parser/cxfa_desc.h
index 0ccd3b4..1811c63 100644
--- a/xfa/fxfa/parser/cxfa_desc.h
+++ b/xfa/fxfa/parser/cxfa_desc.h
@@ -11,7 +11,7 @@
 
 class CXFA_Desc : public CXFA_Node {
  public:
-  CXFA_Desc(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Desc(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Desc() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp
index 452cd64..4e5d10b 100644
--- a/xfa/fxfa/parser/cxfa_destination.cpp
+++ b/xfa/fxfa/parser/cxfa_destination.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Destination::CXFA_Destination(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Destination::CXFA_Destination(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_destination.h b/xfa/fxfa/parser/cxfa_destination.h
index 80513c0..d9fc553 100644
--- a/xfa/fxfa/parser/cxfa_destination.h
+++ b/xfa/fxfa/parser/cxfa_destination.h
@@ -11,7 +11,7 @@
 
 class CXFA_Destination : public CXFA_Node {
  public:
-  CXFA_Destination(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Destination(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Destination() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
index 3190e86..a213d0a 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_DigestMethod::CXFA_DigestMethod(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DigestMethod::CXFA_DigestMethod(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.h b/xfa/fxfa/parser/cxfa_digestmethod.h
index c0d15ed..4ac22bb 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.h
+++ b/xfa/fxfa/parser/cxfa_digestmethod.h
@@ -11,7 +11,7 @@
 
 class CXFA_DigestMethod : public CXFA_Node {
  public:
-  CXFA_DigestMethod(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DigestMethod(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DigestMethod() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
index 66109a6..0608d12 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -20,7 +20,8 @@
 
 }  // namespace
 
-CXFA_DigestMethods::CXFA_DigestMethods(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DigestMethods::CXFA_DigestMethods(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.h b/xfa/fxfa/parser/cxfa_digestmethods.h
index 7978007..65d40fb 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.h
+++ b/xfa/fxfa/parser/cxfa_digestmethods.h
@@ -11,7 +11,7 @@
 
 class CXFA_DigestMethods : public CXFA_Node {
  public:
-  CXFA_DigestMethods(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DigestMethods(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DigestMethods() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 4e230ee..b23ba68 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -213,12 +213,10 @@
   }
 }
 
-CXFA_Node* CXFA_Document::CreateNode(XFA_XDPPACKET packet,
+CXFA_Node* CXFA_Document::CreateNode(XFA_PacketType packet,
                                      XFA_Element eElement) {
-  if (packet == XFA_XDPPACKET_UNKNOWN || packet >= XFA_XDPPACKET_LAST ||
-      eElement == XFA_Element::Unknown) {
+  if (eElement == XFA_Element::Unknown)
     return nullptr;
-  }
 
   std::unique_ptr<CXFA_Node> pNode = CXFA_Node::Create(this, eElement, packet);
   if (!pNode)
diff --git a/xfa/fxfa/parser/cxfa_document.h b/xfa/fxfa/parser/cxfa_document.h
index 82ef661..bd576e6 100644
--- a/xfa/fxfa/parser/cxfa_document.h
+++ b/xfa/fxfa/parser/cxfa_document.h
@@ -87,7 +87,7 @@
   XFA_VERSION GetCurVersionMode() { return m_eCurVersionMode; }
   XFA_VERSION RecognizeXFAVersionNumber(const WideString& wsTemplateNS);
 
-  CXFA_Node* CreateNode(XFA_XDPPACKET packet, XFA_Element eElement);
+  CXFA_Node* CreateNode(XFA_PacketType packet, XFA_Element eElement);
 
   void DoProtoMerge();
   void DoDataMerge();
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp
index 5ddc90f..146071d 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.cpp
+++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_DocumentAssembly::CXFA_DocumentAssembly(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.h b/xfa/fxfa/parser/cxfa_documentassembly.h
index b7b82e8..c22d4a9 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.h
+++ b/xfa/fxfa/parser/cxfa_documentassembly.h
@@ -11,7 +11,7 @@
 
 class CXFA_DocumentAssembly : public CXFA_Node {
  public:
-  CXFA_DocumentAssembly(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DocumentAssembly(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DocumentAssembly() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp
index 7d87d44..073d315 100644
--- a/xfa/fxfa/parser/cxfa_draw.cpp
+++ b/xfa/fxfa/parser/cxfa_draw.cpp
@@ -47,7 +47,7 @@
 
 }  // namespace
 
-CXFA_Draw::CXFA_Draw(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Draw::CXFA_Draw(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_draw.h b/xfa/fxfa/parser/cxfa_draw.h
index 9ca22b6..603103b 100644
--- a/xfa/fxfa/parser/cxfa_draw.h
+++ b/xfa/fxfa/parser/cxfa_draw.h
@@ -11,7 +11,7 @@
 
 class CXFA_Draw : public CXFA_Node {
  public:
-  CXFA_Draw(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Draw(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Draw() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_driver.cpp b/xfa/fxfa/parser/cxfa_driver.cpp
index 77d23c9..883cbf6 100644
--- a/xfa/fxfa/parser/cxfa_driver.cpp
+++ b/xfa/fxfa/parser/cxfa_driver.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Driver::CXFA_Driver(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Driver::CXFA_Driver(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_driver.h b/xfa/fxfa/parser/cxfa_driver.h
index 781a69b..aee732e 100644
--- a/xfa/fxfa/parser/cxfa_driver.h
+++ b/xfa/fxfa/parser/cxfa_driver.h
@@ -11,7 +11,7 @@
 
 class CXFA_Driver : public CXFA_Node {
  public:
-  CXFA_Driver(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Driver(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Driver() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp
index f1412aa..88d3e8e 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.cpp
+++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_DSigData::CXFA_DSigData(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DSigData::CXFA_DSigData(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.h b/xfa/fxfa/parser/cxfa_dsigdata.h
index 00b61e3..0cbaeb4 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.h
+++ b/xfa/fxfa/parser/cxfa_dsigdata.h
@@ -11,7 +11,7 @@
 
 class CXFA_DSigData : public CXFA_Node {
  public:
-  CXFA_DSigData(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DSigData(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DSigData() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp
index a99a2e8..f8d4170 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.cpp
+++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_DuplexOption::CXFA_DuplexOption(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DuplexOption::CXFA_DuplexOption(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.h b/xfa/fxfa/parser/cxfa_duplexoption.h
index a9f8f17..69034ce 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.h
+++ b/xfa/fxfa/parser/cxfa_duplexoption.h
@@ -11,7 +11,7 @@
 
 class CXFA_DuplexOption : public CXFA_Node {
  public:
-  CXFA_DuplexOption(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DuplexOption(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DuplexOption() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
index 901937d..a60e192 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.cpp
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
@@ -17,7 +17,8 @@
 
 }  // namespace
 
-CXFA_DynamicRender::CXFA_DynamicRender(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_DynamicRender::CXFA_DynamicRender(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.h b/xfa/fxfa/parser/cxfa_dynamicrender.h
index 1856957..f7c54fa 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.h
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.h
@@ -11,7 +11,7 @@
 
 class CXFA_DynamicRender : public CXFA_Node {
  public:
-  CXFA_DynamicRender(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_DynamicRender(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_DynamicRender() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp
index 114063c..310a7e2 100644
--- a/xfa/fxfa/parser/cxfa_edge.cpp
+++ b/xfa/fxfa/parser/cxfa_edge.cpp
@@ -28,7 +28,7 @@
 
 }  // namespace
 
-CXFA_Edge::CXFA_Edge(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Edge::CXFA_Edge(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_edge.h b/xfa/fxfa/parser/cxfa_edge.h
index fa02e06..135ea2a 100644
--- a/xfa/fxfa/parser/cxfa_edge.h
+++ b/xfa/fxfa/parser/cxfa_edge.h
@@ -11,7 +11,7 @@
 
 class CXFA_Edge : public CXFA_Node {
  public:
-  CXFA_Edge(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Edge(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Edge() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
index 79d3cb3..a2c5d0f 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
@@ -20,7 +20,7 @@
 }  // namespace
 
 CXFA_EffectiveInputPolicy::CXFA_EffectiveInputPolicy(CXFA_Document* doc,
-                                                     XFA_XDPPACKET packet)
+                                                     XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
index a88ae98..52a60a4 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
@@ -11,7 +11,7 @@
 
 class CXFA_EffectiveInputPolicy : public CXFA_Node {
  public:
-  CXFA_EffectiveInputPolicy(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EffectiveInputPolicy(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EffectiveInputPolicy() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
index c726ef9..e1ab370 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
@@ -20,7 +20,7 @@
 }  // namespace
 
 CXFA_EffectiveOutputPolicy::CXFA_EffectiveOutputPolicy(CXFA_Document* doc,
-                                                       XFA_XDPPACKET packet)
+                                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
index 10c8527..b2317d5 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
@@ -11,7 +11,7 @@
 
 class CXFA_EffectiveOutputPolicy : public CXFA_Node {
  public:
-  CXFA_EffectiveOutputPolicy(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EffectiveOutputPolicy(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EffectiveOutputPolicy() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp
index 2e7423b..f65fea4 100644
--- a/xfa/fxfa/parser/cxfa_embed.cpp
+++ b/xfa/fxfa/parser/cxfa_embed.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Embed::CXFA_Embed(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Embed::CXFA_Embed(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_embed.h b/xfa/fxfa/parser/cxfa_embed.h
index 4aa746b..d130840 100644
--- a/xfa/fxfa/parser/cxfa_embed.h
+++ b/xfa/fxfa/parser/cxfa_embed.h
@@ -11,7 +11,7 @@
 
 class CXFA_Embed : public CXFA_Node {
  public:
-  CXFA_Embed(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Embed(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Embed() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
index 0752df7..27269b4 100644
--- a/xfa/fxfa/parser/cxfa_encoding.cpp
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_Encoding::CXFA_Encoding(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Encoding::CXFA_Encoding(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_encoding.h b/xfa/fxfa/parser/cxfa_encoding.h
index 4e520e5..ad41b01 100644
--- a/xfa/fxfa/parser/cxfa_encoding.h
+++ b/xfa/fxfa/parser/cxfa_encoding.h
@@ -11,7 +11,7 @@
 
 class CXFA_Encoding : public CXFA_Node {
  public:
-  CXFA_Encoding(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Encoding(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Encoding() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
index 45f4e7a..dddcf1b 100644
--- a/xfa/fxfa/parser/cxfa_encodings.cpp
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Encodings::CXFA_Encodings(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Encodings::CXFA_Encodings(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_encodings.h b/xfa/fxfa/parser/cxfa_encodings.h
index 19d51d2..d3876de 100644
--- a/xfa/fxfa/parser/cxfa_encodings.h
+++ b/xfa/fxfa/parser/cxfa_encodings.h
@@ -11,7 +11,7 @@
 
 class CXFA_Encodings : public CXFA_Node {
  public:
-  CXFA_Encodings(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Encodings(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Encodings() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp
index ea28df9..2e38bef 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.cpp
+++ b/xfa/fxfa/parser/cxfa_encrypt.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Encrypt::CXFA_Encrypt(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Encrypt::CXFA_Encrypt(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_encrypt.h b/xfa/fxfa/parser/cxfa_encrypt.h
index 13d4e57..4968db6 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.h
+++ b/xfa/fxfa/parser/cxfa_encrypt.h
@@ -11,7 +11,7 @@
 
 class CXFA_Encrypt : public CXFA_Node {
  public:
-  CXFA_Encrypt(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Encrypt(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Encrypt() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encryption.cpp b/xfa/fxfa/parser/cxfa_encryption.cpp
index fcba1c2..2a876fe 100644
--- a/xfa/fxfa/parser/cxfa_encryption.cpp
+++ b/xfa/fxfa/parser/cxfa_encryption.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Encryption::CXFA_Encryption(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Encryption::CXFA_Encryption(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_encryption.h b/xfa/fxfa/parser/cxfa_encryption.h
index 32c96d7..f2028ee 100644
--- a/xfa/fxfa/parser/cxfa_encryption.h
+++ b/xfa/fxfa/parser/cxfa_encryption.h
@@ -11,7 +11,7 @@
 
 class CXFA_Encryption : public CXFA_Node {
  public:
-  CXFA_Encryption(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Encryption(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Encryption() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
index 7499be7..099b035 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_EncryptionLevel::CXFA_EncryptionLevel(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.h b/xfa/fxfa/parser/cxfa_encryptionlevel.h
index 872bd3f..1bb80ce 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.h
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.h
@@ -11,7 +11,7 @@
 
 class CXFA_EncryptionLevel : public CXFA_Node {
  public:
-  CXFA_EncryptionLevel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EncryptionLevel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EncryptionLevel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
index dba1866..e3402e2 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
@@ -19,7 +19,7 @@
 }  // namespace
 
 CXFA_EncryptionMethod::CXFA_EncryptionMethod(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.h b/xfa/fxfa/parser/cxfa_encryptionmethod.h
index 99e2933..2c86001 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.h
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.h
@@ -11,7 +11,7 @@
 
 class CXFA_EncryptionMethod : public CXFA_Node {
  public:
-  CXFA_EncryptionMethod(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EncryptionMethod(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EncryptionMethod() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
index b4b3537..c8913d1 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
@@ -21,7 +21,7 @@
 }  // namespace
 
 CXFA_EncryptionMethods::CXFA_EncryptionMethods(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.h b/xfa/fxfa/parser/cxfa_encryptionmethods.h
index e09c845..9fcc0b5 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.h
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.h
@@ -11,7 +11,7 @@
 
 class CXFA_EncryptionMethods : public CXFA_Node {
  public:
-  CXFA_EncryptionMethods(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EncryptionMethods(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EncryptionMethods() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp
index d50d992..59b6426 100644
--- a/xfa/fxfa/parser/cxfa_enforce.cpp
+++ b/xfa/fxfa/parser/cxfa_enforce.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Enforce::CXFA_Enforce(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Enforce::CXFA_Enforce(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_enforce.h b/xfa/fxfa/parser/cxfa_enforce.h
index 8c863ba..3ccd8b8 100644
--- a/xfa/fxfa/parser/cxfa_enforce.h
+++ b/xfa/fxfa/parser/cxfa_enforce.h
@@ -11,7 +11,7 @@
 
 class CXFA_Enforce : public CXFA_Node {
  public:
-  CXFA_Enforce(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Enforce(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Enforce() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp
index 02fa339..e927fbc 100644
--- a/xfa/fxfa/parser/cxfa_equate.cpp
+++ b/xfa/fxfa/parser/cxfa_equate.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Equate::CXFA_Equate(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Equate::CXFA_Equate(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_equate.h b/xfa/fxfa/parser/cxfa_equate.h
index 4939ead..0a28182 100644
--- a/xfa/fxfa/parser/cxfa_equate.h
+++ b/xfa/fxfa/parser/cxfa_equate.h
@@ -11,7 +11,7 @@
 
 class CXFA_Equate : public CXFA_Node {
  public:
-  CXFA_Equate(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Equate(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Equate() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp
index f3193c8..6f46a1f 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.cpp
+++ b/xfa/fxfa/parser/cxfa_equaterange.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_EquateRange::CXFA_EquateRange(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_EquateRange::CXFA_EquateRange(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_equaterange.h b/xfa/fxfa/parser/cxfa_equaterange.h
index 9ff047a..86c86b1 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.h
+++ b/xfa/fxfa/parser/cxfa_equaterange.h
@@ -11,7 +11,7 @@
 
 class CXFA_EquateRange : public CXFA_Node {
  public:
-  CXFA_EquateRange(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EquateRange(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EquateRange() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_era.cpp b/xfa/fxfa/parser/cxfa_era.cpp
index 6ddc1da..6051676 100644
--- a/xfa/fxfa/parser/cxfa_era.cpp
+++ b/xfa/fxfa/parser/cxfa_era.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Era::CXFA_Era(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Era::CXFA_Era(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_era.h b/xfa/fxfa/parser/cxfa_era.h
index ece3b2c..a46a574 100644
--- a/xfa/fxfa/parser/cxfa_era.h
+++ b/xfa/fxfa/parser/cxfa_era.h
@@ -11,7 +11,7 @@
 
 class CXFA_Era : public CXFA_Node {
  public:
-  CXFA_Era(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Era(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Era() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_eranames.cpp b/xfa/fxfa/parser/cxfa_eranames.cpp
index 358b7b0..06bd2ca 100644
--- a/xfa/fxfa/parser/cxfa_eranames.cpp
+++ b/xfa/fxfa/parser/cxfa_eranames.cpp
@@ -15,7 +15,7 @@
 
 }  // namespace
 
-CXFA_EraNames::CXFA_EraNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_EraNames::CXFA_EraNames(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_eranames.h b/xfa/fxfa/parser/cxfa_eranames.h
index 128e68d..4c8f788 100644
--- a/xfa/fxfa/parser/cxfa_eranames.h
+++ b/xfa/fxfa/parser/cxfa_eranames.h
@@ -11,7 +11,7 @@
 
 class CXFA_EraNames : public CXFA_Node {
  public:
-  CXFA_EraNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EraNames(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EraNames() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp
index 0e3e71b..ca5aa58 100644
--- a/xfa/fxfa/parser/cxfa_event.cpp
+++ b/xfa/fxfa/parser/cxfa_event.cpp
@@ -31,7 +31,7 @@
 
 }  // namespace
 
-CXFA_Event::CXFA_Event(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Event::CXFA_Event(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_event.h b/xfa/fxfa/parser/cxfa_event.h
index 5ff362d..655e776 100644
--- a/xfa/fxfa/parser/cxfa_event.h
+++ b/xfa/fxfa/parser/cxfa_event.h
@@ -11,7 +11,7 @@
 
 class CXFA_Event : public CXFA_Node {
  public:
-  CXFA_Event(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Event(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Event() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp b/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp
index 75128f6..b4a5fed 100644
--- a/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp
+++ b/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp
@@ -13,7 +13,7 @@
 }  // namespace
 
 CXFA_EventPseudoModel::CXFA_EventPseudoModel(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_eventpseudomodel.h b/xfa/fxfa/parser/cxfa_eventpseudomodel.h
index 3546e6d..018e2ea 100644
--- a/xfa/fxfa/parser/cxfa_eventpseudomodel.h
+++ b/xfa/fxfa/parser/cxfa_eventpseudomodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_EventPseudoModel : public CXFA_Node {
  public:
-  CXFA_EventPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_EventPseudoModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_EventPseudoModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp
index b8255c5..39ecc72 100644
--- a/xfa/fxfa/parser/cxfa_exclgroup.cpp
+++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp
@@ -49,7 +49,7 @@
 
 }  // namespace
 
-CXFA_ExclGroup::CXFA_ExclGroup(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ExclGroup::CXFA_ExclGroup(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.h b/xfa/fxfa/parser/cxfa_exclgroup.h
index 62aeb84..5a3c8a3 100644
--- a/xfa/fxfa/parser/cxfa_exclgroup.h
+++ b/xfa/fxfa/parser/cxfa_exclgroup.h
@@ -11,7 +11,7 @@
 
 class CXFA_ExclGroup : public CXFA_Node {
  public:
-  CXFA_ExclGroup(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ExclGroup(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ExclGroup() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp
index 633914a..e07d92a 100644
--- a/xfa/fxfa/parser/cxfa_exclude.cpp
+++ b/xfa/fxfa/parser/cxfa_exclude.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Exclude::CXFA_Exclude(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Exclude::CXFA_Exclude(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_exclude.h b/xfa/fxfa/parser/cxfa_exclude.h
index fc8eada..0f78707 100644
--- a/xfa/fxfa/parser/cxfa_exclude.h
+++ b/xfa/fxfa/parser/cxfa_exclude.h
@@ -11,7 +11,7 @@
 
 class CXFA_Exclude : public CXFA_Node {
  public:
-  CXFA_Exclude(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Exclude(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Exclude() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp
index 7a400e6..b149e86 100644
--- a/xfa/fxfa/parser/cxfa_excludens.cpp
+++ b/xfa/fxfa/parser/cxfa_excludens.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_ExcludeNS::CXFA_ExcludeNS(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ExcludeNS::CXFA_ExcludeNS(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_excludens.h b/xfa/fxfa/parser/cxfa_excludens.h
index b70654e..c5cb548 100644
--- a/xfa/fxfa/parser/cxfa_excludens.h
+++ b/xfa/fxfa/parser/cxfa_excludens.h
@@ -11,7 +11,7 @@
 
 class CXFA_ExcludeNS : public CXFA_Node {
  public:
-  CXFA_ExcludeNS(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ExcludeNS(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ExcludeNS() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
index 9c3102f..0a73d78 100644
--- a/xfa/fxfa/parser/cxfa_exdata.cpp
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_ExData::CXFA_ExData(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ExData::CXFA_ExData(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_exdata.h b/xfa/fxfa/parser/cxfa_exdata.h
index 264c31b..92ea0e6 100644
--- a/xfa/fxfa/parser/cxfa_exdata.h
+++ b/xfa/fxfa/parser/cxfa_exdata.h
@@ -11,7 +11,7 @@
 
 class CXFA_ExData : public CXFA_Node {
  public:
-  CXFA_ExData(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ExData(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ExData() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
index bc570c8..f0a9796 100644
--- a/xfa/fxfa/parser/cxfa_execute.cpp
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Execute::CXFA_Execute(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Execute::CXFA_Execute(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_execute.h b/xfa/fxfa/parser/cxfa_execute.h
index aa7daf4..2d9f158 100644
--- a/xfa/fxfa/parser/cxfa_execute.h
+++ b/xfa/fxfa/parser/cxfa_execute.h
@@ -11,7 +11,7 @@
 
 class CXFA_Execute : public CXFA_Node {
  public:
-  CXFA_Execute(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Execute(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Execute() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp
index 3e8b590..bc9647a 100644
--- a/xfa/fxfa/parser/cxfa_exobject.cpp
+++ b/xfa/fxfa/parser/cxfa_exobject.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_ExObject::CXFA_ExObject(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ExObject::CXFA_ExObject(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_exobject.h b/xfa/fxfa/parser/cxfa_exobject.h
index 8424553..b4d7de9 100644
--- a/xfa/fxfa/parser/cxfa_exobject.h
+++ b/xfa/fxfa/parser/cxfa_exobject.h
@@ -11,7 +11,7 @@
 
 class CXFA_ExObject : public CXFA_Node {
  public:
-  CXFA_ExObject(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ExObject(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ExObject() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
index 5684dde..bf155c7 100644
--- a/xfa/fxfa/parser/cxfa_extras.cpp
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Extras::CXFA_Extras(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Extras::CXFA_Extras(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
diff --git a/xfa/fxfa/parser/cxfa_extras.h b/xfa/fxfa/parser/cxfa_extras.h
index 8be1239..3b3c6b4 100644
--- a/xfa/fxfa/parser/cxfa_extras.h
+++ b/xfa/fxfa/parser/cxfa_extras.h
@@ -11,7 +11,7 @@
 
 class CXFA_Extras : public CXFA_Node {
  public:
-  CXFA_Extras(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Extras(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Extras() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp
index 95fdcb0..5fd07d6 100644
--- a/xfa/fxfa/parser/cxfa_field.cpp
+++ b/xfa/fxfa/parser/cxfa_field.cpp
@@ -52,7 +52,7 @@
 
 }  // namespace
 
-CXFA_Field::CXFA_Field(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Field::CXFA_Field(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_field.h b/xfa/fxfa/parser/cxfa_field.h
index d662a4c..b2f7a05 100644
--- a/xfa/fxfa/parser/cxfa_field.h
+++ b/xfa/fxfa/parser/cxfa_field.h
@@ -11,7 +11,7 @@
 
 class CXFA_Field : public CXFA_Node {
  public:
-  CXFA_Field(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Field(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Field() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
index 4b045ce..340d94c 100644
--- a/xfa/fxfa/parser/cxfa_fill.cpp
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -30,7 +30,7 @@
 
 }  // namespace
 
-CXFA_Fill::CXFA_Fill(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Fill::CXFA_Fill(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_fill.h b/xfa/fxfa/parser/cxfa_fill.h
index 681b44d..ba18b91 100644
--- a/xfa/fxfa/parser/cxfa_fill.h
+++ b/xfa/fxfa/parser/cxfa_fill.h
@@ -11,7 +11,7 @@
 
 class CXFA_Fill : public CXFA_Node {
  public:
-  CXFA_Fill(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Fill(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Fill() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp
index cf45278..2bb5952 100644
--- a/xfa/fxfa/parser/cxfa_filter.cpp
+++ b/xfa/fxfa/parser/cxfa_filter.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_Filter::CXFA_Filter(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Filter::CXFA_Filter(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_filter.h b/xfa/fxfa/parser/cxfa_filter.h
index 4b636f8..2ac069a 100644
--- a/xfa/fxfa/parser/cxfa_filter.h
+++ b/xfa/fxfa/parser/cxfa_filter.h
@@ -11,7 +11,7 @@
 
 class CXFA_Filter : public CXFA_Node {
  public:
-  CXFA_Filter(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Filter(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Filter() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp
index f95757d..2227e8b 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.cpp
+++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_FlipLabel::CXFA_FlipLabel(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_FlipLabel::CXFA_FlipLabel(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.h b/xfa/fxfa/parser/cxfa_fliplabel.h
index 4965769..dac0564 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.h
+++ b/xfa/fxfa/parser/cxfa_fliplabel.h
@@ -11,7 +11,7 @@
 
 class CXFA_FlipLabel : public CXFA_Node {
  public:
-  CXFA_FlipLabel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_FlipLabel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_FlipLabel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
index d0e4a1b..b1b0116 100644
--- a/xfa/fxfa/parser/cxfa_float.cpp
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Float::CXFA_Float(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Float::CXFA_Float(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_float.h b/xfa/fxfa/parser/cxfa_float.h
index 02f3f79..f93b3dd 100644
--- a/xfa/fxfa/parser/cxfa_float.h
+++ b/xfa/fxfa/parser/cxfa_float.h
@@ -11,7 +11,7 @@
 
 class CXFA_Float : public CXFA_Node {
  public:
-  CXFA_Float(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Float(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Float() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
index 06a869a..c81e951 100644
--- a/xfa/fxfa/parser/cxfa_font.cpp
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -47,7 +47,7 @@
 
 }  // namespace
 
-CXFA_Font::CXFA_Font(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Font::CXFA_Font(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_font.h b/xfa/fxfa/parser/cxfa_font.h
index f43610f..59b0c71 100644
--- a/xfa/fxfa/parser/cxfa_font.h
+++ b/xfa/fxfa/parser/cxfa_font.h
@@ -11,7 +11,7 @@
 
 class CXFA_Font : public CXFA_Node {
  public:
-  CXFA_Font(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Font(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Font() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.cpp b/xfa/fxfa/parser/cxfa_fontinfo.cpp
index 4ac246f..ee1dc6e 100644
--- a/xfa/fxfa/parser/cxfa_fontinfo.cpp
+++ b/xfa/fxfa/parser/cxfa_fontinfo.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_FontInfo::CXFA_FontInfo(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_FontInfo::CXFA_FontInfo(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.h b/xfa/fxfa/parser/cxfa_fontinfo.h
index 7e84c07..f9facd8 100644
--- a/xfa/fxfa/parser/cxfa_fontinfo.h
+++ b/xfa/fxfa/parser/cxfa_fontinfo.h
@@ -11,7 +11,7 @@
 
 class CXFA_FontInfo : public CXFA_Node {
  public:
-  CXFA_FontInfo(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_FontInfo(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_FontInfo() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp
index b60dca6..94068c4 100644
--- a/xfa/fxfa/parser/cxfa_form.cpp
+++ b/xfa/fxfa/parser/cxfa_form.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_Form::CXFA_Form(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Form::CXFA_Form(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Form,
diff --git a/xfa/fxfa/parser/cxfa_form.h b/xfa/fxfa/parser/cxfa_form.h
index e0600a1..39d1d90 100644
--- a/xfa/fxfa/parser/cxfa_form.h
+++ b/xfa/fxfa/parser/cxfa_form.h
@@ -11,7 +11,7 @@
 
 class CXFA_Form : public CXFA_Node {
  public:
-  CXFA_Form(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Form(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Form() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp
index 4546cf7..ba90772 100644
--- a/xfa/fxfa/parser/cxfa_format.cpp
+++ b/xfa/fxfa/parser/cxfa_format.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Format::CXFA_Format(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Format::CXFA_Format(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_format.h b/xfa/fxfa/parser/cxfa_format.h
index 2de5ab3..3e31716 100644
--- a/xfa/fxfa/parser/cxfa_format.h
+++ b/xfa/fxfa/parser/cxfa_format.h
@@ -11,7 +11,7 @@
 
 class CXFA_Format : public CXFA_Node {
  public:
-  CXFA_Format(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Format(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Format() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
index 500cf11..887e5cc 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_FormFieldFilling::CXFA_FormFieldFilling(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.h b/xfa/fxfa/parser/cxfa_formfieldfilling.h
index 65d4301..77f1b8f 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.h
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.h
@@ -11,7 +11,7 @@
 
 class CXFA_FormFieldFilling : public CXFA_Node {
  public:
-  CXFA_FormFieldFilling(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_FormFieldFilling(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_FormFieldFilling() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp
index 1ae6cf7..ca92d3e 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.cpp
+++ b/xfa/fxfa/parser/cxfa_groupparent.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_GroupParent::CXFA_GroupParent(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_GroupParent::CXFA_GroupParent(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_groupparent.h b/xfa/fxfa/parser/cxfa_groupparent.h
index b56b78b..7de296c 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.h
+++ b/xfa/fxfa/parser/cxfa_groupparent.h
@@ -11,7 +11,7 @@
 
 class CXFA_GroupParent : public CXFA_Node {
  public:
-  CXFA_GroupParent(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_GroupParent(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_GroupParent() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
index 6750b8b..405fcd5 100644
--- a/xfa/fxfa/parser/cxfa_handler.cpp
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Handler::CXFA_Handler(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Handler::CXFA_Handler(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_handler.h b/xfa/fxfa/parser/cxfa_handler.h
index 6f18daf..e575c0b 100644
--- a/xfa/fxfa/parser/cxfa_handler.h
+++ b/xfa/fxfa/parser/cxfa_handler.h
@@ -11,7 +11,7 @@
 
 class CXFA_Handler : public CXFA_Node {
  public:
-  CXFA_Handler(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Handler(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Handler() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp b/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp
index 6276bb9..af85c29 100644
--- a/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp
+++ b/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp
@@ -13,7 +13,7 @@
 }  // namespace
 
 CXFA_HostPseudoModel::CXFA_HostPseudoModel(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_hostpseudomodel.h b/xfa/fxfa/parser/cxfa_hostpseudomodel.h
index ba7b227..8fabd53 100644
--- a/xfa/fxfa/parser/cxfa_hostpseudomodel.h
+++ b/xfa/fxfa/parser/cxfa_hostpseudomodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_HostPseudoModel : public CXFA_Node {
  public:
-  CXFA_HostPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_HostPseudoModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_HostPseudoModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp
index 1e7c882..0e835ed 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.cpp
+++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Hyphenation::CXFA_Hyphenation(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Hyphenation::CXFA_Hyphenation(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.h b/xfa/fxfa/parser/cxfa_hyphenation.h
index f364c12..2601c5f 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.h
+++ b/xfa/fxfa/parser/cxfa_hyphenation.h
@@ -11,7 +11,7 @@
 
 class CXFA_Hyphenation : public CXFA_Node {
  public:
-  CXFA_Hyphenation(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Hyphenation(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Hyphenation() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp
index 046899d..ae612ef 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.cpp
+++ b/xfa/fxfa/parser/cxfa_ifempty.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_IfEmpty::CXFA_IfEmpty(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_IfEmpty::CXFA_IfEmpty(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_ifempty.h b/xfa/fxfa/parser/cxfa_ifempty.h
index ed9860c..3c3c1b4 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.h
+++ b/xfa/fxfa/parser/cxfa_ifempty.h
@@ -11,7 +11,7 @@
 
 class CXFA_IfEmpty : public CXFA_Node {
  public:
-  CXFA_IfEmpty(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_IfEmpty(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_IfEmpty() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
index 0e4bf44..0bc82a6 100644
--- a/xfa/fxfa/parser/cxfa_image.cpp
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_Image::CXFA_Image(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Image::CXFA_Image(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_image.h b/xfa/fxfa/parser/cxfa_image.h
index 41d4b67..07ebf9d 100644
--- a/xfa/fxfa/parser/cxfa_image.h
+++ b/xfa/fxfa/parser/cxfa_image.h
@@ -11,7 +11,7 @@
 
 class CXFA_Image : public CXFA_Node {
  public:
-  CXFA_Image(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Image(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Image() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp
index ce5ac5d..937f3dc 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.cpp
+++ b/xfa/fxfa/parser/cxfa_imageedit.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_ImageEdit::CXFA_ImageEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ImageEdit::CXFA_ImageEdit(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_imageedit.h b/xfa/fxfa/parser/cxfa_imageedit.h
index 616efe7..379750c 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.h
+++ b/xfa/fxfa/parser/cxfa_imageedit.h
@@ -11,7 +11,7 @@
 
 class CXFA_ImageEdit : public CXFA_Node {
  public:
-  CXFA_ImageEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ImageEdit(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ImageEdit() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
index daefddd..dc887d3 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_IncludeXDPContent::CXFA_IncludeXDPContent(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.h b/xfa/fxfa/parser/cxfa_includexdpcontent.h
index 564dbba..309a7c6 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.h
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.h
@@ -11,7 +11,7 @@
 
 class CXFA_IncludeXDPContent : public CXFA_Node {
  public:
-  CXFA_IncludeXDPContent(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_IncludeXDPContent(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_IncludeXDPContent() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp
index 09be8aa..43ba0cb 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_IncrementalLoad::CXFA_IncrementalLoad(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.h b/xfa/fxfa/parser/cxfa_incrementalload.h
index d048849..9ea8f29 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.h
+++ b/xfa/fxfa/parser/cxfa_incrementalload.h
@@ -11,7 +11,7 @@
 
 class CXFA_IncrementalLoad : public CXFA_Node {
  public:
-  CXFA_IncrementalLoad(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_IncrementalLoad(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_IncrementalLoad() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
index 7fa45c5..659dd21 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_IncrementalMerge::CXFA_IncrementalMerge(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.h b/xfa/fxfa/parser/cxfa_incrementalmerge.h
index ae1bab1..c8e6554 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.h
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.h
@@ -11,7 +11,7 @@
 
 class CXFA_IncrementalMerge : public CXFA_Node {
  public:
-  CXFA_IncrementalMerge(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_IncrementalMerge(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_IncrementalMerge() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
index cb971bc..42b21eb 100644
--- a/xfa/fxfa/parser/cxfa_insert.cpp
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Insert::CXFA_Insert(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Insert::CXFA_Insert(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_insert.h b/xfa/fxfa/parser/cxfa_insert.h
index b3d807f..92579c3 100644
--- a/xfa/fxfa/parser/cxfa_insert.h
+++ b/xfa/fxfa/parser/cxfa_insert.h
@@ -11,7 +11,7 @@
 
 class CXFA_Insert : public CXFA_Node {
  public:
-  CXFA_Insert(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Insert(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Insert() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp
index 89081ae..bd37593 100644
--- a/xfa/fxfa/parser/cxfa_instancemanager.cpp
+++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp
@@ -19,7 +19,7 @@
 }  // namespace
 
 CXFA_InstanceManager::CXFA_InstanceManager(CXFA_Document* doc,
-                                           XFA_XDPPACKET packet)
+                                           XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Form,
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.h b/xfa/fxfa/parser/cxfa_instancemanager.h
index 1fbe0a8..1910b92 100644
--- a/xfa/fxfa/parser/cxfa_instancemanager.h
+++ b/xfa/fxfa/parser/cxfa_instancemanager.h
@@ -11,7 +11,7 @@
 
 class CXFA_InstanceManager : public CXFA_Node {
  public:
-  CXFA_InstanceManager(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_InstanceManager(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_InstanceManager() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
index 0b46553..7f7b9a8 100644
--- a/xfa/fxfa/parser/cxfa_integer.cpp
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Integer::CXFA_Integer(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Integer::CXFA_Integer(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
diff --git a/xfa/fxfa/parser/cxfa_integer.h b/xfa/fxfa/parser/cxfa_integer.h
index 2f412b8..2e5631d 100644
--- a/xfa/fxfa/parser/cxfa_integer.h
+++ b/xfa/fxfa/parser/cxfa_integer.h
@@ -11,7 +11,7 @@
 
 class CXFA_Integer : public CXFA_Node {
  public:
-  CXFA_Integer(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Integer(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Integer() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
index f01a7ad..e68d957 100644
--- a/xfa/fxfa/parser/cxfa_interactive.cpp
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Interactive::CXFA_Interactive(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Interactive::CXFA_Interactive(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_interactive.h b/xfa/fxfa/parser/cxfa_interactive.h
index 64f9d31..69f2918 100644
--- a/xfa/fxfa/parser/cxfa_interactive.h
+++ b/xfa/fxfa/parser/cxfa_interactive.h
@@ -11,7 +11,7 @@
 
 class CXFA_Interactive : public CXFA_Node {
  public:
-  CXFA_Interactive(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Interactive(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Interactive() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
index e07eb05..b6909d4 100644
--- a/xfa/fxfa/parser/cxfa_issuers.cpp
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Issuers::CXFA_Issuers(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Issuers::CXFA_Issuers(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_issuers.h b/xfa/fxfa/parser/cxfa_issuers.h
index d131bbb..6b94f15 100644
--- a/xfa/fxfa/parser/cxfa_issuers.h
+++ b/xfa/fxfa/parser/cxfa_issuers.h
@@ -11,7 +11,7 @@
 
 class CXFA_Issuers : public CXFA_Node {
  public:
-  CXFA_Issuers(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Issuers(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Issuers() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
index 6a07703..833e284 100644
--- a/xfa/fxfa/parser/cxfa_items.cpp
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Items::CXFA_Items(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Items::CXFA_Items(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_items.h b/xfa/fxfa/parser/cxfa_items.h
index e480167..586fabd 100644
--- a/xfa/fxfa/parser/cxfa_items.h
+++ b/xfa/fxfa/parser/cxfa_items.h
@@ -11,7 +11,7 @@
 
 class CXFA_Items : public CXFA_Node {
  public:
-  CXFA_Items(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Items(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Items() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp
index 1c8a883..3735e2f 100644
--- a/xfa/fxfa/parser/cxfa_jog.cpp
+++ b/xfa/fxfa/parser/cxfa_jog.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Jog::CXFA_Jog(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Jog::CXFA_Jog(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_jog.h b/xfa/fxfa/parser/cxfa_jog.h
index d7b2d71..266ccd1 100644
--- a/xfa/fxfa/parser/cxfa_jog.h
+++ b/xfa/fxfa/parser/cxfa_jog.h
@@ -11,7 +11,7 @@
 
 class CXFA_Jog : public CXFA_Node {
  public:
-  CXFA_Jog(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Jog(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Jog() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp
index 51fb946..c72592b 100644
--- a/xfa/fxfa/parser/cxfa_keep.cpp
+++ b/xfa/fxfa/parser/cxfa_keep.cpp
@@ -26,7 +26,7 @@
 
 }  // namespace
 
-CXFA_Keep::CXFA_Keep(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Keep::CXFA_Keep(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_keep.h b/xfa/fxfa/parser/cxfa_keep.h
index 9e63398..7d53f96 100644
--- a/xfa/fxfa/parser/cxfa_keep.h
+++ b/xfa/fxfa/parser/cxfa_keep.h
@@ -11,7 +11,7 @@
 
 class CXFA_Keep : public CXFA_Node {
  public:
-  CXFA_Keep(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Keep(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Keep() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
index c24435e..269a58c 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.cpp
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -29,7 +29,7 @@
 
 }  // namespace
 
-CXFA_KeyUsage::CXFA_KeyUsage(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_KeyUsage::CXFA_KeyUsage(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_keyusage.h b/xfa/fxfa/parser/cxfa_keyusage.h
index e12de37..b258074 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.h
+++ b/xfa/fxfa/parser/cxfa_keyusage.h
@@ -11,7 +11,7 @@
 
 class CXFA_KeyUsage : public CXFA_Node {
  public:
-  CXFA_KeyUsage(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_KeyUsage(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_KeyUsage() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.cpp b/xfa/fxfa/parser/cxfa_labelprinter.cpp
index 55ac1ff..0520cb6 100644
--- a/xfa/fxfa/parser/cxfa_labelprinter.cpp
+++ b/xfa/fxfa/parser/cxfa_labelprinter.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_LabelPrinter::CXFA_LabelPrinter(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_LabelPrinter::CXFA_LabelPrinter(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.h b/xfa/fxfa/parser/cxfa_labelprinter.h
index 7528311..e3f5d3b 100644
--- a/xfa/fxfa/parser/cxfa_labelprinter.h
+++ b/xfa/fxfa/parser/cxfa_labelprinter.h
@@ -11,7 +11,7 @@
 
 class CXFA_LabelPrinter : public CXFA_Node {
  public:
-  CXFA_LabelPrinter(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_LabelPrinter(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_LabelPrinter() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp
index 3625061..bc2933f 100644
--- a/xfa/fxfa/parser/cxfa_layout.cpp
+++ b/xfa/fxfa/parser/cxfa_layout.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Layout::CXFA_Layout(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Layout::CXFA_Layout(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_layout.h b/xfa/fxfa/parser/cxfa_layout.h
index 64ba8de..93e069e 100644
--- a/xfa/fxfa/parser/cxfa_layout.h
+++ b/xfa/fxfa/parser/cxfa_layout.h
@@ -11,7 +11,7 @@
 
 class CXFA_Layout : public CXFA_Node {
  public:
-  CXFA_Layout(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Layout(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Layout() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
index e0678c4..70d5f46 100644
--- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
@@ -310,7 +310,7 @@
   CXFA_Document* pDocument = pTemplateNode->GetDocument();
   pPageArea = m_pTemplatePageSetRoot->GetChild(0, XFA_Element::PageArea, false);
   if (!pPageArea) {
-    pPageArea = pDocument->CreateNode(m_pTemplatePageSetRoot->GetPacketID(),
+    pPageArea = pDocument->CreateNode(m_pTemplatePageSetRoot->GetPacketType(),
                                       XFA_Element::PageArea);
     if (!pPageArea)
       return false;
@@ -321,7 +321,7 @@
   CXFA_Node* pContentArea =
       pPageArea->GetChild(0, XFA_Element::ContentArea, false);
   if (!pContentArea) {
-    pContentArea = pDocument->CreateNode(pPageArea->GetPacketID(),
+    pContentArea = pDocument->CreateNode(pPageArea->GetPacketType(),
                                          XFA_Element::ContentArea);
     if (!pContentArea)
       return false;
@@ -340,7 +340,7 @@
   CXFA_Node* pMedium = pPageArea->GetChild(0, XFA_Element::Medium, false);
   if (!pMedium) {
     pMedium =
-        pDocument->CreateNode(pPageArea->GetPacketID(), XFA_Element::Medium);
+        pDocument->CreateNode(pPageArea->GetPacketType(), XFA_Element::Medium);
     if (!pContentArea)
       return false;
 
@@ -1721,8 +1721,8 @@
       iIndex++;
     }
     if (!pPendingPageSet) {
-      if (pRootPageSetContainerItem->m_pFormNode->GetPacketID() ==
-          XFA_XDPPACKET_Template) {
+      if (pRootPageSetContainerItem->m_pFormNode->GetPacketType() ==
+          XFA_PacketType::Template) {
         pPendingPageSet =
             pRootPageSetContainerItem->m_pFormNode->CloneTemplateToForm(false);
       } else {
@@ -1738,7 +1738,7 @@
     for (CXFA_ContainerLayoutItem* pContainerItem = iterator.MoveToNext();
          pContainerItem; pContainerItem = iterator.MoveToNext()) {
       CXFA_Node* pNode = pContainerItem->m_pFormNode;
-      if (pNode->GetPacketID() != XFA_XDPPACKET_Template)
+      if (pNode->GetPacketType() != XFA_PacketType::Template)
         continue;
 
       switch (pNode->GetElementType()) {
@@ -1980,7 +1980,7 @@
 
   CXFA_ContainerLayoutItem* pRootLayoutItem = m_pPageSetLayoutItemRoot;
   if (pRootLayoutItem &&
-      pRootLayoutItem->m_pFormNode->GetPacketID() == XFA_XDPPACKET_Form) {
+      pRootLayoutItem->m_pFormNode->GetPacketType() == XFA_PacketType::Form) {
     CXFA_Node* pPageSetFormNode = pRootLayoutItem->m_pFormNode;
     pRootLayoutItem->m_pFormNode->GetDocument()->m_pPendingPageSet.clear();
     if (pPageSetFormNode->HasRemovedChildren()) {
diff --git a/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp b/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp
index df95831..cdf092d 100644
--- a/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp
@@ -13,7 +13,7 @@
 }  // namespace
 
 CXFA_LayoutPseudoModel::CXFA_LayoutPseudoModel(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_layoutpseudomodel.h b/xfa/fxfa/parser/cxfa_layoutpseudomodel.h
index 8bd46ec..8ffa4bb 100644
--- a/xfa/fxfa/parser/cxfa_layoutpseudomodel.h
+++ b/xfa/fxfa/parser/cxfa_layoutpseudomodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_LayoutPseudoModel : public CXFA_Node {
  public:
-  CXFA_LayoutPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_LayoutPseudoModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_LayoutPseudoModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp
index 98a52f6..7343805 100644
--- a/xfa/fxfa/parser/cxfa_level.cpp
+++ b/xfa/fxfa/parser/cxfa_level.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Level::CXFA_Level(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Level::CXFA_Level(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_level.h b/xfa/fxfa/parser/cxfa_level.h
index 512b1b9..abdd048 100644
--- a/xfa/fxfa/parser/cxfa_level.h
+++ b/xfa/fxfa/parser/cxfa_level.h
@@ -11,7 +11,7 @@
 
 class CXFA_Level : public CXFA_Node {
  public:
-  CXFA_Level(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Level(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Level() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp
index 85e41ed..e517cbb 100644
--- a/xfa/fxfa/parser/cxfa_line.cpp
+++ b/xfa/fxfa/parser/cxfa_line.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Line::CXFA_Line(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Line::CXFA_Line(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_line.h b/xfa/fxfa/parser/cxfa_line.h
index c575c5e..9126db0 100644
--- a/xfa/fxfa/parser/cxfa_line.h
+++ b/xfa/fxfa/parser/cxfa_line.h
@@ -11,7 +11,7 @@
 
 class CXFA_Line : public CXFA_Node {
  public:
-  CXFA_Line(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Line(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Line() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp
index f4d5ba9..c92598f 100644
--- a/xfa/fxfa/parser/cxfa_linear.cpp
+++ b/xfa/fxfa/parser/cxfa_linear.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Linear::CXFA_Linear(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Linear::CXFA_Linear(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_linear.h b/xfa/fxfa/parser/cxfa_linear.h
index e3572b0..af1b8e8 100644
--- a/xfa/fxfa/parser/cxfa_linear.h
+++ b/xfa/fxfa/parser/cxfa_linear.h
@@ -11,7 +11,7 @@
 
 class CXFA_Linear : public CXFA_Node {
  public:
-  CXFA_Linear(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Linear(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Linear() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp
index 507ed29..0ae6b8d 100644
--- a/xfa/fxfa/parser/cxfa_linearized.cpp
+++ b/xfa/fxfa/parser/cxfa_linearized.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Linearized::CXFA_Linearized(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Linearized::CXFA_Linearized(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_linearized.h b/xfa/fxfa/parser/cxfa_linearized.h
index 59f41fe..df7846e 100644
--- a/xfa/fxfa/parser/cxfa_linearized.h
+++ b/xfa/fxfa/parser/cxfa_linearized.h
@@ -11,7 +11,7 @@
 
 class CXFA_Linearized : public CXFA_Node {
  public:
-  CXFA_Linearized(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Linearized(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Linearized() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_list.cpp b/xfa/fxfa/parser/cxfa_list.cpp
index 9c15b57..4f8c1c8 100644
--- a/xfa/fxfa/parser/cxfa_list.cpp
+++ b/xfa/fxfa/parser/cxfa_list.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_List::CXFA_List(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_List::CXFA_List(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_list.h b/xfa/fxfa/parser/cxfa_list.h
index 8c54a98..c282935 100644
--- a/xfa/fxfa/parser/cxfa_list.h
+++ b/xfa/fxfa/parser/cxfa_list.h
@@ -11,7 +11,7 @@
 
 class CXFA_List : public CXFA_Node {
  public:
-  CXFA_List(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_List(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_List() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_locale.cpp b/xfa/fxfa/parser/cxfa_locale.cpp
index a60fba2..c601139 100644
--- a/xfa/fxfa/parser/cxfa_locale.cpp
+++ b/xfa/fxfa/parser/cxfa_locale.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Locale::CXFA_Locale(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Locale::CXFA_Locale(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet),
diff --git a/xfa/fxfa/parser/cxfa_locale.h b/xfa/fxfa/parser/cxfa_locale.h
index 4071d33..3a7e83d 100644
--- a/xfa/fxfa/parser/cxfa_locale.h
+++ b/xfa/fxfa/parser/cxfa_locale.h
@@ -11,7 +11,7 @@
 
 class CXFA_Locale : public CXFA_Node {
  public:
-  CXFA_Locale(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Locale(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Locale() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp
index 86c2d21..b669e3b 100644
--- a/xfa/fxfa/parser/cxfa_localeset.cpp
+++ b/xfa/fxfa/parser/cxfa_localeset.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_LocaleSet::CXFA_LocaleSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_LocaleSet::CXFA_LocaleSet(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet),
diff --git a/xfa/fxfa/parser/cxfa_localeset.h b/xfa/fxfa/parser/cxfa_localeset.h
index 3a392cd..1d65ad1 100644
--- a/xfa/fxfa/parser/cxfa_localeset.h
+++ b/xfa/fxfa/parser/cxfa_localeset.h
@@ -11,7 +11,7 @@
 
 class CXFA_LocaleSet : public CXFA_Node {
  public:
-  CXFA_LocaleSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_LocaleSet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_LocaleSet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp
index ea015e5..2b09736 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.cpp
+++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_LockDocument::CXFA_LockDocument(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_LockDocument::CXFA_LockDocument(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.h b/xfa/fxfa/parser/cxfa_lockdocument.h
index c5321c8..025031a 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.h
+++ b/xfa/fxfa/parser/cxfa_lockdocument.h
@@ -11,7 +11,7 @@
 
 class CXFA_LockDocument : public CXFA_Node {
  public:
-  CXFA_LockDocument(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_LockDocument(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_LockDocument() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_log.cpp b/xfa/fxfa/parser/cxfa_log.cpp
index 79aac1a..38651cb 100644
--- a/xfa/fxfa/parser/cxfa_log.cpp
+++ b/xfa/fxfa/parser/cxfa_log.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Log::CXFA_Log(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Log::CXFA_Log(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_log.h b/xfa/fxfa/parser/cxfa_log.h
index 2add392..17fd290 100644
--- a/xfa/fxfa/parser/cxfa_log.h
+++ b/xfa/fxfa/parser/cxfa_log.h
@@ -11,7 +11,7 @@
 
 class CXFA_Log : public CXFA_Node {
  public:
-  CXFA_Log(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Log(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Log() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_logpseudomodel.cpp b/xfa/fxfa/parser/cxfa_logpseudomodel.cpp
index ed88376..c8db05c 100644
--- a/xfa/fxfa/parser/cxfa_logpseudomodel.cpp
+++ b/xfa/fxfa/parser/cxfa_logpseudomodel.cpp
@@ -13,7 +13,7 @@
 }  // namespace
 
 CXFA_LogPseudoModel::CXFA_LogPseudoModel(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_logpseudomodel.h b/xfa/fxfa/parser/cxfa_logpseudomodel.h
index 3b1b0e1..7d24c42 100644
--- a/xfa/fxfa/parser/cxfa_logpseudomodel.h
+++ b/xfa/fxfa/parser/cxfa_logpseudomodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_LogPseudoModel : public CXFA_Node {
  public:
-  CXFA_LogPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_LogPseudoModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_LogPseudoModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp
index 0d278a2..2406160 100644
--- a/xfa/fxfa/parser/cxfa_manifest.cpp
+++ b/xfa/fxfa/parser/cxfa_manifest.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Manifest::CXFA_Manifest(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Manifest::CXFA_Manifest(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_manifest.h b/xfa/fxfa/parser/cxfa_manifest.h
index 603df54..a13cdac 100644
--- a/xfa/fxfa/parser/cxfa_manifest.h
+++ b/xfa/fxfa/parser/cxfa_manifest.h
@@ -11,7 +11,7 @@
 
 class CXFA_Manifest : public CXFA_Node {
  public:
-  CXFA_Manifest(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Manifest(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Manifest() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
index 6fd384a..adcb879 100644
--- a/xfa/fxfa/parser/cxfa_map.cpp
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Map::CXFA_Map(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Map::CXFA_Map(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_SourceSet),
diff --git a/xfa/fxfa/parser/cxfa_map.h b/xfa/fxfa/parser/cxfa_map.h
index b4535c2..c49568f 100644
--- a/xfa/fxfa/parser/cxfa_map.h
+++ b/xfa/fxfa/parser/cxfa_map.h
@@ -11,7 +11,7 @@
 
 class CXFA_Map : public CXFA_Node {
  public:
-  CXFA_Map(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Map(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Map() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp
index 367d6ee..6ad52c1 100644
--- a/xfa/fxfa/parser/cxfa_margin.cpp
+++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Margin::CXFA_Margin(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Margin::CXFA_Margin(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_margin.h b/xfa/fxfa/parser/cxfa_margin.h
index 9883e67..3ac7657 100644
--- a/xfa/fxfa/parser/cxfa_margin.h
+++ b/xfa/fxfa/parser/cxfa_margin.h
@@ -11,7 +11,7 @@
 
 class CXFA_Margin : public CXFA_Node {
  public:
-  CXFA_Margin(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Margin(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Margin() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
index 655b36a..a3703c3 100644
--- a/xfa/fxfa/parser/cxfa_mdp.cpp
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Mdp::CXFA_Mdp(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Mdp::CXFA_Mdp(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_mdp.h b/xfa/fxfa/parser/cxfa_mdp.h
index a802b16..0ae626d 100644
--- a/xfa/fxfa/parser/cxfa_mdp.h
+++ b/xfa/fxfa/parser/cxfa_mdp.h
@@ -11,7 +11,7 @@
 
 class CXFA_Mdp : public CXFA_Node {
  public:
-  CXFA_Mdp(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Mdp(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Mdp() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
index db0c492..a124dab 100644
--- a/xfa/fxfa/parser/cxfa_medium.cpp
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -28,7 +28,7 @@
 
 }  // namespace
 
-CXFA_Medium::CXFA_Medium(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Medium::CXFA_Medium(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_medium.h b/xfa/fxfa/parser/cxfa_medium.h
index 4b5b540..b9b9c5d 100644
--- a/xfa/fxfa/parser/cxfa_medium.h
+++ b/xfa/fxfa/parser/cxfa_medium.h
@@ -11,7 +11,7 @@
 
 class CXFA_Medium : public CXFA_Node {
  public:
-  CXFA_Medium(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Medium(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Medium() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.cpp b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
index d24f889..9a41f1d 100644
--- a/xfa/fxfa/parser/cxfa_mediuminfo.cpp
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_MediumInfo::CXFA_MediumInfo(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_MediumInfo::CXFA_MediumInfo(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.h b/xfa/fxfa/parser/cxfa_mediuminfo.h
index 11d72b3..da100ea 100644
--- a/xfa/fxfa/parser/cxfa_mediuminfo.h
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.h
@@ -11,7 +11,7 @@
 
 class CXFA_MediumInfo : public CXFA_Node {
  public:
-  CXFA_MediumInfo(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_MediumInfo(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_MediumInfo() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_meridiem.cpp b/xfa/fxfa/parser/cxfa_meridiem.cpp
index 89227f6..357ce2c 100644
--- a/xfa/fxfa/parser/cxfa_meridiem.cpp
+++ b/xfa/fxfa/parser/cxfa_meridiem.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Meridiem::CXFA_Meridiem(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Meridiem::CXFA_Meridiem(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_meridiem.h b/xfa/fxfa/parser/cxfa_meridiem.h
index 0c3935c..30bd4b0 100644
--- a/xfa/fxfa/parser/cxfa_meridiem.h
+++ b/xfa/fxfa/parser/cxfa_meridiem.h
@@ -11,7 +11,7 @@
 
 class CXFA_Meridiem : public CXFA_Node {
  public:
-  CXFA_Meridiem(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Meridiem(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Meridiem() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.cpp b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
index aad222a..dfb603e 100644
--- a/xfa/fxfa/parser/cxfa_meridiemnames.cpp
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
@@ -15,7 +15,8 @@
 
 }  // namespace
 
-CXFA_MeridiemNames::CXFA_MeridiemNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_MeridiemNames::CXFA_MeridiemNames(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.h b/xfa/fxfa/parser/cxfa_meridiemnames.h
index d98761f..8cade21 100644
--- a/xfa/fxfa/parser/cxfa_meridiemnames.h
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.h
@@ -11,7 +11,7 @@
 
 class CXFA_MeridiemNames : public CXFA_Node {
  public:
-  CXFA_MeridiemNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_MeridiemNames(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_MeridiemNames() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp
index d68f472..4863e30 100644
--- a/xfa/fxfa/parser/cxfa_message.cpp
+++ b/xfa/fxfa/parser/cxfa_message.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Message::CXFA_Message(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Message::CXFA_Message(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_message.h b/xfa/fxfa/parser/cxfa_message.h
index 00ab899..f172e06 100644
--- a/xfa/fxfa/parser/cxfa_message.h
+++ b/xfa/fxfa/parser/cxfa_message.h
@@ -11,7 +11,7 @@
 
 class CXFA_Message : public CXFA_Node {
  public:
-  CXFA_Message(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Message(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Message() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp
index a89e44c..8ad77a4 100644
--- a/xfa/fxfa/parser/cxfa_messaging.cpp
+++ b/xfa/fxfa/parser/cxfa_messaging.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Messaging::CXFA_Messaging(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Messaging::CXFA_Messaging(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_messaging.h b/xfa/fxfa/parser/cxfa_messaging.h
index 266c345..48d16b3 100644
--- a/xfa/fxfa/parser/cxfa_messaging.h
+++ b/xfa/fxfa/parser/cxfa_messaging.h
@@ -11,7 +11,7 @@
 
 class CXFA_Messaging : public CXFA_Node {
  public:
-  CXFA_Messaging(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Messaging(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Messaging() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp
index 46ddbb2..6195f08 100644
--- a/xfa/fxfa/parser/cxfa_mode.cpp
+++ b/xfa/fxfa/parser/cxfa_mode.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Mode::CXFA_Mode(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Mode::CXFA_Mode(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_mode.h b/xfa/fxfa/parser/cxfa_mode.h
index 3385061..1dfd426 100644
--- a/xfa/fxfa/parser/cxfa_mode.h
+++ b/xfa/fxfa/parser/cxfa_mode.h
@@ -11,7 +11,7 @@
 
 class CXFA_Mode : public CXFA_Node {
  public:
-  CXFA_Mode(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Mode(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Mode() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp
index 3901042..e349dbf 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.cpp
+++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_ModifyAnnots::CXFA_ModifyAnnots(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ModifyAnnots::CXFA_ModifyAnnots(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.h b/xfa/fxfa/parser/cxfa_modifyannots.h
index 601a7a3..4e10921 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.h
+++ b/xfa/fxfa/parser/cxfa_modifyannots.h
@@ -11,7 +11,7 @@
 
 class CXFA_ModifyAnnots : public CXFA_Node {
  public:
-  CXFA_ModifyAnnots(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ModifyAnnots(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ModifyAnnots() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_month.cpp b/xfa/fxfa/parser/cxfa_month.cpp
index 94b9dc0..687ef4a 100644
--- a/xfa/fxfa/parser/cxfa_month.cpp
+++ b/xfa/fxfa/parser/cxfa_month.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Month::CXFA_Month(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Month::CXFA_Month(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_month.h b/xfa/fxfa/parser/cxfa_month.h
index 1936612..69361f5 100644
--- a/xfa/fxfa/parser/cxfa_month.h
+++ b/xfa/fxfa/parser/cxfa_month.h
@@ -11,7 +11,7 @@
 
 class CXFA_Month : public CXFA_Node {
  public:
-  CXFA_Month(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Month(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Month() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_monthnames.cpp b/xfa/fxfa/parser/cxfa_monthnames.cpp
index 96f22df..1b05b0d 100644
--- a/xfa/fxfa/parser/cxfa_monthnames.cpp
+++ b/xfa/fxfa/parser/cxfa_monthnames.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_MonthNames::CXFA_MonthNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_MonthNames::CXFA_MonthNames(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_monthnames.h b/xfa/fxfa/parser/cxfa_monthnames.h
index 9b221d6..f95512b 100644
--- a/xfa/fxfa/parser/cxfa_monthnames.h
+++ b/xfa/fxfa/parser/cxfa_monthnames.h
@@ -11,7 +11,7 @@
 
 class CXFA_MonthNames : public CXFA_Node {
  public:
-  CXFA_MonthNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_MonthNames(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_MonthNames() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp
index 4be43f1..626833b 100644
--- a/xfa/fxfa/parser/cxfa_msgid.cpp
+++ b/xfa/fxfa/parser/cxfa_msgid.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_MsgId::CXFA_MsgId(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_MsgId::CXFA_MsgId(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_msgid.h b/xfa/fxfa/parser/cxfa_msgid.h
index c8d30d6..333085a 100644
--- a/xfa/fxfa/parser/cxfa_msgid.h
+++ b/xfa/fxfa/parser/cxfa_msgid.h
@@ -11,7 +11,7 @@
 
 class CXFA_MsgId : public CXFA_Node {
  public:
-  CXFA_MsgId(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_MsgId(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_MsgId() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp
index 4217c13..dd42694 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.cpp
+++ b/xfa/fxfa/parser/cxfa_nameattr.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_NameAttr::CXFA_NameAttr(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_NameAttr::CXFA_NameAttr(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_nameattr.h b/xfa/fxfa/parser/cxfa_nameattr.h
index bcd0232..05514c0 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.h
+++ b/xfa/fxfa/parser/cxfa_nameattr.h
@@ -11,7 +11,7 @@
 
 class CXFA_NameAttr : public CXFA_Node {
  public:
-  CXFA_NameAttr(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NameAttr(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NameAttr() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp
index 10f4dd6..7ba64a7 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.cpp
+++ b/xfa/fxfa/parser/cxfa_neverembed.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_NeverEmbed::CXFA_NeverEmbed(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_NeverEmbed::CXFA_NeverEmbed(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_neverembed.h b/xfa/fxfa/parser/cxfa_neverembed.h
index 8be160f..11ec928 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.h
+++ b/xfa/fxfa/parser/cxfa_neverembed.h
@@ -11,7 +11,7 @@
 
 class CXFA_NeverEmbed : public CXFA_Node {
  public:
-  CXFA_NeverEmbed(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NeverEmbed(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NeverEmbed() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index c8e2266..ff0a601 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -157,7 +157,7 @@
 }
 
 CXFA_Node::CXFA_Node(CXFA_Document* pDoc,
-                     XFA_XDPPACKET ePacket,
+                     XFA_PacketType ePacket,
                      uint32_t validPackets,
                      XFA_ObjectType oType,
                      XFA_Element eType,
@@ -429,7 +429,7 @@
   if (!property)
     return nodes;
 
-  CXFA_Node* pNewNode = m_pDocument->CreateNode(GetPacketID(), *property);
+  CXFA_Node* pNewNode = m_pDocument->CreateNode(GetPacketType(), *property);
   if (pNewNode) {
     InsertChild(pNewNode, nullptr);
     pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
@@ -445,9 +445,9 @@
 }
 
 CXFA_Node* CXFA_Node::CloneTemplateToForm(bool bRecursive) {
-  ASSERT(m_ePacket == XFA_XDPPACKET_Template);
+  ASSERT(m_ePacket == XFA_PacketType::Template);
   CXFA_Node* pClone =
-      m_pDocument->CreateNode(XFA_XDPPACKET_Form, m_elementType);
+      m_pDocument->CreateNode(XFA_PacketType::Form, m_elementType);
   if (!pClone)
     return nullptr;
 
@@ -473,7 +473,7 @@
 }
 
 CXFA_Node* CXFA_Node::GetBindData() {
-  ASSERT(GetPacketID() == XFA_XDPPACKET_Form);
+  ASSERT(GetPacketType() == XFA_PacketType::Form);
   return JSNode()->GetBindingNode();
 }
 
@@ -542,7 +542,8 @@
 }
 
 bool CXFA_Node::HasBindItem() {
-  return GetPacketID() == XFA_XDPPACKET_Datasets && JSNode()->GetBindingNode();
+  return GetPacketType() == XFA_PacketType::Datasets &&
+         JSNode()->GetBindingNode();
 }
 
 CXFA_WidgetData* CXFA_Node::GetWidgetData() {
@@ -550,7 +551,7 @@
 }
 
 CXFA_WidgetData* CXFA_Node::GetContainerWidgetData() {
-  if (GetPacketID() != XFA_XDPPACKET_Form)
+  if (GetPacketType() != XFA_PacketType::Form)
     return nullptr;
   XFA_Element eType = GetElementType();
   if (eType == XFA_Element::ExclGroup)
@@ -735,35 +736,35 @@
 }
 
 CXFA_Node* CXFA_Node::GetDataDescriptionNode() {
-  if (m_ePacket == XFA_XDPPACKET_Datasets)
+  if (m_ePacket == XFA_PacketType::Datasets)
     return m_pAuxNode;
   return nullptr;
 }
 
 void CXFA_Node::SetDataDescriptionNode(CXFA_Node* pDataDescriptionNode) {
-  ASSERT(m_ePacket == XFA_XDPPACKET_Datasets);
+  ASSERT(m_ePacket == XFA_PacketType::Datasets);
   m_pAuxNode = pDataDescriptionNode;
 }
 
 CXFA_Node* CXFA_Node::GetModelNode() {
-  switch (GetPacketID()) {
-    case XFA_XDPPACKET_XDP:
+  switch (GetPacketType()) {
+    case XFA_PacketType::Xdp:
       return m_pDocument->GetRoot();
-    case XFA_XDPPACKET_Config:
+    case XFA_PacketType::Config:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Config));
-    case XFA_XDPPACKET_Template:
+    case XFA_PacketType::Template:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template));
-    case XFA_XDPPACKET_Form:
+    case XFA_PacketType::Form:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form));
-    case XFA_XDPPACKET_Datasets:
+    case XFA_PacketType::Datasets:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets));
-    case XFA_XDPPACKET_LocaleSet:
+    case XFA_PacketType::LocaleSet:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_LocaleSet));
-    case XFA_XDPPACKET_ConnectionSet:
+    case XFA_PacketType::ConnectionSet:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_ConnectionSet));
-    case XFA_XDPPACKET_SourceSet:
+    case XFA_PacketType::SourceSet:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet));
-    case XFA_XDPPACKET_Xdc:
+    case XFA_PacketType::Xdc:
       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc));
     default:
       return this;
@@ -1041,7 +1042,7 @@
 
 CXFA_Node* CXFA_Node::GetInstanceMgrOfSubform() {
   CXFA_Node* pInstanceMgr = nullptr;
-  if (m_ePacket == XFA_XDPPACKET_Form) {
+  if (m_ePacket == XFA_PacketType::Form) {
     CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent);
     if (!pParentNode || pParentNode->GetElementType() == XFA_Element::Area) {
       return pInstanceMgr;
@@ -1131,7 +1132,7 @@
 }
 
 bool CXFA_Node::IsNeedSavingXMLNode() {
-  return m_pXMLNode && (GetPacketID() == XFA_XDPPACKET_Datasets ||
+  return m_pXMLNode && (GetPacketType() == XFA_PacketType::Datasets ||
                         GetElementType() == XFA_Element::Xfa);
 }
 
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index a2e8b30..066be5e 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -70,7 +70,7 @@
   static XFA_Element NameToElement(const WideString& name);
   static std::unique_ptr<CXFA_Node> Create(CXFA_Document* doc,
                                            XFA_Element element,
-                                           XFA_XDPPACKET packet);
+                                           XFA_PacketType packet);
 
   ~CXFA_Node() override;
 
@@ -84,7 +84,7 @@
   XFA_Attribute GetAttribute(size_t i) const;
   XFA_AttributeType GetAttributeType(XFA_Attribute type) const;
 
-  XFA_XDPPACKET GetPacketID() const { return m_ePacket; }
+  XFA_PacketType GetPacketType() const { return m_ePacket; }
 
   void SetFlag(uint32_t dwFlag, bool bNotify);
   void ClearFlag(uint32_t dwFlag);
@@ -123,7 +123,7 @@
 
   bool IsAttributeInXML();
   bool IsFormContainer() const {
-    return m_ePacket == XFA_XDPPACKET_Form && IsContainerNode();
+    return m_ePacket == XFA_PacketType::Form && IsContainerNode();
   }
   void SetXMLMappingNode(CFX_XMLNode* pXMLNode) { m_pXMLNode = pXMLNode; }
   CFX_XMLNode* GetXMLMappingNode() const { return m_pXMLNode; }
@@ -182,7 +182,7 @@
 
  protected:
   CXFA_Node(CXFA_Document* pDoc,
-            XFA_XDPPACKET ePacket,
+            XFA_PacketType ePacket,
             uint32_t validPackets,
             XFA_ObjectType oType,
             XFA_Element eType,
@@ -208,7 +208,7 @@
   CXFA_Node* m_pLastChild;
   CXFA_Node* m_pParent;
   CFX_XMLNode* m_pXMLNode;
-  const XFA_XDPPACKET m_ePacket;
+  const XFA_PacketType m_ePacket;
   uint16_t m_uNodeFlags;
   uint32_t m_dwNameHash;
   CXFA_Node* m_pAuxNode;
diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp
index 1d7d058..64b70ee 100644
--- a/xfa/fxfa/parser/cxfa_node_statics.cpp
+++ b/xfa/fxfa/parser/cxfa_node_statics.cpp
@@ -922,7 +922,7 @@
 // static
 std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
                                              XFA_Element element,
-                                             XFA_XDPPACKET packet) {
+                                             XFA_PacketType packet) {
   ASSERT(element != XFA_Element::NodeList);
   std::unique_ptr<CXFA_Node> node;
   switch (element) {
@@ -1864,7 +1864,8 @@
       NOTREACHED();
       return nullptr;
   }
-  if (!node || !node->IsValidInPacket(packet))
+  if (!node || !node->IsValidInPacket(static_cast<XFA_XDPPACKET>(
+                   1 << static_cast<uint8_t>(packet))))
     return nullptr;
   return node;
 }
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
index 5c869e4..0978859 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.cpp
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_NumberOfCopies::CXFA_NumberOfCopies(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.h b/xfa/fxfa/parser/cxfa_numberofcopies.h
index 32b3fce..04bb599 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.h
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.h
@@ -11,7 +11,7 @@
 
 class CXFA_NumberOfCopies : public CXFA_Node {
  public:
-  CXFA_NumberOfCopies(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NumberOfCopies(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NumberOfCopies() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp
index 558e2cd..7ca8f05 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp
@@ -17,7 +17,8 @@
 
 }  // namespace
 
-CXFA_NumberPattern::CXFA_NumberPattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_NumberPattern::CXFA_NumberPattern(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.h b/xfa/fxfa/parser/cxfa_numberpattern.h
index 84be0c2..0a4fabd 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.h
+++ b/xfa/fxfa/parser/cxfa_numberpattern.h
@@ -11,7 +11,7 @@
 
 class CXFA_NumberPattern : public CXFA_Node {
  public:
-  CXFA_NumberPattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NumberPattern(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NumberPattern() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.cpp b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
index bcd97cc..a2f8373 100644
--- a/xfa/fxfa/parser/cxfa_numberpatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
@@ -17,7 +17,7 @@
 }  // namespace
 
 CXFA_NumberPatterns::CXFA_NumberPatterns(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.h b/xfa/fxfa/parser/cxfa_numberpatterns.h
index 724070f..ef4f889 100644
--- a/xfa/fxfa/parser/cxfa_numberpatterns.h
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.h
@@ -11,7 +11,7 @@
 
 class CXFA_NumberPatterns : public CXFA_Node {
  public:
-  CXFA_NumberPatterns(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NumberPatterns(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NumberPatterns() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
index 78417c2..a8c3795 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_NumberSymbol::CXFA_NumberSymbol(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_NumberSymbol::CXFA_NumberSymbol(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.h b/xfa/fxfa/parser/cxfa_numbersymbol.h
index a63cf3a..c164b03 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.h
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.h
@@ -11,7 +11,7 @@
 
 class CXFA_NumberSymbol : public CXFA_Node {
  public:
-  CXFA_NumberSymbol(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NumberSymbol(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NumberSymbol() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.cpp b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
index 62a94aa..0d27f69 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
@@ -16,7 +16,8 @@
 
 }  // namespace
 
-CXFA_NumberSymbols::CXFA_NumberSymbols(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_NumberSymbols::CXFA_NumberSymbols(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.h b/xfa/fxfa/parser/cxfa_numbersymbols.h
index af668d0..972df9f 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbols.h
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.h
@@ -11,7 +11,7 @@
 
 class CXFA_NumberSymbols : public CXFA_Node {
  public:
-  CXFA_NumberSymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NumberSymbols(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NumberSymbols() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp
index 812a453..fb0da14 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.cpp
+++ b/xfa/fxfa/parser/cxfa_numericedit.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_NumericEdit::CXFA_NumericEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_NumericEdit::CXFA_NumericEdit(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_numericedit.h b/xfa/fxfa/parser/cxfa_numericedit.h
index ad2523c..d9cfd7e 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.h
+++ b/xfa/fxfa/parser/cxfa_numericedit.h
@@ -11,7 +11,7 @@
 
 class CXFA_NumericEdit : public CXFA_Node {
  public:
-  CXFA_NumericEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_NumericEdit(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_NumericEdit() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp
index 0c50e1f..80089f5 100644
--- a/xfa/fxfa/parser/cxfa_occur.cpp
+++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Occur::CXFA_Occur(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Occur::CXFA_Occur(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_occur.h b/xfa/fxfa/parser/cxfa_occur.h
index 9a39d98..d7ed597 100644
--- a/xfa/fxfa/parser/cxfa_occur.h
+++ b/xfa/fxfa/parser/cxfa_occur.h
@@ -11,7 +11,7 @@
 
 class CXFA_Occur : public CXFA_Node {
  public:
-  CXFA_Occur(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Occur(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Occur() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
index 8b5cdb9..be0d12f 100644
--- a/xfa/fxfa/parser/cxfa_oid.cpp
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Oid::CXFA_Oid(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Oid::CXFA_Oid(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_oid.h b/xfa/fxfa/parser/cxfa_oid.h
index b76fbd0..45abf8b 100644
--- a/xfa/fxfa/parser/cxfa_oid.h
+++ b/xfa/fxfa/parser/cxfa_oid.h
@@ -11,7 +11,7 @@
 
 class CXFA_Oid : public CXFA_Node {
  public:
-  CXFA_Oid(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Oid(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Oid() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
index 2a8ffbc..57bf593 100644
--- a/xfa/fxfa/parser/cxfa_oids.cpp
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Oids::CXFA_Oids(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Oids::CXFA_Oids(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_oids.h b/xfa/fxfa/parser/cxfa_oids.h
index 85d8e26..cc8cd9c 100644
--- a/xfa/fxfa/parser/cxfa_oids.h
+++ b/xfa/fxfa/parser/cxfa_oids.h
@@ -11,7 +11,7 @@
 
 class CXFA_Oids : public CXFA_Node {
  public:
-  CXFA_Oids(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Oids(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Oids() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_openaction.cpp b/xfa/fxfa/parser/cxfa_openaction.cpp
index 69a4e2a..c50f433 100644
--- a/xfa/fxfa/parser/cxfa_openaction.cpp
+++ b/xfa/fxfa/parser/cxfa_openaction.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_OpenAction::CXFA_OpenAction(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_OpenAction::CXFA_OpenAction(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_openaction.h b/xfa/fxfa/parser/cxfa_openaction.h
index ce59fbd..d84eb29 100644
--- a/xfa/fxfa/parser/cxfa_openaction.h
+++ b/xfa/fxfa/parser/cxfa_openaction.h
@@ -11,7 +11,7 @@
 
 class CXFA_OpenAction : public CXFA_Node {
  public:
-  CXFA_OpenAction(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_OpenAction(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_OpenAction() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
index 03d3ee1..3fd753c 100644
--- a/xfa/fxfa/parser/cxfa_operation.cpp
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Operation::CXFA_Operation(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Operation::CXFA_Operation(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_operation.h b/xfa/fxfa/parser/cxfa_operation.h
index e65c936..454a354 100644
--- a/xfa/fxfa/parser/cxfa_operation.h
+++ b/xfa/fxfa/parser/cxfa_operation.h
@@ -11,7 +11,7 @@
 
 class CXFA_Operation : public CXFA_Node {
  public:
-  CXFA_Operation(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Operation(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Operation() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_output.cpp b/xfa/fxfa/parser/cxfa_output.cpp
index 5a7077c..124d7e5 100644
--- a/xfa/fxfa/parser/cxfa_output.cpp
+++ b/xfa/fxfa/parser/cxfa_output.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Output::CXFA_Output(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Output::CXFA_Output(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_output.h b/xfa/fxfa/parser/cxfa_output.h
index 34d3d33..2eb1391 100644
--- a/xfa/fxfa/parser/cxfa_output.h
+++ b/xfa/fxfa/parser/cxfa_output.h
@@ -11,7 +11,7 @@
 
 class CXFA_Output : public CXFA_Node {
  public:
-  CXFA_Output(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Output(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Output() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp
index f6a390a..bb0ef2e 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.cpp
+++ b/xfa/fxfa/parser/cxfa_outputbin.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_OutputBin::CXFA_OutputBin(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_OutputBin::CXFA_OutputBin(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_outputbin.h b/xfa/fxfa/parser/cxfa_outputbin.h
index 2c29c63..25a1ae0 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.h
+++ b/xfa/fxfa/parser/cxfa_outputbin.h
@@ -11,7 +11,7 @@
 
 class CXFA_OutputBin : public CXFA_Node {
  public:
-  CXFA_OutputBin(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_OutputBin(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_OutputBin() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.cpp b/xfa/fxfa/parser/cxfa_outputxsl.cpp
index dd29ad6..d56cc15 100644
--- a/xfa/fxfa/parser/cxfa_outputxsl.cpp
+++ b/xfa/fxfa/parser/cxfa_outputxsl.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_OutputXSL::CXFA_OutputXSL(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_OutputXSL::CXFA_OutputXSL(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.h b/xfa/fxfa/parser/cxfa_outputxsl.h
index 3be7c49..4535523 100644
--- a/xfa/fxfa/parser/cxfa_outputxsl.h
+++ b/xfa/fxfa/parser/cxfa_outputxsl.h
@@ -11,7 +11,7 @@
 
 class CXFA_OutputXSL : public CXFA_Node {
  public:
-  CXFA_OutputXSL(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_OutputXSL(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_OutputXSL() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
index e2290d8..8f96215 100644
--- a/xfa/fxfa/parser/cxfa_overflow.cpp
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Overflow::CXFA_Overflow(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Overflow::CXFA_Overflow(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_overflow.h b/xfa/fxfa/parser/cxfa_overflow.h
index a5283e0..e6627ba 100644
--- a/xfa/fxfa/parser/cxfa_overflow.h
+++ b/xfa/fxfa/parser/cxfa_overflow.h
@@ -11,7 +11,7 @@
 
 class CXFA_Overflow : public CXFA_Node {
  public:
-  CXFA_Overflow(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Overflow(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Overflow() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp
index deaa34a..cf5ee4b 100644
--- a/xfa/fxfa/parser/cxfa_overprint.cpp
+++ b/xfa/fxfa/parser/cxfa_overprint.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Overprint::CXFA_Overprint(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Overprint::CXFA_Overprint(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_overprint.h b/xfa/fxfa/parser/cxfa_overprint.h
index 451dab1..a9ec241 100644
--- a/xfa/fxfa/parser/cxfa_overprint.h
+++ b/xfa/fxfa/parser/cxfa_overprint.h
@@ -11,7 +11,7 @@
 
 class CXFA_Overprint : public CXFA_Node {
  public:
-  CXFA_Overprint(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Overprint(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Overprint() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_packet.cpp b/xfa/fxfa/parser/cxfa_packet.cpp
index dc584180..646933a 100644
--- a/xfa/fxfa/parser/cxfa_packet.cpp
+++ b/xfa/fxfa/parser/cxfa_packet.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Packet::CXFA_Packet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Packet::CXFA_Packet(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_packet.h b/xfa/fxfa/parser/cxfa_packet.h
index 66ea715..6bda61d 100644
--- a/xfa/fxfa/parser/cxfa_packet.h
+++ b/xfa/fxfa/parser/cxfa_packet.h
@@ -11,7 +11,7 @@
 
 class CXFA_Packet : public CXFA_Node {
  public:
-  CXFA_Packet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Packet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Packet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp
index a893a054..21b8b19 100644
--- a/xfa/fxfa/parser/cxfa_packets.cpp
+++ b/xfa/fxfa/parser/cxfa_packets.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Packets::CXFA_Packets(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Packets::CXFA_Packets(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_packets.h b/xfa/fxfa/parser/cxfa_packets.h
index 8a7fde5..ebf29b6 100644
--- a/xfa/fxfa/parser/cxfa_packets.h
+++ b/xfa/fxfa/parser/cxfa_packets.h
@@ -11,7 +11,7 @@
 
 class CXFA_Packets : public CXFA_Node {
  public:
-  CXFA_Packets(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Packets(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Packets() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp
index 2fc487c..2b4b1e1 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.cpp
+++ b/xfa/fxfa/parser/cxfa_pagearea.cpp
@@ -33,7 +33,7 @@
 
 }  // namespace
 
-CXFA_PageArea::CXFA_PageArea(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PageArea::CXFA_PageArea(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_pagearea.h b/xfa/fxfa/parser/cxfa_pagearea.h
index d71fc59..f3cab1e 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.h
+++ b/xfa/fxfa/parser/cxfa_pagearea.h
@@ -11,7 +11,7 @@
 
 class CXFA_PageArea : public CXFA_Node {
  public:
-  CXFA_PageArea(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PageArea(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PageArea() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp
index 81ac51d..4671019 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_PageOffset::CXFA_PageOffset(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PageOffset::CXFA_PageOffset(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.h b/xfa/fxfa/parser/cxfa_pageoffset.h
index 1c8d243..a396c57 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.h
+++ b/xfa/fxfa/parser/cxfa_pageoffset.h
@@ -11,7 +11,7 @@
 
 class CXFA_PageOffset : public CXFA_Node {
  public:
-  CXFA_PageOffset(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PageOffset(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PageOffset() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp
index 48e5031..5de7f5f 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.cpp
+++ b/xfa/fxfa/parser/cxfa_pagerange.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_PageRange::CXFA_PageRange(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PageRange::CXFA_PageRange(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_pagerange.h b/xfa/fxfa/parser/cxfa_pagerange.h
index 6766227..949276a 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.h
+++ b/xfa/fxfa/parser/cxfa_pagerange.h
@@ -11,7 +11,7 @@
 
 class CXFA_PageRange : public CXFA_Node {
  public:
-  CXFA_PageRange(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PageRange(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PageRange() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp
index 764b1cc..050790e 100644
--- a/xfa/fxfa/parser/cxfa_pageset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageset.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_PageSet::CXFA_PageSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PageSet::CXFA_PageSet(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_pageset.h b/xfa/fxfa/parser/cxfa_pageset.h
index 487d358..9cc3b17 100644
--- a/xfa/fxfa/parser/cxfa_pageset.h
+++ b/xfa/fxfa/parser/cxfa_pageset.h
@@ -11,7 +11,7 @@
 
 class CXFA_PageSet : public CXFA_Node {
  public:
-  CXFA_PageSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PageSet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PageSet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp
index 8f60904..99600ea 100644
--- a/xfa/fxfa/parser/cxfa_pagination.cpp
+++ b/xfa/fxfa/parser/cxfa_pagination.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Pagination::CXFA_Pagination(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Pagination::CXFA_Pagination(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_pagination.h b/xfa/fxfa/parser/cxfa_pagination.h
index fba8386..a455ecb 100644
--- a/xfa/fxfa/parser/cxfa_pagination.h
+++ b/xfa/fxfa/parser/cxfa_pagination.h
@@ -11,7 +11,7 @@
 
 class CXFA_Pagination : public CXFA_Node {
  public:
-  CXFA_Pagination(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Pagination(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Pagination() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
index 41e742b..8e8b6c6 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.cpp
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_PaginationOverride::CXFA_PaginationOverride(CXFA_Document* doc,
-                                                 XFA_XDPPACKET packet)
+                                                 XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.h b/xfa/fxfa/parser/cxfa_paginationoverride.h
index 156e7d6..9cc9528 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.h
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.h
@@ -11,7 +11,7 @@
 
 class CXFA_PaginationOverride : public CXFA_Node {
  public:
-  CXFA_PaginationOverride(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PaginationOverride(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PaginationOverride() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp
index 3fe413b..aab8d19 100644
--- a/xfa/fxfa/parser/cxfa_para.cpp
+++ b/xfa/fxfa/parser/cxfa_para.cpp
@@ -37,7 +37,7 @@
 
 }  // namespace
 
-CXFA_Para::CXFA_Para(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Para::CXFA_Para(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_para.h b/xfa/fxfa/parser/cxfa_para.h
index 00ac970..47c4d85 100644
--- a/xfa/fxfa/parser/cxfa_para.h
+++ b/xfa/fxfa/parser/cxfa_para.h
@@ -11,7 +11,7 @@
 
 class CXFA_Para : public CXFA_Node {
  public:
-  CXFA_Para(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Para(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Para() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp
index fb510c2..d645571 100644
--- a/xfa/fxfa/parser/cxfa_part.cpp
+++ b/xfa/fxfa/parser/cxfa_part.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Part::CXFA_Part(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Part::CXFA_Part(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_part.h b/xfa/fxfa/parser/cxfa_part.h
index f4114d0..3db7639 100644
--- a/xfa/fxfa/parser/cxfa_part.h
+++ b/xfa/fxfa/parser/cxfa_part.h
@@ -11,7 +11,7 @@
 
 class CXFA_Part : public CXFA_Node {
  public:
-  CXFA_Part(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Part(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Part() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
index 29a25f2..1d7a60f 100644
--- a/xfa/fxfa/parser/cxfa_password.cpp
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Password::CXFA_Password(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Password::CXFA_Password(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_password.h b/xfa/fxfa/parser/cxfa_password.h
index feffdb5..904f91f 100644
--- a/xfa/fxfa/parser/cxfa_password.h
+++ b/xfa/fxfa/parser/cxfa_password.h
@@ -11,7 +11,7 @@
 
 class CXFA_Password : public CXFA_Node {
  public:
-  CXFA_Password(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Password(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Password() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp
index 50ee196..da026ee 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.cpp
+++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_PasswordEdit::CXFA_PasswordEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PasswordEdit::CXFA_PasswordEdit(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.h b/xfa/fxfa/parser/cxfa_passwordedit.h
index 1c408cb..2db05ba 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.h
+++ b/xfa/fxfa/parser/cxfa_passwordedit.h
@@ -11,7 +11,7 @@
 
 class CXFA_PasswordEdit : public CXFA_Node {
  public:
-  CXFA_PasswordEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PasswordEdit(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PasswordEdit() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp
index 0b62586..b1f14cb 100644
--- a/xfa/fxfa/parser/cxfa_pattern.cpp
+++ b/xfa/fxfa/parser/cxfa_pattern.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Pattern::CXFA_Pattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Pattern::CXFA_Pattern(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_pattern.h b/xfa/fxfa/parser/cxfa_pattern.h
index 066e92f..44fb0af 100644
--- a/xfa/fxfa/parser/cxfa_pattern.h
+++ b/xfa/fxfa/parser/cxfa_pattern.h
@@ -11,7 +11,7 @@
 
 class CXFA_Pattern : public CXFA_Node {
  public:
-  CXFA_Pattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Pattern(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Pattern() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pcl.cpp b/xfa/fxfa/parser/cxfa_pcl.cpp
index 4a723f5..1f5e348 100644
--- a/xfa/fxfa/parser/cxfa_pcl.cpp
+++ b/xfa/fxfa/parser/cxfa_pcl.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Pcl::CXFA_Pcl(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Pcl::CXFA_Pcl(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_pcl.h b/xfa/fxfa/parser/cxfa_pcl.h
index eb1a08f..9b78265 100644
--- a/xfa/fxfa/parser/cxfa_pcl.h
+++ b/xfa/fxfa/parser/cxfa_pcl.h
@@ -11,7 +11,7 @@
 
 class CXFA_Pcl : public CXFA_Node {
  public:
-  CXFA_Pcl(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Pcl(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Pcl() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pdf.cpp b/xfa/fxfa/parser/cxfa_pdf.cpp
index 0318d41..800d393 100644
--- a/xfa/fxfa/parser/cxfa_pdf.cpp
+++ b/xfa/fxfa/parser/cxfa_pdf.cpp
@@ -39,7 +39,7 @@
 
 }  // namespace
 
-CXFA_Pdf::CXFA_Pdf(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Pdf::CXFA_Pdf(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_pdf.h b/xfa/fxfa/parser/cxfa_pdf.h
index dcf39ba..d0925c8 100644
--- a/xfa/fxfa/parser/cxfa_pdf.h
+++ b/xfa/fxfa/parser/cxfa_pdf.h
@@ -11,7 +11,7 @@
 
 class CXFA_Pdf : public CXFA_Node {
  public:
-  CXFA_Pdf(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Pdf(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Pdf() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_pdfa.cpp b/xfa/fxfa/parser/cxfa_pdfa.cpp
index 01f32ce..f41eb93 100644
--- a/xfa/fxfa/parser/cxfa_pdfa.cpp
+++ b/xfa/fxfa/parser/cxfa_pdfa.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Pdfa::CXFA_Pdfa(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Pdfa::CXFA_Pdfa(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_pdfa.h b/xfa/fxfa/parser/cxfa_pdfa.h
index c0549ab..d0816a2 100644
--- a/xfa/fxfa/parser/cxfa_pdfa.h
+++ b/xfa/fxfa/parser/cxfa_pdfa.h
@@ -11,7 +11,7 @@
 
 class CXFA_Pdfa : public CXFA_Node {
  public:
-  CXFA_Pdfa(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Pdfa(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Pdfa() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_permissions.cpp b/xfa/fxfa/parser/cxfa_permissions.cpp
index 21fdead..a56ac32 100644
--- a/xfa/fxfa/parser/cxfa_permissions.cpp
+++ b/xfa/fxfa/parser/cxfa_permissions.cpp
@@ -28,7 +28,7 @@
 
 }  // namespace
 
-CXFA_Permissions::CXFA_Permissions(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Permissions::CXFA_Permissions(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_permissions.h b/xfa/fxfa/parser/cxfa_permissions.h
index b0b639b..dca9018 100644
--- a/xfa/fxfa/parser/cxfa_permissions.h
+++ b/xfa/fxfa/parser/cxfa_permissions.h
@@ -11,7 +11,7 @@
 
 class CXFA_Permissions : public CXFA_Node {
  public:
-  CXFA_Permissions(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Permissions(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Permissions() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
index 5a477d0..b4e5ec2 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_PickTrayByPDFSize::CXFA_PickTrayByPDFSize(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.h b/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
index 1257523..ef75e5c 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
@@ -11,7 +11,7 @@
 
 class CXFA_PickTrayByPDFSize : public CXFA_Node {
  public:
-  CXFA_PickTrayByPDFSize(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PickTrayByPDFSize(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PickTrayByPDFSize() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
index 1ab6307..1947ddf 100644
--- a/xfa/fxfa/parser/cxfa_picture.cpp
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Picture::CXFA_Picture(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Picture::CXFA_Picture(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_picture.h b/xfa/fxfa/parser/cxfa_picture.h
index 4e2f95e..9fd2c55 100644
--- a/xfa/fxfa/parser/cxfa_picture.h
+++ b/xfa/fxfa/parser/cxfa_picture.h
@@ -11,7 +11,7 @@
 
 class CXFA_Picture : public CXFA_Node {
  public:
-  CXFA_Picture(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Picture(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Picture() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
index 3ad5cfd..a5c51dd 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_PlaintextMetadata::CXFA_PlaintextMetadata(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.h b/xfa/fxfa/parser/cxfa_plaintextmetadata.h
index dc940c2..03dce65 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.h
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.h
@@ -11,7 +11,7 @@
 
 class CXFA_PlaintextMetadata : public CXFA_Node {
  public:
-  CXFA_PlaintextMetadata(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PlaintextMetadata(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PlaintextMetadata() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp
index 54547b9..f2389d9 100644
--- a/xfa/fxfa/parser/cxfa_presence.cpp
+++ b/xfa/fxfa/parser/cxfa_presence.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Presence::CXFA_Presence(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Presence::CXFA_Presence(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_presence.h b/xfa/fxfa/parser/cxfa_presence.h
index bf13d1a..a9b7766 100644
--- a/xfa/fxfa/parser/cxfa_presence.h
+++ b/xfa/fxfa/parser/cxfa_presence.h
@@ -11,7 +11,7 @@
 
 class CXFA_Presence : public CXFA_Node {
  public:
-  CXFA_Presence(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Presence(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Presence() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_present.cpp b/xfa/fxfa/parser/cxfa_present.cpp
index 2792cad..7552a79 100644
--- a/xfa/fxfa/parser/cxfa_present.cpp
+++ b/xfa/fxfa/parser/cxfa_present.cpp
@@ -33,7 +33,7 @@
 
 }  // namespace
 
-CXFA_Present::CXFA_Present(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Present::CXFA_Present(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_present.h b/xfa/fxfa/parser/cxfa_present.h
index 83cfaf9..13b3c61 100644
--- a/xfa/fxfa/parser/cxfa_present.h
+++ b/xfa/fxfa/parser/cxfa_present.h
@@ -11,7 +11,7 @@
 
 class CXFA_Present : public CXFA_Node {
  public:
-  CXFA_Present(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Present(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Present() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp
index b1bd71a..f90186d 100644
--- a/xfa/fxfa/parser/cxfa_print.cpp
+++ b/xfa/fxfa/parser/cxfa_print.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Print::CXFA_Print(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Print::CXFA_Print(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_print.h b/xfa/fxfa/parser/cxfa_print.h
index 048c3c3..5f2513e 100644
--- a/xfa/fxfa/parser/cxfa_print.h
+++ b/xfa/fxfa/parser/cxfa_print.h
@@ -11,7 +11,7 @@
 
 class CXFA_Print : public CXFA_Node {
  public:
-  CXFA_Print(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Print(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Print() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp
index 31fc5f5..a5e6197 100644
--- a/xfa/fxfa/parser/cxfa_printername.cpp
+++ b/xfa/fxfa/parser/cxfa_printername.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_PrinterName::CXFA_PrinterName(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PrinterName::CXFA_PrinterName(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_printername.h b/xfa/fxfa/parser/cxfa_printername.h
index c79fd63..4f07885 100644
--- a/xfa/fxfa/parser/cxfa_printername.h
+++ b/xfa/fxfa/parser/cxfa_printername.h
@@ -11,7 +11,7 @@
 
 class CXFA_PrinterName : public CXFA_Node {
  public:
-  CXFA_PrinterName(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PrinterName(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PrinterName() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp
index 0febf5d..8b1184f 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.cpp
+++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_PrintHighQuality::CXFA_PrintHighQuality(CXFA_Document* doc,
-                                             XFA_XDPPACKET packet)
+                                             XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.h b/xfa/fxfa/parser/cxfa_printhighquality.h
index 4752bc6..6cd61125 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.h
+++ b/xfa/fxfa/parser/cxfa_printhighquality.h
@@ -11,7 +11,7 @@
 
 class CXFA_PrintHighQuality : public CXFA_Node {
  public:
-  CXFA_PrintHighQuality(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PrintHighQuality(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PrintHighQuality() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp
index d400f64..8d68f68 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.cpp
+++ b/xfa/fxfa/parser/cxfa_printscaling.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_PrintScaling::CXFA_PrintScaling(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PrintScaling::CXFA_PrintScaling(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_printscaling.h b/xfa/fxfa/parser/cxfa_printscaling.h
index bfe69eb..e21d427 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.h
+++ b/xfa/fxfa/parser/cxfa_printscaling.h
@@ -11,7 +11,7 @@
 
 class CXFA_PrintScaling : public CXFA_Node {
  public:
-  CXFA_PrintScaling(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PrintScaling(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PrintScaling() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp
index 585a32c..45253c7 100644
--- a/xfa/fxfa/parser/cxfa_producer.cpp
+++ b/xfa/fxfa/parser/cxfa_producer.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Producer::CXFA_Producer(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Producer::CXFA_Producer(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_producer.h b/xfa/fxfa/parser/cxfa_producer.h
index 1065031..584826e 100644
--- a/xfa/fxfa/parser/cxfa_producer.h
+++ b/xfa/fxfa/parser/cxfa_producer.h
@@ -11,7 +11,7 @@
 
 class CXFA_Producer : public CXFA_Node {
  public:
-  CXFA_Producer(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Producer(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Producer() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_proto.cpp b/xfa/fxfa/parser/cxfa_proto.cpp
index 6d846c7..6d103e7 100644
--- a/xfa/fxfa/parser/cxfa_proto.cpp
+++ b/xfa/fxfa/parser/cxfa_proto.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Proto::CXFA_Proto(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Proto::CXFA_Proto(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_proto.h b/xfa/fxfa/parser/cxfa_proto.h
index 52509e4..8e1d84a 100644
--- a/xfa/fxfa/parser/cxfa_proto.h
+++ b/xfa/fxfa/parser/cxfa_proto.h
@@ -11,7 +11,7 @@
 
 class CXFA_Proto : public CXFA_Node {
  public:
-  CXFA_Proto(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Proto(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Proto() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_ps.cpp b/xfa/fxfa/parser/cxfa_ps.cpp
index 09676a9..1b2f532 100644
--- a/xfa/fxfa/parser/cxfa_ps.cpp
+++ b/xfa/fxfa/parser/cxfa_ps.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Ps::CXFA_Ps(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Ps::CXFA_Ps(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_ps.h b/xfa/fxfa/parser/cxfa_ps.h
index 460ad41..5ef7e82 100644
--- a/xfa/fxfa/parser/cxfa_ps.h
+++ b/xfa/fxfa/parser/cxfa_ps.h
@@ -11,7 +11,7 @@
 
 class CXFA_Ps : public CXFA_Node {
  public:
-  CXFA_Ps(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Ps(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Ps() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_psmap.cpp b/xfa/fxfa/parser/cxfa_psmap.cpp
index 52ed45e..0c0b122 100644
--- a/xfa/fxfa/parser/cxfa_psmap.cpp
+++ b/xfa/fxfa/parser/cxfa_psmap.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_PsMap::CXFA_PsMap(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_PsMap::CXFA_PsMap(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_psmap.h b/xfa/fxfa/parser/cxfa_psmap.h
index 5129a72..8297aaa 100644
--- a/xfa/fxfa/parser/cxfa_psmap.h
+++ b/xfa/fxfa/parser/cxfa_psmap.h
@@ -11,7 +11,7 @@
 
 class CXFA_PsMap : public CXFA_Node {
  public:
-  CXFA_PsMap(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_PsMap(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_PsMap() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp
index dd3427e..09658a6 100644
--- a/xfa/fxfa/parser/cxfa_query.cpp
+++ b/xfa/fxfa/parser/cxfa_query.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Query::CXFA_Query(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Query::CXFA_Query(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_query.h b/xfa/fxfa/parser/cxfa_query.h
index a4fe3d9..548e7fc 100644
--- a/xfa/fxfa/parser/cxfa_query.h
+++ b/xfa/fxfa/parser/cxfa_query.h
@@ -11,7 +11,7 @@
 
 class CXFA_Query : public CXFA_Node {
  public:
-  CXFA_Query(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Query(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Query() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp
index 3f5ac4b..3346cf8 100644
--- a/xfa/fxfa/parser/cxfa_radial.cpp
+++ b/xfa/fxfa/parser/cxfa_radial.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Radial::CXFA_Radial(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Radial::CXFA_Radial(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_radial.h b/xfa/fxfa/parser/cxfa_radial.h
index 00a4459..2316c45 100644
--- a/xfa/fxfa/parser/cxfa_radial.h
+++ b/xfa/fxfa/parser/cxfa_radial.h
@@ -11,7 +11,7 @@
 
 class CXFA_Radial : public CXFA_Node {
  public:
-  CXFA_Radial(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Radial(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Radial() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp
index c72b89c..bd5f870 100644
--- a/xfa/fxfa/parser/cxfa_range.cpp
+++ b/xfa/fxfa/parser/cxfa_range.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Range::CXFA_Range(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Range::CXFA_Range(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_range.h b/xfa/fxfa/parser/cxfa_range.h
index 6b923ea..23c8d1f 100644
--- a/xfa/fxfa/parser/cxfa_range.h
+++ b/xfa/fxfa/parser/cxfa_range.h
@@ -11,7 +11,7 @@
 
 class CXFA_Range : public CXFA_Node {
  public:
-  CXFA_Range(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Range(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Range() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
index 5a6f753..2d8ab2c 100644
--- a/xfa/fxfa/parser/cxfa_reason.cpp
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Reason::CXFA_Reason(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Reason::CXFA_Reason(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_reason.h b/xfa/fxfa/parser/cxfa_reason.h
index a78aebb..451fd82 100644
--- a/xfa/fxfa/parser/cxfa_reason.h
+++ b/xfa/fxfa/parser/cxfa_reason.h
@@ -11,7 +11,7 @@
 
 class CXFA_Reason : public CXFA_Node {
  public:
-  CXFA_Reason(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Reason(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Reason() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
index afcb665..4db0370 100644
--- a/xfa/fxfa/parser/cxfa_reasons.cpp
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Reasons::CXFA_Reasons(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Reasons::CXFA_Reasons(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_reasons.h b/xfa/fxfa/parser/cxfa_reasons.h
index a193825..57e9e09 100644
--- a/xfa/fxfa/parser/cxfa_reasons.h
+++ b/xfa/fxfa/parser/cxfa_reasons.h
@@ -11,7 +11,7 @@
 
 class CXFA_Reasons : public CXFA_Node {
  public:
-  CXFA_Reasons(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Reasons(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Reasons() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp
index aefe0c4..5c5ded1 100644
--- a/xfa/fxfa/parser/cxfa_record.cpp
+++ b/xfa/fxfa/parser/cxfa_record.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Record::CXFA_Record(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Record::CXFA_Record(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_record.h b/xfa/fxfa/parser/cxfa_record.h
index 68a38c3..bd2622d 100644
--- a/xfa/fxfa/parser/cxfa_record.h
+++ b/xfa/fxfa/parser/cxfa_record.h
@@ -11,7 +11,7 @@
 
 class CXFA_Record : public CXFA_Node {
  public:
-  CXFA_Record(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Record(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Record() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
index 4da2239a..ef6667f 100644
--- a/xfa/fxfa/parser/cxfa_recordset.cpp
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -30,7 +30,7 @@
 
 }  // namespace
 
-CXFA_RecordSet::CXFA_RecordSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_RecordSet::CXFA_RecordSet(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_recordset.h b/xfa/fxfa/parser/cxfa_recordset.h
index df08c6f..c623516 100644
--- a/xfa/fxfa/parser/cxfa_recordset.h
+++ b/xfa/fxfa/parser/cxfa_recordset.h
@@ -11,7 +11,7 @@
 
 class CXFA_RecordSet : public CXFA_Node {
  public:
-  CXFA_RecordSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_RecordSet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_RecordSet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index 29fb411..5a13c8a 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Rectangle::CXFA_Rectangle(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Rectangle::CXFA_Rectangle(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_rectangle.h b/xfa/fxfa/parser/cxfa_rectangle.h
index af46554..1cb4720 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.h
+++ b/xfa/fxfa/parser/cxfa_rectangle.h
@@ -11,7 +11,7 @@
 
 class CXFA_Rectangle : public CXFA_Node {
  public:
-  CXFA_Rectangle(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Rectangle(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Rectangle() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
index 3d1e378..51bea82 100644
--- a/xfa/fxfa/parser/cxfa_ref.cpp
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_Ref::CXFA_Ref(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Ref::CXFA_Ref(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_ref.h b/xfa/fxfa/parser/cxfa_ref.h
index f99c960..630510f 100644
--- a/xfa/fxfa/parser/cxfa_ref.h
+++ b/xfa/fxfa/parser/cxfa_ref.h
@@ -11,7 +11,7 @@
 
 class CXFA_Ref : public CXFA_Node {
  public:
-  CXFA_Ref(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Ref(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Ref() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp
index b4fa4bb..c67ff1e 100644
--- a/xfa/fxfa/parser/cxfa_relevant.cpp
+++ b/xfa/fxfa/parser/cxfa_relevant.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Relevant::CXFA_Relevant(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Relevant::CXFA_Relevant(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_relevant.h b/xfa/fxfa/parser/cxfa_relevant.h
index 90fbddf..2018c95 100644
--- a/xfa/fxfa/parser/cxfa_relevant.h
+++ b/xfa/fxfa/parser/cxfa_relevant.h
@@ -11,7 +11,7 @@
 
 class CXFA_Relevant : public CXFA_Node {
  public:
-  CXFA_Relevant(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Relevant(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Relevant() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp
index f91ac31..b0adbd7 100644
--- a/xfa/fxfa/parser/cxfa_rename.cpp
+++ b/xfa/fxfa/parser/cxfa_rename.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Rename::CXFA_Rename(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Rename::CXFA_Rename(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_rename.h b/xfa/fxfa/parser/cxfa_rename.h
index 901125a..665c852 100644
--- a/xfa/fxfa/parser/cxfa_rename.h
+++ b/xfa/fxfa/parser/cxfa_rename.h
@@ -11,7 +11,7 @@
 
 class CXFA_Rename : public CXFA_Node {
  public:
-  CXFA_Rename(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Rename(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Rename() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
index 71bbb82..a8abdb3 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_RenderPolicy::CXFA_RenderPolicy(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_RenderPolicy::CXFA_RenderPolicy(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.h b/xfa/fxfa/parser/cxfa_renderpolicy.h
index 7322014..24ddf46 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.h
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.h
@@ -11,7 +11,7 @@
 
 class CXFA_RenderPolicy : public CXFA_Node {
  public:
-  CXFA_RenderPolicy(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_RenderPolicy(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_RenderPolicy() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
index 1332e79..7f9e868 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.cpp
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_RootElement::CXFA_RootElement(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_RootElement::CXFA_RootElement(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_rootelement.h b/xfa/fxfa/parser/cxfa_rootelement.h
index be55fc1..a995e8c 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.h
+++ b/xfa/fxfa/parser/cxfa_rootelement.h
@@ -11,7 +11,7 @@
 
 class CXFA_RootElement : public CXFA_Node {
  public:
-  CXFA_RootElement(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_RootElement(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_RootElement() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp
index 8000eb8..06c0d52 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.cpp
+++ b/xfa/fxfa/parser/cxfa_runscripts.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_RunScripts::CXFA_RunScripts(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_RunScripts::CXFA_RunScripts(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_runscripts.h b/xfa/fxfa/parser/cxfa_runscripts.h
index 0dc6e7d..d2ecaa0 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.h
+++ b/xfa/fxfa/parser/cxfa_runscripts.h
@@ -11,7 +11,7 @@
 
 class CXFA_RunScripts : public CXFA_Node {
  public:
-  CXFA_RunScripts(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_RunScripts(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_RunScripts() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp
index c83d75b..158b5ee 100644
--- a/xfa/fxfa/parser/cxfa_script.cpp
+++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -30,7 +30,7 @@
 
 }  // namespace
 
-CXFA_Script::CXFA_Script(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Script::CXFA_Script(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_script.h b/xfa/fxfa/parser/cxfa_script.h
index f88b8b5..d14f7c1 100644
--- a/xfa/fxfa/parser/cxfa_script.h
+++ b/xfa/fxfa/parser/cxfa_script.h
@@ -11,7 +11,7 @@
 
 class CXFA_Script : public CXFA_Node {
  public:
-  CXFA_Script(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Script(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Script() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
index 46b81fe..868dac5 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.cpp
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_ScriptModel::CXFA_ScriptModel(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ScriptModel::CXFA_ScriptModel(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.h b/xfa/fxfa/parser/cxfa_scriptmodel.h
index bb6cfd3..40bc96e 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.h
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_ScriptModel : public CXFA_Node {
  public:
-  CXFA_ScriptModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ScriptModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ScriptModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
index 07f6909..690413b 100644
--- a/xfa/fxfa/parser/cxfa_select.cpp
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Select::CXFA_Select(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Select::CXFA_Select(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_select.h b/xfa/fxfa/parser/cxfa_select.h
index 99b99af..76651e0 100644
--- a/xfa/fxfa/parser/cxfa_select.h
+++ b/xfa/fxfa/parser/cxfa_select.h
@@ -11,7 +11,7 @@
 
 class CXFA_Select : public CXFA_Node {
  public:
-  CXFA_Select(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Select(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Select() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
index 1bbcfdb..e98505b 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.cpp
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_SetProperty::CXFA_SetProperty(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SetProperty::CXFA_SetProperty(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_setproperty.h b/xfa/fxfa/parser/cxfa_setproperty.h
index 4add12e..3f8f430 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.h
+++ b/xfa/fxfa/parser/cxfa_setproperty.h
@@ -11,7 +11,7 @@
 
 class CXFA_SetProperty : public CXFA_Node {
  public:
-  CXFA_SetProperty(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SetProperty(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SetProperty() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp
index 23ce442..53a91e8 100644
--- a/xfa/fxfa/parser/cxfa_severity.cpp
+++ b/xfa/fxfa/parser/cxfa_severity.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Severity::CXFA_Severity(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Severity::CXFA_Severity(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_severity.h b/xfa/fxfa/parser/cxfa_severity.h
index 9f9693e..7114455 100644
--- a/xfa/fxfa/parser/cxfa_severity.h
+++ b/xfa/fxfa/parser/cxfa_severity.h
@@ -11,7 +11,7 @@
 
 class CXFA_Severity : public CXFA_Node {
  public:
-  CXFA_Severity(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Severity(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Severity() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp
index 9043d99..5300dfc 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.cpp
+++ b/xfa/fxfa/parser/cxfa_sharptext.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_Sharptext::CXFA_Sharptext(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Sharptext::CXFA_Sharptext(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config |
diff --git a/xfa/fxfa/parser/cxfa_sharptext.h b/xfa/fxfa/parser/cxfa_sharptext.h
index 3767289..89a050b 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.h
+++ b/xfa/fxfa/parser/cxfa_sharptext.h
@@ -11,7 +11,7 @@
 
 class CXFA_Sharptext : public CXFA_Node {
  public:
-  CXFA_Sharptext(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Sharptext(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Sharptext() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
index 498a389..51829b7 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_SharpxHTML::CXFA_SharpxHTML(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SharpxHTML::CXFA_SharpxHTML(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config |
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.h b/xfa/fxfa/parser/cxfa_sharpxhtml.h
index 048014e..3f6cf79 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.h
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.h
@@ -11,7 +11,7 @@
 
 class CXFA_SharpxHTML : public CXFA_Node {
  public:
-  CXFA_SharpxHTML(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SharpxHTML(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SharpxHTML() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp
index 2636eb6..6ce220e 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_Sharpxml::CXFA_Sharpxml(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Sharpxml::CXFA_Sharpxml(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.h b/xfa/fxfa/parser/cxfa_sharpxml.h
index f4e55cd..a065857 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.h
+++ b/xfa/fxfa/parser/cxfa_sharpxml.h
@@ -11,7 +11,7 @@
 
 class CXFA_Sharpxml : public CXFA_Node {
  public:
-  CXFA_Sharpxml(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Sharpxml(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Sharpxml() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp
index 2640be7..e5c1645 100644
--- a/xfa/fxfa/parser/cxfa_signature.cpp
+++ b/xfa/fxfa/parser/cxfa_signature.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Signature::CXFA_Signature(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Signature::CXFA_Signature(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_signature.h b/xfa/fxfa/parser/cxfa_signature.h
index b70e298..f55ce5a 100644
--- a/xfa/fxfa/parser/cxfa_signature.h
+++ b/xfa/fxfa/parser/cxfa_signature.h
@@ -11,7 +11,7 @@
 
 class CXFA_Signature : public CXFA_Node {
  public:
-  CXFA_Signature(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Signature(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Signature() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
index c55d858..c18706a 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_SignatureProperties::CXFA_SignatureProperties(CXFA_Document* doc,
-                                                   XFA_XDPPACKET packet)
+                                                   XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.h b/xfa/fxfa/parser/cxfa_signatureproperties.h
index 3fce949..800b780 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.h
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.h
@@ -11,7 +11,7 @@
 
 class CXFA_SignatureProperties : public CXFA_Node {
  public:
-  CXFA_SignatureProperties(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SignatureProperties(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SignatureProperties() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp b/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp
index c65cc36..0899e62 100644
--- a/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp
+++ b/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp
@@ -13,7 +13,7 @@
 }  // namespace
 
 CXFA_SignaturePseudoModel::CXFA_SignaturePseudoModel(CXFA_Document* doc,
-                                                     XFA_XDPPACKET packet)
+                                                     XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_signaturepseudomodel.h b/xfa/fxfa/parser/cxfa_signaturepseudomodel.h
index 53273b1..bfb3dfb 100644
--- a/xfa/fxfa/parser/cxfa_signaturepseudomodel.h
+++ b/xfa/fxfa/parser/cxfa_signaturepseudomodel.h
@@ -11,7 +11,7 @@
 
 class CXFA_SignaturePseudoModel : public CXFA_Node {
  public:
-  CXFA_SignaturePseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SignaturePseudoModel(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SignaturePseudoModel() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp
index dcdb2bf..05d4c19 100644
--- a/xfa/fxfa/parser/cxfa_signdata.cpp
+++ b/xfa/fxfa/parser/cxfa_signdata.cpp
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-CXFA_SignData::CXFA_SignData(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SignData::CXFA_SignData(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_signdata.h b/xfa/fxfa/parser/cxfa_signdata.h
index 234ddeb..3ad39f5 100644
--- a/xfa/fxfa/parser/cxfa_signdata.h
+++ b/xfa/fxfa/parser/cxfa_signdata.h
@@ -11,7 +11,7 @@
 
 class CXFA_SignData : public CXFA_Node {
  public:
-  CXFA_SignData(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SignData(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SignData() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
index 87b931e..5641efc 100644
--- a/xfa/fxfa/parser/cxfa_signing.cpp
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Signing::CXFA_Signing(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Signing::CXFA_Signing(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_signing.h b/xfa/fxfa/parser/cxfa_signing.h
index 0fe83cf..6df9a18 100644
--- a/xfa/fxfa/parser/cxfa_signing.h
+++ b/xfa/fxfa/parser/cxfa_signing.h
@@ -11,7 +11,7 @@
 
 class CXFA_Signing : public CXFA_Node {
  public:
-  CXFA_Signing(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Signing(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Signing() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_silentprint.cpp b/xfa/fxfa/parser/cxfa_silentprint.cpp
index eef7569..ca0cf9f 100644
--- a/xfa/fxfa/parser/cxfa_silentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_silentprint.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_SilentPrint::CXFA_SilentPrint(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SilentPrint::CXFA_SilentPrint(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_silentprint.h b/xfa/fxfa/parser/cxfa_silentprint.h
index 7b1adc1..6ef5fcf 100644
--- a/xfa/fxfa/parser/cxfa_silentprint.h
+++ b/xfa/fxfa/parser/cxfa_silentprint.h
@@ -11,7 +11,7 @@
 
 class CXFA_SilentPrint : public CXFA_Node {
  public:
-  CXFA_SilentPrint(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SilentPrint(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SilentPrint() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.cpp b/xfa/fxfa/parser/cxfa_simple_parser.cpp
index 5152403..e5f3f68 100644
--- a/xfa/fxfa/parser/cxfa_simple_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_simple_parser.cpp
@@ -314,8 +314,8 @@
 
 void CXFA_SimpleParser::ConstructXFANode(CXFA_Node* pXFANode,
                                          CFX_XMLNode* pXMLNode) {
-  XFA_XDPPACKET ePacketID = (XFA_XDPPACKET)pXFANode->GetPacketID();
-  if (ePacketID == XFA_XDPPACKET_Datasets) {
+  XFA_PacketType ePacketID = pXFANode->GetPacketType();
+  if (ePacketID == XFA_PacketType::Datasets) {
     if (pXFANode->GetElementType() == XFA_Element::DataValue) {
       for (CFX_XMLNode* pXMLChild =
                pXMLNode->GetNodeItem(CFX_XMLNode::FirstChild);
@@ -326,8 +326,8 @@
           continue;
 
         if (eNodeType == FX_XMLNODE_Element) {
-          CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets,
-                                                        XFA_Element::DataValue);
+          CXFA_Node* pXFAChild = m_pFactory->CreateNode(
+              XFA_PacketType::Datasets, XFA_Element::DataValue);
           if (!pXFAChild)
             return;
 
@@ -403,29 +403,35 @@
     case XFA_XDPPACKET_UNKNOWN:
       return nullptr;
     case XFA_XDPPACKET_XDP:
-      return ParseAsXDPPacket_XDP(pXMLDocumentNode, ePacketID);
+      return ParseAsXDPPacket_XDP(pXMLDocumentNode);
     case XFA_XDPPACKET_Config:
-      return ParseAsXDPPacket_Config(pXMLDocumentNode, ePacketID);
+      return ParseAsXDPPacket_Config(pXMLDocumentNode, XFA_PacketType::Config);
     case XFA_XDPPACKET_Template:
+      return ParseAsXDPPacket_TemplateForm(pXMLDocumentNode,
+                                           XFA_PacketType::Template);
     case XFA_XDPPACKET_Form:
-      return ParseAsXDPPacket_TemplateForm(pXMLDocumentNode, ePacketID);
+      return ParseAsXDPPacket_TemplateForm(pXMLDocumentNode,
+                                           XFA_PacketType::Form);
     case XFA_XDPPACKET_Datasets:
-      return ParseAsXDPPacket_Data(pXMLDocumentNode, ePacketID);
+      return ParseAsXDPPacket_Data(pXMLDocumentNode);
     case XFA_XDPPACKET_Xdc:
-      return ParseAsXDPPacket_Xdc(pXMLDocumentNode, ePacketID);
+      return ParseAsXDPPacket_Xdc(pXMLDocumentNode);
     case XFA_XDPPACKET_LocaleSet:
+      return ParseAsXDPPacket_LocaleConnectionSourceSet(
+          pXMLDocumentNode, XFA_PacketType::LocaleSet);
     case XFA_XDPPACKET_ConnectionSet:
+      return ParseAsXDPPacket_LocaleConnectionSourceSet(
+          pXMLDocumentNode, XFA_PacketType::ConnectionSet);
     case XFA_XDPPACKET_SourceSet:
-      return ParseAsXDPPacket_LocaleConnectionSourceSet(pXMLDocumentNode,
-                                                        ePacketID);
+      return ParseAsXDPPacket_LocaleConnectionSourceSet(
+          pXMLDocumentNode, XFA_PacketType::SourceSet);
     default:
-      return ParseAsXDPPacket_User(pXMLDocumentNode, ePacketID);
+      return ParseAsXDPPacket_User(pXMLDocumentNode);
   }
 }
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_XDP(
-    CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    CFX_XMLNode* pXMLDocumentNode) {
   if (!MatchNodeName(pXMLDocumentNode,
                      XFA_GetPacketByIndex(XFA_PacketType::Xdp)->pName,
                      XFA_GetPacketByIndex(XFA_PacketType::Xdp)->pURI,
@@ -434,7 +440,7 @@
   }
 
   CXFA_Node* pXFARootNode =
-      m_pFactory->CreateNode(XFA_XDPPACKET_XDP, XFA_Element::Xfa);
+      m_pFactory->CreateNode(XFA_PacketType::Xdp, XFA_Element::Xfa);
   if (!pXFARootNode)
     return nullptr;
 
@@ -468,7 +474,7 @@
 
     pXMLConfigDOMRoot = pChildItem;
     pXFAConfigDOMRoot =
-        ParseAsXDPPacket_Config(pXMLConfigDOMRoot, XFA_XDPPACKET_Config);
+        ParseAsXDPPacket_Config(pXMLConfigDOMRoot, XFA_PacketType::Config);
     if (pXFAConfigDOMRoot)
       pXFARootNode->InsertChild(pXFAConfigDOMRoot, nullptr);
   }
@@ -555,7 +561,7 @@
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Config(
     CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    XFA_PacketType ePacketID) {
   if (!MatchNodeName(pXMLDocumentNode,
                      XFA_GetPacketByIndex(XFA_PacketType::Config)->pName,
                      XFA_GetPacketByIndex(XFA_PacketType::Config)->pURI,
@@ -563,7 +569,7 @@
     return nullptr;
   }
   CXFA_Node* pNode =
-      m_pFactory->CreateNode(XFA_XDPPACKET_Config, XFA_Element::Config);
+      m_pFactory->CreateNode(XFA_PacketType::Config, XFA_Element::Config);
   if (!pNode)
     return nullptr;
 
@@ -579,15 +585,15 @@
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_TemplateForm(
     CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    XFA_PacketType ePacketID) {
   CXFA_Node* pNode = nullptr;
-  if (ePacketID == XFA_XDPPACKET_Template) {
+  if (ePacketID == XFA_PacketType::Template) {
     if (MatchNodeName(pXMLDocumentNode,
                       XFA_GetPacketByIndex(XFA_PacketType::Template)->pName,
                       XFA_GetPacketByIndex(XFA_PacketType::Template)->pURI,
                       XFA_GetPacketByIndex(XFA_PacketType::Template)->eFlags)) {
-      pNode =
-          m_pFactory->CreateNode(XFA_XDPPACKET_Template, XFA_Element::Template);
+      pNode = m_pFactory->CreateNode(XFA_PacketType::Template,
+                                     XFA_Element::Template);
       if (!pNode)
         return nullptr;
 
@@ -606,7 +612,7 @@
       if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID, true))
         return nullptr;
     }
-  } else if (ePacketID == XFA_XDPPACKET_Form) {
+  } else if (ePacketID == XFA_PacketType::Form) {
     if (MatchNodeName(pXMLDocumentNode,
                       XFA_GetPacketByIndex(XFA_PacketType::Form)->pName,
                       XFA_GetPacketByIndex(XFA_PacketType::Form)->pURI,
@@ -630,7 +636,7 @@
       if (bsCheck != wsChecksum.UTF8Encode())
         return nullptr;
 
-      pNode = m_pFactory->CreateNode(XFA_XDPPACKET_Form, XFA_Element::Form);
+      pNode = m_pFactory->CreateNode(XFA_PacketType::Form, XFA_Element::Form);
       if (!pNode)
         return nullptr;
 
@@ -662,12 +668,11 @@
 }
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Data(
-    CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    CFX_XMLNode* pXMLDocumentNode) {
   CFX_XMLNode* pDatasetsXMLNode = GetDataSetsFromXDP(pXMLDocumentNode);
   if (pDatasetsXMLNode) {
-    CXFA_Node* pNode =
-        m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_Element::DataModel);
+    CXFA_Node* pNode = m_pFactory->CreateNode(XFA_PacketType::Datasets,
+                                              XFA_Element::DataModel);
     if (!pNode)
       return nullptr;
 
@@ -705,8 +710,8 @@
   }
 
   if (pDataXMLNode) {
-    CXFA_Node* pNode =
-        m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_Element::DataGroup);
+    CXFA_Node* pNode = m_pFactory->CreateNode(XFA_PacketType::Datasets,
+                                              XFA_Element::DataGroup);
     if (!pNode) {
       if (pDataXMLNode != pXMLDocumentNode)
         delete pDataXMLNode;
@@ -728,15 +733,15 @@
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_LocaleConnectionSourceSet(
     CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    XFA_PacketType ePacketID) {
   CXFA_Node* pNode = nullptr;
-  if (ePacketID == XFA_XDPPACKET_LocaleSet) {
+  if (ePacketID == XFA_PacketType::LocaleSet) {
     if (MatchNodeName(
             pXMLDocumentNode,
             XFA_GetPacketByIndex(XFA_PacketType::LocaleSet)->pName,
             XFA_GetPacketByIndex(XFA_PacketType::LocaleSet)->pURI,
             XFA_GetPacketByIndex(XFA_PacketType::LocaleSet)->eFlags)) {
-      pNode = m_pFactory->CreateNode(XFA_XDPPACKET_LocaleSet,
+      pNode = m_pFactory->CreateNode(XFA_PacketType::LocaleSet,
                                      XFA_Element::LocaleSet);
       if (!pNode)
         return nullptr;
@@ -747,13 +752,13 @@
       if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID, true))
         return nullptr;
     }
-  } else if (ePacketID == XFA_XDPPACKET_ConnectionSet) {
+  } else if (ePacketID == XFA_PacketType::ConnectionSet) {
     if (MatchNodeName(
             pXMLDocumentNode,
             XFA_GetPacketByIndex(XFA_PacketType::ConnectionSet)->pName,
             XFA_GetPacketByIndex(XFA_PacketType::ConnectionSet)->pURI,
             XFA_GetPacketByIndex(XFA_PacketType::ConnectionSet)->eFlags)) {
-      pNode = m_pFactory->CreateNode(XFA_XDPPACKET_ConnectionSet,
+      pNode = m_pFactory->CreateNode(XFA_PacketType::ConnectionSet,
                                      XFA_Element::ConnectionSet);
       if (!pNode)
         return nullptr;
@@ -765,13 +770,13 @@
       if (!NormalLoader(pNode, pXMLDocumentNode, ePacketID, true))
         return nullptr;
     }
-  } else if (ePacketID == XFA_XDPPACKET_SourceSet) {
+  } else if (ePacketID == XFA_PacketType::SourceSet) {
     if (MatchNodeName(
             pXMLDocumentNode,
             XFA_GetPacketByIndex(XFA_PacketType::SourceSet)->pName,
             XFA_GetPacketByIndex(XFA_PacketType::SourceSet)->pURI,
             XFA_GetPacketByIndex(XFA_PacketType::SourceSet)->eFlags)) {
-      pNode = m_pFactory->CreateNode(XFA_XDPPACKET_SourceSet,
+      pNode = m_pFactory->CreateNode(XFA_PacketType::SourceSet,
                                      XFA_Element::SourceSet);
       if (!pNode)
         return nullptr;
@@ -789,8 +794,7 @@
 }
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Xdc(
-    CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    CFX_XMLNode* pXMLDocumentNode) {
   if (!MatchNodeName(pXMLDocumentNode,
                      XFA_GetPacketByIndex(XFA_PacketType::Xdc)->pName,
                      XFA_GetPacketByIndex(XFA_PacketType::Xdc)->pURI,
@@ -798,7 +802,7 @@
     return nullptr;
 
   CXFA_Node* pNode =
-      m_pFactory->CreateNode(XFA_XDPPACKET_Xdc, XFA_Element::Xdc);
+      m_pFactory->CreateNode(XFA_PacketType::Xdc, XFA_Element::Xdc);
   if (!pNode)
     return nullptr;
 
@@ -810,10 +814,9 @@
 }
 
 CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_User(
-    CFX_XMLNode* pXMLDocumentNode,
-    XFA_XDPPACKET ePacketID) {
+    CFX_XMLNode* pXMLDocumentNode) {
   CXFA_Node* pNode =
-      m_pFactory->CreateNode(XFA_XDPPACKET_XDP, XFA_Element::Packet);
+      m_pFactory->CreateNode(XFA_PacketType::Xdp, XFA_Element::Packet);
   if (!pNode)
     return nullptr;
 
@@ -835,13 +838,13 @@
 CXFA_Node* CXFA_SimpleParser::DataLoader(CXFA_Node* pXFANode,
                                          CFX_XMLNode* pXMLDoc,
                                          bool bDoTransform) {
-  ParseDataGroup(pXFANode, pXMLDoc, XFA_XDPPACKET_Datasets);
+  ParseDataGroup(pXFANode, pXMLDoc, XFA_PacketType::Datasets);
   return pXFANode;
 }
 
 CXFA_Node* CXFA_SimpleParser::NormalLoader(CXFA_Node* pXFANode,
                                            CFX_XMLNode* pXMLDoc,
-                                           XFA_XDPPACKET ePacketID,
+                                           XFA_PacketType ePacketID,
                                            bool bUseAttribute) {
   bool bOneOfPropertyFound = false;
   for (CFX_XMLNode* pXMLChild = pXMLDoc->GetNodeItem(CFX_XMLNode::FirstChild);
@@ -866,7 +869,7 @@
         CXFA_Node* pXFAChild = m_pFactory->CreateNode(ePacketID, eType);
         if (!pXFAChild)
           return nullptr;
-        if (ePacketID == XFA_XDPPACKET_Config) {
+        if (ePacketID == XFA_PacketType::Config) {
           pXFAChild->JSNode()->SetAttribute(XFA_Attribute::Name,
                                             wsTagName.AsStringView(), false);
         }
@@ -892,7 +895,7 @@
         }
         pXFANode->InsertChild(pXFAChild, nullptr);
         if (eType == XFA_Element::Validate || eType == XFA_Element::Locale) {
-          if (ePacketID == XFA_XDPPACKET_Config)
+          if (ePacketID == XFA_PacketType::Config)
             ParseContentNode(pXFAChild, pXMLElement, ePacketID);
           else
             NormalLoader(pXFAChild, pXMLElement, ePacketID, bUseAttribute);
@@ -925,7 +928,7 @@
 
 void CXFA_SimpleParser::ParseContentNode(CXFA_Node* pXFANode,
                                          CFX_XMLNode* pXMLNode,
-                                         XFA_XDPPACKET ePacketID) {
+                                         XFA_PacketType ePacketID) {
   XFA_Element element = XFA_Element::Sharptext;
   if (pXFANode->GetElementType() == XFA_Element::ExData) {
     WideString wsContentType =
@@ -982,7 +985,7 @@
 
 void CXFA_SimpleParser::ParseDataGroup(CXFA_Node* pXFANode,
                                        CFX_XMLNode* pXMLNode,
-                                       XFA_XDPPACKET ePacketID) {
+                                       XFA_PacketType ePacketID) {
   for (CFX_XMLNode* pXMLChild = pXMLNode->GetNodeItem(CFX_XMLNode::FirstChild);
        pXMLChild;
        pXMLChild = pXMLChild->GetNodeItem(CFX_XMLNode::NextSibling)) {
@@ -1037,7 +1040,7 @@
           eNodeType = XFA_Element::DataValue;
 
         CXFA_Node* pXFAChild =
-            m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, eNodeType);
+            m_pFactory->CreateNode(XFA_PacketType::Datasets, eNodeType);
         if (!pXFAChild)
           return;
 
@@ -1062,7 +1065,7 @@
             continue;
           }
           CXFA_Node* pXFAMetaData = m_pFactory->CreateNode(
-              XFA_XDPPACKET_Datasets, XFA_Element::DataValue);
+              XFA_PacketType::Datasets, XFA_Element::DataValue);
           if (!pXFAMetaData)
             return;
 
@@ -1087,7 +1090,7 @@
         if (eNodeType == XFA_Element::DataGroup)
           ParseDataGroup(pXFAChild, pXMLElement, ePacketID);
         else if (bNeedValue)
-          ParseDataValue(pXFAChild, pXMLChild, XFA_XDPPACKET_Datasets);
+          ParseDataValue(pXFAChild, pXMLChild, XFA_PacketType::Datasets);
 
         pXFAChild->SetXMLMappingNode(pXMLElement);
         pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
@@ -1100,7 +1103,7 @@
         if (IsStringAllWhitespace(wsText))
           continue;
 
-        CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_XDPPACKET_Datasets,
+        CXFA_Node* pXFAChild = m_pFactory->CreateNode(XFA_PacketType::Datasets,
                                                       XFA_Element::DataValue);
         if (!pXFAChild)
           return;
@@ -1120,7 +1123,7 @@
 
 void CXFA_SimpleParser::ParseDataValue(CXFA_Node* pXFANode,
                                        CFX_XMLNode* pXMLNode,
-                                       XFA_XDPPACKET ePacketID) {
+                                       XFA_PacketType ePacketID) {
   CFX_WideTextBuf wsValueTextBuf;
   CFX_WideTextBuf wsCurValueTextBuf;
   bool bMarkAsCompound = false;
@@ -1212,7 +1215,7 @@
 
 void CXFA_SimpleParser::ParseInstruction(CXFA_Node* pXFANode,
                                          CFX_XMLInstruction* pXMLInstruction,
-                                         XFA_XDPPACKET ePacketID) {
+                                         XFA_PacketType ePacketID) {
   if (!m_bDocumentParser)
     return;
 
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.h b/xfa/fxfa/parser/cxfa_simple_parser.h
index 00250e7..f7465b6 100644
--- a/xfa/fxfa/parser/cxfa_simple_parser.h
+++ b/xfa/fxfa/parser/cxfa_simple_parser.h
@@ -39,24 +39,20 @@
  private:
   CXFA_Node* ParseAsXDPPacket(CFX_XMLNode* pXMLDocumentNode,
                               XFA_XDPPACKET ePacketID);
-  CXFA_Node* ParseAsXDPPacket_XDP(CFX_XMLNode* pXMLDocumentNode,
-                                  XFA_XDPPACKET ePacketID);
+  CXFA_Node* ParseAsXDPPacket_XDP(CFX_XMLNode* pXMLDocumentNode);
   CXFA_Node* ParseAsXDPPacket_Config(CFX_XMLNode* pXMLDocumentNode,
-                                     XFA_XDPPACKET ePacketID);
+                                     XFA_PacketType ePacketID);
   CXFA_Node* ParseAsXDPPacket_TemplateForm(CFX_XMLNode* pXMLDocumentNode,
-                                           XFA_XDPPACKET ePacketID);
-  CXFA_Node* ParseAsXDPPacket_Data(CFX_XMLNode* pXMLDocumentNode,
-                                   XFA_XDPPACKET ePacketID);
+                                           XFA_PacketType ePacketID);
+  CXFA_Node* ParseAsXDPPacket_Data(CFX_XMLNode* pXMLDocumentNode);
   CXFA_Node* ParseAsXDPPacket_LocaleConnectionSourceSet(
       CFX_XMLNode* pXMLDocumentNode,
-      XFA_XDPPACKET ePacketID);
-  CXFA_Node* ParseAsXDPPacket_Xdc(CFX_XMLNode* pXMLDocumentNode,
-                                  XFA_XDPPACKET ePacketID);
-  CXFA_Node* ParseAsXDPPacket_User(CFX_XMLNode* pXMLDocumentNode,
-                                   XFA_XDPPACKET ePacketID);
+      XFA_PacketType ePacketID);
+  CXFA_Node* ParseAsXDPPacket_Xdc(CFX_XMLNode* pXMLDocumentNode);
+  CXFA_Node* ParseAsXDPPacket_User(CFX_XMLNode* pXMLDocumentNode);
   CXFA_Node* NormalLoader(CXFA_Node* pXFANode,
                           CFX_XMLNode* pXMLDoc,
-                          XFA_XDPPACKET ePacketID,
+                          XFA_PacketType ePacketID,
                           bool bUseAttribute);
   CXFA_Node* DataLoader(CXFA_Node* pXFANode,
                         CFX_XMLNode* pXMLDoc,
@@ -64,16 +60,16 @@
   CXFA_Node* UserPacketLoader(CXFA_Node* pXFANode, CFX_XMLNode* pXMLDoc);
   void ParseContentNode(CXFA_Node* pXFANode,
                         CFX_XMLNode* pXMLNode,
-                        XFA_XDPPACKET ePacketID);
+                        XFA_PacketType ePacketID);
   void ParseDataValue(CXFA_Node* pXFANode,
                       CFX_XMLNode* pXMLNode,
-                      XFA_XDPPACKET ePacketID);
+                      XFA_PacketType ePacketID);
   void ParseDataGroup(CXFA_Node* pXFANode,
                       CFX_XMLNode* pXMLNode,
-                      XFA_XDPPACKET ePacketID);
+                      XFA_PacketType ePacketID);
   void ParseInstruction(CXFA_Node* pXFANode,
                         CFX_XMLInstruction* pXMLInstruction,
-                        XFA_XDPPACKET ePacketID);
+                        XFA_PacketType ePacketID);
 
   CFX_XMLParser* m_pXMLParser;
   std::unique_ptr<CFX_XMLDoc> m_pXMLDoc;
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
index 9a2c76a..b6aa0d1 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_SoapAction::CXFA_SoapAction(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SoapAction::CXFA_SoapAction(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_soapaction.h b/xfa/fxfa/parser/cxfa_soapaction.h
index 9d24e6e..b803eae 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.h
+++ b/xfa/fxfa/parser/cxfa_soapaction.h
@@ -11,7 +11,7 @@
 
 class CXFA_SoapAction : public CXFA_Node {
  public:
-  CXFA_SoapAction(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SoapAction(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SoapAction() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
index 671460f..9e857ad 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_SoapAddress::CXFA_SoapAddress(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SoapAddress::CXFA_SoapAddress(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.h b/xfa/fxfa/parser/cxfa_soapaddress.h
index 17ab11f..b0feff4 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.h
+++ b/xfa/fxfa/parser/cxfa_soapaddress.h
@@ -11,7 +11,7 @@
 
 class CXFA_SoapAddress : public CXFA_Node {
  public:
-  CXFA_SoapAddress(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SoapAddress(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SoapAddress() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp
index 9d9d6e2..4a39ffb 100644
--- a/xfa/fxfa/parser/cxfa_solid.cpp
+++ b/xfa/fxfa/parser/cxfa_solid.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Solid::CXFA_Solid(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Solid::CXFA_Solid(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_solid.h b/xfa/fxfa/parser/cxfa_solid.h
index 75936cd..ec1e2d0 100644
--- a/xfa/fxfa/parser/cxfa_solid.h
+++ b/xfa/fxfa/parser/cxfa_solid.h
@@ -11,7 +11,7 @@
 
 class CXFA_Solid : public CXFA_Node {
  public:
-  CXFA_Solid(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Solid(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Solid() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp
index bbe8242..98f2b94 100644
--- a/xfa/fxfa/parser/cxfa_source.cpp
+++ b/xfa/fxfa/parser/cxfa_source.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Source::CXFA_Source(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Source::CXFA_Source(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_source.h b/xfa/fxfa/parser/cxfa_source.h
index 9c249cd..af74be8 100644
--- a/xfa/fxfa/parser/cxfa_source.h
+++ b/xfa/fxfa/parser/cxfa_source.h
@@ -11,7 +11,7 @@
 
 class CXFA_Source : public CXFA_Node {
  public:
-  CXFA_Source(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Source(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Source() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
index 4fa642f..2617c30 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.cpp
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_SourceSet::CXFA_SourceSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SourceSet::CXFA_SourceSet(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_sourceset.h b/xfa/fxfa/parser/cxfa_sourceset.h
index 47f45ad..b07e12b 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.h
+++ b/xfa/fxfa/parser/cxfa_sourceset.h
@@ -11,7 +11,7 @@
 
 class CXFA_SourceSet : public CXFA_Node {
  public:
-  CXFA_SourceSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SourceSet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SourceSet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
index 48e9aaf..677fdfa 100644
--- a/xfa/fxfa/parser/cxfa_speak.cpp
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Speak::CXFA_Speak(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Speak::CXFA_Speak(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_speak.h b/xfa/fxfa/parser/cxfa_speak.h
index e45bf50..80ef54b 100644
--- a/xfa/fxfa/parser/cxfa_speak.h
+++ b/xfa/fxfa/parser/cxfa_speak.h
@@ -11,7 +11,7 @@
 
 class CXFA_Speak : public CXFA_Node {
  public:
-  CXFA_Speak(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Speak(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Speak() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp
index 8cf8c47..2e29ad6 100644
--- a/xfa/fxfa/parser/cxfa_staple.cpp
+++ b/xfa/fxfa/parser/cxfa_staple.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Staple::CXFA_Staple(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Staple::CXFA_Staple(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_staple.h b/xfa/fxfa/parser/cxfa_staple.h
index b843019..9651fa4 100644
--- a/xfa/fxfa/parser/cxfa_staple.h
+++ b/xfa/fxfa/parser/cxfa_staple.h
@@ -11,7 +11,7 @@
 
 class CXFA_Staple : public CXFA_Node {
  public:
-  CXFA_Staple(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Staple(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Staple() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp
index 2c4d680..f49b595 100644
--- a/xfa/fxfa/parser/cxfa_startnode.cpp
+++ b/xfa/fxfa/parser/cxfa_startnode.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_StartNode::CXFA_StartNode(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_StartNode::CXFA_StartNode(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_startnode.h b/xfa/fxfa/parser/cxfa_startnode.h
index 048564d..51815e5 100644
--- a/xfa/fxfa/parser/cxfa_startnode.h
+++ b/xfa/fxfa/parser/cxfa_startnode.h
@@ -11,7 +11,7 @@
 
 class CXFA_StartNode : public CXFA_Node {
  public:
-  CXFA_StartNode(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_StartNode(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_StartNode() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp
index 20e1bdc..c52daf2 100644
--- a/xfa/fxfa/parser/cxfa_startpage.cpp
+++ b/xfa/fxfa/parser/cxfa_startpage.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_StartPage::CXFA_StartPage(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_StartPage::CXFA_StartPage(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_startpage.h b/xfa/fxfa/parser/cxfa_startpage.h
index 0eceb87..6262aa7 100644
--- a/xfa/fxfa/parser/cxfa_startpage.h
+++ b/xfa/fxfa/parser/cxfa_startpage.h
@@ -11,7 +11,7 @@
 
 class CXFA_StartPage : public CXFA_Node {
  public:
-  CXFA_StartPage(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_StartPage(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_StartPage() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp
index b389d9b..5cf4bac 100644
--- a/xfa/fxfa/parser/cxfa_stipple.cpp
+++ b/xfa/fxfa/parser/cxfa_stipple.cpp
@@ -22,7 +22,7 @@
 
 }  // namespace
 
-CXFA_Stipple::CXFA_Stipple(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Stipple::CXFA_Stipple(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_stipple.h b/xfa/fxfa/parser/cxfa_stipple.h
index a662e48..2dddf44 100644
--- a/xfa/fxfa/parser/cxfa_stipple.h
+++ b/xfa/fxfa/parser/cxfa_stipple.h
@@ -11,7 +11,7 @@
 
 class CXFA_Stipple : public CXFA_Node {
  public:
-  CXFA_Stipple(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Stipple(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Stipple() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp
index 10d5580..a66b315 100644
--- a/xfa/fxfa/parser/cxfa_subform.cpp
+++ b/xfa/fxfa/parser/cxfa_subform.cpp
@@ -60,7 +60,7 @@
 
 }  // namespace
 
-CXFA_Subform::CXFA_Subform(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Subform::CXFA_Subform(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_subform.h b/xfa/fxfa/parser/cxfa_subform.h
index 1c2f2af..00b2e17 100644
--- a/xfa/fxfa/parser/cxfa_subform.h
+++ b/xfa/fxfa/parser/cxfa_subform.h
@@ -11,7 +11,7 @@
 
 class CXFA_Subform : public CXFA_Node {
  public:
-  CXFA_Subform(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Subform(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Subform() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp
index 56c79e8..74b940c 100644
--- a/xfa/fxfa/parser/cxfa_subformset.cpp
+++ b/xfa/fxfa/parser/cxfa_subformset.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CXFA_SubformSet::CXFA_SubformSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SubformSet::CXFA_SubformSet(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_subformset.h b/xfa/fxfa/parser/cxfa_subformset.h
index 4f7f7dc..8e0f3ea 100644
--- a/xfa/fxfa/parser/cxfa_subformset.h
+++ b/xfa/fxfa/parser/cxfa_subformset.h
@@ -11,7 +11,7 @@
 
 class CXFA_SubformSet : public CXFA_Node {
  public:
-  CXFA_SubformSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SubformSet(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SubformSet() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
index 65ee274..d58f4d5 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_SubjectDN::CXFA_SubjectDN(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SubjectDN::CXFA_SubjectDN(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.h b/xfa/fxfa/parser/cxfa_subjectdn.h
index e778252..0861d75 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.h
+++ b/xfa/fxfa/parser/cxfa_subjectdn.h
@@ -11,7 +11,7 @@
 
 class CXFA_SubjectDN : public CXFA_Node {
  public:
-  CXFA_SubjectDN(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SubjectDN(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SubjectDN() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
index 20d2b25..9445752 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_SubjectDNs::CXFA_SubjectDNs(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SubjectDNs::CXFA_SubjectDNs(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.h b/xfa/fxfa/parser/cxfa_subjectdns.h
index ba8cf07..e9d739c 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.h
+++ b/xfa/fxfa/parser/cxfa_subjectdns.h
@@ -11,7 +11,7 @@
 
 class CXFA_SubjectDNs : public CXFA_Node {
  public:
-  CXFA_SubjectDNs(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SubjectDNs(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SubjectDNs() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp
index 36bdbf0..deb24ae 100644
--- a/xfa/fxfa/parser/cxfa_submit.cpp
+++ b/xfa/fxfa/parser/cxfa_submit.cpp
@@ -26,7 +26,7 @@
 
 }  // namespace
 
-CXFA_Submit::CXFA_Submit(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Submit::CXFA_Submit(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_submit.h b/xfa/fxfa/parser/cxfa_submit.h
index 863d210..2b9b5e8 100644
--- a/xfa/fxfa/parser/cxfa_submit.h
+++ b/xfa/fxfa/parser/cxfa_submit.h
@@ -11,7 +11,7 @@
 
 class CXFA_Submit : public CXFA_Node {
  public:
-  CXFA_Submit(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Submit(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Submit() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp
index 54ffe52..30daf89 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.cpp
+++ b/xfa/fxfa/parser/cxfa_submitformat.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_SubmitFormat::CXFA_SubmitFormat(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SubmitFormat::CXFA_SubmitFormat(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_submitformat.h b/xfa/fxfa/parser/cxfa_submitformat.h
index 72febdf..adca1e9 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.h
+++ b/xfa/fxfa/parser/cxfa_submitformat.h
@@ -11,7 +11,7 @@
 
 class CXFA_SubmitFormat : public CXFA_Node {
  public:
-  CXFA_SubmitFormat(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SubmitFormat(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SubmitFormat() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp
index 2f19a1d..591dd99 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.cpp
+++ b/xfa/fxfa/parser/cxfa_submiturl.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_SubmitUrl::CXFA_SubmitUrl(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SubmitUrl::CXFA_SubmitUrl(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_submiturl.h b/xfa/fxfa/parser/cxfa_submiturl.h
index 6d1b25f..8d87db9 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.h
+++ b/xfa/fxfa/parser/cxfa_submiturl.h
@@ -11,7 +11,7 @@
 
 class CXFA_SubmitUrl : public CXFA_Node {
  public:
-  CXFA_SubmitUrl(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SubmitUrl(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SubmitUrl() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
index 7154877..90dbd06 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.cpp
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_SubsetBelow::CXFA_SubsetBelow(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_SubsetBelow::CXFA_SubsetBelow(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.h b/xfa/fxfa/parser/cxfa_subsetbelow.h
index e3ff516..db912fe 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.h
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.h
@@ -11,7 +11,7 @@
 
 class CXFA_SubsetBelow : public CXFA_Node {
  public:
-  CXFA_SubsetBelow(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SubsetBelow(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SubsetBelow() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
index e1cfd92..46c42a5 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.cpp
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_SuppressBanner::CXFA_SuppressBanner(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.h b/xfa/fxfa/parser/cxfa_suppressbanner.h
index ef3406b..79013a2 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.h
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.h
@@ -11,7 +11,7 @@
 
 class CXFA_SuppressBanner : public CXFA_Node {
  public:
-  CXFA_SuppressBanner(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_SuppressBanner(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_SuppressBanner() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp
index ce9e15f..0f46b62 100644
--- a/xfa/fxfa/parser/cxfa_tagged.cpp
+++ b/xfa/fxfa/parser/cxfa_tagged.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Tagged::CXFA_Tagged(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Tagged::CXFA_Tagged(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_tagged.h b/xfa/fxfa/parser/cxfa_tagged.h
index 14c55c2..50b1ba4 100644
--- a/xfa/fxfa/parser/cxfa_tagged.h
+++ b/xfa/fxfa/parser/cxfa_tagged.h
@@ -11,7 +11,7 @@
 
 class CXFA_Tagged : public CXFA_Node {
  public:
-  CXFA_Tagged(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Tagged(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Tagged() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp
index b70bb53..28ae61b 100644
--- a/xfa/fxfa/parser/cxfa_template.cpp
+++ b/xfa/fxfa/parser/cxfa_template.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Template::CXFA_Template(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Template::CXFA_Template(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_template.h b/xfa/fxfa/parser/cxfa_template.h
index 4d41209..34b035f 100644
--- a/xfa/fxfa/parser/cxfa_template.h
+++ b/xfa/fxfa/parser/cxfa_template.h
@@ -11,7 +11,7 @@
 
 class CXFA_Template : public CXFA_Node {
  public:
-  CXFA_Template(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Template(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Template() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp
index 9f407e4..e22ed65 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.cpp
+++ b/xfa/fxfa/parser/cxfa_templatecache.cpp
@@ -18,7 +18,8 @@
 
 }  // namespace
 
-CXFA_TemplateCache::CXFA_TemplateCache(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_TemplateCache::CXFA_TemplateCache(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_templatecache.h b/xfa/fxfa/parser/cxfa_templatecache.h
index 3477f2e..45953fe 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.h
+++ b/xfa/fxfa/parser/cxfa_templatecache.h
@@ -11,7 +11,7 @@
 
 class CXFA_TemplateCache : public CXFA_Node {
  public:
-  CXFA_TemplateCache(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_TemplateCache(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_TemplateCache() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
index 816a5fc..80b4eb2 100644
--- a/xfa/fxfa/parser/cxfa_text.cpp
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Text::CXFA_Text(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Text::CXFA_Text(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
diff --git a/xfa/fxfa/parser/cxfa_text.h b/xfa/fxfa/parser/cxfa_text.h
index 2bb5ef8..6883904 100644
--- a/xfa/fxfa/parser/cxfa_text.h
+++ b/xfa/fxfa/parser/cxfa_text.h
@@ -11,7 +11,7 @@
 
 class CXFA_Text : public CXFA_Node {
  public:
-  CXFA_Text(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Text(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Text() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp
index 17e96a0..131fcc7 100644
--- a/xfa/fxfa/parser/cxfa_textedit.cpp
+++ b/xfa/fxfa/parser/cxfa_textedit.cpp
@@ -29,7 +29,7 @@
 
 }  // namespace
 
-CXFA_TextEdit::CXFA_TextEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_TextEdit::CXFA_TextEdit(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_textedit.h b/xfa/fxfa/parser/cxfa_textedit.h
index 6fbae5d..972ede4 100644
--- a/xfa/fxfa/parser/cxfa_textedit.h
+++ b/xfa/fxfa/parser/cxfa_textedit.h
@@ -11,7 +11,7 @@
 
 class CXFA_TextEdit : public CXFA_Node {
  public:
-  CXFA_TextEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_TextEdit(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_TextEdit() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp
index b50c63a..2047d52 100644
--- a/xfa/fxfa/parser/cxfa_threshold.cpp
+++ b/xfa/fxfa/parser/cxfa_threshold.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Threshold::CXFA_Threshold(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Threshold::CXFA_Threshold(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_threshold.h b/xfa/fxfa/parser/cxfa_threshold.h
index 6625b22..4bde01a 100644
--- a/xfa/fxfa/parser/cxfa_threshold.h
+++ b/xfa/fxfa/parser/cxfa_threshold.h
@@ -11,7 +11,7 @@
 
 class CXFA_Threshold : public CXFA_Node {
  public:
-  CXFA_Threshold(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Threshold(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Threshold() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
index 89307d6..e4c8705 100644
--- a/xfa/fxfa/parser/cxfa_time.cpp
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Time::CXFA_Time(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Time::CXFA_Time(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_time.h b/xfa/fxfa/parser/cxfa_time.h
index fe6f662..efc6d02 100644
--- a/xfa/fxfa/parser/cxfa_time.h
+++ b/xfa/fxfa/parser/cxfa_time.h
@@ -11,7 +11,7 @@
 
 class CXFA_Time : public CXFA_Node {
  public:
-  CXFA_Time(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Time(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Time() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp
index 5535e9f..9424e8c 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_timepattern.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_TimePattern::CXFA_TimePattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_TimePattern::CXFA_TimePattern(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_timepattern.h b/xfa/fxfa/parser/cxfa_timepattern.h
index 7bddbd2..f796047 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.h
+++ b/xfa/fxfa/parser/cxfa_timepattern.h
@@ -11,7 +11,7 @@
 
 class CXFA_TimePattern : public CXFA_Node {
  public:
-  CXFA_TimePattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_TimePattern(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_TimePattern() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.cpp b/xfa/fxfa/parser/cxfa_timepatterns.cpp
index 7739e00..c3a8dde 100644
--- a/xfa/fxfa/parser/cxfa_timepatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_timepatterns.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_TimePatterns::CXFA_TimePatterns(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_TimePatterns::CXFA_TimePatterns(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.h b/xfa/fxfa/parser/cxfa_timepatterns.h
index 827d241..be9337d 100644
--- a/xfa/fxfa/parser/cxfa_timepatterns.h
+++ b/xfa/fxfa/parser/cxfa_timepatterns.h
@@ -11,7 +11,7 @@
 
 class CXFA_TimePatterns : public CXFA_Node {
  public:
-  CXFA_TimePatterns(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_TimePatterns(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_TimePatterns() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
index 3edd59e..369a015 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.cpp
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_TimeStamp::CXFA_TimeStamp(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_TimeStamp::CXFA_TimeStamp(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_timestamp.h b/xfa/fxfa/parser/cxfa_timestamp.h
index b35ed05..7db73e9 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.h
+++ b/xfa/fxfa/parser/cxfa_timestamp.h
@@ -11,7 +11,7 @@
 
 class CXFA_TimeStamp : public CXFA_Node {
  public:
-  CXFA_TimeStamp(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_TimeStamp(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_TimeStamp() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp
index 678c13d..a30c015 100644
--- a/xfa/fxfa/parser/cxfa_to.cpp
+++ b/xfa/fxfa/parser/cxfa_to.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_To::CXFA_To(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_To::CXFA_To(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_to.h b/xfa/fxfa/parser/cxfa_to.h
index d7ea7d1..f418f59 100644
--- a/xfa/fxfa/parser/cxfa_to.h
+++ b/xfa/fxfa/parser/cxfa_to.h
@@ -11,7 +11,7 @@
 
 class CXFA_To : public CXFA_Node {
  public:
-  CXFA_To(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_To(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_To() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
index 5d4ecfa..a8721bf 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.cpp
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_ToolTip::CXFA_ToolTip(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_ToolTip::CXFA_ToolTip(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_tooltip.h b/xfa/fxfa/parser/cxfa_tooltip.h
index a487a88..0b13282 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.h
+++ b/xfa/fxfa/parser/cxfa_tooltip.h
@@ -11,7 +11,7 @@
 
 class CXFA_ToolTip : public CXFA_Node {
  public:
-  CXFA_ToolTip(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ToolTip(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ToolTip() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp
index 64a872b..7de01fc 100644
--- a/xfa/fxfa/parser/cxfa_trace.cpp
+++ b/xfa/fxfa/parser/cxfa_trace.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Trace::CXFA_Trace(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Trace::CXFA_Trace(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_trace.h b/xfa/fxfa/parser/cxfa_trace.h
index 113b739..dec95da 100644
--- a/xfa/fxfa/parser/cxfa_trace.h
+++ b/xfa/fxfa/parser/cxfa_trace.h
@@ -11,7 +11,7 @@
 
 class CXFA_Trace : public CXFA_Node {
  public:
-  CXFA_Trace(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Trace(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Trace() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_transform.cpp b/xfa/fxfa/parser/cxfa_transform.cpp
index d69d84f..5bfa476 100644
--- a/xfa/fxfa/parser/cxfa_transform.cpp
+++ b/xfa/fxfa/parser/cxfa_transform.cpp
@@ -23,7 +23,7 @@
 
 }  // namespace
 
-CXFA_Transform::CXFA_Transform(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Transform::CXFA_Transform(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_transform.h b/xfa/fxfa/parser/cxfa_transform.h
index 410cbd3..fde54e6 100644
--- a/xfa/fxfa/parser/cxfa_transform.h
+++ b/xfa/fxfa/parser/cxfa_transform.h
@@ -11,7 +11,7 @@
 
 class CXFA_Transform : public CXFA_Node {
  public:
-  CXFA_Transform(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Transform(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Transform() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp
index 47e6822..82a2845 100644
--- a/xfa/fxfa/parser/cxfa_traversal.cpp
+++ b/xfa/fxfa/parser/cxfa_traversal.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Traversal::CXFA_Traversal(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Traversal::CXFA_Traversal(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_traversal.h b/xfa/fxfa/parser/cxfa_traversal.h
index 15df49d..47422b2 100644
--- a/xfa/fxfa/parser/cxfa_traversal.h
+++ b/xfa/fxfa/parser/cxfa_traversal.h
@@ -11,7 +11,7 @@
 
 class CXFA_Traversal : public CXFA_Node {
  public:
-  CXFA_Traversal(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Traversal(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Traversal() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
index 46018e3..f691ab8 100644
--- a/xfa/fxfa/parser/cxfa_traverse.cpp
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Traverse::CXFA_Traverse(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Traverse::CXFA_Traverse(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_traverse.h b/xfa/fxfa/parser/cxfa_traverse.h
index 09ca4dc..de33cb7 100644
--- a/xfa/fxfa/parser/cxfa_traverse.h
+++ b/xfa/fxfa/parser/cxfa_traverse.h
@@ -11,7 +11,7 @@
 
 class CXFA_Traverse : public CXFA_Node {
  public:
-  CXFA_Traverse(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Traverse(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Traverse() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp
index 3be4415..ac1c193 100644
--- a/xfa/fxfa/parser/cxfa_type.cpp
+++ b/xfa/fxfa/parser/cxfa_type.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Type::CXFA_Type(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Type::CXFA_Type(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_type.h b/xfa/fxfa/parser/cxfa_type.h
index b9dfacd..5e7d467 100644
--- a/xfa/fxfa/parser/cxfa_type.h
+++ b/xfa/fxfa/parser/cxfa_type.h
@@ -11,7 +11,7 @@
 
 class CXFA_Type : public CXFA_Node {
  public:
-  CXFA_Type(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Type(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Type() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp
index 7c78bce..3bf69bd 100644
--- a/xfa/fxfa/parser/cxfa_typeface.cpp
+++ b/xfa/fxfa/parser/cxfa_typeface.cpp
@@ -16,7 +16,7 @@
 
 }  // namespace
 
-CXFA_Typeface::CXFA_Typeface(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Typeface::CXFA_Typeface(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_typeface.h b/xfa/fxfa/parser/cxfa_typeface.h
index 235abe4..cbc90c4 100644
--- a/xfa/fxfa/parser/cxfa_typeface.h
+++ b/xfa/fxfa/parser/cxfa_typeface.h
@@ -11,7 +11,7 @@
 
 class CXFA_Typeface : public CXFA_Node {
  public:
-  CXFA_Typeface(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Typeface(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Typeface() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_typefaces.cpp b/xfa/fxfa/parser/cxfa_typefaces.cpp
index 6cd89f4..525919d 100644
--- a/xfa/fxfa/parser/cxfa_typefaces.cpp
+++ b/xfa/fxfa/parser/cxfa_typefaces.cpp
@@ -12,7 +12,7 @@
 
 }  // namespace
 
-CXFA_Typefaces::CXFA_Typefaces(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Typefaces::CXFA_Typefaces(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_LocaleSet,
diff --git a/xfa/fxfa/parser/cxfa_typefaces.h b/xfa/fxfa/parser/cxfa_typefaces.h
index 8f55049..fa4b43f 100644
--- a/xfa/fxfa/parser/cxfa_typefaces.h
+++ b/xfa/fxfa/parser/cxfa_typefaces.h
@@ -11,7 +11,7 @@
 
 class CXFA_Typefaces : public CXFA_Node {
  public:
-  CXFA_Typefaces(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Typefaces(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Typefaces() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp
index d0d5c30..fabb853 100644
--- a/xfa/fxfa/parser/cxfa_ui.cpp
+++ b/xfa/fxfa/parser/cxfa_ui.cpp
@@ -34,7 +34,7 @@
 
 }  // namespace
 
-CXFA_Ui::CXFA_Ui(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Ui::CXFA_Ui(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_ui.h b/xfa/fxfa/parser/cxfa_ui.h
index cb43c7a..0824d6b 100644
--- a/xfa/fxfa/parser/cxfa_ui.h
+++ b/xfa/fxfa/parser/cxfa_ui.h
@@ -11,7 +11,7 @@
 
 class CXFA_Ui : public CXFA_Node {
  public:
-  CXFA_Ui(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Ui(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Ui() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
index ff94e01..f9f9d1c 100644
--- a/xfa/fxfa/parser/cxfa_update.cpp
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Update::CXFA_Update(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Update::CXFA_Update(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_update.h b/xfa/fxfa/parser/cxfa_update.h
index a79626e..9e652ea 100644
--- a/xfa/fxfa/parser/cxfa_update.h
+++ b/xfa/fxfa/parser/cxfa_update.h
@@ -11,7 +11,7 @@
 
 class CXFA_Update : public CXFA_Node {
  public:
-  CXFA_Update(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Update(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Update() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
index d3c6166..6cdffce 100644
--- a/xfa/fxfa/parser/cxfa_uri.cpp
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_Uri::CXFA_Uri(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Uri::CXFA_Uri(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_ConnectionSet),
diff --git a/xfa/fxfa/parser/cxfa_uri.h b/xfa/fxfa/parser/cxfa_uri.h
index e82f824..bb31596 100644
--- a/xfa/fxfa/parser/cxfa_uri.h
+++ b/xfa/fxfa/parser/cxfa_uri.h
@@ -11,7 +11,7 @@
 
 class CXFA_Uri : public CXFA_Node {
  public:
-  CXFA_Uri(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Uri(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Uri() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
index 62a3634..b8a7bda 100644
--- a/xfa/fxfa/parser/cxfa_user.cpp
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_User::CXFA_User(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_User::CXFA_User(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_SourceSet,
diff --git a/xfa/fxfa/parser/cxfa_user.h b/xfa/fxfa/parser/cxfa_user.h
index a2a0364..3aad173 100644
--- a/xfa/fxfa/parser/cxfa_user.h
+++ b/xfa/fxfa/parser/cxfa_user.h
@@ -11,7 +11,7 @@
 
 class CXFA_User : public CXFA_Node {
  public:
-  CXFA_User(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_User(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_User() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp
index 9bf39e1..03066a7 100644
--- a/xfa/fxfa/parser/cxfa_validate.cpp
+++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -31,7 +31,7 @@
 
 }  // namespace
 
-CXFA_Validate::CXFA_Validate(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Validate::CXFA_Validate(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(
           doc,
           packet,
diff --git a/xfa/fxfa/parser/cxfa_validate.h b/xfa/fxfa/parser/cxfa_validate.h
index c21ed41..d19850c 100644
--- a/xfa/fxfa/parser/cxfa_validate.h
+++ b/xfa/fxfa/parser/cxfa_validate.h
@@ -11,7 +11,7 @@
 
 class CXFA_Validate : public CXFA_Node {
  public:
-  CXFA_Validate(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Validate(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Validate() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
index 971bbec..f51131e 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
@@ -19,7 +19,7 @@
 
 CXFA_ValidateApprovalSignatures::CXFA_ValidateApprovalSignatures(
     CXFA_Document* doc,
-    XFA_XDPPACKET packet)
+    XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
index 2922cb5..d7dac98 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
@@ -11,7 +11,7 @@
 
 class CXFA_ValidateApprovalSignatures : public CXFA_Node {
  public:
-  CXFA_ValidateApprovalSignatures(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ValidateApprovalSignatures(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ValidateApprovalSignatures() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
index f7ff877..196c98c 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.cpp
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
@@ -18,7 +18,7 @@
 }  // namespace
 
 CXFA_ValidationMessaging::CXFA_ValidationMessaging(CXFA_Document* doc,
-                                                   XFA_XDPPACKET packet)
+                                                   XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.h b/xfa/fxfa/parser/cxfa_validationmessaging.h
index 3a493b4..081b24c 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.h
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.h
@@ -11,7 +11,7 @@
 
 class CXFA_ValidationMessaging : public CXFA_Node {
  public:
-  CXFA_ValidationMessaging(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ValidationMessaging(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ValidationMessaging() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp
index 02450b4..a97ac35 100644
--- a/xfa/fxfa/parser/cxfa_value.cpp
+++ b/xfa/fxfa/parser/cxfa_value.cpp
@@ -35,7 +35,7 @@
 
 }  // namespace
 
-CXFA_Value::CXFA_Value(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Value::CXFA_Value(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_value.h b/xfa/fxfa/parser/cxfa_value.h
index b73d50d..01f8c4a 100644
--- a/xfa/fxfa/parser/cxfa_value.h
+++ b/xfa/fxfa/parser/cxfa_value.h
@@ -11,7 +11,7 @@
 
 class CXFA_Value : public CXFA_Node {
  public:
-  CXFA_Value(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Value(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Value() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
index 0014c20..1942fb2 100644
--- a/xfa/fxfa/parser/cxfa_variables.cpp
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -18,7 +18,7 @@
 
 }  // namespace
 
-CXFA_Variables::CXFA_Variables(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Variables::CXFA_Variables(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
diff --git a/xfa/fxfa/parser/cxfa_variables.h b/xfa/fxfa/parser/cxfa_variables.h
index 1f7b6fc..4c4cb4e 100644
--- a/xfa/fxfa/parser/cxfa_variables.h
+++ b/xfa/fxfa/parser/cxfa_variables.h
@@ -11,7 +11,7 @@
 
 class CXFA_Variables : public CXFA_Node {
  public:
-  CXFA_Variables(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Variables(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Variables() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp
index ac9d308..5266f44 100644
--- a/xfa/fxfa/parser/cxfa_version.cpp
+++ b/xfa/fxfa/parser/cxfa_version.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Version::CXFA_Version(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Version::CXFA_Version(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_version.h b/xfa/fxfa/parser/cxfa_version.h
index ad50610..34462fb 100644
--- a/xfa/fxfa/parser/cxfa_version.h
+++ b/xfa/fxfa/parser/cxfa_version.h
@@ -11,7 +11,7 @@
 
 class CXFA_Version : public CXFA_Node {
  public:
-  CXFA_Version(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Version(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Version() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
index d2920dd..8830de7 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.cpp
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
@@ -23,7 +23,7 @@
 }  // namespace
 
 CXFA_VersionControl::CXFA_VersionControl(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.h b/xfa/fxfa/parser/cxfa_versioncontrol.h
index 46c1418..4688f55 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.h
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.h
@@ -11,7 +11,7 @@
 
 class CXFA_VersionControl : public CXFA_Node {
  public:
-  CXFA_VersionControl(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_VersionControl(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_VersionControl() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
index c3bbd27..1b80b47 100644
--- a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
@@ -29,7 +29,7 @@
 }  // namespace
 
 CXFA_ViewerPreferences::CXFA_ViewerPreferences(CXFA_Document* doc,
-                                               XFA_XDPPACKET packet)
+                                               XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.h b/xfa/fxfa/parser/cxfa_viewerpreferences.h
index 009ee03..bf831ee 100644
--- a/xfa/fxfa/parser/cxfa_viewerpreferences.h
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.h
@@ -11,7 +11,7 @@
 
 class CXFA_ViewerPreferences : public CXFA_Node {
  public:
-  CXFA_ViewerPreferences(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_ViewerPreferences(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_ViewerPreferences() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_webclient.cpp b/xfa/fxfa/parser/cxfa_webclient.cpp
index ceb6cb0..0123560 100644
--- a/xfa/fxfa/parser/cxfa_webclient.cpp
+++ b/xfa/fxfa/parser/cxfa_webclient.cpp
@@ -21,7 +21,7 @@
 
 }  // namespace
 
-CXFA_WebClient::CXFA_WebClient(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_WebClient::CXFA_WebClient(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_webclient.h b/xfa/fxfa/parser/cxfa_webclient.h
index b902461..b778689 100644
--- a/xfa/fxfa/parser/cxfa_webclient.h
+++ b/xfa/fxfa/parser/cxfa_webclient.h
@@ -11,7 +11,7 @@
 
 class CXFA_WebClient : public CXFA_Node {
  public:
-  CXFA_WebClient(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_WebClient(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_WebClient() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp
index 874a327..6359b86 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.cpp
+++ b/xfa/fxfa/parser/cxfa_whitespace.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Whitespace::CXFA_Whitespace(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Whitespace::CXFA_Whitespace(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_whitespace.h b/xfa/fxfa/parser/cxfa_whitespace.h
index 7ed50fe..62dde48 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.h
+++ b/xfa/fxfa/parser/cxfa_whitespace.h
@@ -11,7 +11,7 @@
 
 class CXFA_Whitespace : public CXFA_Node {
  public:
-  CXFA_Whitespace(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Whitespace(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Whitespace() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index 520a559..9ceeb61 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -115,7 +115,7 @@
     }
 
     auto node = CXFA_Node::Create(pChild->GetDocument(), XFA_Element::Ui,
-                                  XFA_XDPPACKET_Form);
+                                  XFA_PacketType::Form);
     if (node && node->HasPropertyFlags(eChildType, XFA_PROPERTYFLAG_OneOf)) {
       pUIChild = pChild;
       break;
diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp
index d484076..b1485f6 100644
--- a/xfa/fxfa/parser/cxfa_window.cpp
+++ b/xfa/fxfa/parser/cxfa_window.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Window::CXFA_Window(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Window::CXFA_Window(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_window.h b/xfa/fxfa/parser/cxfa_window.h
index b0bb1c6..852bc68 100644
--- a/xfa/fxfa/parser/cxfa_window.h
+++ b/xfa/fxfa/parser/cxfa_window.h
@@ -11,7 +11,7 @@
 
 class CXFA_Window : public CXFA_Node {
  public:
-  CXFA_Window(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Window(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Window() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
index c958d41..94707bc 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_WsdlAddress::CXFA_WsdlAddress(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_WsdlAddress::CXFA_WsdlAddress(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.h b/xfa/fxfa/parser/cxfa_wsdladdress.h
index ec99ae0..83c965c 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.h
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.h
@@ -11,7 +11,7 @@
 
 class CXFA_WsdlAddress : public CXFA_Node {
  public:
-  CXFA_WsdlAddress(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_WsdlAddress(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_WsdlAddress() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
index 370cd4f..4c68a7c 100644
--- a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
@@ -26,7 +26,7 @@
 }  // namespace
 
 CXFA_WsdlConnection::CXFA_WsdlConnection(CXFA_Document* doc,
-                                         XFA_XDPPACKET packet)
+                                         XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.h b/xfa/fxfa/parser/cxfa_wsdlconnection.h
index 70ebd87..6c349cf 100644
--- a/xfa/fxfa/parser/cxfa_wsdlconnection.h
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.h
@@ -11,7 +11,7 @@
 
 class CXFA_WsdlConnection : public CXFA_Node {
  public:
-  CXFA_WsdlConnection(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_WsdlConnection(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_WsdlConnection() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_xdc.cpp b/xfa/fxfa/parser/cxfa_xdc.cpp
index 2578c432..daaebc8 100644
--- a/xfa/fxfa/parser/cxfa_xdc.cpp
+++ b/xfa/fxfa/parser/cxfa_xdc.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Xdc::CXFA_Xdc(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Xdc::CXFA_Xdc(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_Xdc),
diff --git a/xfa/fxfa/parser/cxfa_xdc.h b/xfa/fxfa/parser/cxfa_xdc.h
index e64c91c..0eb43d5 100644
--- a/xfa/fxfa/parser/cxfa_xdc.h
+++ b/xfa/fxfa/parser/cxfa_xdc.h
@@ -11,7 +11,7 @@
 
 class CXFA_Xdc : public CXFA_Node {
  public:
-  CXFA_Xdc(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Xdc(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Xdc() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_xdp.cpp b/xfa/fxfa/parser/cxfa_xdp.cpp
index cb090f3..f100ae8 100644
--- a/xfa/fxfa/parser/cxfa_xdp.cpp
+++ b/xfa/fxfa/parser/cxfa_xdp.cpp
@@ -19,7 +19,7 @@
 
 }  // namespace
 
-CXFA_Xdp::CXFA_Xdp(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Xdp::CXFA_Xdp(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_xdp.h b/xfa/fxfa/parser/cxfa_xdp.h
index dbd1ef3..38b450e 100644
--- a/xfa/fxfa/parser/cxfa_xdp.h
+++ b/xfa/fxfa/parser/cxfa_xdp.h
@@ -11,7 +11,7 @@
 
 class CXFA_Xdp : public CXFA_Node {
  public:
-  CXFA_Xdp(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Xdp(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Xdp() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
index 9fc6dc3..cd7f0ce 100644
--- a/xfa/fxfa/parser/cxfa_xfa.cpp
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -17,7 +17,7 @@
 
 }  // namespace
 
-CXFA_Xfa::CXFA_Xfa(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Xfa::CXFA_Xfa(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_XDP,
diff --git a/xfa/fxfa/parser/cxfa_xfa.h b/xfa/fxfa/parser/cxfa_xfa.h
index f821cbb..137b601 100644
--- a/xfa/fxfa/parser/cxfa_xfa.h
+++ b/xfa/fxfa/parser/cxfa_xfa.h
@@ -11,7 +11,7 @@
 
 class CXFA_Xfa : public CXFA_Node {
  public:
-  CXFA_Xfa(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Xfa(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Xfa() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
index c67f684..7d341bf 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
@@ -19,7 +19,8 @@
 
 }  // namespace
 
-CXFA_XmlConnection::CXFA_XmlConnection(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_XmlConnection::CXFA_XmlConnection(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.h b/xfa/fxfa/parser/cxfa_xmlconnection.h
index d2ce3eb..f9158c6 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.h
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.h
@@ -11,7 +11,7 @@
 
 class CXFA_XmlConnection : public CXFA_Node {
  public:
-  CXFA_XmlConnection(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_XmlConnection(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_XmlConnection() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
index 45fc513..d0453d1 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
@@ -21,7 +21,8 @@
 
 }  // namespace
 
-CXFA_XsdConnection::CXFA_XsdConnection(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_XsdConnection::CXFA_XsdConnection(CXFA_Document* doc,
+                                       XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_ConnectionSet,
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.h b/xfa/fxfa/parser/cxfa_xsdconnection.h
index 2d0af3f..652d45e 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.h
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.h
@@ -11,7 +11,7 @@
 
 class CXFA_XsdConnection : public CXFA_Node {
  public:
-  CXFA_XsdConnection(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_XsdConnection(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_XsdConnection() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_xsl.cpp b/xfa/fxfa/parser/cxfa_xsl.cpp
index 0cbced1..4d5e71e 100644
--- a/xfa/fxfa/parser/cxfa_xsl.cpp
+++ b/xfa/fxfa/parser/cxfa_xsl.cpp
@@ -20,7 +20,7 @@
 
 }  // namespace
 
-CXFA_Xsl::CXFA_Xsl(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Xsl::CXFA_Xsl(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_xsl.h b/xfa/fxfa/parser/cxfa_xsl.h
index 9ad29bf..d921125 100644
--- a/xfa/fxfa/parser/cxfa_xsl.h
+++ b/xfa/fxfa/parser/cxfa_xsl.h
@@ -11,7 +11,7 @@
 
 class CXFA_Xsl : public CXFA_Node {
  public:
-  CXFA_Xsl(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Xsl(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Xsl() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_zpl.cpp b/xfa/fxfa/parser/cxfa_zpl.cpp
index 2ded6d0..aa078b5 100644
--- a/xfa/fxfa/parser/cxfa_zpl.cpp
+++ b/xfa/fxfa/parser/cxfa_zpl.cpp
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-CXFA_Zpl::CXFA_Zpl(CXFA_Document* doc, XFA_XDPPACKET packet)
+CXFA_Zpl::CXFA_Zpl(CXFA_Document* doc, XFA_PacketType packet)
     : CXFA_Node(doc,
                 packet,
                 XFA_XDPPACKET_Config,
diff --git a/xfa/fxfa/parser/cxfa_zpl.h b/xfa/fxfa/parser/cxfa_zpl.h
index e987a7f..ee8f925 100644
--- a/xfa/fxfa/parser/cxfa_zpl.h
+++ b/xfa/fxfa/parser/cxfa_zpl.h
@@ -11,7 +11,7 @@
 
 class CXFA_Zpl : public CXFA_Node {
  public:
-  CXFA_Zpl(CXFA_Document* doc, XFA_XDPPACKET packet);
+  CXFA_Zpl(CXFA_Document* doc, XFA_PacketType packet);
   ~CXFA_Zpl() override;
 };
 
diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
index b2df645..55a6425 100644
--- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
@@ -68,7 +68,7 @@
   if (!pValueNode)
     return false;
 
-  ASSERT(pValueNode->GetPacketID() == XFA_XDPPACKET_Form);
+  ASSERT(pValueNode->GetPacketType() == XFA_PacketType::Form);
   CXFA_Node* pChildNode = FormValueNode_CreateChild(pValueNode, iType);
   if (!pChildNode)
     return false;
@@ -377,7 +377,8 @@
                                    XFA_Element eMatchDataNodeType,
                                    bool bUpLevel) {
   for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = nullptr;
-       pCurDataScope && pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets;
+       pCurDataScope &&
+       pCurDataScope->GetPacketType() == XFA_PacketType::Datasets;
        pLastDataScope = pCurDataScope,
                  pCurDataScope =
                      pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) {
@@ -436,7 +437,8 @@
   uint32_t dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false);
   CXFA_Node* pLastDataScope = nullptr;
   for (CXFA_Node* pCurDataScope = pDataScope;
-       pCurDataScope && pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets;
+       pCurDataScope &&
+       pCurDataScope->GetPacketType() == XFA_PacketType::Datasets;
        pCurDataScope = pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) {
     for (CXFA_Node* pDataChild = pCurDataScope->GetFirstChildByName(dwNameHash);
          pDataChild;
@@ -535,7 +537,7 @@
   }
 
   CXFA_Node* pNewNode =
-      pDocument->CreateNode(XFA_XDPPACKET_Form, XFA_Element::InstanceManager);
+      pDocument->CreateNode(XFA_PacketType::Form, XFA_Element::InstanceManager);
   wsInstMgrNodeName =
       L"_" + pTemplateNode->JSNode()->GetCData(XFA_Attribute::Name);
   pNewNode->JSNode()->SetCData(XFA_Attribute::Name, wsInstMgrNodeName, false,
@@ -1022,7 +1024,7 @@
   CXFA_Node* pParentDDNode = pDataParent->GetDataDescriptionNode();
   if (!pParentDDNode) {
     CXFA_Node* pDataNode =
-        pDocument->CreateNode(XFA_XDPPACKET_Datasets, eNodeType);
+        pDocument->CreateNode(XFA_PacketType::Datasets, eNodeType);
     pDataNode->JSNode()->SetCData(XFA_Attribute::Name, wsName, false, false);
     pDataNode->CreateXMLMappingNode();
     pDataParent->InsertChild(pDataNode, nullptr);
@@ -1051,7 +1053,7 @@
       break;
 
     CXFA_Node* pDataNode =
-        pDocument->CreateNode(XFA_XDPPACKET_Datasets, eNodeType);
+        pDocument->CreateNode(XFA_PacketType::Datasets, eNodeType);
     pDataNode->JSNode()->SetCData(XFA_Attribute::Name, wsName, false, false);
     pDataNode->CreateXMLMappingNode();
     if (eNodeType == XFA_Element::DataValue &&
@@ -1375,7 +1377,8 @@
     CFX_XMLElement* pDatasetsXMLNode = new CFX_XMLElement(L"xfa:datasets");
     pDatasetsXMLNode->SetString(L"xmlns:xfa",
                                 L"http://www.xfa.org/schema/xfa-data/1.0/");
-    pDatasetsRoot = CreateNode(XFA_XDPPACKET_Datasets, XFA_Element::DataModel);
+    pDatasetsRoot =
+        CreateNode(XFA_PacketType::Datasets, XFA_Element::DataModel);
     pDatasetsRoot->JSNode()->SetCData(XFA_Attribute::Name, L"datasets", false,
                                       false);
     m_pRootNode->GetXMLMappingNode()->InsertChildNode(pDatasetsXMLNode);
@@ -1413,7 +1416,7 @@
 
   if (!pDataRoot) {
     CFX_XMLElement* pDataRootXMLNode = new CFX_XMLElement(L"xfa:data");
-    pDataRoot = CreateNode(XFA_XDPPACKET_Datasets, XFA_Element::DataGroup);
+    pDataRoot = CreateNode(XFA_PacketType::Datasets, XFA_Element::DataGroup);
     pDataRoot->JSNode()->SetCData(XFA_Attribute::Name, L"data", false, false);
     pDataRoot->SetXMLMappingNode(pDataRootXMLNode);
     pDatasetsRoot->InsertChild(pDataRoot, nullptr);
@@ -1441,7 +1444,7 @@
   bool bEmptyForm = false;
   if (!pFormRoot) {
     bEmptyForm = true;
-    pFormRoot = CreateNode(XFA_XDPPACKET_Form, XFA_Element::Form);
+    pFormRoot = CreateNode(XFA_PacketType::Form, XFA_Element::Form);
     ASSERT(pFormRoot);
     pFormRoot->JSNode()->SetCData(XFA_Attribute::Name, L"form", false, false);
     m_pRootNode->InsertChild(pFormRoot, nullptr);
@@ -1464,7 +1467,8 @@
     CFX_XMLElement* pDataTopLevelXMLNode =
         new CFX_XMLElement(wsDataTopLevelName);
 
-    pDataTopLevel = CreateNode(XFA_XDPPACKET_Datasets, XFA_Element::DataGroup);
+    pDataTopLevel =
+        CreateNode(XFA_PacketType::Datasets, XFA_Element::DataGroup);
     pDataTopLevel->JSNode()->SetCData(XFA_Attribute::Name, wsDataTopLevelName,
                                       false, false);
     pDataTopLevel->SetXMLMappingNode(pDataTopLevelXMLNode);
