Remove the packets from attribute data.

Now that the attributes are stored per node we don't need to store the
packets for a given attribute as the node is already restricted to
certain packets.

Change-Id: Ic8916f5e045a14a437e1487445c0742e6d5def44
Reviewed-on: https://pdfium-review.googlesource.com/19830
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
index 8c5bd8e..f603d20 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"accessibleContent";
 
diff --git a/xfa/fxfa/parser/cxfa_acrobat.cpp b/xfa/fxfa/parser/cxfa_acrobat.cpp
index 63358ad..88f3928 100644
--- a/xfa/fxfa/parser/cxfa_acrobat.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat.cpp
@@ -16,11 +16,9 @@
     {XFA_Element::Common, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"acrobat";
 
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.cpp b/xfa/fxfa/parser/cxfa_acrobat7.cpp
index d25e898..860cf1d 100644
--- a/xfa/fxfa/parser/cxfa_acrobat7.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat7.cpp
@@ -12,11 +12,9 @@
     {XFA_Element::DynamicRender, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"acrobat7";
 
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
index 3ce756f..1ecca4e9 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"ADBE_JSConsole";
 
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
index 46a3956..eefcdb0 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"ADBE_JSDebugger";
 
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
index ed48cf9..4dc1acf 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"addSilentPrint";
 
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
index 4fb1aec..6cfa024 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"addViewerPreferences";
 
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp
index d665f28..cf58242 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.cpp
+++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"adjustData";
 
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
index 3c36ff0..d03728c 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"adobeExtensionLevel";
 
diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp
index 622d30d..3dcd75e 100644
--- a/xfa/fxfa/parser/cxfa_agent.cpp
+++ b/xfa/fxfa/parser/cxfa_agent.cpp
@@ -9,16 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"agent";
 
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
index 26b3eb7..0138a9b 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.cpp
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"alwaysEmbed";
 
diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp
index 3bc0846..b174c1a 100644
--- a/xfa/fxfa/parser/cxfa_amd.cpp
+++ b/xfa/fxfa/parser/cxfa_amd.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"amd";
 
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
index 46c15c0..eb8b449 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.cpp
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"appearanceFilter";
 
diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp
index 2451025..3465420 100644
--- a/xfa/fxfa/parser/cxfa_arc.cpp
+++ b/xfa/fxfa/parser/cxfa_arc.cpp
@@ -12,28 +12,15 @@
                                                  {XFA_Element::Fill, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::StartAngle, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::SweepAngle, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)360},
-    {XFA_Attribute::Circular, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::StartAngle, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::SweepAngle, XFA_AttributeType::Integer, (void*)360},
+    {XFA_Attribute::Circular, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Hand, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Even},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"arc";
 
diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp
index b1a8f81..d3007fb 100644
--- a/xfa/fxfa/parser/cxfa_area.cpp
+++ b/xfa/fxfa/parser/cxfa_area.cpp
@@ -12,38 +12,17 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Level, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Level, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"area";
 
diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp
index e6e48b0..fbf42c2 100644
--- a/xfa/fxfa/parser/cxfa_assist.cpp
+++ b/xfa/fxfa/parser/cxfa_assist.cpp
@@ -12,21 +12,11 @@
                                                  {XFA_Element::Speak, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Role, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Role, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"assist";
 
diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp
index 8a8e5c1..e9406ef 100644
--- a/xfa/fxfa/parser/cxfa_attributes.cpp
+++ b/xfa/fxfa/parser/cxfa_attributes.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"attributes";
 
diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp
index d302257..1ab6eb9 100644
--- a/xfa/fxfa/parser/cxfa_autosave.cpp
+++ b/xfa/fxfa/parser/cxfa_autosave.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"autoSave";
 
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
index a6604e6..f81e6ca 100644
--- a/xfa/fxfa/parser/cxfa_barcode.cpp
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -9,59 +9,32 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DataRowCount, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataRowCount, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::DataPrep, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Type, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)nullptr},
+    {XFA_Attribute::Type, XFA_AttributeType::CData, (void*)nullptr},
     {XFA_Attribute::TextLocation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Below},
-    {XFA_Attribute::ModuleWidth, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.25mm"},
-    {XFA_Attribute::PrintCheckDigit, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::ModuleHeight, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"5mm"},
-    {XFA_Attribute::StartChar, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Truncate, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::WideNarrowRatio, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"3:1"},
-    {XFA_Attribute::ErrorCorrectionLevel, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::ModuleWidth, XFA_AttributeType::Measure, (void*)L"0.25mm"},
+    {XFA_Attribute::PrintCheckDigit, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::ModuleHeight, XFA_AttributeType::Measure, (void*)L"5mm"},
+    {XFA_Attribute::StartChar, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Truncate, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::WideNarrowRatio, XFA_AttributeType::CData, (void*)L"3:1"},
+    {XFA_Attribute::ErrorCorrectionLevel, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::UpsMode, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_UsCarrier},
     {XFA_Attribute::Checksum, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::CharEncoding, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"UTF-8"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DataColumnCount, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::RowColumnRatio, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::DataLength, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::EndChar, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::CharEncoding, XFA_AttributeType::CData, (void*)L"UTF-8"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataColumnCount, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::RowColumnRatio, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataLength, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::EndChar, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"barcode";
 
diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp
index 8f0b847..106049b 100644
--- a/xfa/fxfa/parser/cxfa_base.cpp
+++ b/xfa/fxfa/parser/cxfa_base.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"base";
 
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp
index 63cab9d..e11a6d7 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.cpp
+++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp
@@ -10,13 +10,10 @@
 
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Format, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"batchOutput";
 
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
index abff3f7..6ae3a3d 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.cpp
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"behaviorOverride";
 
diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp
index aa820b7..d188010 100644
--- a/xfa/fxfa/parser/cxfa_bind.cpp
+++ b/xfa/fxfa/parser/cxfa_bind.cpp
@@ -11,38 +11,17 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::ContentType, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Match, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Once},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"bind";
 
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index dff27ab..f7e7eac 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -9,17 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Connection, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::LabelRef, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::ValueRef, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Connection, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::LabelRef, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ValueRef, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"bindItems";
 
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
index a63640f..a057595 100644
--- a/xfa/fxfa/parser/cxfa_bookend.cpp
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -9,23 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Trailer, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Leader, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Trailer, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"bookend";
 
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index fadce75..0d49c98 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"boolean";
 
diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp
index 5250001..d2a2afa 100644
--- a/xfa/fxfa/parser/cxfa_border.cpp
+++ b/xfa/fxfa/parser/cxfa_border.cpp
@@ -13,30 +13,17 @@
     {XFA_Element::Corner, 4, 0}, {XFA_Element::Fill, 1, 0},
     {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Break, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Close},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Hand, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Even},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"border";
 
diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp
index 3f8a7fd..7bbd3a8 100644
--- a/xfa/fxfa/parser/cxfa_break.cpp
+++ b/xfa/fxfa/parser/cxfa_break.cpp
@@ -11,41 +11,22 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::BeforeTarget, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::OverflowTarget, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::OverflowLeader, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::OverflowTrailer, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::StartNew, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::BookendTrailer, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::BeforeTarget, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::OverflowTarget, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::OverflowLeader, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::OverflowTrailer, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::BookendTrailer, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::After, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::BookendLeader, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::AfterTarget, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::BookendLeader, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::AfterTarget, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Before, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"break";
 
diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp
index b46c3e2..46d244c 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.cpp
+++ b/xfa/fxfa/parser/cxfa_breakafter.cpp
@@ -11,30 +11,16 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::StartNew, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Trailer, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Trailer, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TargetType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Target, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Leader, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"breakAfter";
 
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp
index 4322edb..5b712f7 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.cpp
+++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp
@@ -11,30 +11,16 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::StartNew, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Trailer, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Trailer, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TargetType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Target, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Leader, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"breakBefore";
 
diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp
index b1fccf2..0191a94 100644
--- a/xfa/fxfa/parser/cxfa_button.cpp
+++ b/xfa/fxfa/parser/cxfa_button.cpp
@@ -11,22 +11,12 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Highlight, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Inverted},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"button";
 
diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp
index 3cce1b1..55cbaf9 100644
--- a/xfa/fxfa/parser/cxfa_cache.cpp
+++ b/xfa/fxfa/parser/cxfa_cache.cpp
@@ -12,11 +12,9 @@
     {XFA_Element::TemplateCache, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"cache";
 
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
index c9e9813..a4a1d04 100644
--- a/xfa/fxfa/parser/cxfa_calculate.cpp
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -13,22 +13,12 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Override, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Error},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"calculate";
 
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
index 6f7ddef..0fb8b62 100644
--- a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
@@ -16,11 +16,8 @@
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Gregorian},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"calendarSymbols";
 
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
index a040c1f..7998cf3 100644
--- a/xfa/fxfa/parser/cxfa_caption.cpp
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -13,27 +13,15 @@
     {XFA_Element::Font, 1, 0},   {XFA_Element::Value, 1, 0},
     {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Reserve, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"-1un"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Reserve, XFA_AttributeType::Measure, (void*)L"-1un"},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Placement, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Left},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"caption";
 
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
index 3e54069..e7ccffc 100644
--- a/xfa/fxfa/parser/cxfa_certificate.cpp
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"certificate";
 
diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp
index 308b085..16a77ce 100644
--- a/xfa/fxfa/parser/cxfa_certificates.cpp
+++ b/xfa/fxfa/parser/cxfa_certificates.cpp
@@ -13,26 +13,14 @@
     {XFA_Element::Issuers, 1, 0},  {XFA_Element::Signing, 1, 0},
     {XFA_Element::Oids, 1, 0},     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Url, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Url, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::CredentialServerPolicy, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::UrlPolicy, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::UrlPolicy, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"certificates";
 
diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp
index b3083f8..c8bee05 100644
--- a/xfa/fxfa/parser/cxfa_change.cpp
+++ b/xfa/fxfa/parser/cxfa_change.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"change";
 
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp
index 5b321f4..6260e45 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.cpp
+++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp
@@ -13,29 +13,16 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::AllowNeutral, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::AllowNeutral, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Mark, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Default},
     {XFA_Attribute::Shape, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Square},
-    {XFA_Attribute::Size, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Size, XFA_AttributeType::Measure, (void*)L"10pt"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"checkButton";
 
diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp
index 42062eb..a8e88ea 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.cpp
+++ b/xfa/fxfa/parser/cxfa_choicelist.cpp
@@ -13,27 +13,15 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Open, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_UserControl},
     {XFA_Attribute::CommitOn, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Select},
-    {XFA_Attribute::TextEntry, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::TextEntry, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"choiceList";
 
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
index 91defed..5246218 100644
--- a/xfa/fxfa/parser/cxfa_color.cpp
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -11,26 +11,12 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::CSpace, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"SRGB"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Value, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::CSpace, XFA_AttributeType::CData, (void*)L"SRGB"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"color";
 
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index 7cffb91..de28a7a 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -9,21 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::NumberOfCells, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::NumberOfCells, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"comb";
 
diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp
index 82ebad2..7f03ddd 100644
--- a/xfa/fxfa/parser/cxfa_command.cpp
+++ b/xfa/fxfa/parser/cxfa_command.cpp
@@ -14,26 +14,12 @@
                                                  {XFA_Element::Delete, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Timeout, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_SourceSet, (void*)30},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Timeout, XFA_AttributeType::Integer, (void*)30},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"command";
 
diff --git a/xfa/fxfa/parser/cxfa_common.cpp b/xfa/fxfa/parser/cxfa_common.cpp
index f9bda6c..bf25b9d 100644
--- a/xfa/fxfa/parser/cxfa_common.cpp
+++ b/xfa/fxfa/parser/cxfa_common.cpp
@@ -19,11 +19,9 @@
     {XFA_Element::Messaging, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"common";
 
diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp
index 2e06abe..54eb10c 100644
--- a/xfa/fxfa/parser/cxfa_compress.cpp
+++ b/xfa/fxfa/parser/cxfa_compress.cpp
@@ -9,14 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Scope, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_ImageOnly},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"compress";
 
diff --git a/xfa/fxfa/parser/cxfa_compression.cpp b/xfa/fxfa/parser/cxfa_compression.cpp
index 46ab7a0..1efbc55 100644
--- a/xfa/fxfa/parser/cxfa_compression.cpp
+++ b/xfa/fxfa/parser/cxfa_compression.cpp
@@ -15,11 +15,9 @@
     {XFA_Element::CompressLogicalStructure, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"compression";
 
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
index b79f333..e2798ff 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"compressLogicalStructure";
 
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
index c980424..e42b7a7 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"compressObjectStream";
 
diff --git a/xfa/fxfa/parser/cxfa_config.cpp b/xfa/fxfa/parser/cxfa_config.cpp
index 3b7dd9d..104b907 100644
--- a/xfa/fxfa/parser/cxfa_config.cpp
+++ b/xfa/fxfa/parser/cxfa_config.cpp
@@ -13,11 +13,9 @@
                                                  {XFA_Element::Trace, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"config";
 
diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp
index 7ad8ac0..a86a327 100644
--- a/xfa/fxfa/parser/cxfa_conformance.cpp
+++ b/xfa/fxfa/parser/cxfa_conformance.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"conformance";
 
diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp
index 9f33eb7..1490718 100644
--- a/xfa/fxfa/parser/cxfa_connect.cpp
+++ b/xfa/fxfa/parser/cxfa_connect.cpp
@@ -15,37 +15,17 @@
     {XFA_Element::Password, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Timeout, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_SourceSet, (void*)15},
-    {XFA_Attribute::Connection, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Timeout, XFA_AttributeType::Integer, (void*)15},
+    {XFA_Attribute::Connection, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usage, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_ExportAndImport},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DelayedOpen, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DelayedOpen, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"connect";
 
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
index 1cd29cf..0d3b5a0 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.cpp
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"connectString";
 
diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp
index e594050..42492a6 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.cpp
+++ b/xfa/fxfa/parser/cxfa_contentarea.cpp
@@ -12,36 +12,16 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::H, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::W, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::H, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::W, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"contentArea";
 
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp
index 887073d..57e42af 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.cpp
+++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"contentCopy";
 
diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp
index 9e76df3..06bbea1 100644
--- a/xfa/fxfa/parser/cxfa_copies.cpp
+++ b/xfa/fxfa/parser/cxfa_copies.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"copies";
 
diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp
index 199aaf8..124be2b 100644
--- a/xfa/fxfa/parser/cxfa_corner.cpp
+++ b/xfa/fxfa/parser/cxfa_corner.cpp
@@ -12,34 +12,19 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Stroke, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Solid},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
-    {XFA_Attribute::Inverted, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Thickness, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.5pt"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Inverted, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Thickness, XFA_AttributeType::Measure, (void*)L"0.5pt"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Join, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Square},
-    {XFA_Attribute::Radius, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Radius, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"corner";
 
diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp
index 0b96e74..234391b 100644
--- a/xfa/fxfa/parser/cxfa_creator.cpp
+++ b/xfa/fxfa/parser/cxfa_creator.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"creator";
 
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
index 0ce4e10..3f60e3d 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
@@ -10,11 +10,8 @@
 
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Symbol},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"currencySymbol";
 
diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp
index fac71a9..b4d89bc 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.cpp
+++ b/xfa/fxfa/parser/cxfa_currentpage.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"currentPage";
 
diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp
index 1b81b85..45374f8 100644
--- a/xfa/fxfa/parser/cxfa_data.cpp
+++ b/xfa/fxfa/parser/cxfa_data.cpp
@@ -16,11 +16,9 @@
     {XFA_Element::Range, 1, 0},      {XFA_Element::IncrementalLoad, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"data";
 
diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp
index 33fbd80..e2d5b30 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.cpp
+++ b/xfa/fxfa/parser/cxfa_datagroup.cpp
@@ -9,12 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dataGroup";
 
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
index 2aa11e0..b1d1f6e 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.cpp
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -9,25 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::ContentType, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Contains, XFA_AttributeType::Enum, XFA_XDPPACKET_Datasets,
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Contains, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_Data},
-    {XFA_Attribute::Value, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::IsNull, XFA_AttributeType::Boolean, XFA_XDPPACKET_Datasets,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::IsNull, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dataValue";
 
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
index e58d825..76eba5b 100644
--- a/xfa/fxfa/parser/cxfa_date.cpp
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"date";
 
diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp
index 88023a4..4fbecb6 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_datepattern.cpp
@@ -10,11 +10,8 @@
 
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Med},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"datePattern";
 
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
index 534d916..a1c6fe8 100644
--- a/xfa/fxfa/parser/cxfa_datetime.cpp
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dateTime";
 
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
index 2cda19f..57bd907 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
@@ -14,25 +14,14 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Picker, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Host},
     {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dateTimeEdit";
 
diff --git a/xfa/fxfa/parser/cxfa_daynames.cpp b/xfa/fxfa/parser/cxfa_daynames.cpp
index c11df94..91ea08e 100644
--- a/xfa/fxfa/parser/cxfa_daynames.cpp
+++ b/xfa/fxfa/parser/cxfa_daynames.cpp
@@ -11,9 +11,8 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Day, 7, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, XFA_XDPPACKET_LocaleSet,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dayNames";
 
diff --git a/xfa/fxfa/parser/cxfa_debug.cpp b/xfa/fxfa/parser/cxfa_debug.cpp
index b420565..d72bfc1 100644
--- a/xfa/fxfa/parser/cxfa_debug.cpp
+++ b/xfa/fxfa/parser/cxfa_debug.cpp
@@ -11,11 +11,9 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"debug";
 
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
index 3887807..6231e49 100644
--- a/xfa/fxfa/parser/cxfa_decimal.cpp
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -9,28 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::FracDigits, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)2},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::LeadDigits, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)-1},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::FracDigits, XFA_AttributeType::Integer, (void*)2},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::LeadDigits, XFA_AttributeType::Integer, (void*)-1},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"decimal";
 
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
index df312f1..31afda4 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
@@ -9,13 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::WritingScript, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_Asterisk},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Asterisk},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"defaultTypeface";
 
diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp
index 582d395..b93eebc 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.cpp
+++ b/xfa/fxfa/parser/cxfa_defaultui.cpp
@@ -11,19 +11,10 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"defaultUi";
 
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
index df0b523..41e619d 100644
--- a/xfa/fxfa/parser/cxfa_delete.cpp
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"delete";
 
diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp
index 2e6b6e2..e1321f8 100644
--- a/xfa/fxfa/parser/cxfa_desc.cpp
+++ b/xfa/fxfa/parser/cxfa_desc.cpp
@@ -16,19 +16,10 @@
     {XFA_Element::Date, 1, 0},     {XFA_Element::Float, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"desc";
 
diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp
index 9badfab..452cd64 100644
--- a/xfa/fxfa/parser/cxfa_destination.cpp
+++ b/xfa/fxfa/parser/cxfa_destination.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"destination";
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
index 485d384..3190e86 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -9,19 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"digestMethod";
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
index 01b999b..66109a6 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"digestMethods";
 
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp
index 971bf7c..5ddc90f 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.cpp
+++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"documentAssembly";
 
diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp
index 6d2eea1..7d87d44 100644
--- a/xfa/fxfa/parser/cxfa_draw.cpp
+++ b/xfa/fxfa/parser/cxfa_draw.cpp
@@ -17,61 +17,31 @@
     {XFA_Element::Value, 1, 0},  {XFA_Element::Extras, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::H, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::W, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::H, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::W, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Left},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Rotate, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Rotate, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
     {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
-    {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Locale, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+     (void*)XFA_ATTRIBUTEENUM_Top},
+    {XFA_Attribute::MaxH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MaxW, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinW, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Locale, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_TopLeft},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"draw";
 
diff --git a/xfa/fxfa/parser/cxfa_driver.cpp b/xfa/fxfa/parser/cxfa_driver.cpp
index 678c987..77d23c9 100644
--- a/xfa/fxfa/parser/cxfa_driver.cpp
+++ b/xfa/fxfa/parser/cxfa_driver.cpp
@@ -12,16 +12,10 @@
                                                  {XFA_Element::Xdc, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"driver";
 
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp
index f5e3237..f1412aa 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.cpp
+++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp
@@ -9,12 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Value, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dSigData";
 
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp
index 68d4b91..a99a2e8 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.cpp
+++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"duplexOption";
 
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
index 4fac7ac..901937d 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.cpp
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"dynamicRender";
 
diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp
index fb580d6..114063c 100644
--- a/xfa/fxfa/parser/cxfa_edge.cpp
+++ b/xfa/fxfa/parser/cxfa_edge.cpp
@@ -12,30 +12,17 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Cap, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Square},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Stroke, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Solid},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
-    {XFA_Attribute::Thickness, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.5pt"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Thickness, XFA_AttributeType::Measure, (void*)L"0.5pt"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"edge";
 
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
index 0a37e8e..79d3cb3 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"effectiveInputPolicy";
 
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
index 1979889..c726ef9 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"effectiveOutputPolicy";
 
diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp
index ab153ee..2e7423b 100644
--- a/xfa/fxfa/parser/cxfa_embed.cpp
+++ b/xfa/fxfa/parser/cxfa_embed.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"embed";
 
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
index 3689606..0752df7 100644
--- a/xfa/fxfa/parser/cxfa_encoding.cpp
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -9,19 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encoding";
 
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
index 449b515..45f4e7a 100644
--- a/xfa/fxfa/parser/cxfa_encodings.cpp
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encodings";
 
diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp
index 14faf51..ea28df9 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.cpp
+++ b/xfa/fxfa/parser/cxfa_encrypt.cpp
@@ -12,23 +12,12 @@
     {XFA_Element::Certificate, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encrypt";
 
diff --git a/xfa/fxfa/parser/cxfa_encryption.cpp b/xfa/fxfa/parser/cxfa_encryption.cpp
index 74acb53..fcba1c2 100644
--- a/xfa/fxfa/parser/cxfa_encryption.cpp
+++ b/xfa/fxfa/parser/cxfa_encryption.cpp
@@ -14,11 +14,9 @@
     {XFA_Element::Permissions, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encryption";
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
index f3b0a66..7499be7 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encryptionLevel";
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
index 1db3fcb..dba1866 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
@@ -9,19 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encryptionMethod";
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
index 93d2663..b4b3537 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"encryptionMethods";
 
diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp
index 3abee3e..d50d992 100644
--- a/xfa/fxfa/parser/cxfa_enforce.cpp
+++ b/xfa/fxfa/parser/cxfa_enforce.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"enforce";
 
diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp
index 29a6794..02fa339 100644
--- a/xfa/fxfa/parser/cxfa_equate.cpp
+++ b/xfa/fxfa/parser/cxfa_equate.cpp
@@ -9,17 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::To, XFA_AttributeType::CData, XFA_XDPPACKET_Config,
-     nullptr},
-    {XFA_Attribute::Force, XFA_AttributeType::Boolean, XFA_XDPPACKET_Config,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::From, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::To, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Force, XFA_AttributeType::Boolean, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::From, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"equate";
 
diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp
index f5ee3fb..f3193c8 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.cpp
+++ b/xfa/fxfa/parser/cxfa_equaterange.cpp
@@ -9,17 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::To, XFA_AttributeType::CData, XFA_XDPPACKET_Config,
-     nullptr},
-    {XFA_Attribute::UnicodeRange, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config, nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::From, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::To, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::UnicodeRange, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::From, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"equateRange";
 
diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp
index d63bac0..0e3e71b 100644
--- a/xfa/fxfa/parser/cxfa_event.cpp
+++ b/xfa/fxfa/parser/cxfa_event.cpp
@@ -16,34 +16,16 @@
     {XFA_Element::Submit, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Listen, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_RefOnly},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Activity, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Click},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"event";
 
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp
index ad890dd..b8255c5 100644
--- a/xfa/fxfa/parser/cxfa_exclgroup.cpp
+++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp
@@ -16,65 +16,34 @@
     {XFA_Element::Desc, 1, 0},      {XFA_Element::Calculate, 1, 0},
     {XFA_Element::Extras, 1, 0},    {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::H, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::W, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::H, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::W, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Left},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Access, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Open},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
     {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
-    {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+     (void*)XFA_ATTRIBUTEENUM_Top},
+    {XFA_Attribute::MaxH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MaxW, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinW, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::Layout, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Position},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_TopLeft},
-    {XFA_Attribute::AccessKey, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::AccessKey, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"exclGroup";
 
diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp
index 5b86c8b..633914a 100644
--- a/xfa/fxfa/parser/cxfa_exclude.cpp
+++ b/xfa/fxfa/parser/cxfa_exclude.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"exclude";
 
diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp
index 89c5e29..7a400e6 100644
--- a/xfa/fxfa/parser/cxfa_excludens.cpp
+++ b/xfa/fxfa/parser/cxfa_excludens.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"excludeNS";
 
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
index bbdb07c..9c3102f 100644
--- a/xfa/fxfa/parser/cxfa_exdata.cpp
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -9,37 +9,17 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Rid, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::ContentType, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::MaxLength, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)-1},
-    {XFA_Attribute::Href, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::MaxLength, XFA_AttributeType::Integer, (void*)-1},
+    {XFA_Attribute::Href, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"exData";
 
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
index 75998e7..bc570c8 100644
--- a/xfa/fxfa/parser/cxfa_execute.cpp
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -9,27 +9,15 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Connection, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Connection, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::RunAt, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Client},
     {XFA_Attribute::ExecuteType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Import},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"execute";
 
diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp
index b20c67e..3e8b590 100644
--- a/xfa/fxfa/parser/cxfa_exobject.cpp
+++ b/xfa/fxfa/parser/cxfa_exobject.cpp
@@ -11,32 +11,15 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::CodeType, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Archive, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::CodeBase, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::ClassId, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::CodeType, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Archive, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::CodeBase, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ClassId, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"exObject";
 
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
index 5a37813..5684dde 100644
--- a/xfa/fxfa/parser/cxfa_extras.cpp
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"extras";
 
diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp
index d928b9a..95fdcb0 100644
--- a/xfa/fxfa/parser/cxfa_field.cpp
+++ b/xfa/fxfa/parser/cxfa_field.cpp
@@ -19,66 +19,34 @@
     {XFA_Element::Calculate, 1, 0}, {XFA_Element::Extras, 1, 0},
     {XFA_Element::Items, 2, 0},     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::H, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::W, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::H, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::W, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Left},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Access, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Open},
