Pass attributes and properties to CFXA_Node as span<>

First part of conversion away from pointer arithmetic. Still store
them internally as pointers, but fix all of the callers first. Alas
std::span<T> does not implicitly construct from nullptr_t, so we
don't either for future compatibility. Thus a bunch of mechanical
changes are required.

Change-Id: Ic83338f0966f95a004359601342063554a2dbe1f
Reviewed-on: https://pdfium-review.googlesource.com/c/48990
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
index 8f98fd5..858c35a 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AccessibleContent,
-                nullptr,
+                {},
                 kAccessibleContentAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
index 21c0815..e210a3e 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ADBE_JSConsole,
-                nullptr,
+                {},
                 kADBE_JSConsoleAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
index ae8dfd9..5ead7f2 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ADBE_JSDebugger,
-                nullptr,
+                {},
                 kADBE_JSDebuggerAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
index e084912..7016e28 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AddSilentPrint,
-                nullptr,
+                {},
                 kAddSilentPrintAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
index add512d..cc4bb8e 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AddViewerPreferences,
-                nullptr,
+                {},
                 kAddViewerPreferencesAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp
index 8944dee..ed13306 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.cpp
+++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::AdjustData,
-                nullptr,
+                {},
                 kAdjustDataAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
index 24c4082..e5de95e 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::AdobeExtensionLevel,
-                nullptr,
+                {},
                 kAdobeExtensionLevelAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp
index 35883f1..1434bff 100644
--- a/xfa/fxfa/parser/cxfa_agent.cpp
+++ b/xfa/fxfa/parser/cxfa_agent.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Agent,
-                nullptr,
+                {},
                 kAgentAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
index a8a3352..e99fce7 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.cpp
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::AlwaysEmbed,
-                nullptr,
+                {},
                 kAlwaysEmbedAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp
index b355fe3..0edb323 100644
--- a/xfa/fxfa/parser/cxfa_amd.cpp
+++ b/xfa/fxfa/parser/cxfa_amd.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Amd,
-                nullptr,
+                {},
                 kAmdAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
index 6d4e48b..a8993b9 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.cpp
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeC,
                 XFA_Element::AppearanceFilter,
-                nullptr,
+                {},
                 kAppearanceFilterAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp
index ae6ac03..7755ca3 100644
--- a/xfa/fxfa/parser/cxfa_attributes.cpp
+++ b/xfa/fxfa/parser/cxfa_attributes.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Attributes,
-                nullptr,
+                {},
                 kAttributesAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp
index c2fadf3..16cdafe 100644
--- a/xfa/fxfa/parser/cxfa_autosave.cpp
+++ b/xfa/fxfa/parser/cxfa_autosave.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::AutoSave,
-                nullptr,
+                {},
                 kAutoSaveAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
index 2427e09..7f9f943 100644
--- a/xfa/fxfa/parser/cxfa_barcode.cpp
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -48,7 +48,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Barcode,
-                nullptr,
+                {},
                 kBarcodeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp
index 707bf62..749f3c6 100644
--- a/xfa/fxfa/parser/cxfa_base.cpp
+++ b/xfa/fxfa/parser/cxfa_base.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Base,
-                nullptr,
+                {},
                 kBaseAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp
index 75e7792..01806de 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.cpp
+++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::BatchOutput,
-                nullptr,
+                {},
                 kBatchOutputAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
index 9785233..711d377 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.cpp
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::BehaviorOverride,
-                nullptr,
+                {},
                 kBehaviorOverrideAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index c765e0f..2382e43 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::BindItems,
-                nullptr,
+                {},
                 kBindItemsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
index 647e439..7c582c0 100644
--- a/xfa/fxfa/parser/cxfa_bookend.cpp
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Bookend,
-                nullptr,
+                {},
                 kBookendAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index 9012b02..829d8a7 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -27,7 +27,7 @@
                  XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Boolean,
-                nullptr,
+                {},
                 kBooleanAttributeData,
                 pdfium::MakeUnique<CJX_Boolean>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_box.cpp b/xfa/fxfa/parser/cxfa_box.cpp
index 2ef2e82..5ba01d3 100644
--- a/xfa/fxfa/parser/cxfa_box.cpp
+++ b/xfa/fxfa/parser/cxfa_box.cpp
@@ -62,8 +62,8 @@
                    uint32_t validPackets,
                    XFA_ObjectType oType,
                    XFA_Element eType,
-                   const PropertyData* properties,
-                   const AttributeData* attributes,
+                   pdfium::span<const PropertyData> properties,
+                   pdfium::span<const AttributeData> attributes,
                    std::unique_ptr<CJX_Object> js_node)
     : CXFA_Node(pDoc,
                 ePacket,
diff --git a/xfa/fxfa/parser/cxfa_box.h b/xfa/fxfa/parser/cxfa_box.h
index b882f66..cbda771 100644
--- a/xfa/fxfa/parser/cxfa_box.h
+++ b/xfa/fxfa/parser/cxfa_box.h
@@ -45,8 +45,8 @@
            uint32_t validPackets,
            XFA_ObjectType oType,
            XFA_Element eType,
-           const PropertyData* properties,
-           const AttributeData* attributes,
+           pdfium::span<const PropertyData> properties,
+           pdfium::span<const AttributeData> attributes,
            std::unique_ptr<CJX_Object> js_node);
 
   XFA_AttributeValue GetHand();
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
index 5a25e25..bbae6dd 100644
--- a/xfa/fxfa/parser/cxfa_certificate.cpp
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Certificate,
-                nullptr,
+                {},
                 kCertificateAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp
index 242ff65..bdb8eeb 100644
--- a/xfa/fxfa/parser/cxfa_change.cpp
+++ b/xfa/fxfa/parser/cxfa_change.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Change,
-                nullptr,
+                {},
                 kChangeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index 5c85832..6937086 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Comb,
-                nullptr,
+                {},
                 kCombAttributeData,
                 pdfium::MakeUnique<CJX_Comb>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp
index ed975dc..ede56fe 100644
--- a/xfa/fxfa/parser/cxfa_compress.cpp
+++ b/xfa/fxfa/parser/cxfa_compress.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Compress,
-                nullptr,
+                {},
                 kCompressAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
index 698ca00..7d1c387 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CompressLogicalStructure,
-                nullptr,
+                {},
                 kCompressLogicalStructureAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
