diff --git a/BUILD.gn b/BUILD.gn
index a903050..eda279b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -2134,8 +2134,7 @@
     ]
   }
 
-  # TODO(crbug.com/pdfium/964): Support jumbo builds.
-  static_library("xfa_fxfa_parser") {
+  jumbo_static_library("xfa_fxfa_parser") {
     sources = [
       "xfa/fxfa/parser/cscript_datawindow.cpp",
       "xfa/fxfa/parser/cscript_datawindow.h",
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
index 0a24615..4286b8e 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAccessibleContentAttributeData[] = {
     {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";
+constexpr wchar_t kAccessibleContentName[] = L"accessibleContent";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AccessibleContent,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAccessibleContentAttributeData,
+                kAccessibleContentName) {}
 
 CXFA_AccessibleContent::~CXFA_AccessibleContent() {}
diff --git a/xfa/fxfa/parser/cxfa_acrobat.cpp b/xfa/fxfa/parser/cxfa_acrobat.cpp
index 2327c08..2f4be07 100644
--- a/xfa/fxfa/parser/cxfa_acrobat.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat.cpp
@@ -8,19 +8,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kAcrobatPropertyData[] = {
     {XFA_Element::AutoSave, 1, 0},
     {XFA_Element::Validate, 1, 0},
     {XFA_Element::ValidateApprovalSignatures, 1, 0},
     {XFA_Element::Acrobat7, 1, 0},
     {XFA_Element::Common, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAcrobatAttributeData[] = {
     {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";
+constexpr wchar_t kAcrobatName[] = L"acrobat";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Acrobat,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kAcrobatPropertyData,
+                kAcrobatAttributeData,
+                kAcrobatName) {}
 
 CXFA_Acrobat::~CXFA_Acrobat() {}
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.cpp b/xfa/fxfa/parser/cxfa_acrobat7.cpp
index 089ab60..92eafb6 100644
--- a/xfa/fxfa/parser/cxfa_acrobat7.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat7.cpp
@@ -8,15 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kAcrobat7PropertyData[] = {
     {XFA_Element::DynamicRender, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAcrobat7AttributeData[] = {
     {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";
+constexpr wchar_t kAcrobat7Name[] = L"acrobat7";
 
 }  // namespace
 
@@ -26,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Acrobat7,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kAcrobat7PropertyData,
+                kAcrobat7AttributeData,
+                kAcrobat7Name) {}
 
 CXFA_Acrobat7::~CXFA_Acrobat7() {}
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
index af33636..a650683 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kaDBE_JSConsoleAttributeData[] = {
     {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";
+constexpr wchar_t kaDBE_JSConsoleName[] = L"ADBE_JSConsole";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ADBE_JSConsole,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kaDBE_JSConsoleAttributeData,
+                kaDBE_JSConsoleName) {}
 
 CXFA_aDBE_JSConsole::~CXFA_aDBE_JSConsole() {}
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
index bcb62eb..b1737e3 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kaDBE_JSDebuggerAttributeData[] = {
     {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";
+constexpr wchar_t kaDBE_JSDebuggerName[] = L"ADBE_JSDebugger";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ADBE_JSDebugger,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kaDBE_JSDebuggerAttributeData,
+                kaDBE_JSDebuggerName) {}
 
 CXFA_aDBE_JSDebugger::~CXFA_aDBE_JSDebugger() {}
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
index 13f7f83..74c3633 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAddSilentPrintAttributeData[] = {
     {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";
+constexpr wchar_t kAddSilentPrintName[] = L"addSilentPrint";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AddSilentPrint,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAddSilentPrintAttributeData,
+                kAddSilentPrintName) {}
 
 CXFA_AddSilentPrint::~CXFA_AddSilentPrint() {}
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
index 3e3d060..7624410 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAddViewerPreferencesAttributeData[] = {
     {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";
+constexpr wchar_t kAddViewerPreferencesName[] = L"addViewerPreferences";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AddViewerPreferences,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAddViewerPreferencesAttributeData,
+                kAddViewerPreferencesName) {}
 
 CXFA_AddViewerPreferences::~CXFA_AddViewerPreferences() {}
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp
index 60a4f2c..18c72d9 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.cpp
+++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAdjustDataAttributeData[] = {
     {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";
+constexpr wchar_t kAdjustDataName[] = L"adjustData";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::AdjustData,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAdjustDataAttributeData,
+                kAdjustDataName) {}
 
 CXFA_AdjustData::~CXFA_AdjustData() {}
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
index d253f8b..593dd910 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAdobeExtensionLevelAttributeData[] = {
     {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";
+constexpr wchar_t kAdobeExtensionLevelName[] = L"adobeExtensionLevel";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AdobeExtensionLevel,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAdobeExtensionLevelAttributeData,
+                kAdobeExtensionLevelName) {}
 
 CXFA_AdobeExtensionLevel::~CXFA_AdobeExtensionLevel() {}
diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp
index 468b938..4643aa1 100644
--- a/xfa/fxfa/parser/cxfa_agent.cpp
+++ b/xfa/fxfa/parser/cxfa_agent.cpp
@@ -8,13 +8,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAgentAttributeData[] = {
     {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";
+constexpr wchar_t kAgentName[] = L"agent";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Agent,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAgentAttributeData,
+                kAgentName) {}
 
 CXFA_Agent::~CXFA_Agent() {}
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
index 13f9717..d57dfb6 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.cpp
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAlwaysEmbedAttributeData[] = {
     {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";
+constexpr wchar_t kAlwaysEmbedName[] = L"alwaysEmbed";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::AlwaysEmbed,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAlwaysEmbedAttributeData,
+                kAlwaysEmbedName) {}
 
 CXFA_AlwaysEmbed::~CXFA_AlwaysEmbed() {}
diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp
index 7580304..539a41a 100644
--- a/xfa/fxfa/parser/cxfa_amd.cpp
+++ b/xfa/fxfa/parser/cxfa_amd.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAmdAttributeData[] = {
     {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";
+constexpr wchar_t kAmdName[] = L"amd";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Amd,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAmdAttributeData,
+                kAmdName) {}
 
 CXFA_Amd::~CXFA_Amd() {}
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
index 9b3e9fb..b9ac6cd 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.cpp
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAppearanceFilterAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -16,7 +16,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"appearanceFilter";
+constexpr wchar_t kAppearanceFilterName[] = L"appearanceFilter";
 
 }  // namespace
 
@@ -28,7 +28,7 @@
                 XFA_ObjectType::NodeC,
                 XFA_Element::AppearanceFilter,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAppearanceFilterAttributeData,
+                kAppearanceFilterName) {}
 
 CXFA_AppearanceFilter::~CXFA_AppearanceFilter() {}
diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp
index 9fb89a5..5527320 100644
--- a/xfa/fxfa/parser/cxfa_arc.cpp
+++ b/xfa/fxfa/parser/cxfa_arc.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
-                                                 {XFA_Element::Fill, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kArcPropertyData[] = {
+    {XFA_Element::Edge, 1, 0},
+    {XFA_Element::Fill, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kArcAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::StartAngle, XFA_AttributeType::Integer, (void*)0},
@@ -25,7 +26,7 @@
      (void*)XFA_AttributeEnum::Even},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"arc";
+constexpr wchar_t kArcName[] = L"arc";
 
 }  // namespace
 
@@ -35,9 +36,9 @@
                (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                XFA_ObjectType::Node,
                XFA_Element::Arc,
-               kPropertyData,
-               kAttributeData,
-               kName,
+               kArcPropertyData,
+               kArcAttributeData,
+               kArcName,
                pdfium::MakeUnique<CJX_Arc>(this)) {}
 
 CXFA_Arc::~CXFA_Arc() {}
diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp
index 7fd8aa6..be8e832 100644
--- a/xfa/fxfa/parser/cxfa_area.cpp
+++ b/xfa/fxfa/parser/cxfa_area.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kAreaPropertyData[] = {
+    {XFA_Element::Desc, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kAreaAttributeData[] = {
     {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},
@@ -27,7 +28,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"area";
+constexpr wchar_t kAreaName[] = L"area";
 
 }  // namespace
 
@@ -38,9 +39,9 @@
           (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
           XFA_ObjectType::ContainerNode,
           XFA_Element::Area,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kAreaPropertyData,
+          kAreaAttributeData,
+          kAreaName,
           pdfium::MakeUnique<CJX_Area>(this)) {}
 
 CXFA_Area::~CXFA_Area() {}
diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp
index 4286211..9ba1408 100644
--- a/xfa/fxfa/parser/cxfa_assist.cpp
+++ b/xfa/fxfa/parser/cxfa_assist.cpp
@@ -11,17 +11,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::ToolTip, 1, 0},
-                                                 {XFA_Element::Speak, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kAssistPropertyData[] = {
+    {XFA_Element::ToolTip, 1, 0},
+    {XFA_Element::Speak, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kAssistAttributeData[] = {
     {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";
+constexpr wchar_t kAssistName[] = L"assist";
 
 }  // namespace
 
@@ -31,9 +32,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Assist,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kAssistPropertyData,
+                kAssistAttributeData,
+                kAssistName,
                 pdfium::MakeUnique<CJX_Assist>(this)) {}
 
 CXFA_Assist::~CXFA_Assist() {}
diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp
index 80e58bd..7a9df6e 100644
--- a/xfa/fxfa/parser/cxfa_attributes.cpp
+++ b/xfa/fxfa/parser/cxfa_attributes.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAttributesAttributeData[] = {
     {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";
+constexpr wchar_t kAttributesName[] = L"attributes";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Attributes,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAttributesAttributeData,
+                kAttributesName) {}
 
 CXFA_Attributes::~CXFA_Attributes() {}
diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp
index d77c252..d02fe20 100644
--- a/xfa/fxfa/parser/cxfa_autosave.cpp
+++ b/xfa/fxfa/parser/cxfa_autosave.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kAutoSaveAttributeData[] = {
     {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";
+constexpr wchar_t kAutoSaveName[] = L"autoSave";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::AutoSave,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kAutoSaveAttributeData,
+                kAutoSaveName) {}
 
 CXFA_AutoSave::~CXFA_AutoSave() {}
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
index 9fb7082..2faecb0 100644
--- a/xfa/fxfa/parser/cxfa_barcode.cpp
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -12,7 +12,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBarcodeAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::DataRowCount, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -40,7 +40,7 @@
     {XFA_Attribute::EndChar, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"barcode";
+constexpr wchar_t kBarcodeName[] = L"barcode";
 
 }  // namespace
 
@@ -51,8 +51,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Barcode,
                 nullptr,
-                kAttributeData,
-                kName,
+                kBarcodeAttributeData,
+                kBarcodeName,
                 pdfium::MakeUnique<CJX_Barcode>(this)) {}
 
 CXFA_Barcode::~CXFA_Barcode() {}
diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp
index a82a79a..bc23a75 100644
--- a/xfa/fxfa/parser/cxfa_base.cpp
+++ b/xfa/fxfa/parser/cxfa_base.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBaseAttributeData[] = {
     {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";
+constexpr wchar_t kBaseName[] = L"base";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Base,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kBaseAttributeData,
+                kBaseName) {}
 
 CXFA_Base::~CXFA_Base() {}
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp
index 1678d6a..bdca82c 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.cpp
+++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBatchOutputAttributeData[] = {
     {XFA_Attribute::Format, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::None},
     {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";
+constexpr wchar_t kBatchOutputName[] = L"batchOutput";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::BatchOutput,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kBatchOutputAttributeData,
+                kBatchOutputName) {}
 
 CXFA_BatchOutput::~CXFA_BatchOutput() {}
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
index addf8f1..14ee23b 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.cpp
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBehaviorOverrideAttributeData[] = {
     {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";
+constexpr wchar_t kBehaviorOverrideName[] = L"behaviorOverride";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::BehaviorOverride,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kBehaviorOverrideAttributeData,
+                kBehaviorOverrideName) {}
 
 CXFA_BehaviorOverride::~CXFA_BehaviorOverride() {}
diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp
index d35a2cd..6ae84ae 100644
--- a/xfa/fxfa/parser/cxfa_bind.cpp
+++ b/xfa/fxfa/parser/cxfa_bind.cpp
@@ -13,9 +13,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kBindPropertyData[] = {
+    {XFA_Element::Picture, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kBindAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
@@ -28,7 +29,7 @@
      (void*)XFA_AttributeEnum::Once},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"bind";
+constexpr wchar_t kBindName[] = L"bind";
 
 }  // namespace
 
@@ -39,9 +40,9 @@
                  XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Bind,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kBindPropertyData,
+                kBindAttributeData,
+                kBindName,
                 pdfium::MakeUnique<CJX_Bind>(this)) {}
 
 CXFA_Bind::~CXFA_Bind() {}
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index d7d72a7..4116780 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBindItemsAttributeData[] = {
     {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";
+constexpr wchar_t kBindItemsName[] = L"bindItems";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::BindItems,
                 nullptr,
-                kAttributeData,
-                kName,
+                kBindItemsAttributeData,
+                kBindItemsName,
                 pdfium::MakeUnique<CJX_BindItems>(this)) {}
 
 CXFA_BindItems::~CXFA_BindItems() {}
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
index 6b172be..f6ea93b 100644
--- a/xfa/fxfa/parser/cxfa_bookend.cpp
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBookendAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Trailer, XFA_AttributeType::CData, nullptr},
@@ -19,7 +19,7 @@
     {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"bookend";
+constexpr wchar_t kBookendName[] = L"bookend";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Bookend,
                 nullptr,
-                kAttributeData,
-                kName,
+                kBookendAttributeData,
+                kBookendName,
                 pdfium::MakeUnique<CJX_Bookend>(this)) {}
 
 CXFA_Bookend::~CXFA_Bookend() {}
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index f804919..c3dbbaf 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kBooleanAttributeData[] = {
     {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";
+constexpr wchar_t kBooleanName[] = L"boolean";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Boolean,
                 nullptr,
-                kAttributeData,
-                kName,
+                kBooleanAttributeData,
+                kBooleanName,
                 pdfium::MakeUnique<CJX_Boolean>(this)) {}
 
 CXFA_Boolean::~CXFA_Boolean() {}
diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp
index eb87562..067238c 100644
--- a/xfa/fxfa/parser/cxfa_border.cpp
+++ b/xfa/fxfa/parser/cxfa_border.cpp
@@ -11,11 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kBorderPropertyData[] = {
     {XFA_Element::Margin, 1, 0}, {XFA_Element::Edge, 4, 0},
     {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[] = {
+const CXFA_Node::AttributeData kBorderAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Break, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Close},
@@ -28,7 +28,7 @@
      (void*)XFA_AttributeEnum::Even},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"border";
+constexpr wchar_t kBorderName[] = L"border";
 
 }  // namespace
 
@@ -38,9 +38,9 @@
                      (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                      XFA_ObjectType::Node,
                      XFA_Element::Border,
-                     kPropertyData,
-                     kAttributeData,
-                     kName,
+                     kBorderPropertyData,
+                     kBorderAttributeData,
+                     kBorderName,
                      pdfium::MakeUnique<CJX_Border>(this)) {}
 
 CXFA_Border::~CXFA_Border() {}
diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp
index 3a83b1c..ca5eca5 100644
--- a/xfa/fxfa/parser/cxfa_break.cpp
+++ b/xfa/fxfa/parser/cxfa_break.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kBreakPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kBreakAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::BeforeTarget, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -31,7 +32,7 @@
      (void*)XFA_AttributeEnum::Auto},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"break";
+constexpr wchar_t kBreakName[] = L"break";
 
 }  // namespace
 
@@ -41,9 +42,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Break,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kBreakPropertyData,
+                kBreakAttributeData,
+                kBreakName,
                 pdfium::MakeUnique<CJX_Break>(this)) {}
 
 CXFA_Break::~CXFA_Break() {}
diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp
index 925b721..6541abe 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.cpp
+++ b/xfa/fxfa/parser/cxfa_breakafter.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kBreakAfterPropertyData[] = {
+    {XFA_Element::Script, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kBreakAfterAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, (void*)0},
@@ -25,7 +26,7 @@
     {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"breakAfter";
+constexpr wchar_t kBreakAfterName[] = L"breakAfter";
 
 }  // namespace
 
@@ -35,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::BreakAfter,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kBreakAfterPropertyData,
+                kBreakAfterAttributeData,
+                kBreakAfterName,
                 pdfium::MakeUnique<CJX_BreakAfter>(this)) {}
 
 CXFA_BreakAfter::~CXFA_BreakAfter() {}
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp
index c8dcade..d1b57e4 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.cpp
+++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kBreakBeforePropertyData[] = {
+    {XFA_Element::Script, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kBreakBeforeAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, (void*)0},
@@ -25,7 +26,7 @@
     {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"breakBefore";
+constexpr wchar_t kBreakBeforeName[] = L"breakBefore";
 
 }  // namespace
 
@@ -35,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::BreakBefore,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kBreakBeforePropertyData,
+                kBreakBeforeAttributeData,
+                kBreakBeforeName,
                 pdfium::MakeUnique<CJX_BreakBefore>(this)) {}
 
 CXFA_BreakBefore::~CXFA_BreakBefore() {}
diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp
index 4a951b3..5ab289b 100644
--- a/xfa/fxfa/parser/cxfa_button.cpp
+++ b/xfa/fxfa/parser/cxfa_button.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kButtonPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kButtonAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -21,7 +22,7 @@
      (void*)XFA_AttributeEnum::Inverted},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"button";
+constexpr wchar_t kButtonName[] = L"button";
 
 }  // namespace
 
@@ -31,9 +32,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Button,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kButtonPropertyData,
+                kButtonAttributeData,
+                kButtonName,
                 pdfium::MakeUnique<CJX_Button>(this)) {}
 
 CXFA_Button::~CXFA_Button() {}
diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp
index 74227a3..1c6d0a2 100644
--- a/xfa/fxfa/parser/cxfa_cache.cpp
+++ b/xfa/fxfa/parser/cxfa_cache.cpp
@@ -8,15 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCachePropertyData[] = {
     {XFA_Element::TemplateCache, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCacheAttributeData[] = {
     {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";
+constexpr wchar_t kCacheName[] = L"cache";
 
 }  // namespace
 
@@ -26,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Cache,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kCachePropertyData,
+                kCacheAttributeData,
+                kCacheName) {}
 
 CXFA_Cache::~CXFA_Cache() {}
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
index 3286787..a5540df 100644
--- a/xfa/fxfa/parser/cxfa_calculate.cpp
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -14,11 +14,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
-                                                 {XFA_Element::Script, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kCalculatePropertyData[] = {
+    {XFA_Element::Message, 1, 0},
+    {XFA_Element::Script, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kCalculateAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -26,7 +27,7 @@
      (void*)XFA_AttributeEnum::Error},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"calculate";
+constexpr wchar_t kCalculateName[] = L"calculate";
 
 }  // namespace
 
@@ -36,9 +37,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Calculate,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kCalculatePropertyData,
+                kCalculateAttributeData,
+                kCalculateName,
                 pdfium::MakeUnique<CJX_Calculate>(this)) {}
 
 CXFA_Calculate::~CXFA_Calculate() {}
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
index c9ad3b5..f86e37f 100644
--- a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
@@ -8,18 +8,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCalendarSymbolsPropertyData[] = {
     {XFA_Element::EraNames, 1, 0},
     {XFA_Element::DayNames, 2, 0},
     {XFA_Element::MeridiemNames, 1, 0},
     {XFA_Element::MonthNames, 2, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCalendarSymbolsAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Gregorian},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"calendarSymbols";
+constexpr wchar_t kCalendarSymbolsName[] = L"calendarSymbols";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::CalendarSymbols,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kCalendarSymbolsPropertyData,
+                kCalendarSymbolsAttributeData,
+                kCalendarSymbolsName) {}
 
 CXFA_CalendarSymbols::~CXFA_CalendarSymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
index a54605a..dad4dc4 100644
--- a/xfa/fxfa/parser/cxfa_caption.cpp
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -15,11 +15,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCaptionPropertyData[] = {
     {XFA_Element::Margin, 1, 0}, {XFA_Element::Para, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kCaptionAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Reserve, XFA_AttributeType::Measure, (void*)L"-1un"},
@@ -30,7 +30,7 @@
      (void*)XFA_AttributeEnum::Left},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"caption";
+constexpr wchar_t kCaptionName[] = L"caption";
 
 }  // namespace
 
@@ -40,9 +40,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Caption,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kCaptionPropertyData,
+                kCaptionAttributeData,
+                kCaptionName,
                 pdfium::MakeUnique<CJX_Caption>(this)) {}
 
 CXFA_Caption::~CXFA_Caption() {}
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
index c3e8ec0..e7e203d 100644
--- a/xfa/fxfa/parser/cxfa_certificate.cpp
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCertificateAttributeData[] = {
     {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";
+constexpr wchar_t kCertificateName[] = L"certificate";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Certificate,
                 nullptr,
-                kAttributeData,
-                kName,
+                kCertificateAttributeData,
+                kCertificateName,
                 pdfium::MakeUnique<CJX_Certificate>(this)) {}
 
 CXFA_Certificate::~CXFA_Certificate() {}
diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp
index 0af8f30..ef223be 100644
--- a/xfa/fxfa/parser/cxfa_certificates.cpp
+++ b/xfa/fxfa/parser/cxfa_certificates.cpp
@@ -11,11 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCertificatesPropertyData[] = {
     {XFA_Element::KeyUsage, 1, 0}, {XFA_Element::SubjectDNs, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kCertificatesAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Url, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -25,7 +25,7 @@
     {XFA_Attribute::UrlPolicy, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"certificates";
+constexpr wchar_t kCertificatesName[] = L"certificates";
 
 }  // namespace
 
@@ -35,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Certificates,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kCertificatesPropertyData,
+                kCertificatesAttributeData,
+                kCertificatesName,
                 pdfium::MakeUnique<CJX_Certificates>(this)) {}
 
 CXFA_Certificates::~CXFA_Certificates() {}
diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp
index 520c556..2b968d4 100644
--- a/xfa/fxfa/parser/cxfa_change.cpp
+++ b/xfa/fxfa/parser/cxfa_change.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kChangeAttributeData[] = {
     {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";
+constexpr wchar_t kChangeName[] = L"change";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Change,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kChangeAttributeData,
+                kChangeName) {}
 
 CXFA_Change::~CXFA_Change() {}
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp
index 6b5fa8f..a77a083 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.cpp
+++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp
@@ -11,11 +11,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kCheckButtonPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kCheckButtonAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::AllowNeutral, XFA_AttributeType::Boolean, (void*)0},
@@ -27,7 +28,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"checkButton";
+constexpr wchar_t kCheckButtonName[] = L"checkButton";
 
 }  // namespace
 
@@ -37,9 +38,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::CheckButton,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kCheckButtonPropertyData,
+                kCheckButtonAttributeData,
+                kCheckButtonName,
                 pdfium::MakeUnique<CJX_CheckButton>(this)) {}
 
 CXFA_CheckButton::~CXFA_CheckButton() {}
diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp
index bf95ef9..0adf645 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.cpp
+++ b/xfa/fxfa/parser/cxfa_choicelist.cpp
@@ -11,11 +11,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kChoiceListPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kChoiceListAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Open, XFA_AttributeType::Enum,
@@ -26,7 +27,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"choiceList";
+constexpr wchar_t kChoiceListName[] = L"choiceList";
 
 }  // namespace
 
@@ -36,9 +37,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::ChoiceList,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kChoiceListPropertyData,
+                kChoiceListAttributeData,
+                kChoiceListName,
                 pdfium::MakeUnique<CJX_ChoiceList>(this)) {}
 
 CXFA_ChoiceList::~CXFA_ChoiceList() {}
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
index 95c0ad3..6fc6397 100644
--- a/xfa/fxfa/parser/cxfa_color.cpp
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kColorPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kColorAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::CSpace, XFA_AttributeType::CData, (void*)L"SRGB"},
@@ -21,7 +22,7 @@
     {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"color";
+constexpr wchar_t kColorName[] = L"color";
 
 }  // namespace
 
@@ -31,9 +32,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Color,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kColorPropertyData,
+                kColorAttributeData,
+                kColorName,
                 pdfium::MakeUnique<CJX_Color>(this)) {}
 
 CXFA_Color::~CXFA_Color() {}
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index c427dde..1be4f56 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCombAttributeData[] = {
     {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";
+constexpr wchar_t kCombName[] = L"comb";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Comb,
                 nullptr,
-                kAttributeData,
-                kName,
+                kCombAttributeData,
+                kCombName,
                 pdfium::MakeUnique<CJX_Comb>(this)) {}
 
 CXFA_Comb::~CXFA_Comb() {}
diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp
index ce385e1..bf786e1 100644
--- a/xfa/fxfa/parser/cxfa_command.cpp
+++ b/xfa/fxfa/parser/cxfa_command.cpp
@@ -11,12 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Query, 1, 0},
-                                                 {XFA_Element::Insert, 1, 0},
-                                                 {XFA_Element::Update, 1, 0},
-                                                 {XFA_Element::Delete, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kCommandPropertyData[] = {
+    {XFA_Element::Query, 1, 0},
+    {XFA_Element::Insert, 1, 0},
+    {XFA_Element::Update, 1, 0},
+    {XFA_Element::Delete, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kCommandAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -24,7 +25,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"command";
+constexpr wchar_t kCommandName[] = L"command";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::Node,
                 XFA_Element::Command,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kCommandPropertyData,
+                kCommandAttributeData,
+                kCommandName,
                 pdfium::MakeUnique<CJX_Command>(this)) {}
 
 CXFA_Command::~CXFA_Command() {}
diff --git a/xfa/fxfa/parser/cxfa_common.cpp b/xfa/fxfa/parser/cxfa_common.cpp
index e95f02f..76c8f50 100644
--- a/xfa/fxfa/parser/cxfa_common.cpp
+++ b/xfa/fxfa/parser/cxfa_common.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCommonPropertyData[] = {
     {XFA_Element::SuppressBanner, 1, 0},
     {XFA_Element::VersionControl, 1, 0},
     {XFA_Element::LocaleSet, 1, 0},
@@ -18,12 +18,12 @@
     {XFA_Element::Data, 1, 0},
     {XFA_Element::Messaging, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCommonAttributeData[] = {
     {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";
+constexpr wchar_t kCommonName[] = L"common";
 
 }  // namespace
 
@@ -33,8 +33,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Common,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kCommonPropertyData,
+                kCommonAttributeData,
+                kCommonName) {}
 
 CXFA_Common::~CXFA_Common() {}
diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp
index 72a3b92..f2c2147 100644
--- a/xfa/fxfa/parser/cxfa_compress.cpp
+++ b/xfa/fxfa/parser/cxfa_compress.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCompressAttributeData[] = {
     {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Scope, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::ImageOnly},
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"compress";
+constexpr wchar_t kCompressName[] = L"compress";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Compress,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCompressAttributeData,
+                kCompressName) {}
 
 CXFA_Compress::~CXFA_Compress() {}
diff --git a/xfa/fxfa/parser/cxfa_compression.cpp b/xfa/fxfa/parser/cxfa_compression.cpp
index 3d2bfde..615b5e6 100644
--- a/xfa/fxfa/parser/cxfa_compression.cpp
+++ b/xfa/fxfa/parser/cxfa_compression.cpp
@@ -8,18 +8,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCompressionPropertyData[] = {
     {XFA_Element::Level, 1, 0},
     {XFA_Element::Type, 1, 0},
     {XFA_Element::CompressObjectStream, 1, 0},
     {XFA_Element::CompressLogicalStructure, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCompressionAttributeData[] = {
     {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";
+constexpr wchar_t kCompressionName[] = L"compression";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Compression,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kCompressionPropertyData,
+                kCompressionAttributeData,
+                kCompressionName) {}
 
 CXFA_Compression::~CXFA_Compression() {}
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
index a9c2baf..77ac93e 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCompressLogicalStructureAttributeData[] = {
     {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";
+constexpr wchar_t kCompressLogicalStructureName[] = L"compressLogicalStructure";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CompressLogicalStructure,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCompressLogicalStructureAttributeData,
+                kCompressLogicalStructureName) {}
 
 CXFA_CompressLogicalStructure::~CXFA_CompressLogicalStructure() {}
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
index 49eaed0..9d3a0cf 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCompressObjectStreamAttributeData[] = {
     {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";
+constexpr wchar_t kCompressObjectStreamName[] = L"compressObjectStream";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CompressObjectStream,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCompressObjectStreamAttributeData,
+                kCompressObjectStreamName) {}
 
 CXFA_CompressObjectStream::~CXFA_CompressObjectStream() {}
diff --git a/xfa/fxfa/parser/cxfa_config.cpp b/xfa/fxfa/parser/cxfa_config.cpp
index 79232a2..8d23bc0 100644
--- a/xfa/fxfa/parser/cxfa_config.cpp
+++ b/xfa/fxfa/parser/cxfa_config.cpp
@@ -8,16 +8,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Present, 1, 0},
-                                                 {XFA_Element::Acrobat, 1, 0},
-                                                 {XFA_Element::Trace, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kConfigPropertyData[] = {
+    {XFA_Element::Present, 1, 0},
+    {XFA_Element::Acrobat, 1, 0},
+    {XFA_Element::Trace, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kConfigAttributeData[] = {
     {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";
+constexpr wchar_t kConfigName[] = L"config";
 
 }  // namespace
 
@@ -27,8 +28,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ModelNode,
                 XFA_Element::Config,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kConfigPropertyData,
+                kConfigAttributeData,
+                kConfigName) {}
 
 CXFA_Config::~CXFA_Config() {}
diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp
index f83c8ea..9b15fd9 100644
--- a/xfa/fxfa/parser/cxfa_conformance.cpp
+++ b/xfa/fxfa/parser/cxfa_conformance.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kConformanceAttributeData[] = {
     {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";
+constexpr wchar_t kConformanceName[] = L"conformance";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Conformance,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kConformanceAttributeData,
+                kConformanceName) {}
 
 CXFA_Conformance::~CXFA_Conformance() {}
diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp
index 40648f4..850f477 100644
--- a/xfa/fxfa/parser/cxfa_connect.cpp
+++ b/xfa/fxfa/parser/cxfa_connect.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kConnectPropertyData[] = {
     {XFA_Element::Picture, 1, 0},
     {XFA_Element::ConnectString, 1, 0},
     {XFA_Element::User, 1, 0},
     {XFA_Element::Password, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kConnectAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
@@ -30,7 +30,7 @@
     {XFA_Attribute::DelayedOpen, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"connect";
+constexpr wchar_t kConnectName[] = L"connect";
 
 }  // namespace
 
@@ -41,9 +41,9 @@
                  XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Connect,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kConnectPropertyData,
+                kConnectAttributeData,
+                kConnectName,
                 pdfium::MakeUnique<CJX_Connect>(this)) {}
 
 CXFA_Connect::~CXFA_Connect() {}
diff --git a/xfa/fxfa/parser/cxfa_connectionset.cpp b/xfa/fxfa/parser/cxfa_connectionset.cpp
index 78f02e0..65ca758 100644
--- a/xfa/fxfa/parser/cxfa_connectionset.cpp
+++ b/xfa/fxfa/parser/cxfa_connectionset.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"connectionSet";
+constexpr wchar_t kConnectionSetName[] = L"connectionSet";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_Element::ConnectionSet,
                 nullptr,
                 nullptr,
-                kName,
+                kConnectionSetName,
                 pdfium::MakeUnique<CJX_Model>(this)) {}
 
 CXFA_ConnectionSet::~CXFA_ConnectionSet() {}
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
index 87eb70d..bf0c9e2 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.cpp
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kConnectStringAttributeData[] = {
     {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";
+constexpr wchar_t kConnectStringName[] = L"connectString";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::ConnectString,
                 nullptr,
-                kAttributeData,
-                kName,
+                kConnectStringAttributeData,
+                kConnectStringName,
                 pdfium::MakeUnique<CJX_ConnectString>(this)) {}
 
 CXFA_ConnectString::~CXFA_ConnectString() {}
diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp
index 48f52f7..0883f46 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.cpp
+++ b/xfa/fxfa/parser/cxfa_contentarea.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kContentAreaPropertyData[] = {
+    {XFA_Element::Desc, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kContentAreaAttributeData[] = {
     {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"},
@@ -26,7 +27,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"contentArea";
+constexpr wchar_t kContentAreaName[] = L"contentArea";
 
 }  // namespace
 
@@ -36,9 +37,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::ContentArea,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kContentAreaPropertyData,
+                kContentAreaAttributeData,
+                kContentAreaName,
                 pdfium::MakeUnique<CJX_ContentArea>(this)) {}
 
 CXFA_ContentArea::~CXFA_ContentArea() {}
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp
index a55d576..5ae862a 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.cpp
+++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kContentCopyAttributeData[] = {
     {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";
+constexpr wchar_t kContentCopyName[] = L"contentCopy";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ContentCopy,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kContentCopyAttributeData,
+                kContentCopyName) {}
 
 CXFA_ContentCopy::~CXFA_ContentCopy() {}
diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp
index 4ddf07f..5c0ddc9 100644
--- a/xfa/fxfa/parser/cxfa_copies.cpp
+++ b/xfa/fxfa/parser/cxfa_copies.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCopiesAttributeData[] = {
     {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";
+constexpr wchar_t kCopiesName[] = L"copies";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Copies,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCopiesAttributeData,
+                kCopiesName) {}
 
 CXFA_Copies::~CXFA_Copies() {}
diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp
index 0cd3ef4..409454f 100644
--- a/xfa/fxfa/parser/cxfa_corner.cpp
+++ b/xfa/fxfa/parser/cxfa_corner.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kCornerPropertyData[] = {
+    {XFA_Element::Color, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kCornerAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Stroke, XFA_AttributeType::Enum,
@@ -29,7 +30,7 @@
     {XFA_Attribute::Radius, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"corner";
+constexpr wchar_t kCornerName[] = L"corner";
 
 }  // namespace
 
@@ -39,9 +40,9 @@
                   (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                   XFA_ObjectType::Node,
                   XFA_Element::Corner,
-                  kPropertyData,
-                  kAttributeData,
-                  kName,
+                  kCornerPropertyData,
+                  kCornerAttributeData,
+                  kCornerName,
                   pdfium::MakeUnique<CJX_Corner>(this)) {}
 
 CXFA_Corner::~CXFA_Corner() {}
diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp
index 2e65068..bd09fd1 100644
--- a/xfa/fxfa/parser/cxfa_creator.cpp
+++ b/xfa/fxfa/parser/cxfa_creator.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCreatorAttributeData[] = {
     {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";
+constexpr wchar_t kCreatorName[] = L"creator";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Creator,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCreatorAttributeData,
+                kCreatorName) {}
 
 CXFA_Creator::~CXFA_Creator() {}
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
index de11f27..381f714 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCurrencySymbolAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Symbol},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"currencySymbol";
+constexpr wchar_t kCurrencySymbolName[] = L"currencySymbol";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CurrencySymbol,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCurrencySymbolAttributeData,
+                kCurrencySymbolName) {}
 
 CXFA_CurrencySymbol::~CXFA_CurrencySymbol() {}
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.cpp b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
index 4160be9..e82da2f 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kCurrencySymbolsPropertyData[] = {
     {XFA_Element::CurrencySymbol, 3, 0},
     {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"currencySymbols";
+constexpr wchar_t kCurrencySymbolsName[] = L"currencySymbols";
 
 }  // namespace
 
@@ -23,8 +23,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::CurrencySymbols,
-                kPropertyData,
+                kCurrencySymbolsPropertyData,
                 nullptr,
-                kName) {}
+                kCurrencySymbolsName) {}
 
 CXFA_CurrencySymbols::~CXFA_CurrencySymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp
index be200e4..cab81de 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.cpp
+++ b/xfa/fxfa/parser/cxfa_currentpage.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kCurrentPageAttributeData[] = {
     {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";
+constexpr wchar_t kCurrentPageName[] = L"currentPage";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CurrentPage,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kCurrentPageAttributeData,
+                kCurrentPageName) {}
 
 CXFA_CurrentPage::~CXFA_CurrentPage() {}
diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp
index 6fd66a9..39df531 100644
--- a/xfa/fxfa/parser/cxfa_data.cpp
+++ b/xfa/fxfa/parser/cxfa_data.cpp
@@ -8,19 +8,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kDataPropertyData[] = {
     {XFA_Element::Uri, 1, 0},        {XFA_Element::Xsl, 1, 0},
     {XFA_Element::StartNode, 1, 0},  {XFA_Element::OutputXSL, 1, 0},
     {XFA_Element::AdjustData, 1, 0}, {XFA_Element::Attributes, 1, 0},
     {XFA_Element::Window, 1, 0},     {XFA_Element::Record, 1, 0},
     {XFA_Element::Range, 1, 0},      {XFA_Element::IncrementalLoad, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDataAttributeData[] = {
     {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";
+constexpr wchar_t kDataName[] = L"data";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Data,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kDataPropertyData,
+                kDataAttributeData,
+                kDataName) {}
 
 CXFA_Data::~CXFA_Data() {}
diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp
index 9b65146..6b59e55 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.cpp
+++ b/xfa/fxfa/parser/cxfa_datagroup.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDataGroupAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"dataGroup";
+constexpr wchar_t kDataGroupName[] = L"dataGroup";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::DataGroup,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDataGroupAttributeData,
+                kDataGroupName) {}
 
 CXFA_DataGroup::~CXFA_DataGroup() {}
diff --git a/xfa/fxfa/parser/cxfa_datamodel.cpp b/xfa/fxfa/parser/cxfa_datamodel.cpp
index 686ba4c..dc040c7 100644
--- a/xfa/fxfa/parser/cxfa_datamodel.cpp
+++ b/xfa/fxfa/parser/cxfa_datamodel.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"dataModel";
+constexpr wchar_t kDataModelName[] = L"dataModel";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_Element::DataModel,
                 nullptr,
                 nullptr,
-                kName,
+                kDataModelName,
                 pdfium::MakeUnique<CJX_Model>(this)) {}
 
 CXFA_DataModel::~CXFA_DataModel() {}
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
index e2ebaf0..1b1bd7c 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.cpp
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDataValueAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Contains, XFA_AttributeType::Enum,
@@ -20,7 +20,7 @@
     {XFA_Attribute::IsNull, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"dataValue";
+constexpr wchar_t kDataValueName[] = L"dataValue";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::DataValue,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDataValueAttributeData,
+                kDataValueName,
                 pdfium::MakeUnique<CJX_DataValue>(this)) {}
 
 CXFA_DataValue::~CXFA_DataValue() {}
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
index 984ab32..90f20b5 100644
--- a/xfa/fxfa/parser/cxfa_date.cpp
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDateAttributeData[] = {
     {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";
+constexpr wchar_t kDateName[] = L"date";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Date,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDateAttributeData,
+                kDateName,
                 pdfium::MakeUnique<CJX_Date>(this)) {}
 
 CXFA_Date::~CXFA_Date() {}
diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp
index 237874b..edf3e0f 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_datepattern.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDatePatternAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Med},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"datePattern";
+constexpr wchar_t kDatePatternName[] = L"datePattern";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DatePattern,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDatePatternAttributeData,
+                kDatePatternName) {}
 
 CXFA_DatePattern::~CXFA_DatePattern() {}
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.cpp b/xfa/fxfa/parser/cxfa_datepatterns.cpp
index 37a380d..9678d1f 100644
--- a/xfa/fxfa/parser/cxfa_datepatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_datepatterns.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kDatePatternsPropertyData[] = {
     {XFA_Element::DatePattern, 4, 0},
     {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"datePatterns";
+constexpr wchar_t kDatePatternsName[] = L"datePatterns";
 
 }  // namespace
 
@@ -22,8 +22,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::DatePatterns,
-                kPropertyData,
+                kDatePatternsPropertyData,
                 nullptr,
-                kName) {}
+                kDatePatternsName) {}
 
 CXFA_DatePatterns::~CXFA_DatePatterns() {}
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
index 809e40c..564a57a 100644
--- a/xfa/fxfa/parser/cxfa_datetime.cpp
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDateTimeAttributeData[] = {
     {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";
+constexpr wchar_t kDateTimeName[] = L"dateTime";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DateTime,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDateTimeAttributeData,
+                kDateTimeName,
                 pdfium::MakeUnique<CJX_DateTime>(this)) {}
 
 CXFA_DateTime::~CXFA_DateTime() {}
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
index 65b4ba3..8145e15 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
@@ -11,12 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Comb, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kDateTimeEditPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Comb, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kDateTimeEditAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -26,7 +27,7 @@
      (void*)XFA_AttributeEnum::Auto},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"dateTimeEdit";
+constexpr wchar_t kDateTimeEditName[] = L"dateTimeEdit";
 
 }  // namespace
 
@@ -36,9 +37,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::DateTimeEdit,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kDateTimeEditPropertyData,
+                kDateTimeEditAttributeData,
+                kDateTimeEditName,
                 pdfium::MakeUnique<CJX_DateTimeEdit>(this)) {}
 
 CXFA_DateTimeEdit::~CXFA_DateTimeEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
index 9f29666..85d3f91 100644
--- a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"dateTimeSymbols";
+constexpr wchar_t kDateTimeSymbolsName[] = L"dateTimeSymbols";
 
 }  // namespace
 
@@ -21,6 +21,6 @@
                 XFA_Element::DateTimeSymbols,
                 nullptr,
                 nullptr,
-                kName) {}
+                kDateTimeSymbolsName) {}
 
 CXFA_DateTimeSymbols::~CXFA_DateTimeSymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_day.cpp b/xfa/fxfa/parser/cxfa_day.cpp
index c08b820..0b5b3a1 100644
--- a/xfa/fxfa/parser/cxfa_day.cpp
+++ b/xfa/fxfa/parser/cxfa_day.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"day";
+constexpr wchar_t kDayName[] = L"day";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::Day,
                 nullptr,
                 nullptr,
-                kName) {}
+                kDayName) {}
 
 CXFA_Day::~CXFA_Day() {}
diff --git a/xfa/fxfa/parser/cxfa_daynames.cpp b/xfa/fxfa/parser/cxfa_daynames.cpp
index 47468e9..0947fce 100644
--- a/xfa/fxfa/parser/cxfa_daynames.cpp
+++ b/xfa/fxfa/parser/cxfa_daynames.cpp
@@ -8,13 +8,14 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Day, 7, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kDayNamesPropertyData[] = {
+    {XFA_Element::Day, 7, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kDayNamesAttributeData[] = {
     {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"dayNames";
+constexpr wchar_t kDayNamesName[] = L"dayNames";
 
 }  // namespace
 
@@ -24,8 +25,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::DayNames,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kDayNamesPropertyData,
+                kDayNamesAttributeData,
+                kDayNamesName) {}
 
 CXFA_DayNames::~CXFA_DayNames() {}
diff --git a/xfa/fxfa/parser/cxfa_debug.cpp b/xfa/fxfa/parser/cxfa_debug.cpp
index 91cfd63..346cd11 100644
--- a/xfa/fxfa/parser/cxfa_debug.cpp
+++ b/xfa/fxfa/parser/cxfa_debug.cpp
@@ -8,14 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kDebugPropertyData[] = {
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kDebugAttributeData[] = {
     {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";
+constexpr wchar_t kDebugName[] = L"debug";
 
 }  // namespace
 
@@ -25,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Debug,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kDebugPropertyData,
+                kDebugAttributeData,
+                kDebugName) {}
 
 CXFA_Debug::~CXFA_Debug() {}
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
index c887e8d..6941d1c 100644
--- a/xfa/fxfa/parser/cxfa_decimal.cpp
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDecimalAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -20,7 +20,7 @@
     {XFA_Attribute::LeadDigits, XFA_AttributeType::Integer, (void*)-1},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"decimal";
+constexpr wchar_t kDecimalName[] = L"decimal";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Decimal,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDecimalAttributeData,
+                kDecimalName,
                 pdfium::MakeUnique<CJX_Decimal>(this)) {}
 
 CXFA_Decimal::~CXFA_Decimal() {}
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
index 60da786..f7124b1 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDefaultTypefaceAttributeData[] = {
     {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::WritingScript, XFA_AttributeType::Enum,
      (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";
+constexpr wchar_t kDefaultTypefaceName[] = L"defaultTypeface";
 
 }  // namespace
 
@@ -27,7 +27,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::DefaultTypeface,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDefaultTypefaceAttributeData,
+                kDefaultTypefaceName) {}
 
 CXFA_DefaultTypeface::~CXFA_DefaultTypeface() {}
diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp
index 42bf0d0..776dd5d 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.cpp
+++ b/xfa/fxfa/parser/cxfa_defaultui.cpp
@@ -11,15 +11,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kDefaultUiPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kDefaultUiAttributeData[] = {
     {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";
+constexpr wchar_t kDefaultUiName[] = L"defaultUi";
 
 }  // namespace
 
@@ -29,9 +30,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::DefaultUi,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kDefaultUiPropertyData,
+                kDefaultUiAttributeData,
+                kDefaultUiName) {}
 
 CXFA_DefaultUi::~CXFA_DefaultUi() {}
 
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
index 8477fa9..cd377e8 100644
--- a/xfa/fxfa/parser/cxfa_delete.cpp
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDeleteAttributeData[] = {
     {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";
+constexpr wchar_t kDeleteName[] = L"delete";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Delete,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDeleteAttributeData,
+                kDeleteName,
                 pdfium::MakeUnique<CJX_Delete>(this)) {}
 
 CXFA_Delete::~CXFA_Delete() {}
diff --git a/xfa/fxfa/parser/cxfa_delta.cpp b/xfa/fxfa/parser/cxfa_delta.cpp
index 4b5bf77..e50fd7f 100644
--- a/xfa/fxfa/parser/cxfa_delta.cpp
+++ b/xfa/fxfa/parser/cxfa_delta.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"delta";
+constexpr wchar_t kDeltaName[] = L"delta";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_Element::Delta,
                 nullptr,
                 nullptr,
-                kName,
+                kDeltaName,
                 pdfium::MakeUnique<CJX_Delta>(this)) {}
 
 CXFA_Delta::~CXFA_Delta() {}
diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp
index 9cda06d..954da53 100644
--- a/xfa/fxfa/parser/cxfa_desc.cpp
+++ b/xfa/fxfa/parser/cxfa_desc.cpp
@@ -11,20 +11,20 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kDescPropertyData[] = {
     {XFA_Element::Text, 1, 0},     {XFA_Element::Time, 1, 0},
     {XFA_Element::DateTime, 1, 0}, {XFA_Element::Image, 1, 0},
     {XFA_Element::Decimal, 1, 0},  {XFA_Element::Boolean, 1, 0},
     {XFA_Element::Integer, 1, 0},  {XFA_Element::ExData, 1, 0},
     {XFA_Element::Date, 1, 0},     {XFA_Element::Float, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDescAttributeData[] = {
     {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";
+constexpr wchar_t kDescName[] = L"desc";
 
 }  // namespace
 
@@ -34,9 +34,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Desc,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kDescPropertyData,
+                kDescAttributeData,
+                kDescName,
                 pdfium::MakeUnique<CJX_Desc>(this)) {}
 
 CXFA_Desc::~CXFA_Desc() {}
diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp
index 4e5d10b..291ac5e 100644
--- a/xfa/fxfa/parser/cxfa_destination.cpp
+++ b/xfa/fxfa/parser/cxfa_destination.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDestinationAttributeData[] = {
     {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";
+constexpr wchar_t kDestinationName[] = L"destination";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Destination,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDestinationAttributeData,
+                kDestinationName) {}
 
 CXFA_Destination::~CXFA_Destination() {}
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
index e74832e..9c78635 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDigestMethodAttributeData[] = {
     {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";
+constexpr wchar_t kDigestMethodName[] = L"digestMethod";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_ObjectType::NodeC,
                 XFA_Element::DigestMethod,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDigestMethodAttributeData,
+                kDigestMethodName,
                 pdfium::MakeUnique<CJX_DigestMethod>(this)) {}
 
 CXFA_DigestMethod::~CXFA_DigestMethod() {}
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
index 4993fd0..09e296b 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDigestMethodsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"digestMethods";
+constexpr wchar_t kDigestMethodsName[] = L"digestMethods";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::DigestMethods,
                 nullptr,
-                kAttributeData,
-                kName,
+                kDigestMethodsAttributeData,
+                kDigestMethodsName,
                 pdfium::MakeUnique<CJX_DigestMethods>(this)) {}
 
 CXFA_DigestMethods::~CXFA_DigestMethods() {}
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp
index 146071d..f3cbc34 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.cpp
+++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDocumentAssemblyAttributeData[] = {
     {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";
+constexpr wchar_t kDocumentAssemblyName[] = L"documentAssembly";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DocumentAssembly,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDocumentAssemblyAttributeData,
+                kDocumentAssemblyName) {}
 
 CXFA_DocumentAssembly::~CXFA_DocumentAssembly() {}
diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp
index 8d0dd37..9bc0cd8 100644
--- a/xfa/fxfa/parser/cxfa_draw.cpp
+++ b/xfa/fxfa/parser/cxfa_draw.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kDrawPropertyData[] = {
     {XFA_Element::Ui, 1, 0},     {XFA_Element::Margin, 1, 0},
     {XFA_Element::Para, 1, 0},   {XFA_Element::Border, 1, 0},
     {XFA_Element::Assist, 1, 0}, {XFA_Element::Traversal, 1, 0},
@@ -19,7 +19,7 @@
     {XFA_Element::Desc, 1, 0},   {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[] = {
+const CXFA_Node::AttributeData kDrawAttributeData[] = {
     {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"},
@@ -46,7 +46,7 @@
      (void*)XFA_AttributeEnum::TopLeft},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"draw";
+constexpr wchar_t kDrawName[] = L"draw";
 
 }  // namespace
 
@@ -56,9 +56,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::Draw,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kDrawPropertyData,
+                kDrawAttributeData,
+                kDrawName,
                 pdfium::MakeUnique<CJX_Draw>(this)) {}
 
 CXFA_Draw::~CXFA_Draw() {}
diff --git a/xfa/fxfa/parser/cxfa_driver.cpp b/xfa/fxfa/parser/cxfa_driver.cpp
index 883cbf6..3a704f3 100644
--- a/xfa/fxfa/parser/cxfa_driver.cpp
+++ b/xfa/fxfa/parser/cxfa_driver.cpp
@@ -8,16 +8,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::FontInfo, 1, 0},
-                                                 {XFA_Element::Xdc, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kDriverPropertyData[] = {
+    {XFA_Element::FontInfo, 1, 0},
+    {XFA_Element::Xdc, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kDriverAttributeData[] = {
     {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";
+constexpr wchar_t kDriverName[] = L"driver";
 
 }  // namespace
 
@@ -27,8 +28,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Driver,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kDriverPropertyData,
+                kDriverAttributeData,
+                kDriverName) {}
 
 CXFA_Driver::~CXFA_Driver() {}
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp
index 88d3e8e..b9a6ee9 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.cpp
+++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDSigDataAttributeData[] = {
     {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"dSigData";
+constexpr wchar_t kDSigDataName[] = L"dSigData";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::DSigData,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDSigDataAttributeData,
+                kDSigDataName) {}
 
 CXFA_DSigData::~CXFA_DSigData() {}
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp
index f8d4170..baf07b9 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.cpp
+++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDuplexOptionAttributeData[] = {
     {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";
+constexpr wchar_t kDuplexOptionName[] = L"duplexOption";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DuplexOption,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDuplexOptionAttributeData,
+                kDuplexOptionName) {}
 
 CXFA_DuplexOption::~CXFA_DuplexOption() {}
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
index a60e192..7120300 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.cpp
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kDynamicRenderAttributeData[] = {
     {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";
+constexpr wchar_t kDynamicRenderName[] = L"dynamicRender";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DynamicRender,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kDynamicRenderAttributeData,
+                kDynamicRenderName) {}
 
 CXFA_DynamicRender::~CXFA_DynamicRender() {}
diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp
index 65e599c..48f5c8e 100644
--- a/xfa/fxfa/parser/cxfa_edge.cpp
+++ b/xfa/fxfa/parser/cxfa_edge.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kEdgePropertyData[] = {
+    {XFA_Element::Color, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kEdgeAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Cap, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Square},
@@ -27,7 +28,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"edge";
+constexpr wchar_t kEdgeName[] = L"edge";
 
 }  // namespace
 
@@ -37,9 +38,9 @@
                   (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                   XFA_ObjectType::Node,
                   XFA_Element::Edge,
-                  kPropertyData,
-                  kAttributeData,
-                  kName,
+                  kEdgePropertyData,
+                  kEdgeAttributeData,
+                  kEdgeName,
                   pdfium::MakeUnique<CJX_Edge>(this)) {}
 
 CXFA_Edge::~CXFA_Edge() {}
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
index a2c5d0f..485fbdf 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEffectiveInputPolicyAttributeData[] = {
     {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";
+constexpr wchar_t kEffectiveInputPolicyName[] = L"effectiveInputPolicy";
 
 }  // namespace
 
@@ -27,7 +27,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::EffectiveInputPolicy,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEffectiveInputPolicyAttributeData,
+                kEffectiveInputPolicyName) {}
 
 CXFA_EffectiveInputPolicy::~CXFA_EffectiveInputPolicy() {}
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
index e1ab370..5a657e3 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEffectiveOutputPolicyAttributeData[] = {
     {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";
+constexpr wchar_t kEffectiveOutputPolicyName[] = L"effectiveOutputPolicy";
 
 }  // namespace
 
@@ -27,7 +27,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::EffectiveOutputPolicy,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEffectiveOutputPolicyAttributeData,
+                kEffectiveOutputPolicyName) {}
 
 CXFA_EffectiveOutputPolicy::~CXFA_EffectiveOutputPolicy() {}
diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp
index f65fea4..2039dad 100644
--- a/xfa/fxfa/parser/cxfa_embed.cpp
+++ b/xfa/fxfa/parser/cxfa_embed.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEmbedAttributeData[] = {
     {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";
+constexpr wchar_t kEmbedName[] = L"embed";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Embed,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEmbedAttributeData,
+                kEmbedName) {}
 
 CXFA_Embed::~CXFA_Embed() {}
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
index 303221a..90c6a30 100644
--- a/xfa/fxfa/parser/cxfa_encoding.cpp
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncodingAttributeData[] = {
     {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";
+constexpr wchar_t kEncodingName[] = L"encoding";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_ObjectType::NodeC,
                 XFA_Element::Encoding,
                 nullptr,
-                kAttributeData,
-                kName,
+                kEncodingAttributeData,
+                kEncodingName,
                 pdfium::MakeUnique<CJX_Encoding>(this)) {}
 
 CXFA_Encoding::~CXFA_Encoding() {}
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
index c0df2d6..3009574 100644
--- a/xfa/fxfa/parser/cxfa_encodings.cpp
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncodingsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"encodings";
+constexpr wchar_t kEncodingsName[] = L"encodings";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Encodings,
                 nullptr,
-                kAttributeData,
-                kName,
+                kEncodingsAttributeData,
+                kEncodingsName,
                 pdfium::MakeUnique<CJX_Encodings>(this)) {}
 
 CXFA_Encodings::~CXFA_Encodings() {}
diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp
index 6ddf941..3c89341 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.cpp
+++ b/xfa/fxfa/parser/cxfa_encrypt.cpp
@@ -11,10 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kEncryptPropertyData[] = {
     {XFA_Element::Certificate, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncryptAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -22,7 +22,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"encrypt";
+constexpr wchar_t kEncryptName[] = L"encrypt";
 
 }  // namespace
 
@@ -33,9 +33,9 @@
           (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form),
           XFA_ObjectType::ContentNode,
           XFA_Element::Encrypt,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kEncryptPropertyData,
+          kEncryptAttributeData,
+          kEncryptName,
           pdfium::MakeUnique<CJX_Encrypt>(this)) {}
 
 CXFA_Encrypt::~CXFA_Encrypt() {}
diff --git a/xfa/fxfa/parser/cxfa_encryption.cpp b/xfa/fxfa/parser/cxfa_encryption.cpp
index 2a876fe..863f720 100644
--- a/xfa/fxfa/parser/cxfa_encryption.cpp
+++ b/xfa/fxfa/parser/cxfa_encryption.cpp
@@ -8,17 +8,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kEncryptionPropertyData[] = {
     {XFA_Element::EncryptionLevel, 1, 0},
     {XFA_Element::Encrypt, 1, 0},
     {XFA_Element::Permissions, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncryptionAttributeData[] = {
     {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";
+constexpr wchar_t kEncryptionName[] = L"encryption";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Encryption,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kEncryptionPropertyData,
+                kEncryptionAttributeData,
+                kEncryptionName) {}
 
 CXFA_Encryption::~CXFA_Encryption() {}
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
index 099b035..3c03372 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncryptionLevelAttributeData[] = {
     {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";
+constexpr wchar_t kEncryptionLevelName[] = L"encryptionLevel";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::EncryptionLevel,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEncryptionLevelAttributeData,
+                kEncryptionLevelName) {}
 
 CXFA_EncryptionLevel::~CXFA_EncryptionLevel() {}
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
index e3402e2..748f0a3 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
@@ -8,13 +8,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncryptionMethodAttributeData[] = {
     {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";
+constexpr wchar_t kEncryptionMethodName[] = L"encryptionMethod";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::NodeC,
                 XFA_Element::EncryptionMethod,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEncryptionMethodAttributeData,
+                kEncryptionMethodName) {}
 
 CXFA_EncryptionMethod::~CXFA_EncryptionMethod() {}
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
index e412031..ad6beab 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEncryptionMethodsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -16,7 +16,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"encryptionMethods";
+constexpr wchar_t kEncryptionMethodsName[] = L"encryptionMethods";
 
 }  // namespace
 
@@ -28,7 +28,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::EncryptionMethods,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEncryptionMethodsAttributeData,
+                kEncryptionMethodsName) {}
 
 CXFA_EncryptionMethods::~CXFA_EncryptionMethods() {}
diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp
index 59b6426..5d67999 100644
--- a/xfa/fxfa/parser/cxfa_enforce.cpp
+++ b/xfa/fxfa/parser/cxfa_enforce.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEnforceAttributeData[] = {
     {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";
+constexpr wchar_t kEnforceName[] = L"enforce";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Enforce,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEnforceAttributeData,
+                kEnforceName) {}
 
 CXFA_Enforce::~CXFA_Enforce() {}
diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp
index e927fbc..12070f7 100644
--- a/xfa/fxfa/parser/cxfa_equate.cpp
+++ b/xfa/fxfa/parser/cxfa_equate.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEquateAttributeData[] = {
     {XFA_Attribute::To, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Force, XFA_AttributeType::Boolean, nullptr},
     {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
@@ -16,7 +16,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"equate";
+constexpr wchar_t kEquateName[] = L"equate";
 
 }  // namespace
 
@@ -27,7 +27,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Equate,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEquateAttributeData,
+                kEquateName) {}
 
 CXFA_Equate::~CXFA_Equate() {}
diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp
index 6f46a1f..7871ea8 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.cpp
+++ b/xfa/fxfa/parser/cxfa_equaterange.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEquateRangeAttributeData[] = {
     {XFA_Attribute::To, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::UnicodeRange, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
@@ -16,7 +16,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"equateRange";
+constexpr wchar_t kEquateRangeName[] = L"equateRange";
 
 }  // namespace
 
@@ -27,7 +27,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::EquateRange,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kEquateRangeAttributeData,
+                kEquateRangeName) {}
 
 CXFA_EquateRange::~CXFA_EquateRange() {}
diff --git a/xfa/fxfa/parser/cxfa_era.cpp b/xfa/fxfa/parser/cxfa_era.cpp
index 6051676..3fe3aa4 100644
--- a/xfa/fxfa/parser/cxfa_era.cpp
+++ b/xfa/fxfa/parser/cxfa_era.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"era";
+constexpr wchar_t kEraName[] = L"era";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::Era,
                 nullptr,
                 nullptr,
-                kName) {}
+                kEraName) {}
 
 CXFA_Era::~CXFA_Era() {}
diff --git a/xfa/fxfa/parser/cxfa_eranames.cpp b/xfa/fxfa/parser/cxfa_eranames.cpp
index 06bd2ca..75ea37b 100644
--- a/xfa/fxfa/parser/cxfa_eranames.cpp
+++ b/xfa/fxfa/parser/cxfa_eranames.cpp
@@ -8,10 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Era, 2, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::PropertyData kEraNamesPropertyData[] = {
+    {XFA_Element::Era, 2, 0},
+    {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"eraNames";
+constexpr wchar_t kEraNamesName[] = L"eraNames";
 
 }  // namespace
 
@@ -21,8 +22,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::EraNames,
-                kPropertyData,
+                kEraNamesPropertyData,
                 nullptr,
-                kName) {}
+                kEraNamesName) {}
 
 CXFA_EraNames::~CXFA_EraNames() {}
diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp
index d4af2ff..3dfa8b8 100644
--- a/xfa/fxfa/parser/cxfa_event.cpp
+++ b/xfa/fxfa/parser/cxfa_event.cpp
@@ -13,14 +13,14 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kEventPropertyData[] = {
     {XFA_Element::Execute, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Script, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::SignData, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Extras, 1, 0},
     {XFA_Element::Submit, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kEventAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
@@ -32,7 +32,7 @@
      (void*)XFA_AttributeEnum::Click},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"event";
+constexpr wchar_t kEventName[] = L"event";
 
 }  // namespace
 
@@ -42,9 +42,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Event,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kEventPropertyData,
+                kEventAttributeData,
+                kEventName,
                 pdfium::MakeUnique<CJX_Event>(this)) {}
 
 CXFA_Event::~CXFA_Event() {}
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp
index a24dc36..7b59593 100644
--- a/xfa/fxfa/parser/cxfa_exclgroup.cpp
+++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kExclGroupPropertyData[] = {
     {XFA_Element::Margin, 1, 0},    {XFA_Element::Para, 1, 0},
     {XFA_Element::Border, 1, 0},    {XFA_Element::Assist, 1, 0},
     {XFA_Element::Traversal, 1, 0}, {XFA_Element::Validate, 1, 0},
     {XFA_Element::Caption, 1, 0},   {XFA_Element::Bind, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kExclGroupAttributeData[] = {
     {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"},
@@ -48,7 +48,7 @@
     {XFA_Attribute::AccessKey, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"exclGroup";
+constexpr wchar_t kExclGroupName[] = L"exclGroup";
 
 }  // namespace
 
@@ -58,9 +58,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::ExclGroup,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kExclGroupPropertyData,
+                kExclGroupAttributeData,
+                kExclGroupName,
                 pdfium::MakeUnique<CJX_ExclGroup>(this)) {}
 
 CXFA_ExclGroup::~CXFA_ExclGroup() {}
diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp
index e07d92a..23b30b4 100644
--- a/xfa/fxfa/parser/cxfa_exclude.cpp
+++ b/xfa/fxfa/parser/cxfa_exclude.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kExcludeAttributeData[] = {
     {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";
+constexpr wchar_t kExcludeName[] = L"exclude";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Exclude,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kExcludeAttributeData,
+                kExcludeName) {}
 
 CXFA_Exclude::~CXFA_Exclude() {}
diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp
index b149e86..2eacc76 100644
--- a/xfa/fxfa/parser/cxfa_excludens.cpp
+++ b/xfa/fxfa/parser/cxfa_excludens.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kExcludeNSAttributeData[] = {
     {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";
+constexpr wchar_t kExcludeNSName[] = L"excludeNS";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::ExcludeNS,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kExcludeNSAttributeData,
+                kExcludeNSName) {}
 
 CXFA_ExcludeNS::~CXFA_ExcludeNS() {}
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
index cf57796..202b7d2 100644
--- a/xfa/fxfa/parser/cxfa_exdata.cpp
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kExDataAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
@@ -24,7 +24,7 @@
     {XFA_Attribute::Href, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"exData";
+constexpr wchar_t kExDataName[] = L"exData";
 
 }  // namespace
 
@@ -35,8 +35,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ExData,
                 nullptr,
-                kAttributeData,
-                kName,
+                kExDataAttributeData,
+                kExDataName,
                 pdfium::MakeUnique<CJX_ExData>(this)) {}
 
 CXFA_ExData::~CXFA_ExData() {}
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
index 4196e8f..a44c2db 100644
--- a/xfa/fxfa/parser/cxfa_execute.cpp
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kExecuteAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Connection, XFA_AttributeType::CData, nullptr},
@@ -22,7 +22,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"execute";
+constexpr wchar_t kExecuteName[] = L"execute";
 
 }  // namespace
 
@@ -33,8 +33,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Execute,
                 nullptr,
-                kAttributeData,
-                kName,
+                kExecuteAttributeData,
+                kExecuteName,
                 pdfium::MakeUnique<CJX_Execute>(this)) {}
 
 CXFA_Execute::~CXFA_Execute() {}
diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp
index fff1d2e..719399b 100644
--- a/xfa/fxfa/parser/cxfa_exobject.cpp
+++ b/xfa/fxfa/parser/cxfa_exobject.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kExObjectPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kExObjectAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -24,7 +25,7 @@
     {XFA_Attribute::ClassId, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"exObject";
+constexpr wchar_t kExObjectName[] = L"exObject";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::ExObject,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kExObjectPropertyData,
+                kExObjectAttributeData,
+                kExObjectName,
                 pdfium::MakeUnique<CJX_ExObject>(this)) {}
 
 CXFA_ExObject::~CXFA_ExObject() {}
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
index 4609e6f..ff9ac9b 100644
--- a/xfa/fxfa/parser/cxfa_extras.cpp
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kExtrasAttributeData[] = {
     {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";
+constexpr wchar_t kExtrasName[] = L"extras";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Extras,
                 nullptr,
-                kAttributeData,
-                kName,
+                kExtrasAttributeData,
+                kExtrasName,
                 pdfium::MakeUnique<CJX_Extras>(this)) {}
 
 CXFA_Extras::~CXFA_Extras() {}
diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp
index 56b8d59..7b1531d 100644
--- a/xfa/fxfa/parser/cxfa_field.cpp
+++ b/xfa/fxfa/parser/cxfa_field.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kFieldPropertyData[] = {
     {XFA_Element::Ui, 1, 0},        {XFA_Element::Margin, 1, 0},
     {XFA_Element::Para, 1, 0},      {XFA_Element::Format, 1, 0},
     {XFA_Element::Border, 1, 0},    {XFA_Element::Assist, 1, 0},
@@ -21,7 +21,7 @@
     {XFA_Element::Font, 1, 0},      {XFA_Element::Value, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kFieldAttributeData[] = {
     {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"},
@@ -51,7 +51,7 @@
     {XFA_Attribute::AccessKey, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"field";
+constexpr wchar_t kFieldName[] = L"field";
 
 }  // namespace
 
@@ -61,9 +61,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::Field,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kFieldPropertyData,
+                kFieldAttributeData,
+                kFieldName,
                 pdfium::MakeUnique<CJX_Field>(this)) {}
 
 CXFA_Field::~CXFA_Field() {}
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
index 4cbd8f8..019bd1f 100644
--- a/xfa/fxfa/parser/cxfa_fill.cpp
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -17,7 +17,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kFillPropertyData[] = {
     {XFA_Element::Pattern, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Solid, 1,
      XFA_PROPERTYFLAG_OneOf | XFA_PROPERTYFLAG_DefaultOneOf},
@@ -27,7 +27,7 @@
     {XFA_Element::Extras, 1, 0},
     {XFA_Element::Radial, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kFillAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Presence, XFA_AttributeType::Enum,
@@ -35,7 +35,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"fill";
+constexpr wchar_t kFillName[] = L"fill";
 
 }  // namespace
 
@@ -45,9 +45,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Fill,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kFillPropertyData,
+                kFillAttributeData,
+                kFillName,
                 pdfium::MakeUnique<CJX_Fill>(this)) {}
 
 CXFA_Fill::~CXFA_Fill() {}
diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp
index ec6522d..28e9368 100644
--- a/xfa/fxfa/parser/cxfa_filter.cpp
+++ b/xfa/fxfa/parser/cxfa_filter.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kFilterPropertyData[] = {
     {XFA_Element::Mdp, 1, 0},           {XFA_Element::Certificates, 1, 0},
     {XFA_Element::TimeStamp, 1, 0},     {XFA_Element::Handler, 1, 0},
     {XFA_Element::DigestMethods, 1, 0}, {XFA_Element::Encodings, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kFilterAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -26,7 +26,7 @@
     {XFA_Attribute::AddRevocationInfo, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"filter";
+constexpr wchar_t kFilterName[] = L"filter";
 
 }  // namespace
 
@@ -36,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Filter,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kFilterPropertyData,
+                kFilterAttributeData,
+                kFilterName,
                 pdfium::MakeUnique<CJX_Filter>(this)) {}
 
 CXFA_Filter::~CXFA_Filter() {}
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp
index 2227e8b..bc5cb52 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.cpp
+++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kFlipLabelAttributeData[] = {
     {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";
+constexpr wchar_t kFlipLabelName[] = L"flipLabel";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::FlipLabel,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kFlipLabelAttributeData,
+                kFlipLabelName) {}
 
 CXFA_FlipLabel::~CXFA_FlipLabel() {}
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
index 83e5749..fdf0163 100644
--- a/xfa/fxfa/parser/cxfa_float.cpp
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kFloatAttributeData[] = {
     {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";
+constexpr wchar_t kFloatName[] = L"float";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Float,
                 nullptr,
-                kAttributeData,
-                kName,
+                kFloatAttributeData,
+                kFloatName,
                 pdfium::MakeUnique<CJX_Float>(this)) {}
 
 CXFA_Float::~CXFA_Float() {}
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
index 694cb26..653ef06 100644
--- a/xfa/fxfa/parser/cxfa_font.cpp
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -13,10 +13,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Fill, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kFontPropertyData[] = {
+    {XFA_Element::Fill, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kFontAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::LineThrough, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Typeface, XFA_AttributeType::CData, (void*)L"Courier"},
@@ -48,7 +49,7 @@
      (void*)XFA_AttributeEnum::Serif},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"font";
+constexpr wchar_t kFontName[] = L"font";
 
 }  // namespace
 
@@ -59,9 +60,9 @@
           (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form),
           XFA_ObjectType::Node,
           XFA_Element::Font,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kFontPropertyData,
+          kFontAttributeData,
+          kFontName,
           pdfium::MakeUnique<CJX_Font>(this)) {}
 
 CXFA_Font::~CXFA_Font() {}
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.cpp b/xfa/fxfa/parser/cxfa_fontinfo.cpp
index ee1dc6e..c649798 100644
--- a/xfa/fxfa/parser/cxfa_fontinfo.cpp
+++ b/xfa/fxfa/parser/cxfa_fontinfo.cpp
@@ -8,17 +8,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kFontInfoPropertyData[] = {
     {XFA_Element::SubsetBelow, 1, 0},
     {XFA_Element::Map, 1, 0},
     {XFA_Element::Embed, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kFontInfoAttributeData[] = {
     {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";
+constexpr wchar_t kFontInfoName[] = L"fontInfo";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::FontInfo,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kFontInfoPropertyData,
+                kFontInfoAttributeData,
+                kFontInfoName) {}
 
 CXFA_FontInfo::~CXFA_FontInfo() {}
diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp
index 38ce724..7dfdc83 100644
--- a/xfa/fxfa/parser/cxfa_form.cpp
+++ b/xfa/fxfa/parser/cxfa_form.cpp
@@ -11,11 +11,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kFormAttributeData[] = {
     {XFA_Attribute::Checksum, XFA_AttributeType::CData, (void*)nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"form";
+constexpr wchar_t kFormName[] = L"form";
 
 }  // namespace
 
@@ -26,8 +26,8 @@
                 XFA_ObjectType::ModelNode,
                 XFA_Element::Form,
                 nullptr,
-                kAttributeData,
-                kName,
+                kFormAttributeData,
+                kFormName,
                 pdfium::MakeUnique<CJX_Form>(this)) {}
 
 CXFA_Form::~CXFA_Form() {}
diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp
index ebaaeb0..de06f10 100644
--- a/xfa/fxfa/parser/cxfa_format.cpp
+++ b/xfa/fxfa/parser/cxfa_format.cpp
@@ -11,16 +11,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kFormatPropertyData[] = {
+    {XFA_Element::Picture, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kFormatAttributeData[] = {
     {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";
+constexpr wchar_t kFormatName[] = L"format";
 
 }  // namespace
 
@@ -30,9 +31,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Format,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kFormatPropertyData,
+                kFormatAttributeData,
+                kFormatName,
                 pdfium::MakeUnique<CJX_Format>(this)) {}
 
 CXFA_Format::~CXFA_Format() {}
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
index 887e5cc..e1ccd3a 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kFormFieldFillingAttributeData[] = {
     {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";
+constexpr wchar_t kFormFieldFillingName[] = L"formFieldFilling";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::FormFieldFilling,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kFormFieldFillingAttributeData,
+                kFormFieldFillingName) {}
 
 CXFA_FormFieldFilling::~CXFA_FormFieldFilling() {}
diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp
index ca92d3e..108877a 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.cpp
+++ b/xfa/fxfa/parser/cxfa_groupparent.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kGroupParentAttributeData[] = {
     {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";
+constexpr wchar_t kGroupParentName[] = L"groupParent";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::GroupParent,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kGroupParentAttributeData,
+                kGroupParentName) {}
 
 CXFA_GroupParent::~CXFA_GroupParent() {}
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
index 80f0f81..f16717b 100644
--- a/xfa/fxfa/parser/cxfa_handler.cpp
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kHandlerAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"handler";
+constexpr wchar_t kHandlerName[] = L"handler";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Handler,
                 nullptr,
-                kAttributeData,
-                kName,
+                kHandlerAttributeData,
+                kHandlerName,
                 pdfium::MakeUnique<CJX_Handler>(this)) {}
 
 CXFA_Handler::~CXFA_Handler() {}
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp
index 0e835ed..c885ae5 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.cpp
+++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kHyphenationAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::WordCharacterCount, XFA_AttributeType::Integer, (void*)7},
@@ -20,7 +20,7 @@
     {XFA_Attribute::ExcludeAllCaps, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"hyphenation";
+constexpr wchar_t kHyphenationName[] = L"hyphenation";
 
 }  // namespace
 
@@ -31,7 +31,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Hyphenation,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kHyphenationAttributeData,
+                kHyphenationName) {}
 
 CXFA_Hyphenation::~CXFA_Hyphenation() {}
diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp
index ae612ef..bc7d4ba 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.cpp
+++ b/xfa/fxfa/parser/cxfa_ifempty.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kIfEmptyAttributeData[] = {
     {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";
+constexpr wchar_t kIfEmptyName[] = L"ifEmpty";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::IfEmpty,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kIfEmptyAttributeData,
+                kIfEmptyName) {}
 
 CXFA_IfEmpty::~CXFA_IfEmpty() {}
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
index 88ca977..fb67980 100644
--- a/xfa/fxfa/parser/cxfa_image.cpp
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kImageAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -24,7 +24,7 @@
     {XFA_Attribute::Href, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"image";
+constexpr wchar_t kImageName[] = L"image";
 
 }  // namespace
 
@@ -35,8 +35,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Image,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kImageAttributeData,
+                kImageName) {}
 
 CXFA_Image::~CXFA_Image() {}
 
diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp
index f7f89e1..0cc10d0 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.cpp
+++ b/xfa/fxfa/parser/cxfa_imageedit.cpp
@@ -11,11 +11,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kImageEditPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kImageEditAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -23,7 +24,7 @@
      (void*)XFA_AttributeEnum::Link},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"imageEdit";
+constexpr wchar_t kImageEditName[] = L"imageEdit";
 
 }  // namespace
 
@@ -33,9 +34,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::ImageEdit,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kImageEditPropertyData,
+                kImageEditAttributeData,
+                kImageEditName,
                 pdfium::MakeUnique<CJX_ImageEdit>(this)) {}
 
 CXFA_ImageEdit::~CXFA_ImageEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
index dc887d3..b71bb00 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kIncludeXDPContentAttributeData[] = {
     {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";
+constexpr wchar_t kIncludeXDPContentName[] = L"includeXDPContent";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::IncludeXDPContent,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kIncludeXDPContentAttributeData,
+                kIncludeXDPContentName) {}
 
 CXFA_IncludeXDPContent::~CXFA_IncludeXDPContent() {}
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp
index 43ba0cb..5a1f345 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kIncrementalLoadAttributeData[] = {
     {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";
+constexpr wchar_t kIncrementalLoadName[] = L"incrementalLoad";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::IncrementalLoad,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kIncrementalLoadAttributeData,
+                kIncrementalLoadName) {}
 
 CXFA_IncrementalLoad::~CXFA_IncrementalLoad() {}
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
index 659dd21..000d86e 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kIncrementalMergeAttributeData[] = {
     {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";
+constexpr wchar_t kIncrementalMergeName[] = L"incrementalMerge";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::IncrementalMerge,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kIncrementalMergeAttributeData,
+                kIncrementalMergeName) {}
 
 CXFA_IncrementalMerge::~CXFA_IncrementalMerge() {}
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
index 998a7f8..efc80ee 100644
--- a/xfa/fxfa/parser/cxfa_insert.cpp
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kInsertAttributeData[] = {
     {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";
+constexpr wchar_t kInsertName[] = L"insert";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Insert,
                 nullptr,
-                kAttributeData,
-                kName,
+                kInsertAttributeData,
+                kInsertName,
                 pdfium::MakeUnique<CJX_Insert>(this)) {}
 
 CXFA_Insert::~CXFA_Insert() {}
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp
index 1ba5499..ac74a32 100644
--- a/xfa/fxfa/parser/cxfa_instancemanager.cpp
+++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp
@@ -11,13 +11,14 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Occur, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kInstanceManagerPropertyData[] = {
+    {XFA_Element::Occur, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kInstanceManagerAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"instanceManager";
+constexpr wchar_t kInstanceManagerName[] = L"instanceManager";
 
 }  // namespace
 
@@ -28,9 +29,9 @@
                 XFA_XDPPACKET_Form,
                 XFA_ObjectType::Node,
                 XFA_Element::InstanceManager,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kInstanceManagerPropertyData,
+                kInstanceManagerAttributeData,
+                kInstanceManagerName,
                 pdfium::MakeUnique<CJX_InstanceManager>(this)) {}
 
 CXFA_InstanceManager::~CXFA_InstanceManager() {}
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
index bd263ab..0e87fd3 100644
--- a/xfa/fxfa/parser/cxfa_integer.cpp
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kIntegerAttributeData[] = {
     {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";
+constexpr wchar_t kIntegerName[] = L"integer";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Integer,
                 nullptr,
-                kAttributeData,
-                kName,
+                kIntegerAttributeData,
+                kIntegerName,
                 pdfium::MakeUnique<CJX_Integer>(this)) {}
 
 CXFA_Integer::~CXFA_Integer() {}
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
index e68d957..135ca01 100644
--- a/xfa/fxfa/parser/cxfa_interactive.cpp
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kInteractiveAttributeData[] = {
     {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";
+constexpr wchar_t kInteractiveName[] = L"interactive";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Interactive,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kInteractiveAttributeData,
+                kInteractiveName) {}
 
 CXFA_Interactive::~CXFA_Interactive() {}
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
index 44c70bc..8c2cd0b 100644
--- a/xfa/fxfa/parser/cxfa_issuers.cpp
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kIssuersAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"issuers";
+constexpr wchar_t kIssuersName[] = L"issuers";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Issuers,
                 nullptr,
-                kAttributeData,
-                kName,
+                kIssuersAttributeData,
+                kIssuersName,
                 pdfium::MakeUnique<CJX_Issuers>(this)) {}
 
 CXFA_Issuers::~CXFA_Issuers() {}
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
index 06feddb..f72909c 100644
--- a/xfa/fxfa/parser/cxfa_items.cpp
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kItemsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
@@ -22,7 +22,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"items";
+constexpr wchar_t kItemsName[] = L"items";
 
 }  // namespace
 
@@ -33,8 +33,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Items,
                 nullptr,
-                kAttributeData,
-                kName,
+                kItemsAttributeData,
+                kItemsName,
                 pdfium::MakeUnique<CJX_Items>(this)) {}
 
 CXFA_Items::~CXFA_Items() {}
diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp
index 3735e2f..31673ad 100644
--- a/xfa/fxfa/parser/cxfa_jog.cpp
+++ b/xfa/fxfa/parser/cxfa_jog.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kJogAttributeData[] = {
     {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";
+constexpr wchar_t kJogName[] = L"jog";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Jog,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kJogAttributeData,
+                kJogName) {}
 
 CXFA_Jog::~CXFA_Jog() {}
diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp
index beb22fa..4d619da 100644
--- a/xfa/fxfa/parser/cxfa_keep.cpp
+++ b/xfa/fxfa/parser/cxfa_keep.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kKeepPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kKeepAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Next, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::None},
@@ -25,7 +26,7 @@
      (void*)XFA_AttributeEnum::None},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"keep";
+constexpr wchar_t kKeepName[] = L"keep";
 
 }  // namespace
 
@@ -35,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Keep,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kKeepPropertyData,
+                kKeepAttributeData,
+                kKeepName,
                 pdfium::MakeUnique<CJX_Keep>(this)) {}
 
 CXFA_Keep::~CXFA_Keep() {}
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
index 13054be..ba73155 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.cpp
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kKeyUsageAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::NonRepudiation, XFA_AttributeType::CData, nullptr},
@@ -28,7 +28,7 @@
     {XFA_Attribute::DecipherOnly, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"keyUsage";
+constexpr wchar_t kKeyUsageName[] = L"keyUsage";
 
 }  // namespace
 
@@ -39,8 +39,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::KeyUsage,
                 nullptr,
-                kAttributeData,
-                kName,
+                kKeyUsageAttributeData,
+                kKeyUsageName,
                 pdfium::MakeUnique<CJX_KeyUsage>(this)) {}
 
 CXFA_KeyUsage::~CXFA_KeyUsage() {}
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.cpp b/xfa/fxfa/parser/cxfa_labelprinter.cpp
index 55b04da..22f9248 100644
--- a/xfa/fxfa/parser/cxfa_labelprinter.cpp
+++ b/xfa/fxfa/parser/cxfa_labelprinter.cpp
@@ -8,20 +8,20 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kLabelPrinterPropertyData[] = {
     {XFA_Element::FontInfo, 1, 0},
     {XFA_Element::Xdc, 1, 0},
     {XFA_Element::BatchOutput, 1, 0},
     {XFA_Element::FlipLabel, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLabelPrinterAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Zpl},
     {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";
+constexpr wchar_t kLabelPrinterName[] = L"labelPrinter";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::LabelPrinter,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kLabelPrinterPropertyData,
+                kLabelPrinterAttributeData,
+                kLabelPrinterName) {}
 
 CXFA_LabelPrinter::~CXFA_LabelPrinter() {}
diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp
index bc2933f..ef742da 100644
--- a/xfa/fxfa/parser/cxfa_layout.cpp
+++ b/xfa/fxfa/parser/cxfa_layout.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLayoutAttributeData[] = {
     {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";
+constexpr wchar_t kLayoutName[] = L"layout";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Layout,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kLayoutAttributeData,
+                kLayoutName) {}
 
 CXFA_Layout::~CXFA_Layout() {}
diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp
index 7343805..fca705a 100644
--- a/xfa/fxfa/parser/cxfa_level.cpp
+++ b/xfa/fxfa/parser/cxfa_level.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLevelAttributeData[] = {
     {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";
+constexpr wchar_t kLevelName[] = L"level";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Level,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kLevelAttributeData,
+                kLevelName) {}
 
 CXFA_Level::~CXFA_Level() {}
diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp
index 4e656c2..0f54e91 100644
--- a/xfa/fxfa/parser/cxfa_line.cpp
+++ b/xfa/fxfa/parser/cxfa_line.cpp
@@ -13,9 +13,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kLinePropertyData[] = {
+    {XFA_Element::Edge, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kLineAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Slope, XFA_AttributeType::Enum,
@@ -25,7 +26,7 @@
      (void*)XFA_AttributeEnum::Even},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"line";
+constexpr wchar_t kLineName[] = L"line";
 
 }  // namespace
 
@@ -35,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Line,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kLinePropertyData,
+                kLineAttributeData,
+                kLineName,
                 pdfium::MakeUnique<CJX_Line>(this)) {}
 
 CXFA_Line::~CXFA_Line() {}
diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp
index 8506d24..e730c14 100644
--- a/xfa/fxfa/parser/cxfa_linear.cpp
+++ b/xfa/fxfa/parser/cxfa_linear.cpp
@@ -13,10 +13,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kLinearPropertyData[] = {
+    {XFA_Element::Color, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kLinearAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -24,7 +25,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"linear";
+constexpr wchar_t kLinearName[] = L"linear";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Linear,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kLinearPropertyData,
+                kLinearAttributeData,
+                kLinearName,
                 pdfium::MakeUnique<CJX_Linear>(this)) {}
 
 CXFA_Linear::~CXFA_Linear() {}
diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp
index 0ae6b8d..a16d8a3 100644
--- a/xfa/fxfa/parser/cxfa_linearized.cpp
+++ b/xfa/fxfa/parser/cxfa_linearized.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLinearizedAttributeData[] = {
     {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";
+constexpr wchar_t kLinearizedName[] = L"linearized";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Linearized,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kLinearizedAttributeData,
+                kLinearizedName) {}
 
 CXFA_Linearized::~CXFA_Linearized() {}
diff --git a/xfa/fxfa/parser/cxfa_locale.cpp b/xfa/fxfa/parser/cxfa_locale.cpp
index c601139..d4af887 100644
--- a/xfa/fxfa/parser/cxfa_locale.cpp
+++ b/xfa/fxfa/parser/cxfa_locale.cpp
@@ -8,19 +8,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kLocalePropertyData[] = {
     {XFA_Element::DatePatterns, 1, 0},    {XFA_Element::CalendarSymbols, 1, 0},
     {XFA_Element::CurrencySymbols, 1, 0}, {XFA_Element::Typefaces, 1, 0},
     {XFA_Element::DateTimeSymbols, 1, 0}, {XFA_Element::NumberPatterns, 1, 0},
     {XFA_Element::NumberSymbols, 1, 0},   {XFA_Element::TimePatterns, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLocaleAttributeData[] = {
     {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";
+constexpr wchar_t kLocaleName[] = L"locale";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet),
                 XFA_ObjectType::Node,
                 XFA_Element::Locale,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kLocalePropertyData,
+                kLocaleAttributeData,
+                kLocaleName) {}
 
 CXFA_Locale::~CXFA_Locale() {}
diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp
index b669e3b..6829284 100644
--- a/xfa/fxfa/parser/cxfa_localeset.cpp
+++ b/xfa/fxfa/parser/cxfa_localeset.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLocaleSetAttributeData[] = {
     {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";
+constexpr wchar_t kLocaleSetName[] = L"localeSet";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ModelNode,
                 XFA_Element::LocaleSet,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kLocaleSetAttributeData,
+                kLocaleSetName) {}
 
 CXFA_LocaleSet::~CXFA_LocaleSet() {}
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp
index 7e65334..b38234c 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.cpp
+++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kLockDocumentAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -16,7 +16,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"lockDocument";
+constexpr wchar_t kLockDocumentName[] = L"lockDocument";
 
 }  // namespace
 
@@ -27,7 +27,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::LockDocument,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kLockDocumentAttributeData,
+                kLockDocumentName) {}
 
 CXFA_LockDocument::~CXFA_LockDocument() {}
diff --git a/xfa/fxfa/parser/cxfa_log.cpp b/xfa/fxfa/parser/cxfa_log.cpp
index 38651cb..be68d70 100644
--- a/xfa/fxfa/parser/cxfa_log.cpp
+++ b/xfa/fxfa/parser/cxfa_log.cpp
@@ -8,17 +8,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0},
-                                                 {XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Mode, 1, 0},
-                                                 {XFA_Element::Threshold, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kLogPropertyData[] = {
+    {XFA_Element::To, 1, 0},
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Mode, 1, 0},
+    {XFA_Element::Threshold, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kLogAttributeData[] = {
     {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";
+constexpr wchar_t kLogName[] = L"log";
 
 }  // namespace
 
@@ -28,8 +29,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Log,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kLogPropertyData,
+                kLogAttributeData,
+                kLogName) {}
 
 CXFA_Log::~CXFA_Log() {}
diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp
index 32ec795..fd7d96f 100644
--- a/xfa/fxfa/parser/cxfa_manifest.cpp
+++ b/xfa/fxfa/parser/cxfa_manifest.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kManifestPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kManifestAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -22,7 +23,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"manifest";
+constexpr wchar_t kManifestName[] = L"manifest";
 
 }  // namespace
 
@@ -32,9 +33,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Manifest,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kManifestPropertyData,
+                kManifestAttributeData,
+                kManifestName,
                 pdfium::MakeUnique<CJX_Manifest>(this)) {}
 
 CXFA_Manifest::~CXFA_Manifest() {}
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
index 3e0c041..fb264a5 100644
--- a/xfa/fxfa/parser/cxfa_map.cpp
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kMapAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -22,7 +22,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"map";
+constexpr wchar_t kMapName[] = L"map";
 
 }  // namespace
 
@@ -33,8 +33,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Map,
                 nullptr,
-                kAttributeData,
-                kName,
+                kMapAttributeData,
+                kMapName,
                 pdfium::MakeUnique<CJX_Map>(this)) {}
 
 CXFA_Map::~CXFA_Map() {}
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp
index 265d7e9..56bcc13 100644
--- a/xfa/fxfa/parser/cxfa_margin.cpp
+++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kMarginPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kMarginAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::LeftInset, XFA_AttributeType::Measure, (void*)L"0in"},
@@ -23,7 +24,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"margin";
+constexpr wchar_t kMarginName[] = L"margin";
 
 }  // namespace
 
@@ -33,9 +34,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Margin,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kMarginPropertyData,
+                kMarginAttributeData,
+                kMarginName,
                 pdfium::MakeUnique<CJX_Margin>(this)) {}
 
 CXFA_Margin::~CXFA_Margin() {}
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
index b8fa1cd..1d9529a 100644
--- a/xfa/fxfa/parser/cxfa_mdp.cpp
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kMdpAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::SignatureType, XFA_AttributeType::Enum,
@@ -20,7 +20,7 @@
     {XFA_Attribute::Permissions, XFA_AttributeType::Integer, (void*)2},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"mdp";
+constexpr wchar_t kMdpName[] = L"mdp";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Mdp,
                 nullptr,
-                kAttributeData,
-                kName,
+                kMdpAttributeData,
+                kMdpName,
                 pdfium::MakeUnique<CJX_Mdp>(this)) {}
 
 CXFA_Mdp::~CXFA_Mdp() {}
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
index 3fa494a..ec70078 100644
--- a/xfa/fxfa/parser/cxfa_medium.cpp
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kMediumAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::TrayOut, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Auto},
@@ -27,7 +27,7 @@
     {XFA_Attribute::Long, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"medium";
+constexpr wchar_t kMediumName[] = L"medium";
 
 }  // namespace
 
@@ -38,8 +38,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Medium,
                 nullptr,
-                kAttributeData,
-                kName,
+                kMediumAttributeData,
+                kMediumName,
                 pdfium::MakeUnique<CJX_Medium>(this)) {}
 
 CXFA_Medium::~CXFA_Medium() {}
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.cpp b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
index 9a41f1d..b17bd6f 100644
--- a/xfa/fxfa/parser/cxfa_mediuminfo.cpp
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
@@ -8,14 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Map, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kMediumInfoPropertyData[] = {
+    {XFA_Element::Map, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kMediumInfoAttributeData[] = {
     {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";
+constexpr wchar_t kMediumInfoName[] = L"mediumInfo";
 
 }  // namespace
 
@@ -25,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::MediumInfo,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kMediumInfoPropertyData,
+                kMediumInfoAttributeData,
+                kMediumInfoName) {}
 
 CXFA_MediumInfo::~CXFA_MediumInfo() {}
diff --git a/xfa/fxfa/parser/cxfa_meridiem.cpp b/xfa/fxfa/parser/cxfa_meridiem.cpp
index 357ce2c..3e88b03 100644
--- a/xfa/fxfa/parser/cxfa_meridiem.cpp
+++ b/xfa/fxfa/parser/cxfa_meridiem.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"meridiem";
+constexpr wchar_t kMeridiemName[] = L"meridiem";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::Meridiem,
                 nullptr,
                 nullptr,
-                kName) {}
+                kMeridiemName) {}
 
 CXFA_Meridiem::~CXFA_Meridiem() {}
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.cpp b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
index dfb603e..a5f2e4d 100644
--- a/xfa/fxfa/parser/cxfa_meridiemnames.cpp
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
@@ -8,10 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Meridiem, 2, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::PropertyData kMeridiemNamesPropertyData[] = {
+    {XFA_Element::Meridiem, 2, 0},
+    {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"meridiemNames";
+constexpr wchar_t kMeridiemNamesName[] = L"meridiemNames";
 
 }  // namespace
 
@@ -22,8 +23,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::MeridiemNames,
-                kPropertyData,
+                kMeridiemNamesPropertyData,
                 nullptr,
-                kName) {}
+                kMeridiemNamesName) {}
 
 CXFA_MeridiemNames::~CXFA_MeridiemNames() {}
diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp
index fa16efd..aa5a378 100644
--- a/xfa/fxfa/parser/cxfa_message.cpp
+++ b/xfa/fxfa/parser/cxfa_message.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::MsgId, 1, 0},
-                                                 {XFA_Element::Severity, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kMessagePropertyData[] = {
+    {XFA_Element::MsgId, 1, 0},
+    {XFA_Element::Severity, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kMessageAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -22,7 +23,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"message";
+constexpr wchar_t kMessageName[] = L"message";
 
 }  // namespace
 
@@ -33,9 +34,9 @@
           (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
           XFA_ObjectType::Node,
           XFA_Element::Message,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kMessagePropertyData,
+          kMessageAttributeData,
+          kMessageName,
           pdfium::MakeUnique<CJX_Message>(this)) {}
 
 CXFA_Message::~CXFA_Message() {}
diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp
index 8ad77a4..68401b9 100644
--- a/xfa/fxfa/parser/cxfa_messaging.cpp
+++ b/xfa/fxfa/parser/cxfa_messaging.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kMessagingAttributeData[] = {
     {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";
+constexpr wchar_t kMessagingName[] = L"messaging";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Messaging,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kMessagingAttributeData,
+                kMessagingName) {}
 
 CXFA_Messaging::~CXFA_Messaging() {}
diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp
index 6195f08..bdca52e 100644
--- a/xfa/fxfa/parser/cxfa_mode.cpp
+++ b/xfa/fxfa/parser/cxfa_mode.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kModeAttributeData[] = {
     {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";
+constexpr wchar_t kModeName[] = L"mode";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Mode,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kModeAttributeData,
+                kModeName) {}
 
 CXFA_Mode::~CXFA_Mode() {}
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp
index e349dbf..ca2c888 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.cpp
+++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kModifyAnnotsAttributeData[] = {
     {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";
+constexpr wchar_t kModifyAnnotsName[] = L"modifyAnnots";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ModifyAnnots,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kModifyAnnotsAttributeData,
+                kModifyAnnotsName) {}
 
 CXFA_ModifyAnnots::~CXFA_ModifyAnnots() {}
diff --git a/xfa/fxfa/parser/cxfa_month.cpp b/xfa/fxfa/parser/cxfa_month.cpp
index 687ef4a..63be429 100644
--- a/xfa/fxfa/parser/cxfa_month.cpp
+++ b/xfa/fxfa/parser/cxfa_month.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"month";
+constexpr wchar_t kMonthName[] = L"month";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::Month,
                 nullptr,
                 nullptr,
-                kName) {}
+                kMonthName) {}
 
 CXFA_Month::~CXFA_Month() {}
diff --git a/xfa/fxfa/parser/cxfa_monthnames.cpp b/xfa/fxfa/parser/cxfa_monthnames.cpp
index 1b05b0d..04fba6b 100644
--- a/xfa/fxfa/parser/cxfa_monthnames.cpp
+++ b/xfa/fxfa/parser/cxfa_monthnames.cpp
@@ -8,13 +8,14 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Month, 12, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kMonthNamesPropertyData[] = {
+    {XFA_Element::Month, 12, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kMonthNamesAttributeData[] = {
     {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"monthNames";
+constexpr wchar_t kMonthNamesName[] = L"monthNames";
 
 }  // namespace
 
@@ -24,8 +25,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::MonthNames,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kMonthNamesPropertyData,
+                kMonthNamesAttributeData,
+                kMonthNamesName) {}
 
 CXFA_MonthNames::~CXFA_MonthNames() {}
diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp
index 626833b..b9a771e 100644
--- a/xfa/fxfa/parser/cxfa_msgid.cpp
+++ b/xfa/fxfa/parser/cxfa_msgid.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kMsgIdAttributeData[] = {
     {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";
+constexpr wchar_t kMsgIdName[] = L"msgId";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::MsgId,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kMsgIdAttributeData,
+                kMsgIdName) {}
 
 CXFA_MsgId::~CXFA_MsgId() {}
diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp
index dd42694..1bfb2f5 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.cpp
+++ b/xfa/fxfa/parser/cxfa_nameattr.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kNameAttrAttributeData[] = {
     {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";
+constexpr wchar_t kNameAttrName[] = L"nameAttr";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::NameAttr,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kNameAttrAttributeData,
+                kNameAttrName) {}
 
 CXFA_NameAttr::~CXFA_NameAttr() {}
diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp
index 7ba64a7..7cc0526 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.cpp
+++ b/xfa/fxfa/parser/cxfa_neverembed.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kNeverEmbedAttributeData[] = {
     {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";
+constexpr wchar_t kNeverEmbedName[] = L"neverEmbed";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::NeverEmbed,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kNeverEmbedAttributeData,
+                kNeverEmbedName) {}
 
 CXFA_NeverEmbed::~CXFA_NeverEmbed() {}
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
index 0978859..fdf2374 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.cpp
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kNumberOfCopiesAttributeData[] = {
     {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";
+constexpr wchar_t kNumberOfCopiesName[] = L"numberOfCopies";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::NumberOfCopies,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kNumberOfCopiesAttributeData,
+                kNumberOfCopiesName) {}
 
 CXFA_NumberOfCopies::~CXFA_NumberOfCopies() {}
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp
index 6ee2698..545ecfa 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kNumberPatternAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Numeric},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"numberPattern";
+constexpr wchar_t kNumberPatternName[] = L"numberPattern";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::NumberPattern,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kNumberPatternAttributeData,
+                kNumberPatternName) {}
 
 CXFA_NumberPattern::~CXFA_NumberPattern() {}
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.cpp b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
index a2f8373..28dab94 100644
--- a/xfa/fxfa/parser/cxfa_numberpatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kNumberPatternsPropertyData[] = {
     {XFA_Element::NumberPattern, 4, 0},
     {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"numberPatterns";
+constexpr wchar_t kNumberPatternsName[] = L"numberPatterns";
 
 }  // namespace
 
@@ -23,8 +23,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::NumberPatterns,
-                kPropertyData,
+                kNumberPatternsPropertyData,
                 nullptr,
-                kName) {}
+                kNumberPatternsName) {}
 
 CXFA_NumberPatterns::~CXFA_NumberPatterns() {}
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
index 74fdc1b..3342cd2 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kNumberSymbolAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Decimal},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"numberSymbol";
+constexpr wchar_t kNumberSymbolName[] = L"numberSymbol";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::NumberSymbol,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kNumberSymbolAttributeData,
+                kNumberSymbolName) {}
 
 CXFA_NumberSymbol::~CXFA_NumberSymbol() {}
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.cpp b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
index 0d27f69..959877a 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kNumberSymbolsPropertyData[] = {
     {XFA_Element::NumberSymbol, 5, 0},
     {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"numberSymbols";
+constexpr wchar_t kNumberSymbolsName[] = L"numberSymbols";
 
 }  // namespace
 
@@ -23,8 +23,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::NumberSymbols,
-                kPropertyData,
+                kNumberSymbolsPropertyData,
                 nullptr,
-                kName) {}
+                kNumberSymbolsName) {}
 
 CXFA_NumberSymbols::~CXFA_NumberSymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp
index ff26c44..bdc4868 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.cpp
+++ b/xfa/fxfa/parser/cxfa_numericedit.cpp
@@ -11,12 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Comb, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kNumericEditPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Comb, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kNumericEditAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -24,7 +25,7 @@
      (void*)XFA_AttributeEnum::Auto},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"numericEdit";
+constexpr wchar_t kNumericEditName[] = L"numericEdit";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::NumericEdit,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kNumericEditPropertyData,
+                kNumericEditAttributeData,
+                kNumericEditName,
                 pdfium::MakeUnique<CJX_NumericEdit>(this)) {}
 
 CXFA_NumericEdit::~CXFA_NumericEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp
index 7be3f70..0e16ef2 100644
--- a/xfa/fxfa/parser/cxfa_occur.cpp
+++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kOccurPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kOccurAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Max, XFA_AttributeType::Integer, (void*)1},
     {XFA_Attribute::Min, XFA_AttributeType::Integer, (void*)1},
@@ -22,7 +23,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"occur";
+constexpr wchar_t kOccurName[] = L"occur";
 
 }  // namespace
 
@@ -32,9 +33,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Occur,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kOccurPropertyData,
+                kOccurAttributeData,
+                kOccurName,
                 pdfium::MakeUnique<CJX_Occur>(this)) {}
 
 CXFA_Occur::~CXFA_Occur() {}
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
index 7202e40..ca457aa 100644
--- a/xfa/fxfa/parser/cxfa_oid.cpp
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOidAttributeData[] = {
     {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";
+constexpr wchar_t kOidName[] = L"oid";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Oid,
                 nullptr,
-                kAttributeData,
-                kName,
+                kOidAttributeData,
+                kOidName,
                 pdfium::MakeUnique<CJX_Oid>(this)) {}
 
 CXFA_Oid::~CXFA_Oid() {}
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
index 31d2a6d..75ab0b9 100644
--- a/xfa/fxfa/parser/cxfa_oids.cpp
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOidsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"oids";
+constexpr wchar_t kOidsName[] = L"oids";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Oids,
                 nullptr,
-                kAttributeData,
-                kName,
+                kOidsAttributeData,
+                kOidsName,
                 pdfium::MakeUnique<CJX_Oids>(this)) {}
 
 CXFA_Oids::~CXFA_Oids() {}
diff --git a/xfa/fxfa/parser/cxfa_openaction.cpp b/xfa/fxfa/parser/cxfa_openaction.cpp
index c50f433..5a322e7 100644
--- a/xfa/fxfa/parser/cxfa_openaction.cpp
+++ b/xfa/fxfa/parser/cxfa_openaction.cpp
@@ -8,15 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kOpenActionPropertyData[] = {
     {XFA_Element::Destination, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOpenActionAttributeData[] = {
     {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";
+constexpr wchar_t kOpenActionName[] = L"openAction";
 
 }  // namespace
 
@@ -26,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::OpenAction,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kOpenActionPropertyData,
+                kOpenActionAttributeData,
+                kOpenActionName) {}
 
 CXFA_OpenAction::~CXFA_OpenAction() {}
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
index cc92d8c..39bba1a 100644
--- a/xfa/fxfa/parser/cxfa_operation.cpp
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOperationAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -20,7 +20,7 @@
     {XFA_Attribute::Input, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"operation";
+constexpr wchar_t kOperationName[] = L"operation";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Operation,
                 nullptr,
-                kAttributeData,
-                kName,
+                kOperationAttributeData,
+                kOperationName,
                 pdfium::MakeUnique<CJX_Operation>(this)) {}
 
 CXFA_Operation::~CXFA_Operation() {}
diff --git a/xfa/fxfa/parser/cxfa_output.cpp b/xfa/fxfa/parser/cxfa_output.cpp
index 124d7e5..dfd297d 100644
--- a/xfa/fxfa/parser/cxfa_output.cpp
+++ b/xfa/fxfa/parser/cxfa_output.cpp
@@ -8,16 +8,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0},
-                                                 {XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Type, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kOutputPropertyData[] = {
+    {XFA_Element::To, 1, 0},
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Type, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kOutputAttributeData[] = {
     {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";
+constexpr wchar_t kOutputName[] = L"output";
 
 }  // namespace
 
@@ -27,8 +28,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Output,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kOutputPropertyData,
+                kOutputAttributeData,
+                kOutputName) {}
 
 CXFA_Output::~CXFA_Output() {}
diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp
index bb0ef2e..9864a1d 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.cpp
+++ b/xfa/fxfa/parser/cxfa_outputbin.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOutputBinAttributeData[] = {
     {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";
+constexpr wchar_t kOutputBinName[] = L"outputBin";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::OutputBin,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kOutputBinAttributeData,
+                kOutputBinName) {}
 
 CXFA_OutputBin::~CXFA_OutputBin() {}
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.cpp b/xfa/fxfa/parser/cxfa_outputxsl.cpp
index d56cc15..5791907 100644
--- a/xfa/fxfa/parser/cxfa_outputxsl.cpp
+++ b/xfa/fxfa/parser/cxfa_outputxsl.cpp
@@ -8,14 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kOutputXSLPropertyData[] = {
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kOutputXSLAttributeData[] = {
     {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";
+constexpr wchar_t kOutputXSLName[] = L"outputXSL";
 
 }  // namespace
 
@@ -25,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::OutputXSL,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kOutputXSLPropertyData,
+                kOutputXSLAttributeData,
+                kOutputXSLName) {}
 
 CXFA_OutputXSL::~CXFA_OutputXSL() {}
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
index 2589714..bc47698 100644
--- a/xfa/fxfa/parser/cxfa_overflow.cpp
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOverflowAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Trailer, XFA_AttributeType::CData, nullptr},
@@ -20,7 +20,7 @@
     {XFA_Attribute::Leader, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"overflow";
+constexpr wchar_t kOverflowName[] = L"overflow";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Overflow,
                 nullptr,
-                kAttributeData,
-                kName,
+                kOverflowAttributeData,
+                kOverflowName,
                 pdfium::MakeUnique<CJX_Overflow>(this)) {}
 
 CXFA_Overflow::~CXFA_Overflow() {}
diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp
index cf5ee4b..7ade64c 100644
--- a/xfa/fxfa/parser/cxfa_overprint.cpp
+++ b/xfa/fxfa/parser/cxfa_overprint.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kOverprintAttributeData[] = {
     {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";
+constexpr wchar_t kOverprintName[] = L"overprint";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Overprint,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kOverprintAttributeData,
+                kOverprintName) {}
 
 CXFA_Overprint::~CXFA_Overprint() {}
diff --git a/xfa/fxfa/parser/cxfa_packet.cpp b/xfa/fxfa/parser/cxfa_packet.cpp
index 6112271..3280186 100644
--- a/xfa/fxfa/parser/cxfa_packet.cpp
+++ b/xfa/fxfa/parser/cxfa_packet.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"packet";
+constexpr wchar_t kPacketName[] = L"packet";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_Element::Packet,
                 nullptr,
                 nullptr,
-                kName,
+                kPacketName,
                 pdfium::MakeUnique<CJX_Packet>(this)) {}
 
 CXFA_Packet::~CXFA_Packet() {}
diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp
index 21b8b19..b641f2e 100644
--- a/xfa/fxfa/parser/cxfa_packets.cpp
+++ b/xfa/fxfa/parser/cxfa_packets.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPacketsAttributeData[] = {
     {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";
+constexpr wchar_t kPacketsName[] = L"packets";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Packets,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPacketsAttributeData,
+                kPacketsName) {}
 
 CXFA_Packets::~CXFA_Packets() {}
diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp
index f82b344..b67efbc 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.cpp
+++ b/xfa/fxfa/parser/cxfa_pagearea.cpp
@@ -11,12 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Medium, 1, 0},
-                                                 {XFA_Element::Desc, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Occur, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kPageAreaPropertyData[] = {
+    {XFA_Element::Medium, 1, 0},
+    {XFA_Element::Desc, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Occur, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kPageAreaAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -32,7 +33,7 @@
      (void*)XFA_AttributeEnum::Any},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"pageArea";
+constexpr wchar_t kPageAreaName[] = L"pageArea";
 
 }  // namespace
 
@@ -42,9 +43,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::PageArea,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kPageAreaPropertyData,
+                kPageAreaAttributeData,
+                kPageAreaName,
                 pdfium::MakeUnique<CJX_PageArea>(this)) {}
 
 CXFA_PageArea::~CXFA_PageArea() {}
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp
index 4671019..864b89d 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPageOffsetAttributeData[] = {
     {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";
+constexpr wchar_t kPageOffsetName[] = L"pageOffset";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::PageOffset,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPageOffsetAttributeData,
+                kPageOffsetName) {}
 
 CXFA_PageOffset::~CXFA_PageOffset() {}
diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp
index 5de7f5f..6136d8c 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.cpp
+++ b/xfa/fxfa/parser/cxfa_pagerange.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPageRangeAttributeData[] = {
     {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";
+constexpr wchar_t kPageRangeName[] = L"pageRange";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PageRange,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPageRangeAttributeData,
+                kPageRangeName) {}
 
 CXFA_PageRange::~CXFA_PageRange() {}
diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp
index 2fea618..74f13b9 100644
--- a/xfa/fxfa/parser/cxfa_pageset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageset.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Occur, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kPageSetPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Occur, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kPageSetAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -26,7 +27,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"pageSet";
+constexpr wchar_t kPageSetName[] = L"pageSet";
 
 }  // namespace
 
@@ -36,9 +37,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::PageSet,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kPageSetPropertyData,
+                kPageSetAttributeData,
+                kPageSetName,
                 pdfium::MakeUnique<CJX_PageSet>(this)) {}
 
 CXFA_PageSet::~CXFA_PageSet() {}
diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp
index 99600ea..d6870fd 100644
--- a/xfa/fxfa/parser/cxfa_pagination.cpp
+++ b/xfa/fxfa/parser/cxfa_pagination.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPaginationAttributeData[] = {
     {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";
+constexpr wchar_t kPaginationName[] = L"pagination";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Pagination,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPaginationAttributeData,
+                kPaginationName) {}
 
 CXFA_Pagination::~CXFA_Pagination() {}
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
index 8e8b6c6..05158dd 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.cpp
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPaginationOverrideAttributeData[] = {
     {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";
+constexpr wchar_t kPaginationOverrideName[] = L"paginationOverride";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PaginationOverride,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPaginationOverrideAttributeData,
+                kPaginationOverrideName) {}
 
 CXFA_PaginationOverride::~CXFA_PaginationOverride() {}
diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp
index ad7190d..cb1312d 100644
--- a/xfa/fxfa/parser/cxfa_para.cpp
+++ b/xfa/fxfa/parser/cxfa_para.cpp
@@ -12,10 +12,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kParaPropertyData[] = {
     {XFA_Element::Hyphenation, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kParaAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Left},
@@ -37,7 +37,7 @@
     {XFA_Attribute::SpaceAbove, XFA_AttributeType::Measure, (void*)L"0in"},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"para";
+constexpr wchar_t kParaName[] = L"para";
 
 }  // namespace
 
@@ -47,9 +47,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Para,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kParaPropertyData,
+                kParaAttributeData,
+                kParaName,
                 pdfium::MakeUnique<CJX_Para>(this)) {}
 
 CXFA_Para::~CXFA_Para() {}
diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp
index d645571..e725845 100644
--- a/xfa/fxfa/parser/cxfa_part.cpp
+++ b/xfa/fxfa/parser/cxfa_part.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPartAttributeData[] = {
     {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";
+constexpr wchar_t kPartName[] = L"part";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Part,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPartAttributeData,
+                kPartName) {}
 
 CXFA_Part::~CXFA_Part() {}
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
index 3b3f719..d1145e4 100644
--- a/xfa/fxfa/parser/cxfa_password.cpp
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPasswordAttributeData[] = {
     {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";
+constexpr wchar_t kPasswordName[] = L"password";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Password,
                 nullptr,
-                kAttributeData,
-                kName,
+                kPasswordAttributeData,
+                kPasswordName,
                 pdfium::MakeUnique<CJX_Password>(this)) {}
 
 CXFA_Password::~CXFA_Password() {}
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp
index 6d38c34..ceea47b 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.cpp
+++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp
@@ -11,11 +11,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kPasswordEditPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kPasswordEditAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::PasswordChar, XFA_AttributeType::CData, (void*)L"*"},
@@ -24,7 +25,7 @@
      (void*)XFA_AttributeEnum::Auto},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"passwordEdit";
+constexpr wchar_t kPasswordEditName[] = L"passwordEdit";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::PasswordEdit,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPasswordEditPropertyData,
+                kPasswordEditAttributeData,
+                kPasswordEditName) {}
 
 CXFA_PasswordEdit::~CXFA_PasswordEdit() {}
 
diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp
index 4cd32cc..f580925 100644
--- a/xfa/fxfa/parser/cxfa_pattern.cpp
+++ b/xfa/fxfa/parser/cxfa_pattern.cpp
@@ -13,10 +13,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kPatternPropertyData[] = {
+    {XFA_Element::Color, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kPatternAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -24,7 +25,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"pattern";
+constexpr wchar_t kPatternName[] = L"pattern";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Pattern,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kPatternPropertyData,
+                kPatternAttributeData,
+                kPatternName,
                 pdfium::MakeUnique<CJX_Pattern>(this)) {}
 
 CXFA_Pattern::~CXFA_Pattern() {}
diff --git a/xfa/fxfa/parser/cxfa_pcl.cpp b/xfa/fxfa/parser/cxfa_pcl.cpp
index 1f5e348..00b68e8 100644
--- a/xfa/fxfa/parser/cxfa_pcl.cpp
+++ b/xfa/fxfa/parser/cxfa_pcl.cpp
@@ -8,19 +8,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kPclPropertyData[] = {
     {XFA_Element::FontInfo, 1, 0},   {XFA_Element::Jog, 1, 0},
     {XFA_Element::Xdc, 1, 0},        {XFA_Element::BatchOutput, 1, 0},
     {XFA_Element::PageOffset, 1, 0}, {XFA_Element::OutputBin, 1, 0},
     {XFA_Element::Staple, 1, 0},     {XFA_Element::MediumInfo, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPclAttributeData[] = {
     {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";
+constexpr wchar_t kPclName[] = L"pcl";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Pcl,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPclPropertyData,
+                kPclAttributeData,
+                kPclName) {}
 
 CXFA_Pcl::~CXFA_Pcl() {}
diff --git a/xfa/fxfa/parser/cxfa_pdf.cpp b/xfa/fxfa/parser/cxfa_pdf.cpp
index 800d393..5a257bd 100644
--- a/xfa/fxfa/parser/cxfa_pdf.cpp
+++ b/xfa/fxfa/parser/cxfa_pdf.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kPdfPropertyData[] = {
     {XFA_Element::AdobeExtensionLevel, 1, 0},
     {XFA_Element::FontInfo, 1, 0},
     {XFA_Element::Xdc, 1, 0},
@@ -29,13 +29,13 @@
     {XFA_Element::Linearized, 1, 0},
     {XFA_Element::Tagged, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPdfAttributeData[] = {
     {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";
+constexpr wchar_t kPdfName[] = L"pdf";
 
 }  // namespace
 
@@ -45,8 +45,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Pdf,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPdfPropertyData,
+                kPdfAttributeData,
+                kPdfName) {}
 
 CXFA_Pdf::~CXFA_Pdf() {}
diff --git a/xfa/fxfa/parser/cxfa_pdfa.cpp b/xfa/fxfa/parser/cxfa_pdfa.cpp
index f41eb93..b954488 100644
--- a/xfa/fxfa/parser/cxfa_pdfa.cpp
+++ b/xfa/fxfa/parser/cxfa_pdfa.cpp
@@ -8,18 +8,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kPdfaPropertyData[] = {
     {XFA_Element::Amd, 1, 0},
     {XFA_Element::Part, 1, 0},
     {XFA_Element::IncludeXDPContent, 1, 0},
     {XFA_Element::Conformance, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPdfaAttributeData[] = {
     {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";
+constexpr wchar_t kPdfaName[] = L"pdfa";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Pdfa,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPdfaPropertyData,
+                kPdfaAttributeData,
+                kPdfaName) {}
 
 CXFA_Pdfa::~CXFA_Pdfa() {}
diff --git a/xfa/fxfa/parser/cxfa_permissions.cpp b/xfa/fxfa/parser/cxfa_permissions.cpp
index a56ac32..3ae215c 100644
--- a/xfa/fxfa/parser/cxfa_permissions.cpp
+++ b/xfa/fxfa/parser/cxfa_permissions.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kPermissionsPropertyData[] = {
     {XFA_Element::ModifyAnnots, 1, 0},
     {XFA_Element::ContentCopy, 1, 0},
     {XFA_Element::FormFieldFilling, 1, 0},
@@ -19,12 +19,12 @@
     {XFA_Element::PrintHighQuality, 1, 0},
     {XFA_Element::DocumentAssembly, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPermissionsAttributeData[] = {
     {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";
+constexpr wchar_t kPermissionsName[] = L"permissions";
 
 }  // namespace
 
@@ -34,8 +34,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Permissions,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPermissionsPropertyData,
+                kPermissionsAttributeData,
+                kPermissionsName) {}
 
 CXFA_Permissions::~CXFA_Permissions() {}
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
index b4e5ec2..a2e58c2 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPickTrayByPDFSizeAttributeData[] = {
     {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";
+constexpr wchar_t kPickTrayByPDFSizeName[] = L"pickTrayByPDFSize";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PickTrayByPDFSize,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPickTrayByPDFSizeAttributeData,
+                kPickTrayByPDFSizeName) {}
 
 CXFA_PickTrayByPDFSize::~CXFA_PickTrayByPDFSize() {}
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
index 4863a77..8b366d9 100644
--- a/xfa/fxfa/parser/cxfa_picture.cpp
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPictureAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -19,7 +19,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"picture";
+constexpr wchar_t kPictureName[] = L"picture";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
           XFA_ObjectType::ContentNode,
           XFA_Element::Picture,
           nullptr,
-          kAttributeData,
-          kName,
+          kPictureAttributeData,
+          kPictureName,
           pdfium::MakeUnique<CJX_Picture>(this)) {}
 
 CXFA_Picture::~CXFA_Picture() {}
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
index a5c51dd..723499c 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPlaintextMetadataAttributeData[] = {
     {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";
+constexpr wchar_t kPlaintextMetadataName[] = L"plaintextMetadata";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PlaintextMetadata,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPlaintextMetadataAttributeData,
+                kPlaintextMetadataName) {}
 
 CXFA_PlaintextMetadata::~CXFA_PlaintextMetadata() {}
diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp
index f2389d9..e37a7aa 100644
--- a/xfa/fxfa/parser/cxfa_presence.cpp
+++ b/xfa/fxfa/parser/cxfa_presence.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPresenceAttributeData[] = {
     {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";
+constexpr wchar_t kPresenceName[] = L"presence";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Presence,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPresenceAttributeData,
+                kPresenceName) {}
 
 CXFA_Presence::~CXFA_Presence() {}
diff --git a/xfa/fxfa/parser/cxfa_present.cpp b/xfa/fxfa/parser/cxfa_present.cpp
index 7552a79..9eebbbf 100644
--- a/xfa/fxfa/parser/cxfa_present.cpp
+++ b/xfa/fxfa/parser/cxfa_present.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kPresentPropertyData[] = {
     {XFA_Element::Xdp, 1, 0},
     {XFA_Element::Cache, 1, 0},
     {XFA_Element::Pagination, 1, 0},
@@ -24,12 +24,12 @@
     {XFA_Element::Destination, 1, 0},
     {XFA_Element::IncrementalMerge, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPresentAttributeData[] = {
     {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";
+constexpr wchar_t kPresentName[] = L"present";
 
 }  // namespace
 
@@ -39,8 +39,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Present,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPresentPropertyData,
+                kPresentAttributeData,
+                kPresentName) {}
 
 CXFA_Present::~CXFA_Present() {}
diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp
index f90186d..cf09ccd 100644
--- a/xfa/fxfa/parser/cxfa_print.cpp
+++ b/xfa/fxfa/parser/cxfa_print.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPrintAttributeData[] = {
     {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";
+constexpr wchar_t kPrintName[] = L"print";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Print,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPrintAttributeData,
+                kPrintName) {}
 
 CXFA_Print::~CXFA_Print() {}
diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp
index a5e6197..6acda51 100644
--- a/xfa/fxfa/parser/cxfa_printername.cpp
+++ b/xfa/fxfa/parser/cxfa_printername.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPrinterNameAttributeData[] = {
     {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";
+constexpr wchar_t kPrinterNameName[] = L"printerName";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PrinterName,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPrinterNameAttributeData,
+                kPrinterNameName) {}
 
 CXFA_PrinterName::~CXFA_PrinterName() {}
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp
index 8b1184f..c88767d 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.cpp
+++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPrintHighQualityAttributeData[] = {
     {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";
+constexpr wchar_t kPrintHighQualityName[] = L"printHighQuality";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PrintHighQuality,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPrintHighQualityAttributeData,
+                kPrintHighQualityName) {}
 
 CXFA_PrintHighQuality::~CXFA_PrintHighQuality() {}
diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp
index 8d68f68..a995eda 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.cpp
+++ b/xfa/fxfa/parser/cxfa_printscaling.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPrintScalingAttributeData[] = {
     {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";
+constexpr wchar_t kPrintScalingName[] = L"printScaling";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PrintScaling,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kPrintScalingAttributeData,
+                kPrintScalingName) {}
 
 CXFA_PrintScaling::~CXFA_PrintScaling() {}
diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp
index 45253c7..0bdbbcf 100644
--- a/xfa/fxfa/parser/cxfa_producer.cpp
+++ b/xfa/fxfa/parser/cxfa_producer.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kProducerAttributeData[] = {
     {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";
+constexpr wchar_t kProducerName[] = L"producer";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Producer,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kProducerAttributeData,
+                kProducerName) {}
 
 CXFA_Producer::~CXFA_Producer() {}
diff --git a/xfa/fxfa/parser/cxfa_proto.cpp b/xfa/fxfa/parser/cxfa_proto.cpp
index 6d103e7..eb98047 100644
--- a/xfa/fxfa/parser/cxfa_proto.cpp
+++ b/xfa/fxfa/parser/cxfa_proto.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"proto";
+constexpr wchar_t kProtoName[] = L"proto";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::Proto,
                 nullptr,
                 nullptr,
-                kName) {}
+                kProtoName) {}
 
 CXFA_Proto::~CXFA_Proto() {}
diff --git a/xfa/fxfa/parser/cxfa_ps.cpp b/xfa/fxfa/parser/cxfa_ps.cpp
index 1b2f532..e4408a1 100644
--- a/xfa/fxfa/parser/cxfa_ps.cpp
+++ b/xfa/fxfa/parser/cxfa_ps.cpp
@@ -8,19 +8,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kPsPropertyData[] = {
     {XFA_Element::FontInfo, 1, 0},  {XFA_Element::Jog, 1, 0},
     {XFA_Element::Xdc, 1, 0},       {XFA_Element::BatchOutput, 1, 0},
     {XFA_Element::OutputBin, 1, 0}, {XFA_Element::Compress, 1, 0},
     {XFA_Element::Staple, 1, 0},    {XFA_Element::MediumInfo, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kPsAttributeData[] = {
     {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";
+constexpr wchar_t kPsName[] = L"ps";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Ps,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kPsPropertyData,
+                kPsAttributeData,
+                kPsName) {}
 
 CXFA_Ps::~CXFA_Ps() {}
diff --git a/xfa/fxfa/parser/cxfa_psmap.cpp b/xfa/fxfa/parser/cxfa_psmap.cpp
index 0c0b122..9421432 100644
--- a/xfa/fxfa/parser/cxfa_psmap.cpp
+++ b/xfa/fxfa/parser/cxfa_psmap.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"psMap";
+constexpr wchar_t kPsMapName[] = L"psMap";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::PsMap,
                 nullptr,
                 nullptr,
-                kName) {}
+                kPsMapName) {}
 
 CXFA_PsMap::~CXFA_PsMap() {}
diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp
index 5e18565..b38f238 100644
--- a/xfa/fxfa/parser/cxfa_query.cpp
+++ b/xfa/fxfa/parser/cxfa_query.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::RecordSet, 1, 0},
-                                                 {XFA_Element::Select, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kQueryPropertyData[] = {
+    {XFA_Element::RecordSet, 1, 0},
+    {XFA_Element::Select, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kQueryAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -23,7 +24,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"query";
+constexpr wchar_t kQueryName[] = L"query";
 
 }  // namespace
 
@@ -33,9 +34,9 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::Node,
                 XFA_Element::Query,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kQueryPropertyData,
+                kQueryAttributeData,
+                kQueryName,
                 pdfium::MakeUnique<CJX_Query>(this)) {}
 
 CXFA_Query::~CXFA_Query() {}
diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp
index 3d024e7..aaf028d 100644
--- a/xfa/fxfa/parser/cxfa_radial.cpp
+++ b/xfa/fxfa/parser/cxfa_radial.cpp
@@ -15,10 +15,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kRadialPropertyData[] = {
+    {XFA_Element::Color, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kRadialAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -26,7 +27,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"radial";
+constexpr wchar_t kRadialName[] = L"radial";
 
 }  // namespace
 
@@ -36,9 +37,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Radial,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kRadialPropertyData,
+                kRadialAttributeData,
+                kRadialName,
                 pdfium::MakeUnique<CJX_Radial>(this)) {}
 
 CXFA_Radial::~CXFA_Radial() {}
diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp
index bd5f870..9dec94e 100644
--- a/xfa/fxfa/parser/cxfa_range.cpp
+++ b/xfa/fxfa/parser/cxfa_range.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRangeAttributeData[] = {
     {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";
+constexpr wchar_t kRangeName[] = L"range";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Range,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kRangeAttributeData,
+                kRangeName) {}
 
 CXFA_Range::~CXFA_Range() {}
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
index 625ede9..6578f7d 100644
--- a/xfa/fxfa/parser/cxfa_reason.cpp
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kReasonAttributeData[] = {
     {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";
+constexpr wchar_t kReasonName[] = L"reason";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Reason,
                 nullptr,
-                kAttributeData,
-                kName,
+                kReasonAttributeData,
+                kReasonName,
                 pdfium::MakeUnique<CJX_Reason>(this)) {}
 
 CXFA_Reason::~CXFA_Reason() {}
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
index bd3d761..d82700e 100644
--- a/xfa/fxfa/parser/cxfa_reasons.cpp
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kReasonsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"reasons";
+constexpr wchar_t kReasonsName[] = L"reasons";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Reasons,
                 nullptr,
-                kAttributeData,
-                kName,
+                kReasonsAttributeData,
+                kReasonsName,
                 pdfium::MakeUnique<CJX_Reasons>(this)) {}
 
 CXFA_Reasons::~CXFA_Reasons() {}
diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp
index 5c5ded1..af09f8a 100644
--- a/xfa/fxfa/parser/cxfa_record.cpp
+++ b/xfa/fxfa/parser/cxfa_record.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRecordAttributeData[] = {
     {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";
+constexpr wchar_t kRecordName[] = L"record";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Record,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kRecordAttributeData,
+                kRecordName) {}
 
 CXFA_Record::~CXFA_Record() {}
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
index a90c589..33d929c 100644
--- a/xfa/fxfa/parser/cxfa_recordset.cpp
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRecordSetAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Max, XFA_AttributeType::Integer, (void*)0},
@@ -29,7 +29,7 @@
      (void*)XFA_AttributeEnum::Client},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"recordSet";
+constexpr wchar_t kRecordSetName[] = L"recordSet";
 
 }  // namespace
 
@@ -40,8 +40,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::RecordSet,
                 nullptr,
-                kAttributeData,
-                kName,
+                kRecordSetAttributeData,
+                kRecordSetName,
                 pdfium::MakeUnique<CJX_RecordSet>(this)) {}
 
 CXFA_RecordSet::~CXFA_RecordSet() {}
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index ac98df0..632c782 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -15,11 +15,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 4, 0},
-                                                 {XFA_Element::Corner, 4, 0},
-                                                 {XFA_Element::Fill, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kRectanglePropertyData[] = {
+    {XFA_Element::Edge, 4, 0},
+    {XFA_Element::Corner, 4, 0},
+    {XFA_Element::Fill, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kRectangleAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
@@ -27,7 +28,7 @@
      (void*)XFA_AttributeEnum::Even},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"rectangle";
+constexpr wchar_t kRectangleName[] = L"rectangle";
 
 }  // namespace
 
@@ -37,9 +38,9 @@
                (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                XFA_ObjectType::Node,
                XFA_Element::Rectangle,
-               kPropertyData,
-               kAttributeData,
-               kName,
+               kRectanglePropertyData,
+               kRectangleAttributeData,
+               kRectangleName,
                pdfium::MakeUnique<CJX_Rectangle>(this)) {}
 
 CXFA_Rectangle::CXFA_Rectangle(CXFA_Document* pDoc,
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
index 0d7df44..951c830 100644
--- a/xfa/fxfa/parser/cxfa_ref.cpp
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRefAttributeData[] = {
     {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";
+constexpr wchar_t kRefName[] = L"ref";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Ref,
                 nullptr,
-                kAttributeData,
-                kName,
+                kRefAttributeData,
+                kRefName,
                 pdfium::MakeUnique<CJX_Ref>(this)) {}
 
 CXFA_Ref::~CXFA_Ref() {}
diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp
index c67ff1e..95f907a 100644
--- a/xfa/fxfa/parser/cxfa_relevant.cpp
+++ b/xfa/fxfa/parser/cxfa_relevant.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRelevantAttributeData[] = {
     {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";
+constexpr wchar_t kRelevantName[] = L"relevant";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Relevant,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kRelevantAttributeData,
+                kRelevantName) {}
 
 CXFA_Relevant::~CXFA_Relevant() {}
diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp
index b0adbd7..32a6e0d 100644
--- a/xfa/fxfa/parser/cxfa_rename.cpp
+++ b/xfa/fxfa/parser/cxfa_rename.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRenameAttributeData[] = {
     {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";
+constexpr wchar_t kRenameName[] = L"rename";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Rename,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kRenameAttributeData,
+                kRenameName) {}
 
 CXFA_Rename::~CXFA_Rename() {}
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
index a8abdb3..19c1302 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRenderPolicyAttributeData[] = {
     {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";
+constexpr wchar_t kRenderPolicyName[] = L"renderPolicy";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::RenderPolicy,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kRenderPolicyAttributeData,
+                kRenderPolicyName) {}
 
 CXFA_RenderPolicy::~CXFA_RenderPolicy() {}
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
index a9b8631..031f8b0 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.cpp
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRootElementAttributeData[] = {
     {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";
+constexpr wchar_t kRootElementName[] = L"rootElement";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::RootElement,
                 nullptr,
-                kAttributeData,
-                kName,
+                kRootElementAttributeData,
+                kRootElementName,
                 pdfium::MakeUnique<CJX_RootElement>(this)) {}
 
 CXFA_RootElement::~CXFA_RootElement() {}
diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp
index 06c0d52..204bdeb 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.cpp
+++ b/xfa/fxfa/parser/cxfa_runscripts.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kRunScriptsAttributeData[] = {
     {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";
+constexpr wchar_t kRunScriptsName[] = L"runScripts";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::RunScripts,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kRunScriptsAttributeData,
+                kRunScriptsName) {}
 
 CXFA_RunScripts::~CXFA_RunScripts() {}
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp
index 1e4eb7e..61970bf 100644
--- a/xfa/fxfa/parser/cxfa_script.cpp
+++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -11,12 +11,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kScriptPropertyData[] = {
     {XFA_Element::Exclude, 1, 0},
     {XFA_Element::CurrentPage, 1, 0},
     {XFA_Element::RunScripts, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kScriptAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -29,7 +29,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"script";
+constexpr wchar_t kScriptName[] = L"script";
 
 }  // namespace
 
@@ -40,9 +40,9 @@
           (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
           XFA_ObjectType::ContentNode,
           XFA_Element::Script,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kScriptPropertyData,
+          kScriptAttributeData,
+          kScriptName,
           pdfium::MakeUnique<CJX_Script>(this)) {}
 
 CXFA_Script::~CXFA_Script() {}
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
index 868dac5..e52db25 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.cpp
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kScriptModelAttributeData[] = {
     {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";
+constexpr wchar_t kScriptModelName[] = L"scriptModel";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ScriptModel,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kScriptModelAttributeData,
+                kScriptModelName) {}
 
 CXFA_ScriptModel::~CXFA_ScriptModel() {}
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
index 92eca07..8b8feb8 100644
--- a/xfa/fxfa/parser/cxfa_select.cpp
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSelectAttributeData[] = {
     {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";
+constexpr wchar_t kSelectName[] = L"select";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Select,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSelectAttributeData,
+                kSelectName,
                 pdfium::MakeUnique<CJX_Select>(this)) {}
 
 CXFA_Select::~CXFA_Select() {}
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
index 85d631b..c583869 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.cpp
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSetPropertyAttributeData[] = {
     {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";
+constexpr wchar_t kSetPropertyName[] = L"setProperty";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::SetProperty,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSetPropertyAttributeData,
+                kSetPropertyName,
                 pdfium::MakeUnique<CJX_SetProperty>(this)) {}
 
 CXFA_SetProperty::~CXFA_SetProperty() {}
diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp
index 53a91e8..d8b85de 100644
--- a/xfa/fxfa/parser/cxfa_severity.cpp
+++ b/xfa/fxfa/parser/cxfa_severity.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSeverityAttributeData[] = {
     {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";
+constexpr wchar_t kSeverityName[] = L"severity";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Severity,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSeverityAttributeData,
+                kSeverityName) {}
 
 CXFA_Severity::~CXFA_Severity() {}
diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp
index 5300dfc..077c7ce 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.cpp
+++ b/xfa/fxfa/parser/cxfa_sharptext.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSharptextAttributeData[] = {
     {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"#text";
+constexpr wchar_t kSharptextName[] = L"#text";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Sharptext,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSharptextAttributeData,
+                kSharptextName) {}
 
 CXFA_Sharptext::~CXFA_Sharptext() {}
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
index 51829b7..eb2d83d 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSharpxHTMLAttributeData[] = {
     {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"#xHTML";
+constexpr wchar_t kSharpxHTMLName[] = L"#xHTML";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::SharpxHTML,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSharpxHTMLAttributeData,
+                kSharpxHTMLName) {}
 
 CXFA_SharpxHTML::~CXFA_SharpxHTML() {}
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp
index 6ce220e..2485795 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSharpxmlAttributeData[] = {
     {XFA_Attribute::Value, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"#xml";
+constexpr wchar_t kSharpxmlName[] = L"#xml";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Sharpxml,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSharpxmlAttributeData,
+                kSharpxmlName) {}
 
 CXFA_Sharpxml::~CXFA_Sharpxml() {}
diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp
index ebb8f28..27a1c87 100644
--- a/xfa/fxfa/parser/cxfa_signature.cpp
+++ b/xfa/fxfa/parser/cxfa_signature.cpp
@@ -11,11 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kSignaturePropertyData[] = {
     {XFA_Element::Margin, 1, 0}, {XFA_Element::Filter, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kSignatureAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -23,7 +23,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"signature";
+constexpr wchar_t kSignatureName[] = L"signature";
 
 }  // namespace
 
@@ -33,9 +33,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Signature,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSignaturePropertyData,
+                kSignatureAttributeData,
+                kSignatureName,
                 pdfium::MakeUnique<CJX_Signature>(this)) {}
 
 CXFA_Signature::~CXFA_Signature() {}
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
index c710cb4..0f2ca87 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -11,12 +11,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSignaturePropertiesAttributeData[] = {
     {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";
+constexpr wchar_t kSignaturePropertiesName[] = L"signatureProperties";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::SignatureProperties,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSignaturePropertiesAttributeData,
+                kSignaturePropertiesName,
                 pdfium::MakeUnique<CJX_SignatureProperties>(this)) {}
 
 CXFA_SignatureProperties::~CXFA_SignatureProperties() {}
diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp
index 796ae5c..183d62d 100644
--- a/xfa/fxfa/parser/cxfa_signdata.cpp
+++ b/xfa/fxfa/parser/cxfa_signdata.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Filter, 1, 0},
-                                                 {XFA_Element::Manifest, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kSignDataPropertyData[] = {
+    {XFA_Element::Filter, 1, 0},
+    {XFA_Element::Manifest, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kSignDataAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -24,7 +25,7 @@
     {XFA_Attribute::Target, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"signData";
+constexpr wchar_t kSignDataName[] = L"signData";
 
 }  // namespace
 
@@ -34,9 +35,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::SignData,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSignDataPropertyData,
+                kSignDataAttributeData,
+                kSignDataName,
                 pdfium::MakeUnique<CJX_SignData>(this)) {}
 
 CXFA_SignData::~CXFA_SignData() {}
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
index 251e294..e1316fa 100644
--- a/xfa/fxfa/parser/cxfa_signing.cpp
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSigningAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"signing";
+constexpr wchar_t kSigningName[] = L"signing";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Signing,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSigningAttributeData,
+                kSigningName,
                 pdfium::MakeUnique<CJX_Signing>(this)) {}
 
 CXFA_Signing::~CXFA_Signing() {}
diff --git a/xfa/fxfa/parser/cxfa_silentprint.cpp b/xfa/fxfa/parser/cxfa_silentprint.cpp
index ca0cf9f..f7a2e7c 100644
--- a/xfa/fxfa/parser/cxfa_silentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_silentprint.cpp
@@ -8,16 +8,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kSilentPrintPropertyData[] = {
     {XFA_Element::AddSilentPrint, 1, 0},
     {XFA_Element::PrinterName, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSilentPrintAttributeData[] = {
     {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";
+constexpr wchar_t kSilentPrintName[] = L"silentPrint";
 
 }  // namespace
 
@@ -27,8 +27,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::SilentPrint,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kSilentPrintPropertyData,
+                kSilentPrintAttributeData,
+                kSilentPrintName) {}
 
 CXFA_SilentPrint::~CXFA_SilentPrint() {}
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
index b53a653..0ec62e3 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSoapActionAttributeData[] = {
     {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";
+constexpr wchar_t kSoapActionName[] = L"soapAction";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::SoapAction,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSoapActionAttributeData,
+                kSoapActionName,
                 pdfium::MakeUnique<CJX_SoapAction>(this)) {}
 
 CXFA_SoapAction::~CXFA_SoapAction() {}
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
index 39f91a5..24d9634 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSoapAddressAttributeData[] = {
     {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";
+constexpr wchar_t kSoapAddressName[] = L"soapAddress";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::SoapAddress,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSoapAddressAttributeData,
+                kSoapAddressName,
                 pdfium::MakeUnique<CJX_SoapAddress>(this)) {}
 
 CXFA_SoapAddress::~CXFA_SoapAddress() {}
diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp
index 4a20194..9dc1636 100644
--- a/xfa/fxfa/parser/cxfa_solid.cpp
+++ b/xfa/fxfa/parser/cxfa_solid.cpp
@@ -11,15 +11,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kSolidPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kSolidAttributeData[] = {
     {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";
+constexpr wchar_t kSolidName[] = L"solid";
 
 }  // namespace
 
@@ -29,9 +30,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Solid,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSolidPropertyData,
+                kSolidAttributeData,
+                kSolidName,
                 pdfium::MakeUnique<CJX_Solid>(this)) {}
 
 CXFA_Solid::~CXFA_Solid() {}
diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp
index 95d3736..3f7dcec 100644
--- a/xfa/fxfa/parser/cxfa_source.cpp
+++ b/xfa/fxfa/parser/cxfa_source.cpp
@@ -11,16 +11,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Connect, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kSourcePropertyData[] = {
+    {XFA_Element::Connect, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kSourceAttributeData[] = {
     {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";
+constexpr wchar_t kSourceName[] = L"source";
 
 }  // namespace
 
@@ -30,9 +31,9 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::Node,
                 XFA_Element::Source,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSourcePropertyData,
+                kSourceAttributeData,
+                kSourceName,
                 pdfium::MakeUnique<CJX_Source>(this)) {}
 
 CXFA_Source::~CXFA_Source() {}
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
index 3deabc6..cbc54b6 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.cpp
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSourceSetAttributeData[] = {
     {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";
+constexpr wchar_t kSourceSetName[] = L"sourceSet";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::ModelNode,
                 XFA_Element::SourceSet,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSourceSetAttributeData,
+                kSourceSetName,
                 pdfium::MakeUnique<CJX_SourceSet>(this)) {}
 
 CXFA_SourceSet::~CXFA_SourceSet() {}
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
index ce05682..5d9f306 100644
--- a/xfa/fxfa/parser/cxfa_speak.cpp
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSpeakAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -21,7 +21,7 @@
     {XFA_Attribute::Disable, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"speak";
+constexpr wchar_t kSpeakName[] = L"speak";
 
 }  // namespace
 
@@ -32,8 +32,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Speak,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSpeakAttributeData,
+                kSpeakName,
                 pdfium::MakeUnique<CJX_Speak>(this)) {}
 
 CXFA_Speak::~CXFA_Speak() {}
diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp
index 31736d1..e1fb759 100644
--- a/xfa/fxfa/parser/cxfa_staple.cpp
+++ b/xfa/fxfa/parser/cxfa_staple.cpp
@@ -8,14 +8,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kStapleAttributeData[] = {
     {XFA_Attribute::Mode, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::UsePrinterSetting},
     {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";
+constexpr wchar_t kStapleName[] = L"staple";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Staple,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kStapleAttributeData,
+                kStapleName) {}
 
 CXFA_Staple::~CXFA_Staple() {}
diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp
index f49b595..8d9573f 100644
--- a/xfa/fxfa/parser/cxfa_startnode.cpp
+++ b/xfa/fxfa/parser/cxfa_startnode.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kStartNodeAttributeData[] = {
     {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";
+constexpr wchar_t kStartNodeName[] = L"startNode";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::StartNode,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kStartNodeAttributeData,
+                kStartNodeName) {}
 
 CXFA_StartNode::~CXFA_StartNode() {}
diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp
index c52daf2..45f804a 100644
--- a/xfa/fxfa/parser/cxfa_startpage.cpp
+++ b/xfa/fxfa/parser/cxfa_startpage.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kStartPageAttributeData[] = {
     {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";
+constexpr wchar_t kStartPageName[] = L"startPage";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::StartPage,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kStartPageAttributeData,
+                kStartPageName) {}
 
 CXFA_StartPage::~CXFA_StartPage() {}
diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp
index f8c059e..3b4b259 100644
--- a/xfa/fxfa/parser/cxfa_stipple.cpp
+++ b/xfa/fxfa/parser/cxfa_stipple.cpp
@@ -12,17 +12,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kStipplePropertyData[] = {
+    {XFA_Element::Color, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kStippleAttributeData[] = {
     {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";
+constexpr wchar_t kStippleName[] = L"stipple";
 
 }  // namespace
 
@@ -32,9 +33,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Stipple,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kStipplePropertyData,
+                kStippleAttributeData,
+                kStippleName,
                 pdfium::MakeUnique<CJX_Stipple>(this)) {}
 
 CXFA_Stipple::~CXFA_Stipple() {}
diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp
index 7bb7fa7..d27443f 100644
--- a/xfa/fxfa/parser/cxfa_subform.cpp
+++ b/xfa/fxfa/parser/cxfa_subform.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kSubformPropertyData[] = {
     {XFA_Element::Break, 1, 0},   {XFA_Element::Margin, 1, 0},
     {XFA_Element::Para, 1, 0},    {XFA_Element::Border, 1, 0},
     {XFA_Element::Assist, 1, 0},  {XFA_Element::Traversal, 1, 0},
@@ -21,7 +21,7 @@
     {XFA_Element::Bookend, 1, 0}, {XFA_Element::Calculate, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kSubformAttributeData[] = {
     {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"},
@@ -59,7 +59,7 @@
      (void*)XFA_AttributeEnum::Name},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"subform";
+constexpr wchar_t kSubformName[] = L"subform";
 
 }  // namespace
 
@@ -69,9 +69,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::Subform,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSubformPropertyData,
+                kSubformAttributeData,
+                kSubformName,
                 pdfium::MakeUnique<CJX_Subform>(this)) {}
 
 CXFA_Subform::~CXFA_Subform() {}
diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp
index 0c9c3b0..ccf18d7 100644
--- a/xfa/fxfa/parser/cxfa_subformset.cpp
+++ b/xfa/fxfa/parser/cxfa_subformset.cpp
@@ -11,12 +11,12 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kSubformSetPropertyData[] = {
     {XFA_Element::Break, 1, 0},  {XFA_Element::Overflow, 1, 0},
     {XFA_Element::Desc, 1, 0},   {XFA_Element::Bookend, 1, 0},
     {XFA_Element::Extras, 1, 0}, {XFA_Element::Occur, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSubformSetAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -26,7 +26,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"subformSet";
+constexpr wchar_t kSubformSetName[] = L"subformSet";
 
 }  // namespace
 
@@ -36,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::SubformSet,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSubformSetPropertyData,
+                kSubformSetAttributeData,
+                kSubformSetName,
                 pdfium::MakeUnique<CJX_SubformSet>(this)) {}
 
 CXFA_SubformSet::~CXFA_SubformSet() {}
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
index 29ab2fa..15572ee 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSubjectDNAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"subjectDN";
+constexpr wchar_t kSubjectDNName[] = L"subjectDN";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::NodeC,
                 XFA_Element::SubjectDN,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSubjectDNAttributeData,
+                kSubjectDNName,
                 pdfium::MakeUnique<CJX_SubjectDN>(this)) {}
 
 CXFA_SubjectDN::~CXFA_SubjectDN() {}
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
index 8f714b0..edcf2f5 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSubjectDNsAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -19,7 +19,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"subjectDNs";
+constexpr wchar_t kSubjectDNsName[] = L"subjectDNs";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_ObjectType::Node,
                 XFA_Element::SubjectDNs,
                 nullptr,
-                kAttributeData,
-                kName,
+                kSubjectDNsAttributeData,
+                kSubjectDNsName,
                 pdfium::MakeUnique<CJX_SubjectDNs>(this)) {}
 
 CXFA_SubjectDNs::~CXFA_SubjectDNs() {}
diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp
index e4558e8..08da1e6 100644
--- a/xfa/fxfa/parser/cxfa_submit.cpp
+++ b/xfa/fxfa/parser/cxfa_submit.cpp
@@ -11,9 +11,10 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Encrypt, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kSubmitPropertyData[] = {
+    {XFA_Element::Encrypt, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kSubmitAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Format, XFA_AttributeType::Enum,
@@ -25,7 +26,7 @@
     {XFA_Attribute::XdpContent, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"submit";
+constexpr wchar_t kSubmitName[] = L"submit";
 
 }  // namespace
 
@@ -35,9 +36,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Submit,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kSubmitPropertyData,
+                kSubmitAttributeData,
+                kSubmitName,
                 pdfium::MakeUnique<CJX_Submit>(this)) {}
 
 CXFA_Submit::~CXFA_Submit() {}
diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp
index 30daf89..68fa882 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.cpp
+++ b/xfa/fxfa/parser/cxfa_submitformat.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSubmitFormatAttributeData[] = {
     {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";
+constexpr wchar_t kSubmitFormatName[] = L"submitFormat";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SubmitFormat,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSubmitFormatAttributeData,
+                kSubmitFormatName) {}
 
 CXFA_SubmitFormat::~CXFA_SubmitFormat() {}
diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp
index 591dd99..4d5181d 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.cpp
+++ b/xfa/fxfa/parser/cxfa_submiturl.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSubmitUrlAttributeData[] = {
     {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";
+constexpr wchar_t kSubmitUrlName[] = L"submitUrl";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SubmitUrl,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSubmitUrlAttributeData,
+                kSubmitUrlName) {}
 
 CXFA_SubmitUrl::~CXFA_SubmitUrl() {}
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
index 90dbd06..a2ba9d6 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.cpp
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSubsetBelowAttributeData[] = {
     {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";
+constexpr wchar_t kSubsetBelowName[] = L"subsetBelow";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SubsetBelow,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSubsetBelowAttributeData,
+                kSubsetBelowName) {}
 
 CXFA_SubsetBelow::~CXFA_SubsetBelow() {}
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
index 46c42a5..2656ba9 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.cpp
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kSuppressBannerAttributeData[] = {
     {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";
+constexpr wchar_t kSuppressBannerName[] = L"suppressBanner";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SuppressBanner,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kSuppressBannerAttributeData,
+                kSuppressBannerName) {}
 
 CXFA_SuppressBanner::~CXFA_SuppressBanner() {}
diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp
index 0f46b62..eac328e 100644
--- a/xfa/fxfa/parser/cxfa_tagged.cpp
+++ b/xfa/fxfa/parser/cxfa_tagged.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTaggedAttributeData[] = {
     {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";
+constexpr wchar_t kTaggedName[] = L"tagged";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Tagged,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTaggedAttributeData,
+                kTaggedName) {}
 
 CXFA_Tagged::~CXFA_Tagged() {}
diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp
index 3f9afa1..28c3456 100644
--- a/xfa/fxfa/parser/cxfa_template.cpp
+++ b/xfa/fxfa/parser/cxfa_template.cpp
@@ -11,19 +11,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kTemplatePropertyData[] = {
     {XFA_Element::Uri, 1, 0},       {XFA_Element::Xsl, 1, 0},
     {XFA_Element::StartPage, 1, 0}, {XFA_Element::Relevant, 1, 0},
     {XFA_Element::Base, 1, 0},      {XFA_Element::Extras, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTemplateAttributeData[] = {
     {XFA_Attribute::Desc, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::BaseProfile, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Full},
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"template";
+constexpr wchar_t kTemplateName[] = L"template";
 
 }  // namespace
 
@@ -34,9 +34,9 @@
           (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
           XFA_ObjectType::ModelNode,
           XFA_Element::Template,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kTemplatePropertyData,
+          kTemplateAttributeData,
+          kTemplateName,
           pdfium::MakeUnique<CJX_Template>(this)) {}
 
 CXFA_Template::~CXFA_Template() {}
diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp
index e22ed65..e66223b 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.cpp
+++ b/xfa/fxfa/parser/cxfa_templatecache.cpp
@@ -8,13 +8,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTemplateCacheAttributeData[] = {
     {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";
+constexpr wchar_t kTemplateCacheName[] = L"templateCache";
 
 }  // namespace
 
@@ -26,7 +26,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::TemplateCache,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTemplateCacheAttributeData,
+                kTemplateCacheName) {}
 
 CXFA_TemplateCache::~CXFA_TemplateCache() {}
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
index e000493..818fb22 100644
--- a/xfa/fxfa/parser/cxfa_text.cpp
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTextAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Rid, XFA_AttributeType::CData, nullptr},
@@ -20,7 +20,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"text";
+constexpr wchar_t kTextName[] = L"text";
 
 }  // namespace
 
@@ -32,8 +32,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Text,
                 nullptr,
-                kAttributeData,
-                kName,
+                kTextAttributeData,
+                kTextName,
                 pdfium::MakeUnique<CJX_Text>(this)) {}
 
 CXFA_Text::~CXFA_Text() {}
diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp
index 2527777..c752db7 100644
--- a/xfa/fxfa/parser/cxfa_textedit.cpp
+++ b/xfa/fxfa/parser/cxfa_textedit.cpp
@@ -11,12 +11,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
-                                                 {XFA_Element::Border, 1, 0},
-                                                 {XFA_Element::Comb, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kTextEditPropertyData[] = {
+    {XFA_Element::Margin, 1, 0},
+    {XFA_Element::Border, 1, 0},
+    {XFA_Element::Comb, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kTextEditAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::VScrollPolicy, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Auto},
@@ -28,7 +29,7 @@
      (void*)XFA_AttributeEnum::Auto},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"textEdit";
+constexpr wchar_t kTextEditName[] = L"textEdit";
 
 }  // namespace
 
@@ -38,9 +39,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::TextEdit,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kTextEditPropertyData,
+                kTextEditAttributeData,
+                kTextEditName,
                 pdfium::MakeUnique<CJX_TextEdit>(this)) {}
 
 CXFA_TextEdit::~CXFA_TextEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp
index 2047d52..dc41c53 100644
--- a/xfa/fxfa/parser/cxfa_threshold.cpp
+++ b/xfa/fxfa/parser/cxfa_threshold.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kThresholdAttributeData[] = {
     {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";
+constexpr wchar_t kThresholdName[] = L"threshold";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Threshold,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kThresholdAttributeData,
+                kThresholdName) {}
 
 CXFA_Threshold::~CXFA_Threshold() {}
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
index f3a64ce..15f0478 100644
--- a/xfa/fxfa/parser/cxfa_time.cpp
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTimeAttributeData[] = {
     {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";
+constexpr wchar_t kTimeName[] = L"time";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Time,
                 nullptr,
-                kAttributeData,
-                kName,
+                kTimeAttributeData,
+                kTimeName,
                 pdfium::MakeUnique<CJX_Time>(this)) {}
 
 CXFA_Time::~CXFA_Time() {}
diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp
index 76e3a53..75041e1 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_timepattern.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTimePatternAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Med},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"timePattern";
+constexpr wchar_t kTimePatternName[] = L"timePattern";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::TimePattern,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTimePatternAttributeData,
+                kTimePatternName) {}
 
 CXFA_TimePattern::~CXFA_TimePattern() {}
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.cpp b/xfa/fxfa/parser/cxfa_timepatterns.cpp
index c3a8dde..da4e187 100644
--- a/xfa/fxfa/parser/cxfa_timepatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_timepatterns.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kTimePatternsPropertyData[] = {
     {XFA_Element::TimePattern, 4, 0},
     {XFA_Element::Unknown, 0, 0}};
 
-constexpr wchar_t kName[] = L"timePatterns";
+constexpr wchar_t kTimePatternsName[] = L"timePatterns";
 
 }  // namespace
 
@@ -22,8 +22,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::TimePatterns,
-                kPropertyData,
+                kTimePatternsPropertyData,
                 nullptr,
-                kName) {}
+                kTimePatternsName) {}
 
 CXFA_TimePatterns::~CXFA_TimePatterns() {}
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
index 1c86961..d37b9f7 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.cpp
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTimeStampAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Type, XFA_AttributeType::Enum,
@@ -20,7 +20,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"timeStamp";
+constexpr wchar_t kTimeStampName[] = L"timeStamp";
 
 }  // namespace
 
@@ -31,7 +31,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::TimeStamp,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTimeStampAttributeData,
+                kTimeStampName) {}
 
 CXFA_TimeStamp::~CXFA_TimeStamp() {}
diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp
index a30c015..745f015 100644
--- a/xfa/fxfa/parser/cxfa_to.cpp
+++ b/xfa/fxfa/parser/cxfa_to.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kToAttributeData[] = {
     {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";
+constexpr wchar_t kToName[] = L"to";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::To,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kToAttributeData,
+                kToName) {}
 
 CXFA_To::~CXFA_To() {}
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
index 04f27c9..85ebb2b 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.cpp
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kToolTipAttributeData[] = {
     {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";
+constexpr wchar_t kToolTipName[] = L"toolTip";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::ToolTip,
                 nullptr,
-                kAttributeData,
-                kName,
+                kToolTipAttributeData,
+                kToolTipName,
                 pdfium::MakeUnique<CJX_ToolTip>(this)) {}
 
 CXFA_ToolTip::~CXFA_ToolTip() {}
diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp
index 7de01fc..8503816 100644
--- a/xfa/fxfa/parser/cxfa_trace.cpp
+++ b/xfa/fxfa/parser/cxfa_trace.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTraceAttributeData[] = {
     {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";
+constexpr wchar_t kTraceName[] = L"trace";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Trace,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTraceAttributeData,
+                kTraceName) {}
 
 CXFA_Trace::~CXFA_Trace() {}
diff --git a/xfa/fxfa/parser/cxfa_transform.cpp b/xfa/fxfa/parser/cxfa_transform.cpp
index 5bfa476..03c5178 100644
--- a/xfa/fxfa/parser/cxfa_transform.cpp
+++ b/xfa/fxfa/parser/cxfa_transform.cpp
@@ -8,18 +8,18 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kTransformPropertyData[] = {
     {XFA_Element::Whitespace, 1, 0},  {XFA_Element::Rename, 1, 0},
     {XFA_Element::IfEmpty, 1, 0},     {XFA_Element::Presence, 1, 0},
     {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[] = {
+const CXFA_Node::AttributeData kTransformAttributeData[] = {
     {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";
+constexpr wchar_t kTransformName[] = L"transform";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Transform,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kTransformPropertyData,
+                kTransformAttributeData,
+                kTransformName) {}
 
 CXFA_Transform::~CXFA_Transform() {}
diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp
index b5ffd3f..cb327a0 100644
--- a/xfa/fxfa/parser/cxfa_traversal.cpp
+++ b/xfa/fxfa/parser/cxfa_traversal.cpp
@@ -11,15 +11,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kTraversalPropertyData[] = {
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kTraversalAttributeData[] = {
     {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";
+constexpr wchar_t kTraversalName[] = L"traversal";
 
 }  // namespace
 
@@ -29,9 +30,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Traversal,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kTraversalPropertyData,
+                kTraversalAttributeData,
+                kTraversalName,
                 pdfium::MakeUnique<CJX_Traversal>(this)) {}
 
 CXFA_Traversal::~CXFA_Traversal() {}
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
index d771b37..ee8b448 100644
--- a/xfa/fxfa/parser/cxfa_traverse.cpp
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -11,10 +11,11 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kTraversePropertyData[] = {
+    {XFA_Element::Script, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kTraverseAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -23,7 +24,7 @@
     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"traverse";
+constexpr wchar_t kTraverseName[] = L"traverse";
 
 }  // namespace
 
@@ -33,9 +34,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Traverse,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kTraversePropertyData,
+                kTraverseAttributeData,
+                kTraverseName,
                 pdfium::MakeUnique<CJX_Traverse>(this)) {}
 
 CXFA_Traverse::~CXFA_Traverse() {}
diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp
index ac1c193..56274ce 100644
--- a/xfa/fxfa/parser/cxfa_type.cpp
+++ b/xfa/fxfa/parser/cxfa_type.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTypeAttributeData[] = {
     {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";
+constexpr wchar_t kTypeName[] = L"type";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Type,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTypeAttributeData,
+                kTypeName) {}
 
 CXFA_Type::~CXFA_Type() {}
diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp
index 3bf69bd..0e480eb 100644
--- a/xfa/fxfa/parser/cxfa_typeface.cpp
+++ b/xfa/fxfa/parser/cxfa_typeface.cpp
@@ -8,11 +8,11 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kTypefaceAttributeData[] = {
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"typeface";
+constexpr wchar_t kTypefaceName[] = L"typeface";
 
 }  // namespace
 
@@ -23,7 +23,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::Typeface,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kTypefaceAttributeData,
+                kTypefaceName) {}
 
 CXFA_Typeface::~CXFA_Typeface() {}
diff --git a/xfa/fxfa/parser/cxfa_typefaces.cpp b/xfa/fxfa/parser/cxfa_typefaces.cpp
index 525919d..13d2e85 100644
--- a/xfa/fxfa/parser/cxfa_typefaces.cpp
+++ b/xfa/fxfa/parser/cxfa_typefaces.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-constexpr wchar_t kName[] = L"typefaces";
+constexpr wchar_t kTypefacesName[] = L"typefaces";
 
 }  // namespace
 
@@ -20,6 +20,6 @@
                 XFA_Element::Typefaces,
                 nullptr,
                 nullptr,
-                kName) {}
+                kTypefacesName) {}
 
 CXFA_Typefaces::~CXFA_Typefaces() {}
diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp
index e6a3963..8729b92 100644
--- a/xfa/fxfa/parser/cxfa_ui.cpp
+++ b/xfa/fxfa/parser/cxfa_ui.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kUiPropertyData[] = {
     {XFA_Element::CheckButton, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::ChoiceList, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::DefaultUi, 1, XFA_PROPERTYFLAG_OneOf},
@@ -26,13 +26,13 @@
     {XFA_Element::TextEdit, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Extras, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kUiAttributeData[] = {
     {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";
+constexpr wchar_t kUiName[] = L"ui";
 
 }  // namespace
 
@@ -42,15 +42,15 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Ui,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kUiPropertyData,
+                kUiAttributeData,
+                kUiName,
                 pdfium::MakeUnique<CJX_Ui>(this)) {}
 
 CXFA_Ui::~CXFA_Ui() {}
 
 bool CXFA_Ui::IsAOneOfChild(CXFA_Node* child) const {
-  for (auto& prop : kPropertyData) {
+  for (auto& prop : kUiPropertyData) {
     if (prop.property != child->GetElementType())
       continue;
     if (!!(prop.flags & XFA_PROPERTYFLAG_OneOf))
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
index 986e110..78378d0 100644
--- a/xfa/fxfa/parser/cxfa_update.cpp
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kUpdateAttributeData[] = {
     {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";
+constexpr wchar_t kUpdateName[] = L"update";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Update,
                 nullptr,
-                kAttributeData,
-                kName,
+                kUpdateAttributeData,
+                kUpdateName,
                 pdfium::MakeUnique<CJX_Update>(this)) {}
 
 CXFA_Update::~CXFA_Update() {}
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
index 96cc3ec..74b3b87 100644
--- a/xfa/fxfa/parser/cxfa_uri.cpp
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kUriAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
@@ -20,7 +20,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"uri";
+constexpr wchar_t kUriName[] = L"uri";
 
 }  // namespace
 
@@ -31,8 +31,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::Uri,
                 nullptr,
-                kAttributeData,
-                kName,
+                kUriAttributeData,
+                kUriName,
                 pdfium::MakeUnique<CJX_Uri>(this)) {}
 
 CXFA_Uri::~CXFA_Uri() {}
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
index 09ec608..b0f9778 100644
--- a/xfa/fxfa/parser/cxfa_user.cpp
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kUserAttributeData[] = {
     {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";
+constexpr wchar_t kUserName[] = L"user";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::User,
                 nullptr,
-                kAttributeData,
-                kName,
+                kUserAttributeData,
+                kUserName,
                 pdfium::MakeUnique<CJX_User>(this)) {}
 
 CXFA_User::~CXFA_User() {}
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp
index 868e805..4f76f84 100644
--- a/xfa/fxfa/parser/cxfa_validate.cpp
+++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -15,12 +15,13 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
-                                                 {XFA_Element::Picture, 1, 0},
-                                                 {XFA_Element::Script, 1, 0},
-                                                 {XFA_Element::Extras, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kValidatePropertyData[] = {
+    {XFA_Element::Message, 1, 0},
+    {XFA_Element::Picture, 1, 0},
+    {XFA_Element::Script, 1, 0},
+    {XFA_Element::Extras, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kValidateAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::ScriptTest, XFA_AttributeType::Enum,
@@ -34,7 +35,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"validate";
+constexpr wchar_t kValidateName[] = L"validate";
 constexpr wchar_t kFormatTest[] = L"formatTest";
 constexpr wchar_t kNullTest[] = L"nullTest";
 constexpr wchar_t kScriptTest[] = L"scriptTest";
@@ -48,9 +49,9 @@
           (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
           XFA_ObjectType::ContentNode,
           XFA_Element::Validate,
-          kPropertyData,
-          kAttributeData,
-          kName,
+          kValidatePropertyData,
+          kValidateAttributeData,
+          kValidateName,
           pdfium::MakeUnique<CJX_Validate>(this)) {}
 
 CXFA_Validate::~CXFA_Validate() {}
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
index f51131e..b86fa64 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
@@ -8,12 +8,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kValidateApprovalSignaturesAttributeData[] = {
     {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";
+constexpr wchar_t kValidateApprovalSignaturesName[] =
+    L"validateApprovalSignatures";
 
 }  // namespace
 
@@ -26,7 +27,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::ValidateApprovalSignatures,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kValidateApprovalSignaturesAttributeData,
+                kValidateApprovalSignaturesName) {}
 
 CXFA_ValidateApprovalSignatures::~CXFA_ValidateApprovalSignatures() {}
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
index 196c98c..75267a0 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.cpp
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kValidationMessagingAttributeData[] = {
     {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";
+constexpr wchar_t kValidationMessagingName[] = L"validationMessaging";
 
 }  // namespace
 
@@ -25,7 +25,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::ValidationMessaging,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kValidationMessagingAttributeData,
+                kValidationMessagingName) {}
 
 CXFA_ValidationMessaging::~CXFA_ValidationMessaging() {}
diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp
index 2cd0dd9..ecb380f 100644
--- a/xfa/fxfa/parser/cxfa_value.cpp
+++ b/xfa/fxfa/parser/cxfa_value.cpp
@@ -17,7 +17,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kValuePropertyData[] = {
     {XFA_Element::Arc, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Text, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Time, 1, XFA_PROPERTYFLAG_OneOf},
@@ -32,7 +32,7 @@
     {XFA_Element::Float, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Line, 1, XFA_PROPERTYFLAG_OneOf},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kValueAttributeData[] = {
     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     {XFA_Attribute::Relevant, XFA_AttributeType::CData, nullptr},
@@ -40,7 +40,7 @@
     {XFA_Attribute::Override, XFA_AttributeType::Boolean, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"value";
+constexpr wchar_t kValueName[] = L"value";
 
 }  // namespace
 
@@ -50,9 +50,9 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Value,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kValuePropertyData,
+                kValueAttributeData,
+                kValueName,
                 pdfium::MakeUnique<CJX_Value>(this)) {}
 
 CXFA_Value::~CXFA_Value() {}
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
index 1e3e751..7dee73c 100644
--- a/xfa/fxfa/parser/cxfa_variables.cpp
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -11,13 +11,13 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kVariablesAttributeData[] = {
     {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";
+constexpr wchar_t kVariablesName[] = L"variables";
 
 }  // namespace
 
@@ -28,8 +28,8 @@
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::Variables,
                 nullptr,
-                kAttributeData,
-                kName,
+                kVariablesAttributeData,
+                kVariablesName,
                 pdfium::MakeUnique<CJX_Variables>(this)) {}
 
 CXFA_Variables::~CXFA_Variables() {}
diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp
index 5266f44..ca16548 100644
--- a/xfa/fxfa/parser/cxfa_version.cpp
+++ b/xfa/fxfa/parser/cxfa_version.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kVersionAttributeData[] = {
     {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";
+constexpr wchar_t kVersionName[] = L"version";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Version,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kVersionAttributeData,
+                kVersionName) {}
 
 CXFA_Version::~CXFA_Version() {}
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
index 9cca84a..5d839c5 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.cpp
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kVersionControlAttributeData[] = {
     {XFA_Attribute::SourceBelow, XFA_AttributeType::Enum,
      (void*)XFA_AttributeEnum::Update},
     {XFA_Attribute::OutputBelow, XFA_AttributeType::Enum,
@@ -18,7 +18,7 @@
     {XFA_Attribute::Lock, XFA_AttributeType::Integer, (void*)0},
     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
 
-constexpr wchar_t kName[] = L"versionControl";
+constexpr wchar_t kVersionControlName[] = L"versionControl";
 
 }  // namespace
 
@@ -30,7 +30,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::VersionControl,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kVersionControlAttributeData,
+                kVersionControlName) {}
 
 CXFA_VersionControl::~CXFA_VersionControl() {}
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
index 1b80b47..3efb1c5 100644
--- a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
@@ -8,7 +8,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kViewerPreferencesPropertyData[] = {
     {XFA_Element::PrintScaling, 1, 0},
     {XFA_Element::Enforce, 1, 0},
     {XFA_Element::NumberOfCopies, 1, 0},
@@ -19,12 +19,12 @@
     {XFA_Element::ADBE_JSDebugger, 1, 0},
     {XFA_Element::PickTrayByPDFSize, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kViewerPreferencesAttributeData[] = {
     {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";
+constexpr wchar_t kViewerPreferencesName[] = L"viewerPreferences";
 
 }  // namespace
 
@@ -35,8 +35,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::ViewerPreferences,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kViewerPreferencesPropertyData,
+                kViewerPreferencesAttributeData,
+                kViewerPreferencesName) {}
 
 CXFA_ViewerPreferences::~CXFA_ViewerPreferences() {}
diff --git a/xfa/fxfa/parser/cxfa_webclient.cpp b/xfa/fxfa/parser/cxfa_webclient.cpp
index 0123560..8c8f987 100644
--- a/xfa/fxfa/parser/cxfa_webclient.cpp
+++ b/xfa/fxfa/parser/cxfa_webclient.cpp
@@ -8,16 +8,17 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::FontInfo, 1, 0},
-                                                 {XFA_Element::Xdc, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kWebClientPropertyData[] = {
+    {XFA_Element::FontInfo, 1, 0},
+    {XFA_Element::Xdc, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kWebClientAttributeData[] = {
     {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";
+constexpr wchar_t kWebClientName[] = L"webClient";
 
 }  // namespace
 
@@ -27,8 +28,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::WebClient,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kWebClientPropertyData,
+                kWebClientAttributeData,
+                kWebClientName) {}
 
 CXFA_WebClient::~CXFA_WebClient() {}
diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp
index 6359b86..f4fa7de 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.cpp
+++ b/xfa/fxfa/parser/cxfa_whitespace.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kWhitespaceAttributeData[] = {
     {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";
+constexpr wchar_t kWhitespaceName[] = L"whitespace";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Whitespace,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kWhitespaceAttributeData,
+                kWhitespaceName) {}
 
 CXFA_Whitespace::~CXFA_Whitespace() {}
diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp
index b1485f6..4aded52 100644
--- a/xfa/fxfa/parser/cxfa_window.cpp
+++ b/xfa/fxfa/parser/cxfa_window.cpp
@@ -8,12 +8,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kWindowAttributeData[] = {
     {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";
+constexpr wchar_t kWindowName[] = L"window";
 
 }  // namespace
 
@@ -24,7 +24,7 @@
                 XFA_ObjectType::NodeV,
                 XFA_Element::Window,
                 nullptr,
-                kAttributeData,
-                kName) {}
+                kWindowAttributeData,
+                kWindowName) {}
 
 CXFA_Window::~CXFA_Window() {}
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
index 239bb66..abe35c8 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -11,14 +11,14 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kWsdlAddressAttributeData[] = {
     {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";
+constexpr wchar_t kWsdlAddressName[] = L"wsdlAddress";
 
 }  // namespace
 
@@ -29,8 +29,8 @@
                 XFA_ObjectType::TextNode,
                 XFA_Element::WsdlAddress,
                 nullptr,
-                kAttributeData,
-                kName,
+                kWsdlAddressAttributeData,
+                kWsdlAddressName,
                 pdfium::MakeUnique<CJX_WsdlAddress>(this)) {}
 
 CXFA_WsdlAddress::~CXFA_WsdlAddress() {}
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
index 6159f49..1073f4f 100644
--- a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kWsdlConnectionPropertyData[] = {
     {XFA_Element::Operation, 1, 0},
     {XFA_Element::WsdlAddress, 1, 0},
     {XFA_Element::SoapAddress, 1, 0},
@@ -19,12 +19,12 @@
     {XFA_Element::EffectiveOutputPolicy, 1, 0},
     {XFA_Element::EffectiveInputPolicy, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kWsdlConnectionAttributeData[] = {
     {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";
+constexpr wchar_t kWsdlConnectionName[] = L"wsdlConnection";
 
 }  // namespace
 
@@ -35,9 +35,9 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::Node,
                 XFA_Element::WsdlConnection,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kWsdlConnectionPropertyData,
+                kWsdlConnectionAttributeData,
+                kWsdlConnectionName,
                 pdfium::MakeUnique<CJX_WsdlConnection>(this)) {}
 
 CXFA_WsdlConnection::~CXFA_WsdlConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_xdc.cpp b/xfa/fxfa/parser/cxfa_xdc.cpp
index daaebc8..7701cd4 100644
--- a/xfa/fxfa/parser/cxfa_xdc.cpp
+++ b/xfa/fxfa/parser/cxfa_xdc.cpp
@@ -8,15 +8,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Xsl, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kXdcPropertyData[] = {
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Xsl, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kXdcAttributeData[] = {
     {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";
+constexpr wchar_t kXdcName[] = L"xdc";
 
 }  // namespace
 
@@ -26,8 +27,8 @@
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_Xdc),
                 XFA_ObjectType::ModelNode,
                 XFA_Element::Xdc,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kXdcPropertyData,
+                kXdcAttributeData,
+                kXdcName) {}
 
 CXFA_Xdc::~CXFA_Xdc() {}
diff --git a/xfa/fxfa/parser/cxfa_xdp.cpp b/xfa/fxfa/parser/cxfa_xdp.cpp
index f100ae8..5f01dfd 100644
--- a/xfa/fxfa/parser/cxfa_xdp.cpp
+++ b/xfa/fxfa/parser/cxfa_xdp.cpp
@@ -8,14 +8,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Packets, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kXdpPropertyData[] = {
+    {XFA_Element::Packets, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kXdpAttributeData[] = {
     {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";
+constexpr wchar_t kXdpName[] = L"xdp";
 
 }  // namespace
 
@@ -25,8 +26,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Xdp,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kXdpPropertyData,
+                kXdpAttributeData,
+                kXdpName) {}
 
 CXFA_Xdp::~CXFA_Xdp() {}
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
index 7eab898..1eb658e 100644
--- a/xfa/fxfa/parser/cxfa_xfa.cpp
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -11,12 +11,12 @@
 
 namespace {
 
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kXfaAttributeData[] = {
     {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";
+constexpr wchar_t kXfaName[] = L"xfa";
 
 }  // namespace
 
@@ -27,8 +27,8 @@
                 XFA_ObjectType::ModelNode,
                 XFA_Element::Xfa,
                 nullptr,
-                kAttributeData,
-                kName,
+                kXfaAttributeData,
+                kXfaName,
                 pdfium::MakeUnique<CJX_Xfa>(this)) {}
 
 CXFA_Xfa::~CXFA_Xfa() {}
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
index df05771..31a1e41 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
@@ -11,14 +11,15 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kXmlConnectionPropertyData[] = {
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kXmlConnectionAttributeData[] = {
     {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";
+constexpr wchar_t kXmlConnectionName[] = L"xmlConnection";
 
 }  // namespace
 
@@ -29,9 +30,9 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::Node,
                 XFA_Element::XmlConnection,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kXmlConnectionPropertyData,
+                kXmlConnectionAttributeData,
+                kXmlConnectionName,
                 pdfium::MakeUnique<CJX_XmlConnection>(this)) {}
 
 CXFA_XmlConnection::~CXFA_XmlConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
index 7b0de0d..06d8bd7 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
@@ -11,16 +11,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kXsdConnectionPropertyData[] = {
     {XFA_Element::Uri, 1, 0},
     {XFA_Element::RootElement, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kXsdConnectionAttributeData[] = {
     {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";
+constexpr wchar_t kXsdConnectionName[] = L"xsdConnection";
 
 }  // namespace
 
@@ -31,9 +31,9 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::Node,
                 XFA_Element::XsdConnection,
-                kPropertyData,
-                kAttributeData,
-                kName,
+                kXsdConnectionPropertyData,
+                kXsdConnectionAttributeData,
+                kXsdConnectionName,
                 pdfium::MakeUnique<CJX_XsdConnection>(this)) {}
 
 CXFA_XsdConnection::~CXFA_XsdConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_xsl.cpp b/xfa/fxfa/parser/cxfa_xsl.cpp
index 4d5e71e..651250c 100644
--- a/xfa/fxfa/parser/cxfa_xsl.cpp
+++ b/xfa/fxfa/parser/cxfa_xsl.cpp
@@ -8,15 +8,16 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
-                                                 {XFA_Element::Debug, 1, 0},
-                                                 {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::PropertyData kXslPropertyData[] = {
+    {XFA_Element::Uri, 1, 0},
+    {XFA_Element::Debug, 1, 0},
+    {XFA_Element::Unknown, 0, 0}};
+const CXFA_Node::AttributeData kXslAttributeData[] = {
     {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";
+constexpr wchar_t kXslName[] = L"xsl";
 
 }  // namespace
 
@@ -26,8 +27,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Xsl,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kXslPropertyData,
+                kXslAttributeData,
+                kXslName) {}
 
 CXFA_Xsl::~CXFA_Xsl() {}
diff --git a/xfa/fxfa/parser/cxfa_zpl.cpp b/xfa/fxfa/parser/cxfa_zpl.cpp
index aa078b5..76fb44b 100644
--- a/xfa/fxfa/parser/cxfa_zpl.cpp
+++ b/xfa/fxfa/parser/cxfa_zpl.cpp
@@ -8,19 +8,19 @@
 
 namespace {
 
-const CXFA_Node::PropertyData kPropertyData[] = {
+const CXFA_Node::PropertyData kZplPropertyData[] = {
     {XFA_Element::FontInfo, 1, 0},
     {XFA_Element::Xdc, 1, 0},
     {XFA_Element::BatchOutput, 1, 0},
     {XFA_Element::FlipLabel, 1, 0},
     {XFA_Element::Unknown, 0, 0}};
-const CXFA_Node::AttributeData kAttributeData[] = {
+const CXFA_Node::AttributeData kZplAttributeData[] = {
     {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";
+constexpr wchar_t kZplName[] = L"zpl";
 
 }  // namespace
 
@@ -30,8 +30,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Zpl,
-                kPropertyData,
-                kAttributeData,
-                kName) {}
+                kZplPropertyData,
+                kZplAttributeData,
+                kZplName) {}
 
 CXFA_Zpl::~CXFA_Zpl() {}