-    {XFA_Attribute::Rotate, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+    {XFA_Attribute::Rotate, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
     {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
-    {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Locale, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+     (void*)XFA_ATTRIBUTEENUM_Top},
+    {XFA_Attribute::MaxH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MaxW, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinW, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Locale, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_TopLeft},
-    {XFA_Attribute::AccessKey, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::AccessKey, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"field";
 
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
index 458a1a1..4b045ce 100644
--- a/xfa/fxfa/parser/cxfa_fill.cpp
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -19,22 +19,12 @@
     {XFA_Element::Radial, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"fill";
 
diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp
index b045d75..cf45278 100644
--- a/xfa/fxfa/parser/cxfa_filter.cpp
+++ b/xfa/fxfa/parser/cxfa_filter.cpp
@@ -15,28 +15,13 @@
     {XFA_Element::Reasons, 1, 0},       {XFA_Element::AppearanceFilter, 1, 0},
     {XFA_Element::LockDocument, 1, 0},  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Version, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::AddRevocationInfo, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Version, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::AddRevocationInfo, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"filter";
 
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp
index 54a3030..f95757d 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.cpp
+++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"flipLabel";
 
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
index 6e7f161..d0e4a1b 100644
--- a/xfa/fxfa/parser/cxfa_float.cpp
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"float";
 
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
index f603346..06a869a 100644
--- a/xfa/fxfa/parser/cxfa_font.cpp
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -12,57 +12,36 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::LineThrough, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Typeface, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"Courier"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::LineThrough, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Typeface, XFA_AttributeType::CData, (void*)L"Courier"},
     {XFA_Attribute::FontHorizontalScale, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"100%"},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+     (void*)L"100%"},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::KerningMode, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Underline, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::BaselineShift, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+    {XFA_Attribute::Underline, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::BaselineShift, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::OverlinePeriod, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All},
-    {XFA_Attribute::LetterSpacing, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+     (void*)XFA_ATTRIBUTEENUM_All},
+    {XFA_Attribute::LetterSpacing, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::LineThroughPeriod, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All},
+     (void*)XFA_ATTRIBUTEENUM_All},
     {XFA_Attribute::FontVerticalScale, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"100%"},
-    {XFA_Attribute::PsName, XFA_AttributeType::CData, XFA_XDPPACKET_Config,
-     nullptr},
-    {XFA_Attribute::Size, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"},
+     (void*)L"100%"},
+    {XFA_Attribute::PsName, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Size, XFA_AttributeType::Measure, (void*)L"10pt"},
     {XFA_Attribute::Posture, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Normal},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Weight, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Normal},
     {XFA_Attribute::UnderlinePeriod, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All},
-    {XFA_Attribute::Overline, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+     (void*)XFA_ATTRIBUTEENUM_All},
+    {XFA_Attribute::Overline, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::GenericFamily, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_Serif},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Serif},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"font";
 
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.cpp b/xfa/fxfa/parser/cxfa_fontinfo.cpp
index fb88b24..4ac246f 100644
--- a/xfa/fxfa/parser/cxfa_fontinfo.cpp
+++ b/xfa/fxfa/parser/cxfa_fontinfo.cpp
@@ -14,11 +14,9 @@
     {XFA_Element::Embed, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"fontInfo";
 
diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp
index e7d75e0..b60dca6 100644
--- a/xfa/fxfa/parser/cxfa_form.cpp
+++ b/xfa/fxfa/parser/cxfa_form.cpp
@@ -9,10 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Checksum, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form,
-     (void*)nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Checksum, XFA_AttributeType::CData, (void*)nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"form";
 
diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp
index 2cc8e16..4546cf7 100644
--- a/xfa/fxfa/parser/cxfa_format.cpp
+++ b/xfa/fxfa/parser/cxfa_format.cpp
@@ -12,19 +12,10 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"format";
 
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
index 3d3f4e7..500cf11 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"formFieldFilling";
 
diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp
index 2c2bc6b..1ae6cf7 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.cpp
+++ b/xfa/fxfa/parser/cxfa_groupparent.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"groupParent";
 
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
index a51ae2a..6750b8b 100644
--- a/xfa/fxfa/parser/cxfa_handler.cpp
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"handler";
 
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp
index 543a6c9..1e7c882 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.cpp
+++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp
@@ -9,31 +9,16 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::WordCharacterCount, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)7},
-    {XFA_Attribute::Hyphenate, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::ExcludeInitialCap, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::PushCharacterCount, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)3},
-    {XFA_Attribute::RemainCharacterCount, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)3},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::ExcludeAllCaps, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::WordCharacterCount, XFA_AttributeType::Integer, (void*)7},
+    {XFA_Attribute::Hyphenate, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::ExcludeInitialCap, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::PushCharacterCount, XFA_AttributeType::Integer, (void*)3},
+    {XFA_Attribute::RemainCharacterCount, XFA_AttributeType::Integer, (void*)3},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ExcludeAllCaps, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"hyphenation";
 
diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp
index 0853f39..046899d 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.cpp
+++ b/xfa/fxfa/parser/cxfa_ifempty.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"ifEmpty";
 
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
index cbadb3c..0e4bf44 100644
--- a/xfa/fxfa/parser/cxfa_image.cpp
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -9,35 +9,17 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::ContentType, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Base64},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Aspect, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Fit},
-    {XFA_Attribute::Href, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Fit},
+    {XFA_Attribute::Href, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"image";
 
diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp
index f167860..ce5ac5d 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.cpp
+++ b/xfa/fxfa/parser/cxfa_imageedit.cpp
@@ -13,22 +13,12 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Data, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Link},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"imageEdit";
 
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
index 8799e23..daefddd 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"includeXDPContent";
 
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp
index b49b79d..09be8aa 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"incrementalLoad";
 
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
index 28bf30f..7fa45c5 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"incrementalMerge";
 
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
index 5eec30b..cb971bc 100644
--- a/xfa/fxfa/parser/cxfa_insert.cpp
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"insert";
 
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp
index 1386bb3..89081ae 100644
--- a/xfa/fxfa/parser/cxfa_instancemanager.cpp
+++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp
@@ -11,12 +11,8 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Occur, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"instanceManager";
 
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
index e2d57f6..0b46553 100644
--- a/xfa/fxfa/parser/cxfa_integer.cpp
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"integer";
 
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
index 22a7c36..f01a7ad 100644
--- a/xfa/fxfa/parser/cxfa_interactive.cpp
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"interactive";
 
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
index e69ee15..e07eb05 100644
--- a/xfa/fxfa/parser/cxfa_issuers.cpp
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"issuers";
 
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
index 801e220..6a07703 100644
--- a/xfa/fxfa/parser/cxfa_items.cpp
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -9,33 +9,15 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
-    {XFA_Attribute::Save, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Save, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"items";
 
diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp
index 19db20a..1c8a883 100644
--- a/xfa/fxfa/parser/cxfa_jog.cpp
+++ b/xfa/fxfa/parser/cxfa_jog.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"jog";
 
diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp
index 049a71f..51fb946 100644
--- a/xfa/fxfa/parser/cxfa_keep.cpp
+++ b/xfa/fxfa/parser/cxfa_keep.cpp
@@ -11,28 +11,16 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Next, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Previous, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Intact, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_None},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"keep";
 
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
index 4098851..c24435e 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.cpp
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -9,40 +9,21 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::NonRepudiation, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::EncipherOnly, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::NonRepudiation, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::EncipherOnly, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::DigitalSignature, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::CrlSign, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::KeyAgreement, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::KeyEncipherment, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DataEncipherment, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::KeyCertSign, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::DecipherOnly, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::DigitalSignature, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::CrlSign, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::KeyAgreement, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::KeyEncipherment, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataEncipherment, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::KeyCertSign, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DecipherOnly, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"keyUsage";
 
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.cpp b/xfa/fxfa/parser/cxfa_labelprinter.cpp
index a1a38bd..55ac1ff 100644
--- a/xfa/fxfa/parser/cxfa_labelprinter.cpp
+++ b/xfa/fxfa/parser/cxfa_labelprinter.cpp
@@ -16,15 +16,10 @@
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Zpl},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"labelPrinter";
 
diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp
index 66ea299..3625061 100644
--- a/xfa/fxfa/parser/cxfa_layout.cpp
+++ b/xfa/fxfa/parser/cxfa_layout.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"layout";
 
diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp
index bcfeb60..98a52f6 100644
--- a/xfa/fxfa/parser/cxfa_level.cpp
+++ b/xfa/fxfa/parser/cxfa_level.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"level";
 
diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp
index c18de5c..85e41ed 100644
--- a/xfa/fxfa/parser/cxfa_line.cpp
+++ b/xfa/fxfa/parser/cxfa_line.cpp
@@ -11,25 +11,14 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Slope, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Backslash},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Hand, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Even},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"line";
 
diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp
index 999f85a..f4d5ba9 100644
--- a/xfa/fxfa/parser/cxfa_linear.cpp
+++ b/xfa/fxfa/parser/cxfa_linear.cpp
@@ -12,22 +12,12 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_ToRight},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"linear";
 
diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp
index b63a91f..507ed29 100644
--- a/xfa/fxfa/parser/cxfa_linearized.cpp
+++ b/xfa/fxfa/parser/cxfa_linearized.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"linearized";
 