index c33923a..2f54067 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CompressObjectStream,
-                nullptr,
+                {},
                 kCompressObjectStreamAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp
index 6ca8ce0..b42fbd2 100644
--- a/xfa/fxfa/parser/cxfa_conformance.cpp
+++ b/xfa/fxfa/parser/cxfa_conformance.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Conformance,
-                nullptr,
+                {},
                 kConformanceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_connectionset.cpp b/xfa/fxfa/parser/cxfa_connectionset.cpp
index e46e91e..74585e6 100644
--- a/xfa/fxfa/parser/cxfa_connectionset.cpp
+++ b/xfa/fxfa/parser/cxfa_connectionset.cpp
@@ -16,8 +16,8 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::ModelNode,
                 XFA_Element::ConnectionSet,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Model>(this)) {}
 
 CXFA_ConnectionSet::~CXFA_ConnectionSet() = default;
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
index 8363d15..bf153e8 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.cpp
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -27,7 +27,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::ConnectString,
-                nullptr,
+                {},
                 kConnectStringAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp
index 04556d6..c978f72 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.cpp
+++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ContentCopy,
-                nullptr,
+                {},
                 kContentCopyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp
index ded9ce4..a795c94 100644
--- a/xfa/fxfa/parser/cxfa_copies.cpp
+++ b/xfa/fxfa/parser/cxfa_copies.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Copies,
-                nullptr,
+                {},
                 kCopiesAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp
index a8a684d..b7af845 100644
--- a/xfa/fxfa/parser/cxfa_creator.cpp
+++ b/xfa/fxfa/parser/cxfa_creator.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Creator,
-                nullptr,
+                {},
                 kCreatorAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
index 864ad02..c849950 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CurrencySymbol,
-                nullptr,
+                {},
                 kCurrencySymbolAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.cpp b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
index 896cd29..81ac218 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
@@ -25,7 +25,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::CurrencySymbols,
                 kCurrencySymbolsPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_CurrencySymbols::~CXFA_CurrencySymbols() = default;
diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp
index c9ec956..34b77af 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.cpp
+++ b/xfa/fxfa/parser/cxfa_currentpage.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::CurrentPage,
-                nullptr,
+                {},
                 kCurrentPageAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp
index c689541..4fb5546 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.cpp
+++ b/xfa/fxfa/parser/cxfa_datagroup.cpp
@@ -23,7 +23,7 @@
                 XFA_XDPPACKET_Datasets,
                 XFA_ObjectType::Node,
                 XFA_Element::DataGroup,
-                nullptr,
+                {},
                 kDataGroupAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_datamodel.cpp b/xfa/fxfa/parser/cxfa_datamodel.cpp
index d334903..4b506c5 100644
--- a/xfa/fxfa/parser/cxfa_datamodel.cpp
+++ b/xfa/fxfa/parser/cxfa_datamodel.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_Datasets,
                 XFA_ObjectType::ModelNode,
                 XFA_Element::DataModel,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Model>(this)) {}
 
 CXFA_DataModel::~CXFA_DataModel() = default;
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
index 53cb5db..5d5dc69 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.cpp
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -28,7 +28,7 @@
                 XFA_XDPPACKET_Datasets,
                 XFA_ObjectType::Node,
                 XFA_Element::DataValue,
-                nullptr,
+                {},
                 kDataValueAttributeData,
                 pdfium::MakeUnique<CJX_DataValue>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
index 6abff28..1a34b4d 100644
--- a/xfa/fxfa/parser/cxfa_date.cpp
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Date,
-                nullptr,
+                {},
                 kDateAttributeData,
                 pdfium::MakeUnique<CJX_Date>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp
index be81ba4..8f9173c 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_datepattern.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DatePattern,
-                nullptr,
+                {},
                 kDatePatternAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.cpp b/xfa/fxfa/parser/cxfa_datepatterns.cpp
index 93e5030..4f22903 100644
--- a/xfa/fxfa/parser/cxfa_datepatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_datepatterns.cpp
@@ -24,7 +24,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::DatePatterns,
                 kDatePatternsPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_DatePatterns::~CXFA_DatePatterns() = default;
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
index aa7dbf8..7d0afda 100644
--- a/xfa/fxfa/parser/cxfa_datetime.cpp
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DateTime,
-                nullptr,
+                {},
                 kDateTimeAttributeData,
                 pdfium::MakeUnique<CJX_DateTime>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
index 9c6f67a..159d821 100644
--- a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
@@ -16,8 +16,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DateTimeSymbols,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_DateTimeSymbols::~CXFA_DateTimeSymbols() = default;
diff --git a/xfa/fxfa/parser/cxfa_day.cpp b/xfa/fxfa/parser/cxfa_day.cpp
index 2953701..ffbeb2f 100644
--- a/xfa/fxfa/parser/cxfa_day.cpp
+++ b/xfa/fxfa/parser/cxfa_day.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Day,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_Day::~CXFA_Day() = default;
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
index 6f96bad..2315731 100644
--- a/xfa/fxfa/parser/cxfa_decimal.cpp
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Decimal,
-                nullptr,
+                {},
                 kDecimalAttributeData,
                 pdfium::MakeUnique<CJX_Decimal>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
index 643e779..ad6da16 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
@@ -27,7 +27,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::DefaultTypeface,
-                nullptr,
+                {},
                 kDefaultTypefaceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
index bb84af7..99dfd16 100644
--- a/xfa/fxfa/parser/cxfa_delete.cpp
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::Delete,
-                nullptr,
+                {},
                 kDeleteAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_delta.cpp b/xfa/fxfa/parser/cxfa_delta.cpp
index 24e4f42..c48b2b3 100644
--- a/xfa/fxfa/parser/cxfa_delta.cpp
+++ b/xfa/fxfa/parser/cxfa_delta.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_Form,
                 XFA_ObjectType::Object,
                 XFA_Element::Delta,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Delta>(this)) {}
 
 CXFA_Delta::~CXFA_Delta() = default;
diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp
index c308e26..a46afb3 100644
--- a/xfa/fxfa/parser/cxfa_destination.cpp
+++ b/xfa/fxfa/parser/cxfa_destination.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Destination,
-                nullptr,
+                {},
                 kDestinationAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
index d62b881..61cd5f1 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -25,7 +25,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeC,
                 XFA_Element::DigestMethod,