diff --git a/xfa/fxfa/parser/cxfa_locale.cpp b/xfa/fxfa/parser/cxfa_locale.cpp
index d20c0d0..a60fba2 100644
--- a/xfa/fxfa/parser/cxfa_locale.cpp
+++ b/xfa/fxfa/parser/cxfa_locale.cpp
@@ -15,16 +15,10 @@
     {XFA_Element::NumberSymbols, 1, 0},   {XFA_Element::TimePatterns, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"locale";
 
diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp
index e499eea..86c2d21 100644
--- a/xfa/fxfa/parser/cxfa_localeset.cpp
+++ b/xfa/fxfa/parser/cxfa_localeset.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"localeSet";
 
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp
index 20f0cd4..ea015e5 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.cpp
+++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"lockDocument";
 
diff --git a/xfa/fxfa/parser/cxfa_log.cpp b/xfa/fxfa/parser/cxfa_log.cpp
index 7193d0d..79aac1a 100644
--- a/xfa/fxfa/parser/cxfa_log.cpp
+++ b/xfa/fxfa/parser/cxfa_log.cpp
@@ -14,11 +14,9 @@
                                                  {XFA_Element::Threshold, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"log";
 
diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp
index 86f8cec..0d278a2 100644
--- a/xfa/fxfa/parser/cxfa_manifest.cpp
+++ b/xfa/fxfa/parser/cxfa_manifest.cpp
@@ -11,27 +11,13 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Action, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Include},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"manifest";
 
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
index 8c26bfc..6fd384a 100644
--- a/xfa/fxfa/parser/cxfa_map.cpp
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -9,32 +9,15 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Bind, XFA_AttributeType::CData, XFA_XDPPACKET_SourceSet,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::From, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Bind, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::From, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"map";
 
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp
index 8064806..367d6ee 100644
--- a/xfa/fxfa/parser/cxfa_margin.cpp
+++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -11,27 +11,14 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::LeftInset, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::BottomInset, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::TopInset, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::RightInset, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::LeftInset, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::BottomInset, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::TopInset, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::RightInset, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"margin";
 
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
index b9e5c64..655b36a 100644
--- a/xfa/fxfa/parser/cxfa_mdp.cpp
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -9,24 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::SignatureType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Filter},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Permissions, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)2},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Permissions, XFA_AttributeType::Integer, (void*)2},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"mdp";
 
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
index a033e41..db0c492 100644
--- a/xfa/fxfa/parser/cxfa_medium.cpp
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -9,36 +9,20 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TrayOut, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Orientation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Portrait},
-    {XFA_Attribute::ImagingBBox, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"none"},
-    {XFA_Attribute::Short, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+    {XFA_Attribute::ImagingBBox, XFA_AttributeType::CData, (void*)L"none"},
+    {XFA_Attribute::Short, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::TrayIn, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Stock, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Long, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Stock, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Long, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"medium";
 
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.cpp b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
index 26f840f..d24f889 100644
--- a/xfa/fxfa/parser/cxfa_mediuminfo.cpp
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
@@ -11,11 +11,9 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Map, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"mediumInfo";
 
diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp
index 512ebb1..d68f472 100644
--- a/xfa/fxfa/parser/cxfa_message.cpp
+++ b/xfa/fxfa/parser/cxfa_message.cpp
@@ -12,23 +12,12 @@
                                                  {XFA_Element::Severity, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"message";
 
diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp
index b0b5787..a89e44c 100644
--- a/xfa/fxfa/parser/cxfa_messaging.cpp
+++ b/xfa/fxfa/parser/cxfa_messaging.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"messaging";
 
diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp
index 32fa3f7..46ddbb2 100644
--- a/xfa/fxfa/parser/cxfa_mode.cpp
+++ b/xfa/fxfa/parser/cxfa_mode.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"mode";
 
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp
index 1083ed2..3901042 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.cpp
+++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"modifyAnnots";
 
diff --git a/xfa/fxfa/parser/cxfa_monthnames.cpp b/xfa/fxfa/parser/cxfa_monthnames.cpp
index 4274188..96f22df 100644
--- a/xfa/fxfa/parser/cxfa_monthnames.cpp
+++ b/xfa/fxfa/parser/cxfa_monthnames.cpp
@@ -11,9 +11,8 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Month, 12, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, XFA_XDPPACKET_LocaleSet,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"monthNames";
 
diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp
index 0af55a6..4be43f1 100644
--- a/xfa/fxfa/parser/cxfa_msgid.cpp
+++ b/xfa/fxfa/parser/cxfa_msgid.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"msgId";
 
diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp
index 6756eaf..4217c13 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.cpp
+++ b/xfa/fxfa/parser/cxfa_nameattr.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"nameAttr";
 
diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp
index d246e32..10f4dd6 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.cpp
+++ b/xfa/fxfa/parser/cxfa_neverembed.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"neverEmbed";
 
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 4eff4b0..4d9e996 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -1354,8 +1354,6 @@
   const AttributeData* data = GetAttributeData(attr);
   if (!data)
     return {};
-  if (GetPacketID() && (GetPacketID() & data->packets) == 0)
-    return {};
   if (data->type == eType)
     return {data->default_value};
   return {};
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index 238bb12..b5217ad 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -56,7 +56,6 @@
   struct AttributeData {
     XFA_Attribute attribute;
     XFA_AttributeType type;
-    uint32_t packets;
     void* default_value;
   };
 
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
index e019653..5c869e4 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.cpp
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"numberOfCopies";
 
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp
index 9896723..558e2cd 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp
@@ -10,11 +10,8 @@
 
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Numeric},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"numberPattern";
 
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
index 46a437f..78417c2 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
@@ -10,11 +10,8 @@
 
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Decimal},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"numberSymbol";
 
diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp
index 2c9f878..812a453 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.cpp
+++ b/xfa/fxfa/parser/cxfa_numericedit.cpp
@@ -14,22 +14,12 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"numericEdit";
 
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp
index 01ad10e..0c50e1f 100644
--- a/xfa/fxfa/parser/cxfa_occur.cpp
+++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -11,26 +11,13 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Max, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)1},
-    {XFA_Attribute::Min, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Initial, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Max, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Min, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Initial, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"occur";
 
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
index 96bb3f9..8b5cdb9 100644
--- a/xfa/fxfa/parser/cxfa_oid.cpp
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"oid";
 
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
index 45b9d7b..2a8ffbc 100644
--- a/xfa/fxfa/parser/cxfa_oids.cpp
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"oids";
 
diff --git a/xfa/fxfa/parser/cxfa_openaction.cpp b/xfa/fxfa/parser/cxfa_openaction.cpp
index daffa2c..69a4e2a 100644
--- a/xfa/fxfa/parser/cxfa_openaction.cpp
+++ b/xfa/fxfa/parser/cxfa_openaction.cpp
@@ -12,11 +12,9 @@
     {XFA_Element::Destination, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"openAction";
 
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
index 81062a3..03d3ee1 100644
--- a/xfa/fxfa/parser/cxfa_operation.cpp
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -9,28 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Output, XFA_AttributeType::CData,
-     XFA_XDPPACKET_ConnectionSet, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Input, XFA_AttributeType::CData,
-     XFA_XDPPACKET_ConnectionSet, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Output, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Input, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"operation";
 
diff --git a/xfa/fxfa/parser/cxfa_output.cpp b/xfa/fxfa/parser/cxfa_output.cpp
index 38f3847..5a7077c 100644
--- a/xfa/fxfa/parser/cxfa_output.cpp
+++ b/xfa/fxfa/parser/cxfa_output.cpp
@@ -13,11 +13,9 @@
                                                  {XFA_Element::Type, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"output";
 
diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp
index 9be45fb..f6a390a 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.cpp
+++ b/xfa/fxfa/parser/cxfa_outputbin.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"outputBin";
 
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.cpp b/xfa/fxfa/parser/cxfa_outputxsl.cpp
index c3155c1..dd29ad6 100644
--- a/xfa/fxfa/parser/cxfa_outputxsl.cpp
+++ b/xfa/fxfa/parser/cxfa_outputxsl.cpp
@@ -11,11 +11,9 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"outputXSL";
 
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
index 22d704e..e2290d8 100644
--- a/xfa/fxfa/parser/cxfa_overflow.cpp
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -9,25 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Trailer, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Target, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Leader, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Trailer, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"overflow";
 
diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp
index e7a4133..deaa34a 100644
--- a/xfa/fxfa/parser/cxfa_overprint.cpp
+++ b/xfa/fxfa/parser/cxfa_overprint.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"overprint";
 
diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp
index 94de39d..a893a054 100644
--- a/xfa/fxfa/parser/cxfa_packets.cpp
+++ b/xfa/fxfa/parser/cxfa_packets.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"packets";
 
diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp
index a133b17..2fc487c 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.cpp
+++ b/xfa/fxfa/parser/cxfa_pagearea.cpp
@@ -14,36 +14,20 @@
                                                  {XFA_Element::Occur, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::PagePosition, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any},
+     (void*)XFA_ATTRIBUTEENUM_Any},
     {XFA_Attribute::OddOrEven, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::InitialNumber, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Numbered, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+     (void*)XFA_ATTRIBUTEENUM_Any},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::InitialNumber, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Numbered, XFA_AttributeType::Integer, (void*)1},
     {XFA_Attribute::BlankOrNotBlank, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Any},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pageArea";
 
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp
index 090c1e5..81ac51d 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp
@@ -9,17 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pageOffset";
 
diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp
index 635d195..48e5031 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.cpp
+++ b/xfa/fxfa/parser/cxfa_pagerange.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pageRange";
 
diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp
index e76b7b5..764b1cc 100644
--- a/xfa/fxfa/parser/cxfa_pageset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageset.cpp
@@ -12,32 +12,16 @@
                                                  {XFA_Element::Occur, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Relation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_OrderedOccurrence},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::DuplexImposition, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_LongEdge},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pageSet";
 
diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp
index a2f3628..8f60904 100644
--- a/xfa/fxfa/parser/cxfa_pagination.cpp
+++ b/xfa/fxfa/parser/cxfa_pagination.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pagination";
 
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
index 2b06a55..41e742b 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.cpp
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"paginationOverride";
 
diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp
index 89b040d..3fe413b 100644
--- a/xfa/fxfa/parser/cxfa_para.cpp
+++ b/xfa/fxfa/parser/cxfa_para.cpp
@@ -12,48 +12,26 @@
     {XFA_Element::Hyphenation, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Left},
-    {XFA_Attribute::TextIndent, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Widows, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::MarginRight, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MarginLeft, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::RadixOffset, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Preserve, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::SpaceBelow, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+    {XFA_Attribute::TextIndent, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Widows, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::MarginRight, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MarginLeft, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::RadixOffset, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Preserve, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::SpaceBelow, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
-    {XFA_Attribute::TabDefault, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::TabStops, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Orphans, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::LineHeight, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0pt"},
-    {XFA_Attribute::SpaceAbove, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Top},
+    {XFA_Attribute::TabDefault, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::TabStops, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Orphans, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::LineHeight, XFA_AttributeType::Measure, (void*)L"0pt"},
+    {XFA_Attribute::SpaceAbove, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"para";
 
diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp
index 8a97a52..fb510c2 100644
--- a/xfa/fxfa/parser/cxfa_part.cpp
+++ b/xfa/fxfa/parser/cxfa_part.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"part";
 
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
index f54002b..29a25f2 100644
--- a/xfa/fxfa/parser/cxfa_password.cpp
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"password";
 
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp
index 245d018..50ee196 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.cpp
+++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp
@@ -13,24 +13,13 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::PasswordChar, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"*"},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::PasswordChar, XFA_AttributeType::CData, (void*)L"*"},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"passwordEdit";
 
diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp
index 9ee2c70..0b62586 100644
--- a/xfa/fxfa/parser/cxfa_pattern.cpp
+++ b/xfa/fxfa/parser/cxfa_pattern.cpp
@@ -12,22 +12,12 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_CrossHatch},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pattern";
 
diff --git a/xfa/fxfa/parser/cxfa_pcl.cpp b/xfa/fxfa/parser/cxfa_pcl.cpp
index 5ae0336..4a723f5 100644
--- a/xfa/fxfa/parser/cxfa_pcl.cpp
+++ b/xfa/fxfa/parser/cxfa_pcl.cpp
@@ -15,16 +15,10 @@
     {XFA_Element::Staple, 1, 0},     {XFA_Element::MediumInfo, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pcl";
 
diff --git a/xfa/fxfa/parser/cxfa_pdf.cpp b/xfa/fxfa/parser/cxfa_pdf.cpp
index 6b94193..0318d41 100644
--- a/xfa/fxfa/parser/cxfa_pdf.cpp
+++ b/xfa/fxfa/parser/cxfa_pdf.cpp
@@ -30,16 +30,10 @@
     {XFA_Element::Tagged, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pdf";
 
diff --git a/xfa/fxfa/parser/cxfa_pdfa.cpp b/xfa/fxfa/parser/cxfa_pdfa.cpp
index fd7be6b..01f32ce 100644
--- a/xfa/fxfa/parser/cxfa_pdfa.cpp
+++ b/xfa/fxfa/parser/cxfa_pdfa.cpp
@@ -15,11 +15,9 @@
     {XFA_Element::Conformance, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pdfa";
 
diff --git a/xfa/fxfa/parser/cxfa_permissions.cpp b/xfa/fxfa/parser/cxfa_permissions.cpp
index 33bb76c..21fdead 100644
--- a/xfa/fxfa/parser/cxfa_permissions.cpp
+++ b/xfa/fxfa/parser/cxfa_permissions.cpp
@@ -20,11 +20,9 @@
     {XFA_Element::DocumentAssembly, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"permissions";
 
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
index 57de8d5..5a477d0 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"pickTrayByPDFSize";
 
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
index 4d22602..1ab6307 100644
--- a/xfa/fxfa/parser/cxfa_picture.cpp
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -9,23 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"picture";
 
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
index 2b39226..3ad5cfd 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"plaintextMetadata";
 
diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp
index 6fead44..54547b9 100644
--- a/xfa/fxfa/parser/cxfa_presence.cpp
+++ b/xfa/fxfa/parser/cxfa_presence.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"presence";
 
diff --git a/xfa/fxfa/parser/cxfa_present.cpp b/xfa/fxfa/parser/cxfa_present.cpp
index 97a6a83..2792cad 100644
--- a/xfa/fxfa/parser/cxfa_present.cpp
+++ b/xfa/fxfa/parser/cxfa_present.cpp
@@ -25,11 +25,9 @@
     {XFA_Element::IncrementalMerge, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"present";
 
diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp
index 7c71b7d..b1bd71a 100644
--- a/xfa/fxfa/parser/cxfa_print.cpp
+++ b/xfa/fxfa/parser/cxfa_print.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"print";
 
diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp
index 6d58219..31fc5f5 100644
--- a/xfa/fxfa/parser/cxfa_printername.cpp
+++ b/xfa/fxfa/parser/cxfa_printername.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"printerName";
 
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp
index 55c58e9..0febf5d 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.cpp
+++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"printHighQuality";
 
diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp
index 5f046c5..d400f64 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.cpp
+++ b/xfa/fxfa/parser/cxfa_printscaling.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"printScaling";
 
diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp
index bc60a13..585a32c 100644
--- a/xfa/fxfa/parser/cxfa_producer.cpp
+++ b/xfa/fxfa/parser/cxfa_producer.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"producer";
 
diff --git a/xfa/fxfa/parser/cxfa_ps.cpp b/xfa/fxfa/parser/cxfa_ps.cpp
index 0c656fb..09676a9 100644
--- a/xfa/fxfa/parser/cxfa_ps.cpp
+++ b/xfa/fxfa/parser/cxfa_ps.cpp
@@ -15,16 +15,10 @@
     {XFA_Element::Staple, 1, 0},    {XFA_Element::MediumInfo, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"ps";
 
diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp
index d871d2b..dd3427e 100644
--- a/xfa/fxfa/parser/cxfa_query.cpp
+++ b/xfa/fxfa/parser/cxfa_query.cpp
@@ -12,26 +12,13 @@
                                                  {XFA_Element::Select, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::CommandType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_Unknown},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Unknown},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"query";
 
diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp
index 98ac05c..3f5ac4b 100644
--- a/xfa/fxfa/parser/cxfa_radial.cpp
+++ b/xfa/fxfa/parser/cxfa_radial.cpp
@@ -12,22 +12,12 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_ToEdge},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"radial";
 
diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp
index 56d02e8..c72b89c 100644
--- a/xfa/fxfa/parser/cxfa_range.cpp
+++ b/xfa/fxfa/parser/cxfa_range.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"range";
 
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
index 533b2dd..5a6f753 100644
--- a/xfa/fxfa/parser/cxfa_reason.cpp
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"reason";
 
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
index f578cc1..afcb665 100644
--- a/xfa/fxfa/parser/cxfa_reasons.cpp
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"reasons";
 
diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp
index e2445d0..aefe0c4 100644
--- a/xfa/fxfa/parser/cxfa_record.cpp
+++ b/xfa/fxfa/parser/cxfa_record.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"record";
 
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
index 22a0e85..4da2239a 100644
--- a/xfa/fxfa/parser/cxfa_recordset.cpp
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -9,37 +9,22 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Max, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)0},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::EofAction, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Max, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::EofAction, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_MoveLast},
     {XFA_Attribute::CursorType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_ForwardOnly},
-    {XFA_Attribute::LockType, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
+     (void*)XFA_ATTRIBUTEENUM_ForwardOnly},
+    {XFA_Attribute::LockType, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_ReadOnly},
-    {XFA_Attribute::BofAction, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
+    {XFA_Attribute::BofAction, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_MoveFirst},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::CursorLocation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_Client},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+     (void*)XFA_ATTRIBUTEENUM_Client},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"recordSet";
 
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index 25e4449..29fb411 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -13,22 +13,12 @@
                                                  {XFA_Element::Fill, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Hand, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Even},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"rectangle";
 
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
index 138979e..3d1e378 100644
--- a/xfa/fxfa/parser/cxfa_ref.cpp
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -9,19 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"ref";
 
diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp
index 91e219e..b4fa4bb 100644
--- a/xfa/fxfa/parser/cxfa_relevant.cpp
+++ b/xfa/fxfa/parser/cxfa_relevant.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"relevant";
 
diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp
index 7c74f06..f91ac31 100644
--- a/xfa/fxfa/parser/cxfa_rename.cpp
+++ b/xfa/fxfa/parser/cxfa_rename.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"rename";
 
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
index a974f03..71bbb82 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"renderPolicy";
 
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
index 0ace007..1332e79 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.cpp
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"rootElement";
 
diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp
index 0b90ceb..8000eb8 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.cpp
+++ b/xfa/fxfa/parser/cxfa_runscripts.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"runScripts";
 
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp
index b85ef4b..c83d75b 100644
--- a/xfa/fxfa/parser/cxfa_script.cpp
+++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -14,37 +14,17 @@
     {XFA_Element::RunScripts, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::ContentType, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::RunAt, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Client},
-    {XFA_Attribute::Binding, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Binding, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"script";
 
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
index 0790169..46b81fe 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.cpp
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"scriptModel";
 
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
index 90c7fd2..07f6909 100644
--- a/xfa/fxfa/parser/cxfa_select.cpp
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"select";
 
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
index 6b68bfa..1bbcfdb 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.cpp
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -9,15 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Connection, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Target, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Connection, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"setProperty";
 
diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp
index 8d1b83d..23ce442 100644
--- a/xfa/fxfa/parser/cxfa_severity.cpp
+++ b/xfa/fxfa/parser/cxfa_severity.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"severity";
 
diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp
index 6580c7d..9043d99 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.cpp
+++ b/xfa/fxfa/parser/cxfa_sharptext.cpp
@@ -9,12 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Value, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"#text";
 
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
index 21c51a4..498a389 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
@@ -9,12 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Value, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"#xHTML";
 
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp
index 3b102be..2636eb6 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp
@@ -9,12 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Value, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"#xml";
 
diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp
index 03b4423..2640be7 100644
--- a/xfa/fxfa/parser/cxfa_signature.cpp
+++ b/xfa/fxfa/parser/cxfa_signature.cpp
@@ -13,22 +13,12 @@
     {XFA_Element::Border, 1, 0}, {XFA_Element::Manifest, 1, 0},
     {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_PDF1_3},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"signature";
 
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
index 318bc89..c55d858 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -9,15 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"signatureProperties";
 
diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp
index 364c6c2..dcdb2bf 100644
--- a/xfa/fxfa/parser/cxfa_signdata.cpp
+++ b/xfa/fxfa/parser/cxfa_signdata.cpp
@@ -12,28 +12,14 @@
                                                  {XFA_Element::Manifest, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Operation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Sign},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Target, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"signData";
 
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
index 9ff5ab1..87b931e 100644
--- a/xfa/fxfa/parser/cxfa_signing.cpp
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"signing";
 
diff --git a/xfa/fxfa/parser/cxfa_silentprint.cpp b/xfa/fxfa/parser/cxfa_silentprint.cpp
index 6f42159..eef7569 100644
--- a/xfa/fxfa/parser/cxfa_silentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_silentprint.cpp
@@ -13,11 +13,9 @@
     {XFA_Element::PrinterName, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"silentPrint";
 
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
index 55284dd..9a2c76a 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"soapAction";
 
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
index d88f745..671460f 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"soapAddress";
 
diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp
index 8395794..9d9d6e2 100644
--- a/xfa/fxfa/parser/cxfa_solid.cpp
+++ b/xfa/fxfa/parser/cxfa_solid.cpp
@@ -11,19 +11,10 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"solid";
 
diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp
index 5887948..bbe8242 100644
--- a/xfa/fxfa/parser/cxfa_source.cpp
+++ b/xfa/fxfa/parser/cxfa_source.cpp
@@ -11,24 +11,11 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Connect, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"source";
 
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
index 0b61fd8..4fa642f 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.cpp
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"sourceSet";
 
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
index 4ff0314..48e9aaf 100644
--- a/xfa/fxfa/parser/cxfa_speak.cpp
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -9,26 +9,14 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Rid, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Priority, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Custom},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Disable, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Disable, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"speak";
 
diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp
index a2cf695..8cf8c47 100644
--- a/xfa/fxfa/parser/cxfa_staple.cpp
+++ b/xfa/fxfa/parser/cxfa_staple.cpp
@@ -9,13 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Mode, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+    {XFA_Attribute::Mode, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_UsePrinterSetting},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"staple";
 
diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp
index 71d5183..2c4d680 100644
--- a/xfa/fxfa/parser/cxfa_startnode.cpp
+++ b/xfa/fxfa/parser/cxfa_startnode.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"startNode";
 
diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp
index 6065526..20e1bdc 100644
--- a/xfa/fxfa/parser/cxfa_startpage.cpp
+++ b/xfa/fxfa/parser/cxfa_startpage.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"startPage";
 
diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp
index 9988a22..b389d9b 100644
--- a/xfa/fxfa/parser/cxfa_stipple.cpp
+++ b/xfa/fxfa/parser/cxfa_stipple.cpp
@@ -12,21 +12,11 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Rate, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)50},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Rate, XFA_AttributeType::Integer, (void*)50},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"stipple";
 
diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp
index 1e62f17..10d5580 100644
--- a/xfa/fxfa/parser/cxfa_subform.cpp
+++ b/xfa/fxfa/parser/cxfa_subform.cpp
@@ -19,78 +19,42 @@
     {XFA_Element::Extras, 1, 0},  {XFA_Element::Variables, 1, 0},
     {XFA_Element::Occur, 1, 0},   {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::H, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::W, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::X, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Y, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
-     (void*)L"0in"},
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::H, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::W, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::X, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Y, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Left},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::AllowMacro, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::ColumnWidths, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::AllowMacro, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::ColumnWidths, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Access, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Open},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Visible},
     {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
-    {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinH, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
-    {XFA_Attribute::MinW, XFA_AttributeType::Measure,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+     (void*)XFA_ATTRIBUTEENUM_Top},
+    {XFA_Attribute::MaxH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MaxW, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinH, XFA_AttributeType::Measure, (void*)L"0in"},
+    {XFA_Attribute::MinW, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::Layout, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Position},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::MergeMode, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_ConsumeData},
-    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Locale, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+    {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, (void*)1},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Locale, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_TopLeft},
     {XFA_Attribute::RestoreState, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Manual},
     {XFA_Attribute::Scope, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Name},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"subform";
 
diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp
index 4d6d8aa..56c79e8 100644
--- a/xfa/fxfa/parser/cxfa_subformset.cpp
+++ b/xfa/fxfa/parser/cxfa_subformset.cpp
@@ -14,29 +14,14 @@
     {XFA_Element::Extras, 1, 0}, {XFA_Element::Occur, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Relation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Ordered},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"subformSet";
 
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
index 989fd9e..65ee274 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -9,26 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Delimiter, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Delimiter, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"subjectDN";
 
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
index d2c370a..20d2b25 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -9,22 +9,12 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"subjectDNs";
 
diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp
index 65ba8f5..36bdbf0 100644
--- a/xfa/fxfa/parser/cxfa_submit.cpp
+++ b/xfa/fxfa/parser/cxfa_submit.cpp
@@ -11,30 +11,16 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Encrypt, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Format, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Xdp},
-    {XFA_Attribute::EmbedPDF, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Target, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::TextEncoding, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::XdpContent, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::EmbedPDF, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::TextEncoding, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::XdpContent, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"submit";
 
diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp
index 6c38479..54ffe52 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.cpp
+++ b/xfa/fxfa/parser/cxfa_submitformat.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"submitFormat";
 
diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp
index ccbffee..2f19a1d 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.cpp
+++ b/xfa/fxfa/parser/cxfa_submiturl.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"submitUrl";
 
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
index 8150992..7154877 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.cpp
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"subsetBelow";
 
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
index f101351..e1cfd92 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.cpp
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"suppressBanner";
 
diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp
index 2612f10..ce9e15f 100644
--- a/xfa/fxfa/parser/cxfa_tagged.cpp
+++ b/xfa/fxfa/parser/cxfa_tagged.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"tagged";
 
diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp
index d7c5aae..b70bb53 100644
--- a/xfa/fxfa/parser/cxfa_template.cpp
+++ b/xfa/fxfa/parser/cxfa_template.cpp
@@ -14,14 +14,11 @@
     {XFA_Element::Base, 1, 0},      {XFA_Element::Extras, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::BaseProfile, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Full},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"template";
 
diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp
index 1dfa833..9f407e4 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.cpp
+++ b/xfa/fxfa/parser/cxfa_templatecache.cpp
@@ -9,13 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::MaxEntries, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Config, (void*)5},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::MaxEntries, XFA_AttributeType::Integer, (void*)5},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"templateCache";
 
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
index ab297f0..816a5fc 100644
--- a/xfa/fxfa/parser/cxfa_text.cpp
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -9,28 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Rid, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::MaxChars, XFA_AttributeType::Integer,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::MaxChars, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"text";
 
diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp
index db9a8a7..17e96a0 100644
--- a/xfa/fxfa/parser/cxfa_textedit.cpp
+++ b/xfa/fxfa/parser/cxfa_textedit.cpp
@@ -14,29 +14,16 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::VScrollPolicy, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::AllowRichText, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::MultiLine, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::AllowRichText, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::MultiLine, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Auto},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"textEdit";
 
diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp
index 09ac30f..b50c63a 100644
--- a/xfa/fxfa/parser/cxfa_threshold.cpp
+++ b/xfa/fxfa/parser/cxfa_threshold.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"threshold";
 
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
index e10c15a..89307d6 100644
--- a/xfa/fxfa/parser/cxfa_time.cpp
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"time";
 
diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp
index 6baea23..5535e9f 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_timepattern.cpp
@@ -10,11 +10,8 @@
 
 const CXFA_Node::AttributeData kAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Med},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"timePattern";
 
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
index 891e344..3edd59e 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.cpp
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -9,24 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Optional},
-    {XFA_Attribute::Server, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Server, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"timeStamp";
 
diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp
index 1acd195..678c13d 100644
--- a/xfa/fxfa/parser/cxfa_to.cpp
+++ b/xfa/fxfa/parser/cxfa_to.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"to";
 
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
index 54f36a7..5d4ecfa 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.cpp
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -9,21 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Rid, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"toolTip";
 
diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp
index 54a7993..64a872b 100644
--- a/xfa/fxfa/parser/cxfa_trace.cpp
+++ b/xfa/fxfa/parser/cxfa_trace.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"trace";
 
diff --git a/xfa/fxfa/parser/cxfa_transform.cpp b/xfa/fxfa/parser/cxfa_transform.cpp
index 24428d0..d69d84f 100644
--- a/xfa/fxfa/parser/cxfa_transform.cpp
+++ b/xfa/fxfa/parser/cxfa_transform.cpp
@@ -14,15 +14,10 @@
     {XFA_Element::Picture, 1, 0},     {XFA_Element::NameAttr, 1, 0},
     {XFA_Element::GroupParent, 1, 0}, {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"transform";
 
diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp
index 852853a..47e6822 100644
--- a/xfa/fxfa/parser/cxfa_traversal.cpp
+++ b/xfa/fxfa/parser/cxfa_traversal.cpp
@@ -11,19 +11,10 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"traversal";
 
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
index cd6fd6b..46018e3 100644
--- a/xfa/fxfa/parser/cxfa_traverse.cpp
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -12,26 +12,13 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Ref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Operation, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Next},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"traverse";
 
diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp
index 9844c12..3be4415 100644
--- a/xfa/fxfa/parser/cxfa_type.cpp
+++ b/xfa/fxfa/parser/cxfa_type.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"type";
 
diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp
index bb866eb..7c78bce 100644
--- a/xfa/fxfa/parser/cxfa_typeface.cpp
+++ b/xfa/fxfa/parser/cxfa_typeface.cpp
@@ -9,12 +9,8 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"typeface";
 
diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp
index f061f20..d0d5c30 100644
--- a/xfa/fxfa/parser/cxfa_ui.cpp
+++ b/xfa/fxfa/parser/cxfa_ui.cpp
@@ -25,19 +25,10 @@
     {XFA_Element::Extras, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"ui";
 
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
index 4b49258..ff94e01 100644
--- a/xfa/fxfa/parser/cxfa_update.cpp
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"update";
 
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
index a0ee552..d3c6166 100644
--- a/xfa/fxfa/parser/cxfa_uri.cpp
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -9,28 +9,13 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"uri";
 
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
index 47ef478..62a3634 100644
--- a/xfa/fxfa/parser/cxfa_user.cpp
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"user";
 
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp
index a70605d..9bf39e1 100644
--- a/xfa/fxfa/parser/cxfa_validate.cpp
+++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -14,32 +14,18 @@
                                                  {XFA_Element::Extras, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::ScriptTest, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Error},
     {XFA_Attribute::NullTest, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Disabled},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::FormatTest, XFA_AttributeType::Enum,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
      (void*)XFA_ATTRIBUTEENUM_Warning},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"validate";
 
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
index 8026b5d..971bbec 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"validateApprovalSignatures";
 
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
index ba6e0ba..f7ff877 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.cpp
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"validationMessaging";
 
diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp
index 791dd52..02450b4 100644
--- a/xfa/fxfa/parser/cxfa_value.cpp
+++ b/xfa/fxfa/parser/cxfa_value.cpp
@@ -24,23 +24,12 @@
     {XFA_Element::Line, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Relevant, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Override, XFA_AttributeType::Boolean,
-     XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Override, XFA_AttributeType::Boolean, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"value";
 
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
index 8625437..0014c20 100644
--- a/xfa/fxfa/parser/cxfa_variables.cpp
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -9,19 +9,10 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"variables";
 
diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp
index 003eb6a..ac9d308 100644
--- a/xfa/fxfa/parser/cxfa_version.cpp
+++ b/xfa/fxfa/parser/cxfa_version.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"version";
 
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
index 90a9caa..d2920dd 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.cpp
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
@@ -9,15 +9,14 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::SourceBelow, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+    {XFA_Attribute::SourceBelow, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_Update},
-    {XFA_Attribute::OutputBelow, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+    {XFA_Attribute::OutputBelow, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_Warn},
-    {XFA_Attribute::SourceAbove, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+    {XFA_Attribute::SourceAbove, XFA_AttributeType::Enum,
      (void*)XFA_ATTRIBUTEENUM_Warn},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"versionControl";
 
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
index 57ab3b7..c3bbd27 100644
--- a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
@@ -20,11 +20,9 @@
     {XFA_Element::PickTrayByPDFSize, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"viewerPreferences";
 
diff --git a/xfa/fxfa/parser/cxfa_webclient.cpp b/xfa/fxfa/parser/cxfa_webclient.cpp
index bc2010e..ceb6cb0 100644
--- a/xfa/fxfa/parser/cxfa_webclient.cpp
+++ b/xfa/fxfa/parser/cxfa_webclient.cpp
@@ -12,16 +12,10 @@
                                                  {XFA_Element::Xdc, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"webClient";
 
diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp
index 0d1d925..874a327 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.cpp
+++ b/xfa/fxfa/parser/cxfa_whitespace.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"whitespace";
 
diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp
index 23e32f3..d484076 100644
--- a/xfa/fxfa/parser/cxfa_window.cpp
+++ b/xfa/fxfa/parser/cxfa_window.cpp
@@ -9,11 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"window";
 
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
index 6b5d11a..c958d41 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -9,24 +9,11 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Id, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Use, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Usehref, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"wsdlAddress";
 
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
index dd3f54d..370cd4f 100644
--- a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
@@ -17,14 +17,9 @@
     {XFA_Element::EffectiveInputPolicy, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DataDescription, XFA_AttributeType::CData,
-     XFA_XDPPACKET_ConnectionSet, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataDescription, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"wsdlConnection";
 
diff --git a/xfa/fxfa/parser/cxfa_xdc.cpp b/xfa/fxfa/parser/cxfa_xdc.cpp
index ca7dca1..2578c432 100644
--- a/xfa/fxfa/parser/cxfa_xdc.cpp
+++ b/xfa/fxfa/parser/cxfa_xdc.cpp
@@ -12,11 +12,9 @@
                                                  {XFA_Element::Xsl, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"xdc";
 
diff --git a/xfa/fxfa/parser/cxfa_xdp.cpp b/xfa/fxfa/parser/cxfa_xdp.cpp
index 9e6a430..cb090f3 100644
--- a/xfa/fxfa/parser/cxfa_xdp.cpp
+++ b/xfa/fxfa/parser/cxfa_xdp.cpp
@@ -11,11 +11,9 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Packets, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"xdp";
 
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
index c3dc43e..9fc6dc3 100644
--- a/xfa/fxfa/parser/cxfa_xfa.cpp
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -9,10 +9,9 @@
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::TimeStamp, XFA_AttributeType::CData, XFA_XDPPACKET_XDP,
-     nullptr},
-    {XFA_Attribute::Uuid, XFA_AttributeType::CData, XFA_XDPPACKET_XDP, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::TimeStamp, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Uuid, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"xfa";
 
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
index 56376cf..c67f684 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
@@ -11,14 +11,9 @@
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DataDescription, XFA_AttributeType::CData,
-     XFA_XDPPACKET_ConnectionSet, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataDescription, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"xmlConnection";
 
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
index 08c662a..45fc513 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
@@ -13,14 +13,9 @@
     {XFA_Element::RootElement, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::DataDescription, XFA_AttributeType::CData,
-     XFA_XDPPACKET_ConnectionSet, nullptr},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::DataDescription, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"xsdConnection";
 
diff --git a/xfa/fxfa/parser/cxfa_xsl.cpp b/xfa/fxfa/parser/cxfa_xsl.cpp
index e3fda71..0cbced1 100644
--- a/xfa/fxfa/parser/cxfa_xsl.cpp
+++ b/xfa/fxfa/parser/cxfa_xsl.cpp
@@ -12,11 +12,9 @@
                                                  {XFA_Element::Debug, 1, 0},
                                                  {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"xsl";
 
diff --git a/xfa/fxfa/parser/cxfa_zpl.cpp b/xfa/fxfa/parser/cxfa_zpl.cpp
index cdd4f17..2ded6d0 100644
--- a/xfa/fxfa/parser/cxfa_zpl.cpp
+++ b/xfa/fxfa/parser/cxfa_zpl.cpp
@@ -15,16 +15,10 @@
     {XFA_Element::FlipLabel, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
 const CXFA_Node::AttributeData kAttributeData[] = {
-    {XFA_Attribute::Name, XFA_AttributeType::CData,
-     XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
-         XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
-         XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
-     nullptr},
-    {XFA_Attribute::Desc, XFA_AttributeType::CData,
-     XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
-    {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
-     (void*)0},
-    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
+    {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
+    {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
+    {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
 constexpr wchar_t kName[] = L"zpl";