-                nullptr,
+                {},
                 kDigestMethodAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
index 517099b..a31d80e 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::DigestMethods,
-                nullptr,
+                {},
                 kDigestMethodsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp
index beb2be6..4cdadf3 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.cpp
+++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DocumentAssembly,
-                nullptr,
+                {},
                 kDocumentAssemblyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp
index d23931a..b91a022 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.cpp
+++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp
@@ -23,7 +23,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::DSigData,
-                nullptr,
+                {},
                 kDSigDataAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp
index f5fd198..bf23bfb 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.cpp
+++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DuplexOption,
-                nullptr,
+                {},
                 kDuplexOptionAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
index 31b4f4f..b148abc 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.cpp
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::DynamicRender,
-                nullptr,
+                {},
                 kDynamicRenderAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
index 30b07b9..cad5160 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
@@ -27,7 +27,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::Node,
                 XFA_Element::EffectiveInputPolicy,
-                nullptr,
+                {},
                 kEffectiveInputPolicyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
index a0f6187..067b66a 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
@@ -27,7 +27,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::Node,
                 XFA_Element::EffectiveOutputPolicy,
-                nullptr,
+                {},
                 kEffectiveOutputPolicyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp
index 6cd966e..7b20775 100644
--- a/xfa/fxfa/parser/cxfa_embed.cpp
+++ b/xfa/fxfa/parser/cxfa_embed.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Embed,
-                nullptr,
+                {},
                 kEmbedAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
index 139e21a..5c8a3e3 100644
--- a/xfa/fxfa/parser/cxfa_encoding.cpp
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -25,7 +25,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeC,
                 XFA_Element::Encoding,
-                nullptr,
+                {},
                 kEncodingAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
index be0e2d6..2146127 100644
--- a/xfa/fxfa/parser/cxfa_encodings.cpp
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Encodings,
-                nullptr,
+                {},
                 kEncodingsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
index 2639e40..52d6621 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::EncryptionLevel,
-                nullptr,
+                {},
                 kEncryptionLevelAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
index 81a0dc1..e1462d4 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeC,
                 XFA_Element::EncryptionMethod,
-                nullptr,
+                {},
                 kEncryptionMethodAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
index 84a388a..862682a 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::EncryptionMethods,
-                nullptr,
+                {},
                 kEncryptionMethodsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp
index 637d6ac..52f3ec4 100644
--- a/xfa/fxfa/parser/cxfa_enforce.cpp
+++ b/xfa/fxfa/parser/cxfa_enforce.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Enforce,
-                nullptr,
+                {},
                 kEnforceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp
index 3997eae..ea66e7f 100644
--- a/xfa/fxfa/parser/cxfa_equate.cpp
+++ b/xfa/fxfa/parser/cxfa_equate.cpp
@@ -27,7 +27,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Equate,
-                nullptr,
+                {},
                 kEquateAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp
index fa8d0ee..6384090 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.cpp
+++ b/xfa/fxfa/parser/cxfa_equaterange.cpp
@@ -27,7 +27,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::EquateRange,
-                nullptr,
+                {},
                 kEquateRangeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_era.cpp b/xfa/fxfa/parser/cxfa_era.cpp
index ade1b54..1cb8df2 100644
--- a/xfa/fxfa/parser/cxfa_era.cpp
+++ b/xfa/fxfa/parser/cxfa_era.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Era,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_Era::~CXFA_Era() = default;
diff --git a/xfa/fxfa/parser/cxfa_eranames.cpp b/xfa/fxfa/parser/cxfa_eranames.cpp
index 75e239f..556abfc 100644
--- a/xfa/fxfa/parser/cxfa_eranames.cpp
+++ b/xfa/fxfa/parser/cxfa_eranames.cpp
@@ -24,7 +24,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::EraNames,
                 kEraNamesPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_EraNames::~CXFA_EraNames() = default;
diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp
index 1d407e9..4ddd632 100644
--- a/xfa/fxfa/parser/cxfa_exclude.cpp
+++ b/xfa/fxfa/parser/cxfa_exclude.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Exclude,
-                nullptr,
+                {},
                 kExcludeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp
index 76467dc..967c31e 100644
--- a/xfa/fxfa/parser/cxfa_excludens.cpp
+++ b/xfa/fxfa/parser/cxfa_excludens.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::ExcludeNS,
-                nullptr,
+                {},
                 kExcludeNSAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
index 000afd7..0e60227 100644
--- a/xfa/fxfa/parser/cxfa_exdata.cpp
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -33,7 +33,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ExData,
-                nullptr,
+                {},
                 kExDataAttributeData,
                 pdfium::MakeUnique<CJX_ExData>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
index 9d3c886..5f10429 100644
--- a/xfa/fxfa/parser/cxfa_execute.cpp
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -30,7 +30,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Execute,
-                nullptr,
+                {},
                 kExecuteAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
index 6f8360b..dbc3e8f 100644
--- a/xfa/fxfa/parser/cxfa_extras.cpp
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -27,7 +27,7 @@
                  XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Extras,
-                nullptr,
+                {},
                 kExtrasAttributeData,
                 pdfium::MakeUnique<CJX_Extras>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp
index 821a98c..4c4f9b7 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.cpp
+++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::FlipLabel,
-                nullptr,
+                {},
                 kFlipLabelAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
index 8b28d21..b78ec5d 100644
--- a/xfa/fxfa/parser/cxfa_float.cpp
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Float,
-                nullptr,
+                {},
                 kFloatAttributeData,
                 pdfium::MakeUnique<CJX_Float>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp
index 30ebb02..4ffd2de 100644
--- a/xfa/fxfa/parser/cxfa_form.cpp
+++ b/xfa/fxfa/parser/cxfa_form.cpp
@@ -23,7 +23,7 @@
                 XFA_XDPPACKET_Form,
                 XFA_ObjectType::ModelNode,
                 XFA_Element::Form,
-                nullptr,
+                {},
                 kFormAttributeData,
                 pdfium::MakeUnique<CJX_Form>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
index fd06328..2a26fcf 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::FormFieldFilling,
-                nullptr,
+                {},
                 kFormFieldFillingAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp
index a990af8..ae4e34a 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.cpp
+++ b/xfa/fxfa/parser/cxfa_groupparent.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::GroupParent,
-                nullptr,
+                {},
                 kGroupParentAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
index 71e3b7d..42ffe20 100644
--- a/xfa/fxfa/parser/cxfa_handler.cpp
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Handler,
-                nullptr,
+                {},
                 kHandlerAttributeData,
                 pdfium::MakeUnique<CJX_Handler>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp
index bb8e675..1f201ef 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.cpp
+++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp
@@ -31,7 +31,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Hyphenation,
-                nullptr,
+                {},
                 kHyphenationAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp
index 56089de..9cf03d1 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.cpp
+++ b/xfa/fxfa/parser/cxfa_ifempty.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::IfEmpty,
-                nullptr,
+                {},
                 kIfEmptyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
index 517b8a3..b73823e 100644
--- a/xfa/fxfa/parser/cxfa_image.cpp
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -32,7 +32,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Image,
-                nullptr,
+                {},
                 kImageAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
index e19f57b..ed2e9a6 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::IncludeXDPContent,
-                nullptr,
+                {},
                 kIncludeXDPContentAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp
index 61283a4..3ed6b47 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::IncrementalLoad,
-                nullptr,
+                {},
                 kIncrementalLoadAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
index 1a01b12..126bae9 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::IncrementalMerge,
-                nullptr,
+                {},
                 kIncrementalMergeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
index 3f47524..95f0614 100644
--- a/xfa/fxfa/parser/cxfa_insert.cpp
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::Insert,
-                nullptr,
+                {},
                 kInsertAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
index b2938a1..a4107c7 100644
--- a/xfa/fxfa/parser/cxfa_integer.cpp
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -27,7 +27,7 @@
                  XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Integer,
-                nullptr,
+                {},
                 kIntegerAttributeData,
                 pdfium::MakeUnique<CJX_Integer>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
index dc3e656..e2e00cf 100644
--- a/xfa/fxfa/parser/cxfa_interactive.cpp
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Interactive,
-                nullptr,
+                {},
                 kInteractiveAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
index 4e3c542..bb26af8 100644
--- a/xfa/fxfa/parser/cxfa_issuers.cpp
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Issuers,
-                nullptr,
+                {},
                 kIssuersAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
index 30ceb5f..85062d4 100644
--- a/xfa/fxfa/parser/cxfa_items.cpp
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -30,7 +30,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Items,
-                nullptr,
+                {},
                 kItemsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp
index 2d8cd05..8817c22 100644
--- a/xfa/fxfa/parser/cxfa_jog.cpp
+++ b/xfa/fxfa/parser/cxfa_jog.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Jog,
-                nullptr,
+                {},
                 kJogAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
index de5292c..e8b7e58 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.cpp
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -36,7 +36,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::KeyUsage,
-                nullptr,
+                {},
                 kKeyUsageAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp
index 691b4d5..ae06fbb 100644
--- a/xfa/fxfa/parser/cxfa_layout.cpp
+++ b/xfa/fxfa/parser/cxfa_layout.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Layout,
-                nullptr,
+                {},
                 kLayoutAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp
index f64edba..bd9e406 100644
--- a/xfa/fxfa/parser/cxfa_level.cpp
+++ b/xfa/fxfa/parser/cxfa_level.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Level,
-                nullptr,
+                {},
                 kLevelAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp
index 008a13b..b56a147 100644
--- a/xfa/fxfa/parser/cxfa_linearized.cpp
+++ b/xfa/fxfa/parser/cxfa_linearized.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Linearized,
-                nullptr,
+                {},
                 kLinearizedAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp
index 4ce0b0e..8c107d5 100644
--- a/xfa/fxfa/parser/cxfa_localeset.cpp
+++ b/xfa/fxfa/parser/cxfa_localeset.cpp
@@ -24,7 +24,7 @@
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet),
                 XFA_ObjectType::ModelNode,
                 XFA_Element::LocaleSet,
-                nullptr,
+                {},
                 kLocaleSetAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp
index 282c067..a85b48f 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.cpp
+++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::LockDocument,
-                nullptr,
+                {},
                 kLockDocumentAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
index 00b9b8f..bb5b5bf 100644
--- a/xfa/fxfa/parser/cxfa_map.cpp
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -30,7 +30,7 @@
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_SourceSet),
                 XFA_ObjectType::Node,
                 XFA_Element::Map,
-                nullptr,
+                {},
                 kMapAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
index f7f122a..bea7c83 100644
--- a/xfa/fxfa/parser/cxfa_mdp.cpp
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Mdp,
-                nullptr,
+                {},
                 kMdpAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
index 60b6f39..4ee65f8 100644
--- a/xfa/fxfa/parser/cxfa_medium.cpp
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -35,7 +35,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Medium,
-                nullptr,
+                {},
                 kMediumAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_meridiem.cpp b/xfa/fxfa/parser/cxfa_meridiem.cpp
index 47345d5..e250f2d 100644
--- a/xfa/fxfa/parser/cxfa_meridiem.cpp
+++ b/xfa/fxfa/parser/cxfa_meridiem.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Meridiem,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_Meridiem::~CXFA_Meridiem() = default;
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.cpp b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
index bd87738..3e58b22 100644
--- a/xfa/fxfa/parser/cxfa_meridiemnames.cpp
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
@@ -25,7 +25,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::MeridiemNames,
                 kMeridiemNamesPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_MeridiemNames::~CXFA_MeridiemNames() = default;
diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp
index dd7f9df..9bc7fb0 100644
--- a/xfa/fxfa/parser/cxfa_messaging.cpp
+++ b/xfa/fxfa/parser/cxfa_messaging.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Messaging,
-                nullptr,
+                {},
                 kMessagingAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp
index b61c8da..35ab909 100644
--- a/xfa/fxfa/parser/cxfa_mode.cpp
+++ b/xfa/fxfa/parser/cxfa_mode.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Mode,
-                nullptr,
+                {},
                 kModeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp
index 24696e9..3e78e17 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.cpp
+++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ModifyAnnots,
-                nullptr,
+                {},
                 kModifyAnnotsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_month.cpp b/xfa/fxfa/parser/cxfa_month.cpp
index 719175e..8cc4481 100644
--- a/xfa/fxfa/parser/cxfa_month.cpp
+++ b/xfa/fxfa/parser/cxfa_month.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Month,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_Month::~CXFA_Month() = default;
diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp
index b3eb09f..b50fd96 100644
--- a/xfa/fxfa/parser/cxfa_msgid.cpp
+++ b/xfa/fxfa/parser/cxfa_msgid.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::MsgId,
-                nullptr,
+                {},
                 kMsgIdAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp
index fdff722..89718b4 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.cpp
+++ b/xfa/fxfa/parser/cxfa_nameattr.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::NameAttr,
-                nullptr,
+                {},
                 kNameAttrAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp
index 800f17c..0e3e223 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.cpp
+++ b/xfa/fxfa/parser/cxfa_neverembed.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::NeverEmbed,
-                nullptr,
+                {},
                 kNeverEmbedAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 3d17358..334a8c1 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -835,12 +835,12 @@
                      uint32_t validPackets,
                      XFA_ObjectType oType,
                      XFA_Element eType,
-                     const PropertyData* properties,
-                     const AttributeData* attributes,
+                     pdfium::span<const PropertyData> properties,
+                     pdfium::span<const AttributeData> attributes,
                      std::unique_ptr<CJX_Object> js_object)
     : CXFA_Object(pDoc, oType, eType, std::move(js_object)),
-      m_Properties(properties),
-      m_Attributes(attributes),
+      m_Properties(properties.data()),
+      m_Attributes(attributes.data()),
       m_ValidPackets(validPackets),
       m_ePacket(ePacket) {
   ASSERT(m_pDocument);
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index b562c43..fc9a357 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -14,6 +14,7 @@
 #include "core/fxcrt/fx_string.h"
 #include "core/fxge/fx_dib.h"
 #include "third_party/base/optional.h"
+#include "third_party/base/span.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/parser/cxfa_object.h"
 
@@ -376,8 +377,8 @@
             uint32_t validPackets,
             XFA_ObjectType oType,
             XFA_Element eType,
-            const PropertyData* properties,
-            const AttributeData* attributes,
+            pdfium::span<const PropertyData> properties,
+            pdfium::span<const AttributeData> attributes,
             std::unique_ptr<CJX_Object> js_object);
 
   virtual XFA_Element GetValueNodeType() const;
diff --git a/xfa/fxfa/parser/cxfa_node_unittest.cpp b/xfa/fxfa/parser/cxfa_node_unittest.cpp
index 06d3c5e..d310c32 100644
--- a/xfa/fxfa/parser/cxfa_node_unittest.cpp
+++ b/xfa/fxfa/parser/cxfa_node_unittest.cpp
@@ -20,8 +20,8 @@
                   (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                   XFA_ObjectType::Node,
                   XFA_Element::Node,
-                  nullptr,
-                  nullptr,
+                  {},
+                  {},
                   pdfium::MakeUnique<CJX_Node>(this)) {}
 
   ~TestNode() override = default;
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
index 590c85f..8428498 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.cpp
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::NumberOfCopies,
-                nullptr,
+                {},
                 kNumberOfCopiesAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp
index c0bca74..95a84a4 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::NumberPattern,
-                nullptr,
+                {},
                 kNumberPatternAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.cpp b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
index c6f9f3d..65f23f2 100644
--- a/xfa/fxfa/parser/cxfa_numberpatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
@@ -25,7 +25,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::NumberPatterns,
                 kNumberPatternsPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_NumberPatterns::~CXFA_NumberPatterns() = default;
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
index 7e29417..da1a6d5 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::NumberSymbol,
-                nullptr,
+                {},
                 kNumberSymbolAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.cpp b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
index c8db786..73a185f 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
@@ -25,7 +25,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::NumberSymbols,
                 kNumberSymbolsPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_NumberSymbols::~CXFA_NumberSymbols() = default;
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
index a89bebf..a65a188 100644
--- a/xfa/fxfa/parser/cxfa_oid.cpp
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Oid,
-                nullptr,
+                {},
                 kOidAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
index fe37e3e..49b792a 100644
--- a/xfa/fxfa/parser/cxfa_oids.cpp
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Oids,
-                nullptr,
+                {},
                 kOidsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
index 06aa455..782ff12 100644
--- a/xfa/fxfa/parser/cxfa_operation.cpp
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -28,7 +28,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::Operation,
-                nullptr,
+                {},
                 kOperationAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp
index 1559c73..3bddcfa 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.cpp
+++ b/xfa/fxfa/parser/cxfa_outputbin.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::OutputBin,
-                nullptr,
+                {},
                 kOutputBinAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
index 9341569..f084208 100644
--- a/xfa/fxfa/parser/cxfa_overflow.cpp
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Overflow,
-                nullptr,
+                {},
                 kOverflowAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp
index f13de3a..cc91349 100644
--- a/xfa/fxfa/parser/cxfa_overprint.cpp
+++ b/xfa/fxfa/parser/cxfa_overprint.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Overprint,
-                nullptr,
+                {},
                 kOverprintAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_packet.cpp b/xfa/fxfa/parser/cxfa_packet.cpp
index 5b09f95..96938ac 100644
--- a/xfa/fxfa/parser/cxfa_packet.cpp
+++ b/xfa/fxfa/parser/cxfa_packet.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_XDP,
                 XFA_ObjectType::NodeC,
                 XFA_Element::Packet,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Packet>(this)) {}
 
 CXFA_Packet::~CXFA_Packet() = default;
diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp
index 103d372..fe3aaa4 100644
--- a/xfa/fxfa/parser/cxfa_packets.cpp
+++ b/xfa/fxfa/parser/cxfa_packets.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Packets,
-                nullptr,
+                {},
                 kPacketsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp
index 72cfa9e..7b10a01 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::PageOffset,
-                nullptr,
+                {},
                 kPageOffsetAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp
index beb45ac..6190482 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.cpp
+++ b/xfa/fxfa/parser/cxfa_pagerange.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PageRange,
-                nullptr,
+                {},
                 kPageRangeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp
index 4875558..5fe2d0b 100644
--- a/xfa/fxfa/parser/cxfa_pagination.cpp
+++ b/xfa/fxfa/parser/cxfa_pagination.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Pagination,
-                nullptr,
+                {},
                 kPaginationAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
index 29fe959..29879ca 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.cpp
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PaginationOverride,
-                nullptr,
+                {},
                 kPaginationOverrideAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp
index 6f6fdda..ee80990 100644
--- a/xfa/fxfa/parser/cxfa_part.cpp
+++ b/xfa/fxfa/parser/cxfa_part.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Part,
-                nullptr,
+                {},
                 kPartAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
index 416d4cc..9c108af 100644
--- a/xfa/fxfa/parser/cxfa_password.cpp
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::Password,
-                nullptr,
+                {},
                 kPasswordAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
index 3b707bf..3e5a83a 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PickTrayByPDFSize,
-                nullptr,
+                {},
                 kPickTrayByPDFSizeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
index c1099e9..fba8d86 100644
--- a/xfa/fxfa/parser/cxfa_picture.cpp
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -28,7 +28,7 @@
           (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
           XFA_ObjectType::ContentNode,
           XFA_Element::Picture,
-          nullptr,
+          {},
           kPictureAttributeData,
           pdfium::MakeUnique<CJX_Picture>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
index bc02594..80aae0e 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PlaintextMetadata,
-                nullptr,
+                {},
                 kPlaintextMetadataAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp
index 679d1b9..ba53c5a 100644
--- a/xfa/fxfa/parser/cxfa_presence.cpp
+++ b/xfa/fxfa/parser/cxfa_presence.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Presence,
-                nullptr,
+                {},
                 kPresenceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp
index 32966c5..a918820 100644
--- a/xfa/fxfa/parser/cxfa_print.cpp
+++ b/xfa/fxfa/parser/cxfa_print.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Print,
-                nullptr,
+                {},
                 kPrintAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp
index cdec8f5..a7c6606 100644
--- a/xfa/fxfa/parser/cxfa_printername.cpp
+++ b/xfa/fxfa/parser/cxfa_printername.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PrinterName,
-                nullptr,
+                {},
                 kPrinterNameAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp
index 2f65e3e..9e46985 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.cpp
+++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PrintHighQuality,
-                nullptr,
+                {},
                 kPrintHighQualityAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp
index 6e80fa6..9b5fffd 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.cpp
+++ b/xfa/fxfa/parser/cxfa_printscaling.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::PrintScaling,
-                nullptr,
+                {},
                 kPrintScalingAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp
index 5450360..91f4179 100644
--- a/xfa/fxfa/parser/cxfa_producer.cpp
+++ b/xfa/fxfa/parser/cxfa_producer.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Producer,
-                nullptr,
+                {},
                 kProducerAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_proto.cpp b/xfa/fxfa/parser/cxfa_proto.cpp
index 8d092a6..c59ae13 100644
--- a/xfa/fxfa/parser/cxfa_proto.cpp
+++ b/xfa/fxfa/parser/cxfa_proto.cpp
@@ -15,8 +15,8 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Proto,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_Proto::~CXFA_Proto() = default;
diff --git a/xfa/fxfa/parser/cxfa_psmap.cpp b/xfa/fxfa/parser/cxfa_psmap.cpp
index a2ae98a..12ca00b 100644
--- a/xfa/fxfa/parser/cxfa_psmap.cpp
+++ b/xfa/fxfa/parser/cxfa_psmap.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::PsMap,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_PsMap::~CXFA_PsMap() = default;
diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp
index 60f8432..0d15523 100644
--- a/xfa/fxfa/parser/cxfa_range.cpp
+++ b/xfa/fxfa/parser/cxfa_range.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Range,
-                nullptr,
+                {},
                 kRangeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
index 7c4f3fe..1f350ce 100644
--- a/xfa/fxfa/parser/cxfa_reason.cpp
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Reason,
-                nullptr,
+                {},
                 kReasonAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
index 97817be..1489874 100644
--- a/xfa/fxfa/parser/cxfa_reasons.cpp
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Reasons,
-                nullptr,
+                {},
                 kReasonsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp
index c506a1a..f3f874d 100644
--- a/xfa/fxfa/parser/cxfa_record.cpp
+++ b/xfa/fxfa/parser/cxfa_record.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Record,
-                nullptr,
+                {},
                 kRecordAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
index a33b9b5..997e624 100644
--- a/xfa/fxfa/parser/cxfa_recordset.cpp
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -37,7 +37,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::Node,
                 XFA_Element::RecordSet,
-                nullptr,
+                {},
                 kRecordSetAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index 654ab23..e938336 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -46,8 +46,8 @@
                                uint32_t validPackets,
                                XFA_ObjectType oType,
                                XFA_Element eType,
-                               const PropertyData* properties,
-                               const AttributeData* attributes,
+                               pdfium::span<const PropertyData> properties,
+                               pdfium::span<const AttributeData> attributes,
                                std::unique_ptr<CJX_Object> js_node)
     : CXFA_Box(pDoc,
                ePacket,
diff --git a/xfa/fxfa/parser/cxfa_rectangle.h b/xfa/fxfa/parser/cxfa_rectangle.h
index e2405a0..6d17471 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.h
+++ b/xfa/fxfa/parser/cxfa_rectangle.h
@@ -32,8 +32,8 @@
                  uint32_t validPackets,
                  XFA_ObjectType oType,
                  XFA_Element eType,
-                 const PropertyData* properties,
-                 const AttributeData* attributes,
+                 pdfium::span<const PropertyData> properties,
+                 pdfium::span<const AttributeData> attributes,
                  std::unique_ptr<CJX_Object> js_node);
 
  private:
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
index f28b15d..fb9349d 100644
--- a/xfa/fxfa/parser/cxfa_ref.cpp
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -25,7 +25,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Ref,
-                nullptr,
+                {},
                 kRefAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp
index 7b852b1..8ad1ab8 100644
--- a/xfa/fxfa/parser/cxfa_relevant.cpp
+++ b/xfa/fxfa/parser/cxfa_relevant.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Relevant,
-                nullptr,
+                {},
                 kRelevantAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp
index 628848c..d14e6d7 100644
--- a/xfa/fxfa/parser/cxfa_rename.cpp
+++ b/xfa/fxfa/parser/cxfa_rename.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Rename,
-                nullptr,
+                {},
                 kRenameAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
index 655f845..7be4fb7 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::RenderPolicy,
-                nullptr,
+                {},
                 kRenderPolicyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
index 266d075..740988b 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.cpp
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::RootElement,
-                nullptr,
+                {},
                 kRootElementAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp
index ee3d8f2..ba05e32 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.cpp
+++ b/xfa/fxfa/parser/cxfa_runscripts.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::RunScripts,
-                nullptr,
+                {},
                 kRunScriptsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
index 06eab73..f61218a 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.cpp
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::ScriptModel,
-                nullptr,
+                {},
                 kScriptModelAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
index 537155b..3f6227b 100644
--- a/xfa/fxfa/parser/cxfa_select.cpp
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::Select,
-                nullptr,
+                {},
                 kSelectAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
index 2389888..5322e7b 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.cpp
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -25,7 +25,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::SetProperty,
-                nullptr,
+                {},
                 kSetPropertyAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp
index a16a627..a907791 100644
--- a/xfa/fxfa/parser/cxfa_severity.cpp
+++ b/xfa/fxfa/parser/cxfa_severity.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Severity,
-                nullptr,
+                {},
                 kSeverityAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp
index 442e8d4..f7e184d 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.cpp
+++ b/xfa/fxfa/parser/cxfa_sharptext.cpp
@@ -25,7 +25,7 @@
                  XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeV,
                 XFA_Element::Sharptext,
-                nullptr,
+                {},
                 kSharptextAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
index df1179d..ba63823 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
@@ -25,7 +25,7 @@
                  XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeV,
                 XFA_Element::SharpxHTML,
-                nullptr,
+                {},
                 kSharpxHTMLAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp
index 5d119ef..ee6ec2d 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp
@@ -23,7 +23,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeV,
                 XFA_Element::Sharpxml,
-                nullptr,
+                {},
                 kSharpxmlAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
index 5da3bc8..b2732a5 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -25,7 +25,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::SignatureProperties,
-                nullptr,
+                {},
                 kSignaturePropertiesAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
index 68525cc..23457c6 100644
--- a/xfa/fxfa/parser/cxfa_signing.cpp
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::Signing,
-                nullptr,
+                {},
                 kSigningAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
index 416a1a2..4f60856 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::SoapAction,
-                nullptr,
+                {},
                 kSoapActionAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
index 83dcda3..b37d000 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::SoapAddress,
-                nullptr,
+                {},
                 kSoapAddressAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
index 91be852..6a50635 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.cpp
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::ModelNode,
                 XFA_Element::SourceSet,
-                nullptr,
+                {},
                 kSourceSetAttributeData,
                 pdfium::MakeUnique<CJX_Model>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
index 24d7fac..9e37ac6 100644
--- a/xfa/fxfa/parser/cxfa_speak.cpp
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -29,7 +29,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Speak,
-                nullptr,
+                {},
                 kSpeakAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp
index b3a8684..6cf0092 100644
--- a/xfa/fxfa/parser/cxfa_staple.cpp
+++ b/xfa/fxfa/parser/cxfa_staple.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Staple,
-                nullptr,
+                {},
                 kStapleAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp
index 0ff7f38..5dbcbee 100644
--- a/xfa/fxfa/parser/cxfa_startnode.cpp
+++ b/xfa/fxfa/parser/cxfa_startnode.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::StartNode,
-                nullptr,
+                {},
                 kStartNodeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp
index 3908aad..4546d2e 100644
--- a/xfa/fxfa/parser/cxfa_startpage.cpp
+++ b/xfa/fxfa/parser/cxfa_startpage.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::StartPage,
-                nullptr,
+                {},
                 kStartPageAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_stroke.cpp b/xfa/fxfa/parser/cxfa_stroke.cpp
index cfce0ff..65301c0 100644
--- a/xfa/fxfa/parser/cxfa_stroke.cpp
+++ b/xfa/fxfa/parser/cxfa_stroke.cpp
@@ -66,8 +66,8 @@
                          uint32_t validPackets,
                          XFA_ObjectType oType,
                          XFA_Element eType,
-                         const PropertyData* properties,
-                         const AttributeData* attributes,
+                         pdfium::span<const PropertyData> properties,
+                         pdfium::span<const AttributeData> attributes,
                          std::unique_ptr<CJX_Object> js_node)
     : CXFA_Node(pDoc,
                 ePacket,
diff --git a/xfa/fxfa/parser/cxfa_stroke.h b/xfa/fxfa/parser/cxfa_stroke.h
index 3854673..c87bc50 100644
--- a/xfa/fxfa/parser/cxfa_stroke.h
+++ b/xfa/fxfa/parser/cxfa_stroke.h
@@ -56,8 +56,8 @@
               uint32_t validPackets,
               XFA_ObjectType oType,
               XFA_Element eType,
-              const PropertyData* properties,
-              const AttributeData* attributes,
+              pdfium::span<const PropertyData> properties,
+              pdfium::span<const AttributeData> attributes,
               std::unique_ptr<CJX_Object> js_node);
 };
 
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
index 23e1259..48d9929 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::NodeC,
                 XFA_Element::SubjectDN,
-                nullptr,
+                {},
                 kSubjectDNAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
index ed4af2a..49858e5 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -27,7 +27,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::SubjectDNs,
-                nullptr,
+                {},
                 kSubjectDNsAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp
index de295f6..5609da1 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.cpp
+++ b/xfa/fxfa/parser/cxfa_submitformat.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SubmitFormat,
-                nullptr,
+                {},
                 kSubmitFormatAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp
index fdda3cd..8f6ddbc 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.cpp
+++ b/xfa/fxfa/parser/cxfa_submiturl.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SubmitUrl,
-                nullptr,
+                {},
                 kSubmitUrlAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
index 036ff68..d634649 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.cpp
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SubsetBelow,
-                nullptr,
+                {},
                 kSubsetBelowAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
index 64b262c..2ec1cda 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.cpp
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::SuppressBanner,
-                nullptr,
+                {},
                 kSuppressBannerAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp
index 461ac8a..621ac61 100644
--- a/xfa/fxfa/parser/cxfa_tagged.cpp
+++ b/xfa/fxfa/parser/cxfa_tagged.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Tagged,
-                nullptr,
+                {},
                 kTaggedAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp
index 0637adf..bf01f1f 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.cpp
+++ b/xfa/fxfa/parser/cxfa_templatecache.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::TemplateCache,
-                nullptr,
+                {},
                 kTemplateCacheAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
index 6b882ef..dc6a540 100644
--- a/xfa/fxfa/parser/cxfa_text.cpp
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -29,7 +29,7 @@
                  XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Text,
-                nullptr,
+                {},
                 kTextAttributeData,
                 pdfium::MakeUnique<CJX_Text>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp
index d37f648..5f69bc2 100644
--- a/xfa/fxfa/parser/cxfa_threshold.cpp
+++ b/xfa/fxfa/parser/cxfa_threshold.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Threshold,
-                nullptr,
+                {},
                 kThresholdAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
index 41cd86a..77b519a 100644
--- a/xfa/fxfa/parser/cxfa_time.cpp
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Time,
-                nullptr,
+                {},
                 kTimeAttributeData,
                 pdfium::MakeUnique<CJX_Time>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp
index a4ebf1a..287c8d9 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_timepattern.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::TimePattern,
-                nullptr,
+                {},
                 kTimePatternAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.cpp b/xfa/fxfa/parser/cxfa_timepatterns.cpp
index 2d3a653..475d259 100644
--- a/xfa/fxfa/parser/cxfa_timepatterns.cpp
+++ b/xfa/fxfa/parser/cxfa_timepatterns.cpp
@@ -24,7 +24,7 @@
                 XFA_ObjectType::Node,
                 XFA_Element::TimePatterns,
                 kTimePatternsPropertyData,
-                nullptr,
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_TimePatterns::~CXFA_TimePatterns() = default;
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
index c0feda4..d47f184 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.cpp
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::Node,
                 XFA_Element::TimeStamp,
-                nullptr,
+                {},
                 kTimeStampAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp
index b9c585f..ef42cf3 100644
--- a/xfa/fxfa/parser/cxfa_to.cpp
+++ b/xfa/fxfa/parser/cxfa_to.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::To,
-                nullptr,
+                {},
                 kToAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
index d0060ba..861afe8 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.cpp
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -26,7 +26,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::TextNode,
                 XFA_Element::ToolTip,
-                nullptr,
+                {},
                 kToolTipAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp
index 62cae45..5a9c32c 100644
--- a/xfa/fxfa/parser/cxfa_trace.cpp
+++ b/xfa/fxfa/parser/cxfa_trace.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::Trace,
-                nullptr,
+                {},
                 kTraceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp
index 0522fc9..5f82856 100644
--- a/xfa/fxfa/parser/cxfa_type.cpp
+++ b/xfa/fxfa/parser/cxfa_type.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Type,
-                nullptr,
+                {},
                 kTypeAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp
index 3e38202..05f6307 100644
--- a/xfa/fxfa/parser/cxfa_typeface.cpp
+++ b/xfa/fxfa/parser/cxfa_typeface.cpp
@@ -23,7 +23,7 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::Typeface,
-                nullptr,
+                {},
                 kTypefaceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_typefaces.cpp b/xfa/fxfa/parser/cxfa_typefaces.cpp
index 6bf1fab..dfc35e0 100644
--- a/xfa/fxfa/parser/cxfa_typefaces.cpp
+++ b/xfa/fxfa/parser/cxfa_typefaces.cpp
@@ -15,8 +15,8 @@
                 XFA_XDPPACKET_LocaleSet,
                 XFA_ObjectType::Node,
                 XFA_Element::Typefaces,
-                nullptr,
-                nullptr,
+                {},
+                {},
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
 CXFA_Typefaces::~CXFA_Typefaces() = default;
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
index 2949b6d..85df9aa 100644
--- a/xfa/fxfa/parser/cxfa_update.cpp
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::Update,
-                nullptr,
+                {},
                 kUpdateAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
index a5d40fc..1f7f165 100644
--- a/xfa/fxfa/parser/cxfa_uri.cpp
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -28,7 +28,7 @@
                 (XFA_XDPPACKET_Config | XFA_XDPPACKET_ConnectionSet),
                 XFA_ObjectType::TextNode,
                 XFA_Element::Uri,
-                nullptr,
+                {},
                 kUriAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
index d8f4f76..fde642d 100644
--- a/xfa/fxfa/parser/cxfa_user.cpp
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_SourceSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::User,
-                nullptr,
+                {},
                 kUserAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
index 8fb5702..7a73399 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::ValidateApprovalSignatures,
-                nullptr,
+                {},
                 kValidateApprovalSignaturesAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
index d7d0db5..05a84c3 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.cpp
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
@@ -25,7 +25,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::ValidationMessaging,
-                nullptr,
+                {},
                 kValidationMessagingAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
index e7ac943..21a1ea3 100644
--- a/xfa/fxfa/parser/cxfa_variables.cpp
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -25,7 +25,7 @@
                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
                 XFA_ObjectType::ContainerNode,
                 XFA_Element::Variables,
-                nullptr,
+                {},
                 kVariablesAttributeData,
                 pdfium::MakeUnique<CJX_Container>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp
index 11ae256..d3972c9 100644
--- a/xfa/fxfa/parser/cxfa_version.cpp
+++ b/xfa/fxfa/parser/cxfa_version.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::ContentNode,
                 XFA_Element::Version,
-                nullptr,
+                {},
                 kVersionAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
index f600223..9233bb0 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.cpp
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
@@ -30,7 +30,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::Node,
                 XFA_Element::VersionControl,
-                nullptr,
+                {},
                 kVersionControlAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp
index d6dc5fe..36248c9 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.cpp
+++ b/xfa/fxfa/parser/cxfa_whitespace.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Whitespace,
-                nullptr,
+                {},
                 kWhitespaceAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp
index 6f01fcb..52b1ce9 100644
--- a/xfa/fxfa/parser/cxfa_window.cpp
+++ b/xfa/fxfa/parser/cxfa_window.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_Config,
                 XFA_ObjectType::NodeV,
                 XFA_Element::Window,
-                nullptr,
+                {},
                 kWindowAttributeData,
                 pdfium::MakeUnique<CJX_Node>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
index f872801..2b4cd43 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -26,7 +26,7 @@
                 XFA_XDPPACKET_ConnectionSet,
                 XFA_ObjectType::TextNode,
                 XFA_Element::WsdlAddress,
-                nullptr,
+                {},
                 kWsdlAddressAttributeData,
                 pdfium::MakeUnique<CJX_TextNode>(this)) {}
 
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
index 00b2320..78448dd8 100644
--- a/xfa/fxfa/parser/cxfa_xfa.cpp
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -24,7 +24,7 @@
                 XFA_XDPPACKET_XDP,
                 XFA_ObjectType::ModelNode,
                 XFA_Element::Xfa,
-                nullptr,
+                {},
                 kXfaAttributeData,
                 pdfium::MakeUnique<CJX_Xfa>(this)) {}