diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-11-30 20:21:00 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-11-30 20:21:00 +0000 |
commit | 5fda35f2b0a658e310f778c2dc40ef24e6d05975 (patch) | |
tree | 3daddbde21cef2a9aa3aa2827a1c34ef06ad6a85 | |
parent | 0be087619a60b8bc6e2ed2e14c54f67aa8e963e4 (diff) | |
download | pdfium-5fda35f2b0a658e310f778c2dc40ef24e6d05975.tar.xz |
Generate XFA node attribute information
This CL moves the attribute information out of the xfa basic data array
and stores in the generated nodes.
Change-Id: Id8e280324bf0f75a1da9c937c2734d161324242d
Reviewed-on: https://pdfium-review.googlesource.com/19271
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
301 files changed, 5472 insertions, 1910 deletions
@@ -2515,7 +2515,6 @@ if (pdf_enable_xfa) { "xfa/fxfa/parser/cxfa_zpl.cpp", "xfa/fxfa/parser/cxfa_zpl.h", "xfa/fxfa/parser/xfa_basic_data.h", - "xfa/fxfa/parser/xfa_basic_data_attributes.cpp", "xfa/fxfa/parser/xfa_basic_data_element_script.cpp", "xfa/fxfa/parser/xfa_basic_data_enum.cpp", "xfa/fxfa/parser/xfa_basic_data_packets.cpp", diff --git a/fxjs/cjx_node.cpp b/fxjs/cjx_node.cpp index e81a239578..fe1612d022 100644 --- a/fxjs/cjx_node.cpp +++ b/fxjs/cjx_node.cpp @@ -197,7 +197,7 @@ bool CJX_Node::SetAttribute(XFA_Attribute eAttr, return SetEnum( eAttr, pEnum ? pEnum->eName : *(GetXFANode()->GetDefaultEnum(eAttr)), bNotify); - } break; + } case XFA_AttributeType::CData: return SetCData(eAttr, WideString(wsValue), bNotify, false); case XFA_AttributeType::Boolean: diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp index f70b6b952c..16bde8e456 100644 --- a/xfa/fxfa/cxfa_widgetacc.cpp +++ b/xfa/fxfa/cxfa_widgetacc.cpp @@ -1260,7 +1260,8 @@ bool CXFA_WidgetAcc::FindSplitPos(int32_t iBlockIndex, float& fCalcHeight) { XFA_ATTRIBUTEENUM eLayoutMode = GetNode() ->GetNodeItem(XFA_NODEITEM_Parent) ->JSNode() - ->GetEnum(XFA_Attribute::Layout); + ->TryEnum(XFA_Attribute::Layout, true) + .value_or(XFA_ATTRIBUTEENUM_Position); if ((eLayoutMode == XFA_ATTRIBUTEENUM_Position || eLayoutMode == XFA_ATTRIBUTEENUM_Tb || eLayoutMode == XFA_ATTRIBUTEENUM_Row || diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h index 65bd8e3b92..b8e35746d6 100644 --- a/xfa/fxfa/fxfa_basic.h +++ b/xfa/fxfa/fxfa_basic.h @@ -618,7 +618,6 @@ enum class XFA_Attribute : uint8_t { Intact, XdpContent, DecipherOnly, - LastAttributePlaceholder, Unknown = 255, }; @@ -940,7 +939,6 @@ enum class XFA_Element : int32_t { }; enum class XFA_AttributeType : uint8_t { - NotSure, Enum, CData, Boolean, @@ -948,15 +946,6 @@ enum class XFA_AttributeType : uint8_t { Measure, }; -struct XFA_ATTRIBUTEINFO { - uint32_t uHash; - const wchar_t* pName; - XFA_Attribute eName; - XFA_AttributeType eType; - uint32_t dwPackets; - void* pDefValue; -}; - struct XFA_SCRIPTHIERARCHY { uint16_t wMethodStart; uint16_t wMethodCount; @@ -987,13 +976,6 @@ enum class XFA_Unit : uint8_t { Unknown = 255, }; -struct XFA_NOTSUREATTRIBUTE { - XFA_Element eElement; - XFA_Attribute attribute; - XFA_AttributeType eType; - void* pValue; -}; - typedef void (CJX_Object::*XFA_METHOD_CALLBACK)(CFXJSE_Arguments* pArguments); struct XFA_METHODINFO { diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp index 8f8ca30abd..8c5bd8e47a 100644 --- a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp +++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"accessibleContent"; diff --git a/xfa/fxfa/parser/cxfa_acrobat.cpp b/xfa/fxfa/parser/cxfa_acrobat.cpp index 8a0fcf4754..63358ad908 100644 --- a/xfa/fxfa/parser/cxfa_acrobat.cpp +++ b/xfa/fxfa/parser/cxfa_acrobat.cpp @@ -15,8 +15,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Acrobat7, 1, 0}, {XFA_Element::Common, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"acrobat"; diff --git a/xfa/fxfa/parser/cxfa_acrobat7.cpp b/xfa/fxfa/parser/cxfa_acrobat7.cpp index 6fa7a8bc10..d25e898c44 100644 --- a/xfa/fxfa/parser/cxfa_acrobat7.cpp +++ b/xfa/fxfa/parser/cxfa_acrobat7.cpp @@ -11,8 +11,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::DynamicRender, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"acrobat7"; diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp index 797076a94b..3ce756fc7f 100644 --- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp +++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"ADBE_JSConsole"; diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp index bbd012341e..46a3956291 100644 --- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp +++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"ADBE_JSDebugger"; diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp index da9e47a902..ed48cf9c05 100644 --- a/xfa/fxfa/parser/cxfa_addsilentprint.cpp +++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"addSilentPrint"; diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp index 2311dc97d6..4fb1aecb05 100644 --- a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp +++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"addViewerPreferences"; diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp index cbfb8f3212..d665f28e20 100644 --- a/xfa/fxfa/parser/cxfa_adjustdata.cpp +++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"adjustData"; diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp index 781f588a35..3c36ff0712 100644 --- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp +++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"adobeExtensionLevel"; diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp index 2794bae6df..622d30d817 100644 --- a/xfa/fxfa/parser/cxfa_agent.cpp +++ b/xfa/fxfa/parser/cxfa_agent.cpp @@ -8,9 +8,17 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"agent"; diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp index 098a491968..26b3eb7013 100644 --- a/xfa/fxfa/parser/cxfa_alwaysembed.cpp +++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"alwaysEmbed"; diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp index c92dd3972a..3bc0846e7b 100644 --- a/xfa/fxfa/parser/cxfa_amd.cpp +++ b/xfa/fxfa/parser/cxfa_amd.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"amd"; diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp index ef2c4149bf..46c15c08ad 100644 --- a/xfa/fxfa/parser/cxfa_appearancefilter.cpp +++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"appearanceFilter"; diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp index fbcc088bb4..2451025bd1 100644 --- a/xfa/fxfa/parser/cxfa_arc.cpp +++ b/xfa/fxfa/parser/cxfa_arc.cpp @@ -11,11 +11,29 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0}, {XFA_Element::Fill, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::StartAngle, XFA_Attribute::SweepAngle, - XFA_Attribute::Circular, XFA_Attribute::Usehref, - XFA_Attribute::Hand, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::StartAngle, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::SweepAngle, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)360}, + {XFA_Attribute::Circular, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Hand, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Even}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"arc"; diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp index 23a0bbea0c..b1a8f81db0 100644 --- a/xfa/fxfa/parser/cxfa_area.cpp +++ b/xfa/fxfa/parser/cxfa_area.cpp @@ -11,11 +11,39 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::X, XFA_Attribute::Y, XFA_Attribute::Id, - XFA_Attribute::Name, XFA_Attribute::Use, XFA_Attribute::Level, - XFA_Attribute::Relevant, XFA_Attribute::ColSpan, XFA_Attribute::Usehref, - XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Level, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"area"; diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp index 2780e7a3a0..e6e48b0612 100644 --- a/xfa/fxfa/parser/cxfa_assist.cpp +++ b/xfa/fxfa/parser/cxfa_assist.cpp @@ -11,9 +11,22 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::ToolTip, 1, 0}, {XFA_Element::Speak, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Role, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Role, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"assist"; diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp index d0bbfa6f7c..8a8e5c1e51 100644 --- a/xfa/fxfa/parser/cxfa_attributes.cpp +++ b/xfa/fxfa/parser/cxfa_attributes.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"attributes"; diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp index 5719b1dda8..d30225758f 100644 --- a/xfa/fxfa/parser/cxfa_autosave.cpp +++ b/xfa/fxfa/parser/cxfa_autosave.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"autoSave"; diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp index 1abbbe4edb..a6604e6c7f 100644 --- a/xfa/fxfa/parser/cxfa_barcode.cpp +++ b/xfa/fxfa/parser/cxfa_barcode.cpp @@ -8,28 +8,60 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::DataRowCount, - XFA_Attribute::Use, - XFA_Attribute::DataPrep, - XFA_Attribute::Type, - XFA_Attribute::TextLocation, - XFA_Attribute::ModuleWidth, - XFA_Attribute::PrintCheckDigit, - XFA_Attribute::ModuleHeight, - XFA_Attribute::StartChar, - XFA_Attribute::Truncate, - XFA_Attribute::WideNarrowRatio, - XFA_Attribute::ErrorCorrectionLevel, - XFA_Attribute::UpsMode, - XFA_Attribute::Checksum, - XFA_Attribute::CharEncoding, - XFA_Attribute::Usehref, - XFA_Attribute::DataColumnCount, - XFA_Attribute::RowColumnRatio, - XFA_Attribute::DataLength, - XFA_Attribute::EndChar, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataRowCount, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataPrep, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Type, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)nullptr}, + {XFA_Attribute::TextLocation, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Below}, + {XFA_Attribute::ModuleWidth, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.25mm"}, + {XFA_Attribute::PrintCheckDigit, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::ModuleHeight, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"5mm"}, + {XFA_Attribute::StartChar, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Truncate, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::WideNarrowRatio, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"3:1"}, + {XFA_Attribute::ErrorCorrectionLevel, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::UpsMode, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_UsCarrier}, + {XFA_Attribute::Checksum, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::CharEncoding, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"UTF-8"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataColumnCount, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::RowColumnRatio, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::DataLength, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::EndChar, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"barcode"; diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp index c59b63b0dc..8f0b847703 100644 --- a/xfa/fxfa/parser/cxfa_base.cpp +++ b/xfa/fxfa/parser/cxfa_base.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"base"; diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp index ee399eae89..63cab9d3d7 100644 --- a/xfa/fxfa/parser/cxfa_batchoutput.cpp +++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp @@ -8,9 +8,15 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Format, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Format, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"batchOutput"; diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp index 8a74a8a216..abff3f75ec 100644 --- a/xfa/fxfa/parser/cxfa_behavioroverride.cpp +++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"behaviorOverride"; diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp index dde162f382..aa820b72b6 100644 --- a/xfa/fxfa/parser/cxfa_bind.cpp +++ b/xfa/fxfa/parser/cxfa_bind.cpp @@ -10,12 +10,39 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Ref, XFA_Attribute::Use, - XFA_Attribute::ContentType, XFA_Attribute::TransferEncoding, - XFA_Attribute::Usehref, XFA_Attribute::Match, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ContentType, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Match, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Once}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"bind"; diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp index fd012035e4..dff27ab3ca 100644 --- a/xfa/fxfa/parser/cxfa_binditems.cpp +++ b/xfa/fxfa/parser/cxfa_binditems.cpp @@ -8,9 +8,18 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Ref, XFA_Attribute::Connection, XFA_Attribute::LabelRef, - XFA_Attribute::ValueRef, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Connection, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::LabelRef, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::ValueRef, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"bindItems"; diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp index 6c8f6b54db..a63640f469 100644 --- a/xfa/fxfa/parser/cxfa_bookend.cpp +++ b/xfa/fxfa/parser/cxfa_bookend.cpp @@ -8,9 +8,24 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Trailer, - XFA_Attribute::Usehref, XFA_Attribute::Leader, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Trailer, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Leader, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"bookend"; diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp index 22ac1214f3..fadce7509d 100644 --- a/xfa/fxfa/parser/cxfa_boolean.cpp +++ b/xfa/fxfa/parser/cxfa_boolean.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"boolean"; diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp index be206b71de..5250001f3e 100644 --- a/xfa/fxfa/parser/cxfa_border.cpp +++ b/xfa/fxfa/parser/cxfa_border.cpp @@ -12,10 +12,31 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Margin, 1, 0}, {XFA_Element::Edge, 4, 0}, {XFA_Element::Corner, 4, 0}, {XFA_Element::Fill, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Break, XFA_Attribute::Use, - XFA_Attribute::Presence, XFA_Attribute::Relevant, XFA_Attribute::Usehref, - XFA_Attribute::Hand, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Break, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Close}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Hand, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Even}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"border"; diff --git a/xfa/fxfa/parser/cxfa_boxdata.cpp b/xfa/fxfa/parser/cxfa_boxdata.cpp index ae172de5b1..6428247154 100644 --- a/xfa/fxfa/parser/cxfa_boxdata.cpp +++ b/xfa/fxfa/parser/cxfa_boxdata.cpp @@ -84,7 +84,9 @@ int32_t CXFA_BoxData::GetHand() const { int32_t CXFA_BoxData::GetPresence() const { if (!m_pNode) return XFA_ATTRIBUTEENUM_Hidden; - return m_pNode->JSNode()->GetEnum(XFA_Attribute::Presence); + return m_pNode->JSNode() + ->TryEnum(XFA_Attribute::Presence, true) + .value_or(XFA_ATTRIBUTEENUM_Visible); } int32_t CXFA_BoxData::CountEdges() const { diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp index f8c7ce0cf8..3f8a7fd7d6 100644 --- a/xfa/fxfa/parser/cxfa_break.cpp +++ b/xfa/fxfa/parser/cxfa_break.cpp @@ -10,20 +10,42 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::BeforeTarget, - XFA_Attribute::Use, - XFA_Attribute::OverflowTarget, - XFA_Attribute::OverflowLeader, - XFA_Attribute::OverflowTrailer, - XFA_Attribute::StartNew, - XFA_Attribute::BookendTrailer, - XFA_Attribute::After, - XFA_Attribute::Usehref, - XFA_Attribute::BookendLeader, - XFA_Attribute::AfterTarget, - XFA_Attribute::Before, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::BeforeTarget, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::OverflowTarget, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::OverflowLeader, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::OverflowTrailer, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::BookendTrailer, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::After, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::BookendLeader, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::AfterTarget, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Before, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"break"; diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp index 711391e46c..b46c3e2818 100644 --- a/xfa/fxfa/parser/cxfa_breakafter.cpp +++ b/xfa/fxfa/parser/cxfa_breakafter.cpp @@ -10,10 +10,31 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::StartNew, - XFA_Attribute::Trailer, XFA_Attribute::TargetType, XFA_Attribute::Usehref, - XFA_Attribute::Target, XFA_Attribute::Leader, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Trailer, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::TargetType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Target, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Leader, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"breakAfter"; diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp index fbc10c7274..4322edb025 100644 --- a/xfa/fxfa/parser/cxfa_breakbefore.cpp +++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp @@ -10,10 +10,31 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::StartNew, - XFA_Attribute::Trailer, XFA_Attribute::TargetType, XFA_Attribute::Usehref, - XFA_Attribute::Target, XFA_Attribute::Leader, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::StartNew, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Trailer, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::TargetType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Target, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Leader, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"breakBefore"; diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp index 59b1eb5937..b1fccf29e9 100644 --- a/xfa/fxfa/parser/cxfa_button.cpp +++ b/xfa/fxfa/parser/cxfa_button.cpp @@ -10,9 +10,23 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Highlight, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Highlight, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Inverted}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"button"; diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp index 4d278d34ac..3cce1b18a0 100644 --- a/xfa/fxfa/parser/cxfa_cache.cpp +++ b/xfa/fxfa/parser/cxfa_cache.cpp @@ -11,8 +11,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::TemplateCache, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"cache"; diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp index 641fa2bf1d..c9e9813c4a 100644 --- a/xfa/fxfa/parser/cxfa_calculate.cpp +++ b/xfa/fxfa/parser/cxfa_calculate.cpp @@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0}, {XFA_Element::Script, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Override, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Override, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Error}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"calculate"; diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp index 6730636f25..6f7ddef38b 100644 --- a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp +++ b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp @@ -14,8 +14,13 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::MeridiemNames, 1, 0}, {XFA_Element::MonthNames, 2, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Gregorian}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"calendarSymbols"; diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp index 195b7aacd0..a040c1f4c8 100644 --- a/xfa/fxfa/parser/cxfa_caption.cpp +++ b/xfa/fxfa/parser/cxfa_caption.cpp @@ -12,10 +12,28 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Margin, 1, 0}, {XFA_Element::Para, 1, 0}, {XFA_Element::Font, 1, 0}, {XFA_Element::Value, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Reserve, - XFA_Attribute::Presence, XFA_Attribute::Usehref, XFA_Attribute::Placement, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Reserve, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"-1un"}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Placement, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Left}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"caption"; diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp index 4983b080a7..3e54069aef 100644 --- a/xfa/fxfa/parser/cxfa_certificate.cpp +++ b/xfa/fxfa/parser/cxfa_certificate.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"certificate"; diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp index d1465b4f8c..308b0859c3 100644 --- a/xfa/fxfa/parser/cxfa_certificates.cpp +++ b/xfa/fxfa/parser/cxfa_certificates.cpp @@ -12,11 +12,27 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::KeyUsage, 1, 0}, {XFA_Element::SubjectDNs, 1, 0}, {XFA_Element::Issuers, 1, 0}, {XFA_Element::Signing, 1, 0}, {XFA_Element::Oids, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Url, - XFA_Attribute::Use, XFA_Attribute::CredentialServerPolicy, - XFA_Attribute::Usehref, XFA_Attribute::UrlPolicy, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Url, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::CredentialServerPolicy, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::UrlPolicy, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"certificates"; diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp index 491eddefe0..b3083f89dc 100644 --- a/xfa/fxfa/parser/cxfa_change.cpp +++ b/xfa/fxfa/parser/cxfa_change.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"change"; diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp index 3684c8531b..5b321f497c 100644 --- a/xfa/fxfa/parser/cxfa_checkbutton.cpp +++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp @@ -12,10 +12,30 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Border, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::AllowNeutral, - XFA_Attribute::Mark, XFA_Attribute::Shape, XFA_Attribute::Size, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::AllowNeutral, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Mark, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Default}, + {XFA_Attribute::Shape, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Square}, + {XFA_Attribute::Size, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"checkButton"; diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp index a9097a1963..42062eb57c 100644 --- a/xfa/fxfa/parser/cxfa_choicelist.cpp +++ b/xfa/fxfa/parser/cxfa_choicelist.cpp @@ -12,10 +12,28 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Border, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Open, - XFA_Attribute::CommitOn, XFA_Attribute::TextEntry, XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Open, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_UserControl}, + {XFA_Attribute::CommitOn, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Select}, + {XFA_Attribute::TextEntry, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"choiceList"; diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp index f943318a21..91defedf0a 100644 --- a/xfa/fxfa/parser/cxfa_color.cpp +++ b/xfa/fxfa/parser/cxfa_color.cpp @@ -10,9 +10,27 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::CSpace, - XFA_Attribute::Usehref, XFA_Attribute::Value, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::CSpace, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"SRGB"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Value, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"color"; diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp index 6566301af1..7cffb91d56 100644 --- a/xfa/fxfa/parser/cxfa_comb.cpp +++ b/xfa/fxfa/parser/cxfa_comb.cpp @@ -8,9 +8,22 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::NumberOfCells, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::NumberOfCells, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"comb"; diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp index 56ffabc831..82ebad29b8 100644 --- a/xfa/fxfa/parser/cxfa_command.cpp +++ b/xfa/fxfa/parser/cxfa_command.cpp @@ -13,9 +13,27 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Query, 1, 0}, {XFA_Element::Update, 1, 0}, {XFA_Element::Delete, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Timeout, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Timeout, XFA_AttributeType::Integer, + XFA_XDPPACKET_SourceSet, (void*)30}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"command"; diff --git a/xfa/fxfa/parser/cxfa_common.cpp b/xfa/fxfa/parser/cxfa_common.cpp index 829c00c595..f9bda6c32e 100644 --- a/xfa/fxfa/parser/cxfa_common.cpp +++ b/xfa/fxfa/parser/cxfa_common.cpp @@ -18,8 +18,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Data, 1, 0}, {XFA_Element::Messaging, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"common"; diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp index 31a15dfaf2..2e06abe1ad 100644 --- a/xfa/fxfa/parser/cxfa_compress.cpp +++ b/xfa/fxfa/parser/cxfa_compress.cpp @@ -8,9 +8,15 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Scope, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Scope, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_ImageOnly}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"compress"; diff --git a/xfa/fxfa/parser/cxfa_compression.cpp b/xfa/fxfa/parser/cxfa_compression.cpp index 305670b7d4..46ab7a07cf 100644 --- a/xfa/fxfa/parser/cxfa_compression.cpp +++ b/xfa/fxfa/parser/cxfa_compression.cpp @@ -14,8 +14,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::CompressObjectStream, 1, 0}, {XFA_Element::CompressLogicalStructure, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"compression"; diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp index 92e9e4f8bc..b79f333786 100644 --- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp +++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"compressLogicalStructure"; diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp index 7e51772ff1..c9804240ed 100644 --- a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp +++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"compressObjectStream"; diff --git a/xfa/fxfa/parser/cxfa_config.cpp b/xfa/fxfa/parser/cxfa_config.cpp index 5e02534804..3b7dd9de6e 100644 --- a/xfa/fxfa/parser/cxfa_config.cpp +++ b/xfa/fxfa/parser/cxfa_config.cpp @@ -12,8 +12,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Present, 1, 0}, {XFA_Element::Acrobat, 1, 0}, {XFA_Element::Trace, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"config"; diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp index 6777473bb9..7ad8ac0221 100644 --- a/xfa/fxfa/parser/cxfa_conformance.cpp +++ b/xfa/fxfa/parser/cxfa_conformance.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"conformance"; diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp index 145eff6a50..9f33eb7a47 100644 --- a/xfa/fxfa/parser/cxfa_connect.cpp +++ b/xfa/fxfa/parser/cxfa_connect.cpp @@ -14,11 +14,38 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::User, 1, 0}, {XFA_Element::Password, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Ref, - XFA_Attribute::Use, XFA_Attribute::Timeout, XFA_Attribute::Connection, - XFA_Attribute::Usage, XFA_Attribute::Usehref, XFA_Attribute::DelayedOpen, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Timeout, XFA_AttributeType::Integer, + XFA_XDPPACKET_SourceSet, (void*)15}, + {XFA_Attribute::Connection, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usage, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_ExportAndImport}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DelayedOpen, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"connect"; diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp index 047f459fd3..1cd29cf766 100644 --- a/xfa/fxfa/parser/cxfa_connectstring.cpp +++ b/xfa/fxfa/parser/cxfa_connectstring.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"connectString"; diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp index e1537522a7..e59405015e 100644 --- a/xfa/fxfa/parser/cxfa_contentarea.cpp +++ b/xfa/fxfa/parser/cxfa_contentarea.cpp @@ -11,11 +11,37 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::H, XFA_Attribute::W, XFA_Attribute::X, - XFA_Attribute::Y, XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Use, XFA_Attribute::Relevant, XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::H, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::W, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"contentArea"; diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp index 7a3b797dec..887073dd71 100644 --- a/xfa/fxfa/parser/cxfa_contentcopy.cpp +++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"contentCopy"; diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp index 2ca087eac6..9e76df3016 100644 --- a/xfa/fxfa/parser/cxfa_copies.cpp +++ b/xfa/fxfa/parser/cxfa_copies.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"copies"; diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp index be1751b026..199aaf8ec6 100644 --- a/xfa/fxfa/parser/cxfa_corner.cpp +++ b/xfa/fxfa/parser/cxfa_corner.cpp @@ -11,11 +11,35 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Stroke, - XFA_Attribute::Presence, XFA_Attribute::Inverted, XFA_Attribute::Thickness, - XFA_Attribute::Usehref, XFA_Attribute::Join, XFA_Attribute::Radius, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Stroke, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Solid}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::Inverted, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Thickness, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.5pt"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Join, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Square}, + {XFA_Attribute::Radius, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"corner"; diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp index 4913a863e6..0b96e743db 100644 --- a/xfa/fxfa/parser/cxfa_creator.cpp +++ b/xfa/fxfa/parser/cxfa_creator.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"creator"; diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp index 170aa80b0a..0ce4e10267 100644 --- a/xfa/fxfa/parser/cxfa_currencysymbol.cpp +++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Symbol}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"currencySymbol"; diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp index 0ad8861588..fac71a9eef 100644 --- a/xfa/fxfa/parser/cxfa_currentpage.cpp +++ b/xfa/fxfa/parser/cxfa_currentpage.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"currentPage"; diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp index 2e7d4c7369..1b81b85672 100644 --- a/xfa/fxfa/parser/cxfa_data.cpp +++ b/xfa/fxfa/parser/cxfa_data.cpp @@ -15,8 +15,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Window, 1, 0}, {XFA_Element::Record, 1, 0}, {XFA_Element::Range, 1, 0}, {XFA_Element::IncrementalLoad, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"data"; diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp index 3a6431cd50..33fbd80c58 100644 --- a/xfa/fxfa/parser/cxfa_datagroup.cpp +++ b/xfa/fxfa/parser/cxfa_datagroup.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dataGroup"; diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp index 542c629e49..2aa11e06c0 100644 --- a/xfa/fxfa/parser/cxfa_datavalue.cpp +++ b/xfa/fxfa/parser/cxfa_datavalue.cpp @@ -8,9 +8,26 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::ContentType, XFA_Attribute::Contains, - XFA_Attribute::Value, XFA_Attribute::IsNull, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ContentType, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Contains, XFA_AttributeType::Enum, XFA_XDPPACKET_Datasets, + (void*)XFA_ATTRIBUTEENUM_Data}, + {XFA_Attribute::Value, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::IsNull, XFA_AttributeType::Boolean, XFA_XDPPACKET_Datasets, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dataValue"; diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp index 8ee447f1da..e58d8255e9 100644 --- a/xfa/fxfa/parser/cxfa_date.cpp +++ b/xfa/fxfa/parser/cxfa_date.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"date"; diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp index 17ad9fe2f7..88023a4d9a 100644 --- a/xfa/fxfa/parser/cxfa_datepattern.cpp +++ b/xfa/fxfa/parser/cxfa_datepattern.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Med}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"datePattern"; diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp index 41d9bb0eca..534d916f1a 100644 --- a/xfa/fxfa/parser/cxfa_datetime.cpp +++ b/xfa/fxfa/parser/cxfa_datetime.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dateTime"; diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp index 55fe0f6350..2cda19f9a8 100644 --- a/xfa/fxfa/parser/cxfa_datetimeedit.cpp +++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp @@ -13,12 +13,26 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Comb, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Picker, - XFA_Attribute::HScrollPolicy, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Picker, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Host}, + {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dateTimeEdit"; diff --git a/xfa/fxfa/parser/cxfa_daynames.cpp b/xfa/fxfa/parser/cxfa_daynames.cpp index 6099189964..c11df94e61 100644 --- a/xfa/fxfa/parser/cxfa_daynames.cpp +++ b/xfa/fxfa/parser/cxfa_daynames.cpp @@ -10,8 +10,10 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Day, 7, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Abbr, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, XFA_XDPPACKET_LocaleSet, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dayNames"; diff --git a/xfa/fxfa/parser/cxfa_debug.cpp b/xfa/fxfa/parser/cxfa_debug.cpp index 3b68742004..b4205652e1 100644 --- a/xfa/fxfa/parser/cxfa_debug.cpp +++ b/xfa/fxfa/parser/cxfa_debug.cpp @@ -10,8 +10,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"debug"; diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp index e9e63fa94d..38878073ec 100644 --- a/xfa/fxfa/parser/cxfa_decimal.cpp +++ b/xfa/fxfa/parser/cxfa_decimal.cpp @@ -8,11 +8,29 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Use, XFA_Attribute::FracDigits, - XFA_Attribute::Usehref, XFA_Attribute::LeadDigits, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::FracDigits, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)2}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::LeadDigits, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)-1}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"decimal"; diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp index 6ec981d239..df312f198d 100644 --- a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp +++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp @@ -8,9 +8,14 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::WritingScript, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::WritingScript, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_Asterisk}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"defaultTypeface"; diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp index 56c1d76cba..582d395aca 100644 --- a/xfa/fxfa/parser/cxfa_defaultui.cpp +++ b/xfa/fxfa/parser/cxfa_defaultui.cpp @@ -10,9 +10,20 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"defaultUi"; diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp index d0f412eaad..df0b523071 100644 --- a/xfa/fxfa/parser/cxfa_delete.cpp +++ b/xfa/fxfa/parser/cxfa_delete.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"delete"; diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp index 7f2bea6c81..2e6b6e2c44 100644 --- a/xfa/fxfa/parser/cxfa_desc.cpp +++ b/xfa/fxfa/parser/cxfa_desc.cpp @@ -15,9 +15,20 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Integer, 1, 0}, {XFA_Element::ExData, 1, 0}, {XFA_Element::Date, 1, 0}, {XFA_Element::Float, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"desc"; diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp index 5787b6b902..9badfaba7a 100644 --- a/xfa/fxfa/parser/cxfa_destination.cpp +++ b/xfa/fxfa/parser/cxfa_destination.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"destination"; diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp index a651ffa584..485d384b57 100644 --- a/xfa/fxfa/parser/cxfa_digestmethod.cpp +++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp @@ -8,9 +8,20 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"digestMethod"; diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp index 3832462020..01b999bd0d 100644 --- a/xfa/fxfa/parser/cxfa_digestmethods.cpp +++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"digestMethods"; diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp index c8b5763c27..971bf7cb9a 100644 --- a/xfa/fxfa/parser/cxfa_documentassembly.cpp +++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"documentAssembly"; diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp index f8c88e933c..6d2eea15f5 100644 --- a/xfa/fxfa/parser/cxfa_draw.cpp +++ b/xfa/fxfa/parser/cxfa_draw.cpp @@ -16,14 +16,62 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Desc, 1, 0}, {XFA_Element::Font, 1, 0}, {XFA_Element::Value, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::H, XFA_Attribute::W, XFA_Attribute::X, - XFA_Attribute::Y, XFA_Attribute::Id, XFA_Attribute::HAlign, - XFA_Attribute::Name, XFA_Attribute::Use, XFA_Attribute::Rotate, - XFA_Attribute::Presence, XFA_Attribute::VAlign, XFA_Attribute::MaxH, - XFA_Attribute::MaxW, XFA_Attribute::MinH, XFA_Attribute::MinW, - XFA_Attribute::Relevant, XFA_Attribute::ColSpan, XFA_Attribute::Usehref, - XFA_Attribute::Locale, XFA_Attribute::AnchorType, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::H, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::W, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Left}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Rotate, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::VAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top}, + {XFA_Attribute::MaxH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MaxW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Locale, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::AnchorType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_TopLeft}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"draw"; diff --git a/xfa/fxfa/parser/cxfa_driver.cpp b/xfa/fxfa/parser/cxfa_driver.cpp index f6689ef789..678c987c30 100644 --- a/xfa/fxfa/parser/cxfa_driver.cpp +++ b/xfa/fxfa/parser/cxfa_driver.cpp @@ -11,9 +11,17 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::FontInfo, 1, 0}, {XFA_Element::Xdc, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"driver"; diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp index 0dd884150a..f5e3237ad8 100644 --- a/xfa/fxfa/parser/cxfa_dsigdata.cpp +++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Value, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dSigData"; diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp index 67d898e1d9..68d4b9131e 100644 --- a/xfa/fxfa/parser/cxfa_duplexoption.cpp +++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"duplexOption"; diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp index d2e04f8610..4fac7acc7f 100644 --- a/xfa/fxfa/parser/cxfa_dynamicrender.cpp +++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"dynamicRender"; diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp index 7bfd581532..fb580d6e1a 100644 --- a/xfa/fxfa/parser/cxfa_edge.cpp +++ b/xfa/fxfa/parser/cxfa_edge.cpp @@ -11,10 +11,31 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Cap, XFA_Attribute::Use, - XFA_Attribute::Stroke, XFA_Attribute::Presence, XFA_Attribute::Thickness, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Cap, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Square}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Stroke, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Solid}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::Thickness, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.5pt"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"edge"; diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp index 457d8313f8..0a37e8e072 100644 --- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp +++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"effectiveInputPolicy"; diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp index 8c2c4743e6..1979889874 100644 --- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp +++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"effectiveOutputPolicy"; diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp index 4f550c6df1..ab153ee1ed 100644 --- a/xfa/fxfa/parser/cxfa_embed.cpp +++ b/xfa/fxfa/parser/cxfa_embed.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"embed"; diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp index 4bde179b51..36896066c4 100644 --- a/xfa/fxfa/parser/cxfa_encoding.cpp +++ b/xfa/fxfa/parser/cxfa_encoding.cpp @@ -8,9 +8,20 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encoding"; diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp index cc4ef04f8a..449b515101 100644 --- a/xfa/fxfa/parser/cxfa_encodings.cpp +++ b/xfa/fxfa/parser/cxfa_encodings.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encodings"; diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp index afcf8c96fd..14faf5110e 100644 --- a/xfa/fxfa/parser/cxfa_encrypt.cpp +++ b/xfa/fxfa/parser/cxfa_encrypt.cpp @@ -11,9 +11,24 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Certificate, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encrypt"; diff --git a/xfa/fxfa/parser/cxfa_encryption.cpp b/xfa/fxfa/parser/cxfa_encryption.cpp index 18bdea6358..74acb53de2 100644 --- a/xfa/fxfa/parser/cxfa_encryption.cpp +++ b/xfa/fxfa/parser/cxfa_encryption.cpp @@ -13,8 +13,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Encrypt, 1, 0}, {XFA_Element::Permissions, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encryption"; diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp index 10242cb1b3..f3b0a66e88 100644 --- a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp +++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encryptionLevel"; diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp index 209184c51e..1db3fcb887 100644 --- a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp +++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp @@ -8,9 +8,20 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encryptionMethod"; diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp index 7c97b560e0..93d2663499 100644 --- a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp +++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"encryptionMethods"; diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp index 4eb0d7b3d2..3abee3e73f 100644 --- a/xfa/fxfa/parser/cxfa_enforce.cpp +++ b/xfa/fxfa/parser/cxfa_enforce.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"enforce"; diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp index a1b4aa9afd..29a6794bbc 100644 --- a/xfa/fxfa/parser/cxfa_equate.cpp +++ b/xfa/fxfa/parser/cxfa_equate.cpp @@ -8,9 +8,18 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::To, XFA_Attribute::Force, XFA_Attribute::Desc, - XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::To, XFA_AttributeType::CData, XFA_XDPPACKET_Config, + nullptr}, + {XFA_Attribute::Force, XFA_AttributeType::Boolean, XFA_XDPPACKET_Config, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::From, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"equate"; diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp index 1b3458632e..f5ee3fbfe7 100644 --- a/xfa/fxfa/parser/cxfa_equaterange.cpp +++ b/xfa/fxfa/parser/cxfa_equaterange.cpp @@ -8,9 +8,18 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::To, XFA_Attribute::UnicodeRange, XFA_Attribute::Desc, - XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::To, XFA_AttributeType::CData, XFA_XDPPACKET_Config, + nullptr}, + {XFA_Attribute::UnicodeRange, XFA_AttributeType::CData, + XFA_XDPPACKET_Config, nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::From, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"equateRange"; diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp index f810da7798..d63bac0640 100644 --- a/xfa/fxfa/parser/cxfa_event.cpp +++ b/xfa/fxfa/parser/cxfa_event.cpp @@ -15,10 +15,35 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Extras, 1, 0}, {XFA_Element::Submit, 1, XFA_PROPERTYFLAG_OneOf}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Ref, - XFA_Attribute::Use, XFA_Attribute::Listen, XFA_Attribute::Usehref, - XFA_Attribute::Activity, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Listen, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_RefOnly}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Activity, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Click}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"event"; diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp index c3276df0e6..ad890dd170 100644 --- a/xfa/fxfa/parser/cxfa_exclgroup.cpp +++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp @@ -15,18 +15,66 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Caption, 1, 0}, {XFA_Element::Bind, 1, 0}, {XFA_Element::Desc, 1, 0}, {XFA_Element::Calculate, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::H, XFA_Attribute::W, - XFA_Attribute::X, XFA_Attribute::Y, - XFA_Attribute::Id, XFA_Attribute::HAlign, - XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Access, XFA_Attribute::Presence, - XFA_Attribute::VAlign, XFA_Attribute::MaxH, - XFA_Attribute::MaxW, XFA_Attribute::MinH, - XFA_Attribute::MinW, XFA_Attribute::Layout, - XFA_Attribute::Relevant, XFA_Attribute::ColSpan, - XFA_Attribute::Usehref, XFA_Attribute::AnchorType, - XFA_Attribute::AccessKey, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::H, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::W, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Left}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Access, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Open}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::VAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top}, + {XFA_Attribute::MaxH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MaxW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Layout, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Position}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::AnchorType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_TopLeft}, + {XFA_Attribute::AccessKey, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"exclGroup"; diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp index b6b0dcbec2..5b86c8b51d 100644 --- a/xfa/fxfa/parser/cxfa_exclude.cpp +++ b/xfa/fxfa/parser/cxfa_exclude.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"exclude"; diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp index d81d9ea752..89c5e2911b 100644 --- a/xfa/fxfa/parser/cxfa_excludens.cpp +++ b/xfa/fxfa/parser/cxfa_excludens.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"excludeNS"; diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp index 2792c30fe6..bbdb07c1da 100644 --- a/xfa/fxfa/parser/cxfa_exdata.cpp +++ b/xfa/fxfa/parser/cxfa_exdata.cpp @@ -8,12 +8,38 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Rid, XFA_Attribute::Use, - XFA_Attribute::ContentType, XFA_Attribute::TransferEncoding, - XFA_Attribute::Usehref, XFA_Attribute::MaxLength, - XFA_Attribute::Href, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Rid, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ContentType, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::MaxLength, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)-1}, + {XFA_Attribute::Href, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"exData"; diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp index 824fcf7ab5..75998e7b78 100644 --- a/xfa/fxfa/parser/cxfa_execute.cpp +++ b/xfa/fxfa/parser/cxfa_execute.cpp @@ -8,11 +8,28 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Connection, XFA_Attribute::RunAt, - XFA_Attribute::ExecuteType, XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Connection, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::RunAt, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Client}, + {XFA_Attribute::ExecuteType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Import}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"execute"; diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp index faa768863d..b20c67eb58 100644 --- a/xfa/fxfa/parser/cxfa_exobject.cpp +++ b/xfa/fxfa/parser/cxfa_exobject.cpp @@ -10,10 +10,33 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::CodeType, XFA_Attribute::Archive, XFA_Attribute::Usehref, - XFA_Attribute::CodeBase, XFA_Attribute::ClassId, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::CodeType, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Archive, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::CodeBase, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::ClassId, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"exObject"; diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp index 5ef6fc33e8..5a378131bc 100644 --- a/xfa/fxfa/parser/cxfa_extras.cpp +++ b/xfa/fxfa/parser/cxfa_extras.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"extras"; diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp index ec4e4293a6..d928b9a3bb 100644 --- a/xfa/fxfa/parser/cxfa_field.cpp +++ b/xfa/fxfa/parser/cxfa_field.cpp @@ -18,19 +18,67 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Font, 1, 0}, {XFA_Element::Value, 1, 0}, {XFA_Element::Calculate, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Items, 2, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::H, XFA_Attribute::W, - XFA_Attribute::X, XFA_Attribute::Y, - XFA_Attribute::Id, XFA_Attribute::HAlign, - XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Access, XFA_Attribute::Rotate, - XFA_Attribute::Presence, XFA_Attribute::VAlign, - XFA_Attribute::MaxH, XFA_Attribute::MaxW, - XFA_Attribute::MinH, XFA_Attribute::MinW, - XFA_Attribute::Relevant, XFA_Attribute::ColSpan, - XFA_Attribute::Usehref, XFA_Attribute::Locale, - XFA_Attribute::AnchorType, XFA_Attribute::AccessKey, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::H, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::W, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Left}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Access, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Open}, + {XFA_Attribute::Rotate, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::VAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top}, + {XFA_Attribute::MaxH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MaxW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Locale, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::AnchorType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_TopLeft}, + {XFA_Attribute::AccessKey, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"field"; diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp index 6ea5c7e092..458a1a14c0 100644 --- a/xfa/fxfa/parser/cxfa_fill.cpp +++ b/xfa/fxfa/parser/cxfa_fill.cpp @@ -18,9 +18,23 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Extras, 1, 0}, {XFA_Element::Radial, 1, XFA_PROPERTYFLAG_OneOf}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Presence, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"fill"; diff --git a/xfa/fxfa/parser/cxfa_filldata.cpp b/xfa/fxfa/parser/cxfa_filldata.cpp index 0bbb36a891..dce743e72d 100644 --- a/xfa/fxfa/parser/cxfa_filldata.cpp +++ b/xfa/fxfa/parser/cxfa_filldata.cpp @@ -13,8 +13,9 @@ CXFA_FillData::CXFA_FillData(CXFA_Node* pNode) : CXFA_DataData(pNode) {} CXFA_FillData::~CXFA_FillData() {} bool CXFA_FillData::IsVisible() const { - return m_pNode->JSNode()->GetEnum(XFA_Attribute::Presence) == - XFA_ATTRIBUTEENUM_Visible; + return m_pNode->JSNode() + ->TryEnum(XFA_Attribute::Presence, true) + .value_or(XFA_ATTRIBUTEENUM_Visible) == XFA_ATTRIBUTEENUM_Visible; } void CXFA_FillData::SetColor(FX_ARGB color) { diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp index 09c604d5e9..b045d75413 100644 --- a/xfa/fxfa/parser/cxfa_filter.cpp +++ b/xfa/fxfa/parser/cxfa_filter.cpp @@ -14,11 +14,29 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::DigestMethods, 1, 0}, {XFA_Element::Encodings, 1, 0}, {XFA_Element::Reasons, 1, 0}, {XFA_Element::AppearanceFilter, 1, 0}, {XFA_Element::LockDocument, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Use, XFA_Attribute::Version, - XFA_Attribute::Usehref, XFA_Attribute::AddRevocationInfo, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Version, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::AddRevocationInfo, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"filter"; diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp index a959db2a9c..54a303096c 100644 --- a/xfa/fxfa/parser/cxfa_fliplabel.cpp +++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"flipLabel"; diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp index 9736ada7e9..6e7f16136f 100644 --- a/xfa/fxfa/parser/cxfa_float.cpp +++ b/xfa/fxfa/parser/cxfa_float.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"float"; diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp index aeeabe6865..f6033461f2 100644 --- a/xfa/fxfa/parser/cxfa_font.cpp +++ b/xfa/fxfa/parser/cxfa_font.cpp @@ -11,27 +11,58 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Fill, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::LineThrough, - XFA_Attribute::Typeface, - XFA_Attribute::FontHorizontalScale, - XFA_Attribute::Use, - XFA_Attribute::KerningMode, - XFA_Attribute::Underline, - XFA_Attribute::BaselineShift, - XFA_Attribute::OverlinePeriod, - XFA_Attribute::LetterSpacing, - XFA_Attribute::LineThroughPeriod, - XFA_Attribute::FontVerticalScale, - XFA_Attribute::PsName, - XFA_Attribute::Size, - XFA_Attribute::Posture, - XFA_Attribute::Usehref, - XFA_Attribute::Weight, - XFA_Attribute::UnderlinePeriod, - XFA_Attribute::Overline, - XFA_Attribute::GenericFamily, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::LineThrough, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Typeface, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"Courier"}, + {XFA_Attribute::FontHorizontalScale, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"100%"}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::KerningMode, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Underline, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::BaselineShift, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::OverlinePeriod, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All}, + {XFA_Attribute::LetterSpacing, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::LineThroughPeriod, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All}, + {XFA_Attribute::FontVerticalScale, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"100%"}, + {XFA_Attribute::PsName, XFA_AttributeType::CData, XFA_XDPPACKET_Config, + nullptr}, + {XFA_Attribute::Size, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"}, + {XFA_Attribute::Posture, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Normal}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Weight, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Normal}, + {XFA_Attribute::UnderlinePeriod, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All}, + {XFA_Attribute::Overline, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::GenericFamily, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_Serif}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"font"; diff --git a/xfa/fxfa/parser/cxfa_fontinfo.cpp b/xfa/fxfa/parser/cxfa_fontinfo.cpp index 508f09a41e..fb88b24cda 100644 --- a/xfa/fxfa/parser/cxfa_fontinfo.cpp +++ b/xfa/fxfa/parser/cxfa_fontinfo.cpp @@ -13,8 +13,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Map, 1, 0}, {XFA_Element::Embed, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"fontInfo"; diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp index a42291f663..e7d75e0161 100644 --- a/xfa/fxfa/parser/cxfa_form.cpp +++ b/xfa/fxfa/parser/cxfa_form.cpp @@ -8,8 +8,11 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Checksum, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Checksum, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form, + (void*)nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"form"; diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp index 2810826282..2cc8e16cae 100644 --- a/xfa/fxfa/parser/cxfa_format.cpp +++ b/xfa/fxfa/parser/cxfa_format.cpp @@ -11,9 +11,20 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"format"; diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp index bb76fcd6ae..3d3f4e79fc 100644 --- a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp +++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"formFieldFilling"; diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp index 2987a3792e..2c2bc6bf8f 100644 --- a/xfa/fxfa/parser/cxfa_groupparent.cpp +++ b/xfa/fxfa/parser/cxfa_groupparent.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"groupParent"; diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp index 183915aa4a..a51ae2a867 100644 --- a/xfa/fxfa/parser/cxfa_handler.cpp +++ b/xfa/fxfa/parser/cxfa_handler.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"handler"; diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp index 0a3300c456..543a6c91f2 100644 --- a/xfa/fxfa/parser/cxfa_hyphenation.cpp +++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp @@ -8,16 +8,32 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Use, - XFA_Attribute::WordCharacterCount, - XFA_Attribute::Hyphenate, - XFA_Attribute::ExcludeInitialCap, - XFA_Attribute::PushCharacterCount, - XFA_Attribute::RemainCharacterCount, - XFA_Attribute::Usehref, - XFA_Attribute::ExcludeAllCaps, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::WordCharacterCount, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)7}, + {XFA_Attribute::Hyphenate, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::ExcludeInitialCap, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::PushCharacterCount, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)3}, + {XFA_Attribute::RemainCharacterCount, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)3}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ExcludeAllCaps, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"hyphenation"; diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp index 7fdbd84913..0853f39ee5 100644 --- a/xfa/fxfa/parser/cxfa_ifempty.cpp +++ b/xfa/fxfa/parser/cxfa_ifempty.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"ifEmpty"; diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp index 9c2be0a24f..cbadb3ceb5 100644 --- a/xfa/fxfa/parser/cxfa_image.cpp +++ b/xfa/fxfa/parser/cxfa_image.cpp @@ -8,15 +8,36 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Name, - XFA_Attribute::Use, - XFA_Attribute::ContentType, - XFA_Attribute::TransferEncoding, - XFA_Attribute::Usehref, - XFA_Attribute::Aspect, - XFA_Attribute::Href, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ContentType, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Base64}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Aspect, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Fit}, + {XFA_Attribute::Href, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"image"; diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp index f12afa260c..f1678602c1 100644 --- a/xfa/fxfa/parser/cxfa_imageedit.cpp +++ b/xfa/fxfa/parser/cxfa_imageedit.cpp @@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Border, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Data, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Data, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Link}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"imageEdit"; diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp index d76dd4338c..8799e23d00 100644 --- a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp +++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"includeXDPContent"; diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp index 3c05a8c39a..b49b79dbba 100644 --- a/xfa/fxfa/parser/cxfa_incrementalload.cpp +++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"incrementalLoad"; diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp index 1edc82a1a5..28bf30f42a 100644 --- a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp +++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"incrementalMerge"; diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp index ee76a11e7f..5eec30b708 100644 --- a/xfa/fxfa/parser/cxfa_insert.cpp +++ b/xfa/fxfa/parser/cxfa_insert.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"insert"; diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp index ed9706897b..1386bb35e2 100644 --- a/xfa/fxfa/parser/cxfa_instancemanager.cpp +++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp @@ -10,8 +10,13 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Occur, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"instanceManager"; diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp index 0878a33303..e2d57f689c 100644 --- a/xfa/fxfa/parser/cxfa_integer.cpp +++ b/xfa/fxfa/parser/cxfa_integer.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"integer"; diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp index bb1e3a216b..22a7c361a8 100644 --- a/xfa/fxfa/parser/cxfa_interactive.cpp +++ b/xfa/fxfa/parser/cxfa_interactive.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"interactive"; diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp index c9f960ceff..e69ee15cbd 100644 --- a/xfa/fxfa/parser/cxfa_issuers.cpp +++ b/xfa/fxfa/parser/cxfa_issuers.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"issuers"; diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp index 8fe36b0bbf..d6ed0ccf0c 100644 --- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp +++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp @@ -1191,8 +1191,9 @@ CXFA_ContentLayoutItem* CXFA_ItemLayoutProcessor::CreateContentLayoutItem( float CXFA_ItemLayoutProcessor::FindSplitPos(float fProposedSplitPos) { ASSERT(m_pLayoutItem); - XFA_ATTRIBUTEENUM eLayout = - m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Layout); + XFA_ATTRIBUTEENUM eLayout = m_pFormNode->JSNode() + ->TryEnum(XFA_Attribute::Layout, true) + .value_or(XFA_ATTRIBUTEENUM_Position); bool bCalculateMargin = eLayout != XFA_ATTRIBUTEENUM_Position; while (fProposedSplitPos > XFA_LAYOUT_FLOAT_PERCISION) { bool bAppChange = false; @@ -1209,8 +1210,9 @@ void CXFA_ItemLayoutProcessor::SplitLayoutItem( CXFA_ContentLayoutItem* pSecondParent, float fSplitPos) { float fCurTopMargin = 0, fCurBottomMargin = 0; - XFA_ATTRIBUTEENUM eLayout = - m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Layout); + XFA_ATTRIBUTEENUM eLayout = m_pFormNode->JSNode() + ->TryEnum(XFA_Attribute::Layout, true) + .value_or(XFA_ATTRIBUTEENUM_Position); bool bCalculateMargin = true; if (eLayout == XFA_ATTRIBUTEENUM_Position) bCalculateMargin = false; @@ -1582,8 +1584,9 @@ bool CXFA_ItemLayoutProcessor::ProcessKeepNodesForBreakBefore( } bool XFA_ItemLayoutProcessor_IsTakingSpace(CXFA_Node* pNode) { - XFA_ATTRIBUTEENUM ePresence = - pNode->JSNode()->GetEnum(XFA_Attribute::Presence); + XFA_ATTRIBUTEENUM ePresence = pNode->JSNode() + ->TryEnum(XFA_Attribute::Presence, true) + .value_or(XFA_ATTRIBUTEENUM_Visible); return ePresence == XFA_ATTRIBUTEENUM_Visible || ePresence == XFA_ATTRIBUTEENUM_Invisible; } @@ -1657,8 +1660,10 @@ void CXFA_ItemLayoutProcessor::DoLayoutPositionedContainer( return; m_pLayoutItem = CreateContentLayoutItem(m_pFormNode); - bool bIgnoreXY = (m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Layout) != - XFA_ATTRIBUTEENUM_Position); + bool bIgnoreXY = + (m_pFormNode->JSNode() + ->TryEnum(XFA_Attribute::Layout, true) + .value_or(XFA_ATTRIBUTEENUM_Position) != XFA_ATTRIBUTEENUM_Position); bool bContainerWidthAutoSize = true; bool bContainerHeightAutoSize = true; CFX_SizeF containerSize = CalculateContainerSpecifiedSize( diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp index 847a143be5..801e2208c4 100644 --- a/xfa/fxfa/parser/cxfa_items.cpp +++ b/xfa/fxfa/parser/cxfa_items.cpp @@ -8,10 +8,34 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Ref, - XFA_Attribute::Use, XFA_Attribute::Presence, XFA_Attribute::Save, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::Save, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"items"; diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp index 95dafa033c..19db20a987 100644 --- a/xfa/fxfa/parser/cxfa_jog.cpp +++ b/xfa/fxfa/parser/cxfa_jog.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"jog"; diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp index 313913053e..049a71faa1 100644 --- a/xfa/fxfa/parser/cxfa_keep.cpp +++ b/xfa/fxfa/parser/cxfa_keep.cpp @@ -10,10 +10,29 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Next, XFA_Attribute::Use, - XFA_Attribute::Previous, XFA_Attribute::Usehref, XFA_Attribute::Intact, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Next, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Previous, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Intact, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_None}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"keep"; diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp index 757dc9c5b3..40988517f5 100644 --- a/xfa/fxfa/parser/cxfa_keyusage.cpp +++ b/xfa/fxfa/parser/cxfa_keyusage.cpp @@ -8,20 +8,41 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Use, - XFA_Attribute::NonRepudiation, - XFA_Attribute::EncipherOnly, - XFA_Attribute::Type, - XFA_Attribute::DigitalSignature, - XFA_Attribute::CrlSign, - XFA_Attribute::KeyAgreement, - XFA_Attribute::KeyEncipherment, - XFA_Attribute::Usehref, - XFA_Attribute::DataEncipherment, - XFA_Attribute::KeyCertSign, - XFA_Attribute::DecipherOnly, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::NonRepudiation, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::EncipherOnly, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::DigitalSignature, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::CrlSign, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::KeyAgreement, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::KeyEncipherment, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataEncipherment, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::KeyCertSign, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::DecipherOnly, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"keyUsage"; diff --git a/xfa/fxfa/parser/cxfa_labelprinter.cpp b/xfa/fxfa/parser/cxfa_labelprinter.cpp index 24ab3fc438..a1a38bdd7d 100644 --- a/xfa/fxfa/parser/cxfa_labelprinter.cpp +++ b/xfa/fxfa/parser/cxfa_labelprinter.cpp @@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::BatchOutput, 1, 0}, {XFA_Element::FlipLabel, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Zpl}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"labelPrinter"; diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp index b11f1cffc4..66ea2990c5 100644 --- a/xfa/fxfa/parser/cxfa_layout.cpp +++ b/xfa/fxfa/parser/cxfa_layout.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"layout"; diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp index c717aff259..e0678c498f 100644 --- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp +++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp @@ -97,11 +97,12 @@ void SyncContainer(CXFA_FFNotify* pNotify, uint32_t dwRelevantContainer = 0; if (bVisible) { XFA_ATTRIBUTEENUM eAttributeValue = - pContainerItem->m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Presence); - if (eAttributeValue == XFA_ATTRIBUTEENUM_Visible || - eAttributeValue == XFA_ATTRIBUTEENUM_Unknown) { + pContainerItem->m_pFormNode->JSNode() + ->TryEnum(XFA_Attribute::Presence, true) + .value_or(XFA_ATTRIBUTEENUM_Visible); + if (eAttributeValue == XFA_ATTRIBUTEENUM_Visible) bVisibleItem = true; - } + dwRelevantContainer = GetRelevant(pContainerItem->m_pFormNode, dwRelevant); dwStatus = (bVisibleItem ? XFA_WidgetStatus_Visible : 0) | dwRelevantContainer; @@ -1927,9 +1928,12 @@ void CXFA_LayoutPageMgr::SyncLayoutData() { pChildLayoutItem = iterator.MoveToNext(); continue; } - bool bVisible = - (pContentItem->m_pFormNode->JSNode()->GetEnum( - XFA_Attribute::Presence) == XFA_ATTRIBUTEENUM_Visible); + + XFA_ATTRIBUTEENUM presence = + pContentItem->m_pFormNode->JSNode() + ->TryEnum(XFA_Attribute::Presence, true) + .value_or(XFA_ATTRIBUTEENUM_Visible); + bool bVisible = presence == XFA_ATTRIBUTEENUM_Visible; uint32_t dwRelevantChild = GetRelevant(pContentItem->m_pFormNode, dwRelevant); SyncContainer(pNotify, m_pLayoutProcessor, pContentItem, diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp index d91414cbee..bcfeb60de3 100644 --- a/xfa/fxfa/parser/cxfa_level.cpp +++ b/xfa/fxfa/parser/cxfa_level.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"level"; diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp index 2594f6e275..c18de5c96d 100644 --- a/xfa/fxfa/parser/cxfa_line.cpp +++ b/xfa/fxfa/parser/cxfa_line.cpp @@ -10,9 +10,26 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Slope, - XFA_Attribute::Usehref, XFA_Attribute::Hand, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Slope, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Backslash}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Hand, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Even}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"line"; diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp index 67dac9401b..999f85a8c4 100644 --- a/xfa/fxfa/parser/cxfa_linear.cpp +++ b/xfa/fxfa/parser/cxfa_linear.cpp @@ -11,9 +11,23 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_ToRight}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"linear"; diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp index 4fa0a51ef0..b63a91f83a 100644 --- a/xfa/fxfa/parser/cxfa_linearized.cpp +++ b/xfa/fxfa/parser/cxfa_linearized.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"linearized"; diff --git a/xfa/fxfa/parser/cxfa_locale.cpp b/xfa/fxfa/parser/cxfa_locale.cpp index 3ace9f5e54..d20c0d0ed8 100644 --- a/xfa/fxfa/parser/cxfa_locale.cpp +++ b/xfa/fxfa/parser/cxfa_locale.cpp @@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::DateTimeSymbols, 1, 0}, {XFA_Element::NumberPatterns, 1, 0}, {XFA_Element::NumberSymbols, 1, 0}, {XFA_Element::TimePatterns, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"locale"; diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp index 050c28321c..e499eea945 100644 --- a/xfa/fxfa/parser/cxfa_localeset.cpp +++ b/xfa/fxfa/parser/cxfa_localeset.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"localeSet"; diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp index 82ee11012f..20f0cd4027 100644 --- a/xfa/fxfa/parser/cxfa_lockdocument.cpp +++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"lockDocument"; diff --git a/xfa/fxfa/parser/cxfa_log.cpp b/xfa/fxfa/parser/cxfa_log.cpp index b369a9ae7f..7193d0d9a4 100644 --- a/xfa/fxfa/parser/cxfa_log.cpp +++ b/xfa/fxfa/parser/cxfa_log.cpp @@ -13,8 +13,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0}, {XFA_Element::Mode, 1, 0}, {XFA_Element::Threshold, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"log"; diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp index f038118e32..86f8cec983 100644 --- a/xfa/fxfa/parser/cxfa_manifest.cpp +++ b/xfa/fxfa/parser/cxfa_manifest.cpp @@ -10,9 +10,28 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Action, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Action, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Include}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"manifest"; diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp index b06a5deb9e..8c26bfcd97 100644 --- a/xfa/fxfa/parser/cxfa_map.cpp +++ b/xfa/fxfa/parser/cxfa_map.cpp @@ -8,10 +8,33 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Bind, XFA_Attribute::Usehref, XFA_Attribute::Desc, - XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Bind, XFA_AttributeType::CData, XFA_XDPPACKET_SourceSet, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::From, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"map"; diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp index 5269299bfe..80648065a4 100644 --- a/xfa/fxfa/parser/cxfa_margin.cpp +++ b/xfa/fxfa/parser/cxfa_margin.cpp @@ -10,11 +10,28 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::LeftInset, XFA_Attribute::BottomInset, - XFA_Attribute::TopInset, XFA_Attribute::RightInset, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::LeftInset, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::BottomInset, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::TopInset, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::RightInset, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"margin"; diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp index fa41793e98..b9e5c64f5e 100644 --- a/xfa/fxfa/parser/cxfa_mdp.cpp +++ b/xfa/fxfa/parser/cxfa_mdp.cpp @@ -8,12 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Use, - XFA_Attribute::SignatureType, - XFA_Attribute::Usehref, - XFA_Attribute::Permissions, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::SignatureType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Filter}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Permissions, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)2}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"mdp"; diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp index 00c8682139..a033e41d74 100644 --- a/xfa/fxfa/parser/cxfa_medium.cpp +++ b/xfa/fxfa/parser/cxfa_medium.cpp @@ -8,13 +8,37 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::TrayOut, - XFA_Attribute::Use, XFA_Attribute::Orientation, - XFA_Attribute::ImagingBBox, XFA_Attribute::Short, - XFA_Attribute::TrayIn, XFA_Attribute::Usehref, - XFA_Attribute::Stock, XFA_Attribute::Long, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::TrayOut, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Orientation, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Portrait}, + {XFA_Attribute::ImagingBBox, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"none"}, + {XFA_Attribute::Short, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::TrayIn, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Stock, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Long, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"medium"; diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.cpp b/xfa/fxfa/parser/cxfa_mediuminfo.cpp index 69e6dd02ff..26f840f8fe 100644 --- a/xfa/fxfa/parser/cxfa_mediuminfo.cpp +++ b/xfa/fxfa/parser/cxfa_mediuminfo.cpp @@ -10,8 +10,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Map, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"mediumInfo"; diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp index 35e82355d6..512ebb1c11 100644 --- a/xfa/fxfa/parser/cxfa_message.cpp +++ b/xfa/fxfa/parser/cxfa_message.cpp @@ -11,9 +11,24 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::MsgId, 1, 0}, {XFA_Element::Severity, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"message"; diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp index c37ec66a60..b0b578707f 100644 --- a/xfa/fxfa/parser/cxfa_messaging.cpp +++ b/xfa/fxfa/parser/cxfa_messaging.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"messaging"; diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp index 9019957c78..32fa3f791d 100644 --- a/xfa/fxfa/parser/cxfa_mode.cpp +++ b/xfa/fxfa/parser/cxfa_mode.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"mode"; diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp index baaf5744e4..1083ed225e 100644 --- a/xfa/fxfa/parser/cxfa_modifyannots.cpp +++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"modifyAnnots"; diff --git a/xfa/fxfa/parser/cxfa_monthnames.cpp b/xfa/fxfa/parser/cxfa_monthnames.cpp index abd301d823..427418848a 100644 --- a/xfa/fxfa/parser/cxfa_monthnames.cpp +++ b/xfa/fxfa/parser/cxfa_monthnames.cpp @@ -10,8 +10,10 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Month, 12, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Abbr, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, XFA_XDPPACKET_LocaleSet, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"monthNames"; diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp index 642abb9470..0af55a6c1b 100644 --- a/xfa/fxfa/parser/cxfa_msgid.cpp +++ b/xfa/fxfa/parser/cxfa_msgid.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"msgId"; diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp index 4f9e832644..6756eaf3ff 100644 --- a/xfa/fxfa/parser/cxfa_nameattr.cpp +++ b/xfa/fxfa/parser/cxfa_nameattr.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"nameAttr"; diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp index 32f6b13c8f..d246e32ffc 100644 --- a/xfa/fxfa/parser/cxfa_neverembed.cpp +++ b/xfa/fxfa/parser/cxfa_neverembed.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"neverEmbed"; diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index 05228734f3..4eff4b0748 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -138,34 +138,13 @@ const XFA_ATTRIBUTEENUMINFO* GetAttributeEnumByID(XFA_ATTRIBUTEENUM eName) { return g_XFAEnumData + eName; } -// static -WideString CXFA_Node::AttributeToName(XFA_Attribute attr) { - return XFA_GetAttributeByID(attr)->pName; -} - -// static -XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) { - if (name.IsEmpty()) - return XFA_Attribute::Unknown; - - auto* it = std::lower_bound(g_XFAAttributeData, - g_XFAAttributeData + g_iXFAAttributeCount, - FX_HashCode_GetW(name, false), - [](const XFA_ATTRIBUTEINFO& arg, uint32_t hash) { - return arg.uHash < hash; - }); - if (it != g_XFAAttributeData + g_iXFAAttributeCount && name == it->pName) - return it->eName; - return XFA_Attribute::Unknown; -} - CXFA_Node::CXFA_Node(CXFA_Document* pDoc, uint16_t ePacket, uint32_t validPackets, XFA_ObjectType oType, XFA_Element eType, const PropertyData* properties, - const XFA_Attribute* attributes, + const AttributeData* attributes, const WideStringView& elementName) : CXFA_Object(pDoc, oType, @@ -312,36 +291,35 @@ pdfium::Optional<XFA_Element> CXFA_Node::GetFirstPropertyWithFlag( return {}; } -bool CXFA_Node::HasAttribute(XFA_Attribute attr) const { +const CXFA_Node::AttributeData* CXFA_Node::GetAttributeData( + XFA_Attribute attr) const { if (m_Attributes == nullptr) - return false; + return nullptr; for (size_t i = 0;; ++i) { - XFA_Attribute cur_attr = *(m_Attributes + i); - if (cur_attr == XFA_Attribute::Unknown) + const AttributeData* cur_attr = &m_Attributes[i]; + if (cur_attr->attribute == XFA_Attribute::Unknown) break; - if (cur_attr == attr) - return true; + if (cur_attr->attribute == attr) + return cur_attr; } - return false; + return nullptr; +} + +bool CXFA_Node::HasAttribute(XFA_Attribute attr) const { + return !!GetAttributeData(attr); } // Note: This Method assumes that i is a valid index .... XFA_Attribute CXFA_Node::GetAttribute(size_t i) const { if (m_Attributes == nullptr) return XFA_Attribute::Unknown; - return *(m_Attributes + i); + return m_Attributes[i].attribute; } XFA_AttributeType CXFA_Node::GetAttributeType(XFA_Attribute type) const { - const XFA_ATTRIBUTEINFO* attr = XFA_GetAttributeByID(type); - XFA_AttributeType eType = attr->eType; - if (eType != XFA_AttributeType::NotSure) - return eType; - - const XFA_NOTSUREATTRIBUTE* pNotsure = - XFA_GetNotsureAttribute(GetElementType(), attr->eName); - return pNotsure ? pNotsure->eType : XFA_AttributeType::CData; + const AttributeData* data = GetAttributeData(type); + return data ? data->type : XFA_AttributeType::CData; } CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem, @@ -654,7 +632,9 @@ bool CXFA_Node::GetLocaleName(WideString& wsLocaleName) { XFA_ATTRIBUTEENUM CXFA_Node::GetIntact() { CXFA_Node* pKeep = GetFirstChildByClass(XFA_Element::Keep); - XFA_ATTRIBUTEENUM eLayoutType = JSNode()->GetEnum(XFA_Attribute::Layout); + XFA_ATTRIBUTEENUM eLayoutType = JSNode() + ->TryEnum(XFA_Attribute::Layout, true) + .value_or(XFA_ATTRIBUTEENUM_Position); if (pKeep) { pdfium::Optional<XFA_ATTRIBUTEENUM> intact = pKeep->JSNode()->TryEnum(XFA_Attribute::Intact, false); @@ -710,7 +690,9 @@ XFA_ATTRIBUTEENUM CXFA_Node::GetIntact() { return XFA_ATTRIBUTEENUM_ContentArea; if (pParentNode->GetIntact() == XFA_ATTRIBUTEENUM_None) { XFA_ATTRIBUTEENUM eParLayout = - pParentNode->JSNode()->GetEnum(XFA_Attribute::Layout); + pParentNode->JSNode() + ->TryEnum(XFA_Attribute::Layout, true) + .value_or(XFA_ATTRIBUTEENUM_Position); if (eParLayout == XFA_ATTRIBUTEENUM_Position || eParLayout == XFA_ATTRIBUTEENUM_Row || eParLayout == XFA_ATTRIBUTEENUM_Table) { @@ -1118,17 +1100,8 @@ void CXFA_Node::OnRemoved(bool bNotify) { } void CXFA_Node::UpdateNameHash() { - const XFA_NOTSUREATTRIBUTE* pNotsure = - XFA_GetNotsureAttribute(GetElementType(), XFA_Attribute::Name); - WideString wsName; - if (!pNotsure || pNotsure->eType == XFA_AttributeType::CData) { - wsName = JSNode()->GetCData(XFA_Attribute::Name); - m_dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false); - } else if (pNotsure->eType == XFA_AttributeType::Enum) { - wsName = - GetAttributeEnumByID(JSNode()->GetEnum(XFA_Attribute::Name))->pName; - m_dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false); - } + WideString wsName = JSNode()->GetCData(XFA_Attribute::Name); + m_dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false); } CFX_XMLNode* CXFA_Node::CreateXMLMappingNode() { @@ -1378,19 +1351,12 @@ pdfium::Optional<XFA_ATTRIBUTEENUM> CXFA_Node::GetDefaultEnum( pdfium::Optional<void*> CXFA_Node::GetDefaultValue( XFA_Attribute attr, XFA_AttributeType eType) const { - const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(attr); - if (!pInfo) + const AttributeData* data = GetAttributeData(attr); + if (!data) return {}; - if (GetPacketID() && (GetPacketID() & pInfo->dwPackets) == 0) + if (GetPacketID() && (GetPacketID() & data->packets) == 0) return {}; - if (pInfo->eType == eType) - return {pInfo->pDefValue}; - if (pInfo->eType != XFA_AttributeType::NotSure) - return {}; - - const XFA_NOTSUREATTRIBUTE* pAttr = - XFA_GetNotsureAttribute(GetElementType(), attr, eType); - if (pAttr) - return {pAttr->pValue}; + if (data->type == eType) + return {data->default_value}; return {}; } diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index 7465f31106..238bb12b06 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -53,8 +53,19 @@ class CXFA_Node : public CXFA_Object { uint8_t flags; }; - static WideString AttributeToName(XFA_Attribute attr); + struct AttributeData { + XFA_Attribute attribute; + XFA_AttributeType type; + uint32_t packets; + void* default_value; + }; + +#ifndef NDEBUG + static WideString ElementToName(XFA_Element elem); +#endif // NDEBUG + static XFA_Attribute NameToAttribute(const WideStringView& name); + static WideString AttributeToName(XFA_Attribute attr); static XFA_Element NameToElement(const WideString& name); static std::unique_ptr<CXFA_Node> Create(CXFA_Document* doc, XFA_Element element, @@ -175,20 +186,21 @@ class CXFA_Node : public CXFA_Object { XFA_ObjectType oType, XFA_Element eType, const PropertyData* properties, - const XFA_Attribute* attributes, + const AttributeData* attributes, const WideStringView& elementName); private: bool HasFlag(XFA_NodeFlag dwFlag) const; CXFA_Node* Deprecated_GetPrevSibling(); const PropertyData* GetPropertyData(XFA_Element property) const; + const AttributeData* GetAttributeData(XFA_Attribute attr) const; pdfium::Optional<XFA_Element> GetFirstPropertyWithFlag(uint8_t flag); void OnRemoved(bool bNotify); pdfium::Optional<void*> GetDefaultValue(XFA_Attribute attr, XFA_AttributeType eType) const; const PropertyData* m_Properties; - const XFA_Attribute* m_Attributes; + const AttributeData* m_Attributes; uint32_t m_ValidPackets; CXFA_Node* m_pNext; CXFA_Node* m_pChild; diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp index a33b320216..1d7d05892b 100644 --- a/xfa/fxfa/parser/cxfa_node_statics.cpp +++ b/xfa/fxfa/parser/cxfa_node_statics.cpp @@ -642,6 +642,258 @@ struct ElementNameInfo { {0xff063802 /* items */, XFA_Element::Items}, }; +struct AttributeNameInfo { + uint32_t hash; + XFA_Attribute attribute; +} AttributeNameInfoToEnum[] = { + {0x68 /* h */, XFA_Attribute::H}, + {0x77 /* w */, XFA_Attribute::W}, + {0x78 /* x */, XFA_Attribute::X}, + {0x79 /* y */, XFA_Attribute::Y}, + {0x21aed /* id */, XFA_Attribute::Id}, + {0x25363 /* to */, XFA_Attribute::To}, + {0xcb0ac9 /* lineThrough */, XFA_Attribute::LineThrough}, + {0x2282c73 /* hAlign */, XFA_Attribute::HAlign}, + {0x2c1c7f1 /* typeface */, XFA_Attribute::Typeface}, + {0x3106c3a /* beforeTarget */, XFA_Attribute::BeforeTarget}, + {0x31b19c1 /* name */, XFA_Attribute::Name}, + {0x3848b3f /* next */, XFA_Attribute::Next}, + {0x43e349b /* dataRowCount */, XFA_Attribute::DataRowCount}, + {0x5518c25 /* break */, XFA_Attribute::Break}, + {0x5ce6195 /* vScrollPolicy */, XFA_Attribute::VScrollPolicy}, + {0x8c74ae9 /* fontHorizontalScale */, XFA_Attribute::FontHorizontalScale}, + {0x8d4f1c7 /* textIndent */, XFA_Attribute::TextIndent}, + {0x97c1c65 /* context */, XFA_Attribute::Context}, + {0x9876578 /* trayOut */, XFA_Attribute::TrayOut}, + {0xa2e3514 /* cap */, XFA_Attribute::Cap}, + {0xb3543a6 /* max */, XFA_Attribute::Max}, + {0xb356ca4 /* min */, XFA_Attribute::Min}, + {0xbb8df5d /* ref */, XFA_Attribute::Ref}, + {0xbb8f3df /* rid */, XFA_Attribute::Rid}, + {0xc080cd3 /* url */, XFA_Attribute::Url}, + {0xc0811ed /* use */, XFA_Attribute::Use}, + {0xcfea02e /* leftInset */, XFA_Attribute::LeftInset}, + {0x1026c59d /* widows */, XFA_Attribute::Widows}, + {0x1059ec18 /* level */, XFA_Attribute::Level}, + {0x1356caf8 /* bottomInset */, XFA_Attribute::BottomInset}, + {0x13a08bdb /* overflowTarget */, XFA_Attribute::OverflowTarget}, + {0x1414d431 /* allowMacro */, XFA_Attribute::AllowMacro}, + {0x14a32d52 /* pagePosition */, XFA_Attribute::PagePosition}, + {0x1517dfa1 /* columnWidths */, XFA_Attribute::ColumnWidths}, + {0x169134a1 /* overflowLeader */, XFA_Attribute::OverflowLeader}, + {0x1b8dce3e /* action */, XFA_Attribute::Action}, + {0x1e459b8f /* nonRepudiation */, XFA_Attribute::NonRepudiation}, + {0x1ec8ab2c /* rate */, XFA_Attribute::Rate}, + {0x1ef3a64a /* allowRichText */, XFA_Attribute::AllowRichText}, + {0x2038c9b2 /* role */, XFA_Attribute::Role}, + {0x20914367 /* overflowTrailer */, XFA_Attribute::OverflowTrailer}, + {0x226ca8f1 /* operation */, XFA_Attribute::Operation}, + {0x24d85167 /* timeout */, XFA_Attribute::Timeout}, + {0x25764436 /* topInset */, XFA_Attribute::TopInset}, + {0x25839852 /* access */, XFA_Attribute::Access}, + {0x268b7ec1 /* commandType */, XFA_Attribute::CommandType}, + {0x28dee6e9 /* format */, XFA_Attribute::Format}, + {0x28e17e91 /* dataPrep */, XFA_Attribute::DataPrep}, + {0x292b88fe /* widgetData */, XFA_Attribute::WidgetData}, + {0x29418bb7 /* abbr */, XFA_Attribute::Abbr}, + {0x2a82d99c /* marginRight */, XFA_Attribute::MarginRight}, + {0x2b5df51e /* dataDescription */, XFA_Attribute::DataDescription}, + {0x2bb3f470 /* encipherOnly */, XFA_Attribute::EncipherOnly}, + {0x2cd79033 /* kerningMode */, XFA_Attribute::KerningMode}, + {0x2ee7678f /* rotate */, XFA_Attribute::Rotate}, + {0x2f105f72 /* wordCharacterCount */, XFA_Attribute::WordCharacterCount}, + {0x2f16a382 /* type */, XFA_Attribute::Type}, + {0x34ae103c /* reserve */, XFA_Attribute::Reserve}, + {0x3650557e /* textLocation */, XFA_Attribute::TextLocation}, + {0x39cdb0a2 /* priority */, XFA_Attribute::Priority}, + {0x3a0273a6 /* underline */, XFA_Attribute::Underline}, + {0x3b582286 /* moduleWidth */, XFA_Attribute::ModuleWidth}, + {0x3d123c26 /* hyphenate */, XFA_Attribute::Hyphenate}, + {0x3e7af94f /* listen */, XFA_Attribute::Listen}, + {0x4156ee3f /* delimiter */, XFA_Attribute::Delimiter}, + {0x42fed1fd /* contentType */, XFA_Attribute::ContentType}, + {0x453eaf38 /* startNew */, XFA_Attribute::StartNew}, + {0x45a6daf8 /* eofAction */, XFA_Attribute::EofAction}, + {0x47cfa43a /* allowNeutral */, XFA_Attribute::AllowNeutral}, + {0x47d03490 /* connection */, XFA_Attribute::Connection}, + {0x4873c601 /* baselineShift */, XFA_Attribute::BaselineShift}, + {0x4b319767 /* overlinePeriod */, XFA_Attribute::OverlinePeriod}, + {0x4b8bc840 /* fracDigits */, XFA_Attribute::FracDigits}, + {0x4ef3d02c /* orientation */, XFA_Attribute::Orientation}, + {0x4fdc3454 /* timeStamp */, XFA_Attribute::TimeStamp}, + {0x52666f1c /* printCheckDigit */, XFA_Attribute::PrintCheckDigit}, + {0x534729c9 /* marginLeft */, XFA_Attribute::MarginLeft}, + {0x5392ea58 /* stroke */, XFA_Attribute::Stroke}, + {0x5404d6df /* moduleHeight */, XFA_Attribute::ModuleHeight}, + {0x54fa722c /* transferEncoding */, XFA_Attribute::TransferEncoding}, + {0x552d9ad5 /* usage */, XFA_Attribute::Usage}, + {0x570ce835 /* presence */, XFA_Attribute::Presence}, + {0x5739d1ff /* radixOffset */, XFA_Attribute::RadixOffset}, + {0x577682ac /* preserve */, XFA_Attribute::Preserve}, + {0x58be2870 /* aliasNode */, XFA_Attribute::AliasNode}, + {0x5a32e493 /* multiLine */, XFA_Attribute::MultiLine}, + {0x5a50e9e6 /* version */, XFA_Attribute::Version}, + {0x5ab23b6c /* startChar */, XFA_Attribute::StartChar}, + {0x5b707a35 /* scriptTest */, XFA_Attribute::ScriptTest}, + {0x5c054755 /* startAngle */, XFA_Attribute::StartAngle}, + {0x5ec958c0 /* cursorType */, XFA_Attribute::CursorType}, + {0x5f760b50 /* digitalSignature */, XFA_Attribute::DigitalSignature}, + {0x60a61edd /* codeType */, XFA_Attribute::CodeType}, + {0x60d4c8b1 /* output */, XFA_Attribute::Output}, + {0x64110ab5 /* bookendTrailer */, XFA_Attribute::BookendTrailer}, + {0x65e30c67 /* imagingBBox */, XFA_Attribute::ImagingBBox}, + {0x66539c48 /* excludeInitialCap */, XFA_Attribute::ExcludeInitialCap}, + {0x66642f8f /* force */, XFA_Attribute::Force}, + {0x69aa2292 /* crlSign */, XFA_Attribute::CrlSign}, + {0x6a3405dd /* previous */, XFA_Attribute::Previous}, + {0x6a95c976 /* pushCharacterCount */, XFA_Attribute::PushCharacterCount}, + {0x6b6ddcfb /* nullTest */, XFA_Attribute::NullTest}, + {0x6cfa828a /* runAt */, XFA_Attribute::RunAt}, + {0x731e0665 /* spaceBelow */, XFA_Attribute::SpaceBelow}, + {0x74788f8b /* sweepAngle */, XFA_Attribute::SweepAngle}, + {0x78bff531 /* numberOfCells */, XFA_Attribute::NumberOfCells}, + {0x79543055 /* letterSpacing */, XFA_Attribute::LetterSpacing}, + {0x79975f2b /* lockType */, XFA_Attribute::LockType}, + {0x7a0cc471 /* passwordChar */, XFA_Attribute::PasswordChar}, + {0x7a7cc341 /* vAlign */, XFA_Attribute::VAlign}, + {0x7b29630a /* sourceBelow */, XFA_Attribute::SourceBelow}, + {0x7b95e661 /* inverted */, XFA_Attribute::Inverted}, + {0x7c2fd80b /* mark */, XFA_Attribute::Mark}, + {0x7c2ff6ae /* maxH */, XFA_Attribute::MaxH}, + {0x7c2ff6bd /* maxW */, XFA_Attribute::MaxW}, + {0x7c732a66 /* truncate */, XFA_Attribute::Truncate}, + {0x7d02356c /* minH */, XFA_Attribute::MinH}, + {0x7d02357b /* minW */, XFA_Attribute::MinW}, + {0x7d0b5fca /* initial */, XFA_Attribute::Initial}, + {0x7d9fd7c5 /* mode */, XFA_Attribute::Mode}, + {0x7e7e845e /* layout */, XFA_Attribute::Layout}, + {0x7f6fd3d7 /* server */, XFA_Attribute::Server}, + {0x824f21b7 /* embedPDF */, XFA_Attribute::EmbedPDF}, + {0x8340ea66 /* oddOrEven */, XFA_Attribute::OddOrEven}, + {0x836d4d7c /* tabDefault */, XFA_Attribute::TabDefault}, + {0x8855805f /* contains */, XFA_Attribute::Contains}, + {0x8a692521 /* rightInset */, XFA_Attribute::RightInset}, + {0x8af2e657 /* maxChars */, XFA_Attribute::MaxChars}, + {0x8b90e1f2 /* open */, XFA_Attribute::Open}, + {0x8c99377e /* relation */, XFA_Attribute::Relation}, + {0x8d181d61 /* wideNarrowRatio */, XFA_Attribute::WideNarrowRatio}, + {0x8e1c2921 /* relevant */, XFA_Attribute::Relevant}, + {0x8e29d794 /* signatureType */, XFA_Attribute::SignatureType}, + {0x8ec6204c /* lineThroughPeriod */, XFA_Attribute::LineThroughPeriod}, + {0x8ed182d1 /* shape */, XFA_Attribute::Shape}, + {0x8fa01790 /* tabStops */, XFA_Attribute::TabStops}, + {0x8fc36c0a /* outputBelow */, XFA_Attribute::OutputBelow}, + {0x9041d4b0 /* short */, XFA_Attribute::Short}, + {0x907c7719 /* fontVerticalScale */, XFA_Attribute::FontVerticalScale}, + {0x94446dcc /* thickness */, XFA_Attribute::Thickness}, + {0x957fa006 /* commitOn */, XFA_Attribute::CommitOn}, + {0x982bd892 /* remainCharacterCount */, + XFA_Attribute::RemainCharacterCount}, + {0x98fd4d81 /* keyAgreement */, XFA_Attribute::KeyAgreement}, + {0x99800d7a /* errorCorrectionLevel */, + XFA_Attribute::ErrorCorrectionLevel}, + {0x9a63da3d /* upsMode */, XFA_Attribute::UpsMode}, + {0x9cc17d75 /* mergeMode */, XFA_Attribute::MergeMode}, + {0x9d833d75 /* circular */, XFA_Attribute::Circular}, + {0x9d8ee204 /* psName */, XFA_Attribute::PsName}, + {0x9dcc3ab3 /* trailer */, XFA_Attribute::Trailer}, + {0xa0933954 /* unicodeRange */, XFA_Attribute::UnicodeRange}, + {0xa1b0d2f5 /* executeType */, XFA_Attribute::ExecuteType}, + {0xa25a883d /* duplexImposition */, XFA_Attribute::DuplexImposition}, + {0xa42ca1b7 /* trayIn */, XFA_Attribute::TrayIn}, + {0xa433f001 /* bindingNode */, XFA_Attribute::BindingNode}, + {0xa5340ff5 /* bofAction */, XFA_Attribute::BofAction}, + {0xa5b410cf /* save */, XFA_Attribute::Save}, + {0xa6118c89 /* targetType */, XFA_Attribute::TargetType}, + {0xa66404cb /* keyEncipherment */, XFA_Attribute::KeyEncipherment}, + {0xa6710262 /* credentialServerPolicy */, + XFA_Attribute::CredentialServerPolicy}, + {0xa686975b /* size */, XFA_Attribute::Size}, + {0xa85e74f3 /* initialNumber */, XFA_Attribute::InitialNumber}, + {0xabef37e3 /* slope */, XFA_Attribute::Slope}, + {0xabfa6c4f /* cSpace */, XFA_Attribute::CSpace}, + {0xac06e2b0 /* colSpan */, XFA_Attribute::ColSpan}, + {0xadc4c77b /* binding */, XFA_Attribute::Binding}, + {0xaf754613 /* checksum */, XFA_Attribute::Checksum}, + {0xb045fbc5 /* charEncoding */, XFA_Attribute::CharEncoding}, + {0xb0e5485d /* bind */, XFA_Attribute::Bind}, + {0xb12128b7 /* textEntry */, XFA_Attribute::TextEntry}, + {0xb373a862 /* archive */, XFA_Attribute::Archive}, + {0xb598a1f7 /* uuid */, XFA_Attribute::Uuid}, + {0xb5e49bf2 /* posture */, XFA_Attribute::Posture}, + {0xb6b44172 /* after */, XFA_Attribute::After}, + {0xb716467b /* orphans */, XFA_Attribute::Orphans}, + {0xbc0c4695 /* qualifiedName */, XFA_Attribute::QualifiedName}, + {0xbc254332 /* usehref */, XFA_Attribute::Usehref}, + {0xbc8fa350 /* locale */, XFA_Attribute::Locale}, + {0xbd6e1d88 /* weight */, XFA_Attribute::Weight}, + {0xbd96a0e9 /* underlinePeriod */, XFA_Attribute::UnderlinePeriod}, + {0xbde9abda /* data */, XFA_Attribute::Data}, + {0xbe52dfbf /* desc */, XFA_Attribute::Desc}, + {0xbe9ba472 /* numbered */, XFA_Attribute::Numbered}, + {0xc035c6b1 /* dataColumnCount */, XFA_Attribute::DataColumnCount}, + {0xc0ec9fa4 /* overline */, XFA_Attribute::Overline}, + {0xc2ba0923 /* urlPolicy */, XFA_Attribute::UrlPolicy}, + {0xc2bd40fd /* anchorType */, XFA_Attribute::AnchorType}, + {0xc39a88bd /* labelRef */, XFA_Attribute::LabelRef}, + {0xc3c1442f /* bookendLeader */, XFA_Attribute::BookendLeader}, + {0xc4547a08 /* maxLength */, XFA_Attribute::MaxLength}, + {0xc4fed09b /* accessKey */, XFA_Attribute::AccessKey}, + {0xc5762157 /* cursorLocation */, XFA_Attribute::CursorLocation}, + {0xc860f30a /* delayedOpen */, XFA_Attribute::DelayedOpen}, + {0xc8da4da7 /* target */, XFA_Attribute::Target}, + {0xca5dc27c /* dataEncipherment */, XFA_Attribute::DataEncipherment}, + {0xcb150479 /* afterTarget */, XFA_Attribute::AfterTarget}, + {0xcbcaf66d /* leader */, XFA_Attribute::Leader}, + {0xcca7897e /* picker */, XFA_Attribute::Picker}, + {0xcd7f7b54 /* from */, XFA_Attribute::From}, + {0xcea5e62c /* baseProfile */, XFA_Attribute::BaseProfile}, + {0xd171b240 /* aspect */, XFA_Attribute::Aspect}, + {0xd3c84d25 /* rowColumnRatio */, XFA_Attribute::RowColumnRatio}, + {0xd4b01921 /* lineHeight */, XFA_Attribute::LineHeight}, + {0xd4cc53f8 /* highlight */, XFA_Attribute::Highlight}, + {0xd50f903a /* valueRef */, XFA_Attribute::ValueRef}, + {0xd52482e0 /* maxEntries */, XFA_Attribute::MaxEntries}, + {0xd57c513c /* dataLength */, XFA_Attribute::DataLength}, + {0xd6128d8d /* activity */, XFA_Attribute::Activity}, + {0xd6a39990 /* input */, XFA_Attribute::Input}, + {0xd6e27f1d /* value */, XFA_Attribute::Value}, + {0xd70798c2 /* blankOrNotBlank */, XFA_Attribute::BlankOrNotBlank}, + {0xd861f8af /* addRevocationInfo */, XFA_Attribute::AddRevocationInfo}, + {0xd8f982bf /* genericFamily */, XFA_Attribute::GenericFamily}, + {0xd996fa9b /* hand */, XFA_Attribute::Hand}, + {0xdb55fec5 /* href */, XFA_Attribute::Href}, + {0xdc75676c /* textEncoding */, XFA_Attribute::TextEncoding}, + {0xde7f92ba /* leadDigits */, XFA_Attribute::LeadDigits}, + {0xe11a2cbc /* permissions */, XFA_Attribute::Permissions}, + {0xe18b5659 /* spaceAbove */, XFA_Attribute::SpaceAbove}, + {0xe1a26b56 /* codeBase */, XFA_Attribute::CodeBase}, + {0xe349d044 /* stock */, XFA_Attribute::Stock}, + {0xe372ae97 /* isNull */, XFA_Attribute::IsNull}, + {0xe4c3a5e5 /* restoreState */, XFA_Attribute::RestoreState}, + {0xe5c96d6a /* excludeAllCaps */, XFA_Attribute::ExcludeAllCaps}, + {0xe64b1129 /* formatTest */, XFA_Attribute::FormatTest}, + {0xe6f99487 /* hScrollPolicy */, XFA_Attribute::HScrollPolicy}, + {0xe8dddf50 /* join */, XFA_Attribute::Join}, + {0xe8f118a8 /* keyCertSign */, XFA_Attribute::KeyCertSign}, + {0xe948b9a8 /* radius */, XFA_Attribute::Radius}, + {0xe996b2fe /* sourceAbove */, XFA_Attribute::SourceAbove}, + {0xea7090a0 /* override */, XFA_Attribute::Override}, + {0xeb091003 /* classId */, XFA_Attribute::ClassId}, + {0xeb511b54 /* disable */, XFA_Attribute::Disable}, + {0xeda9017a /* scope */, XFA_Attribute::Scope}, + {0xf197844d /* match */, XFA_Attribute::Match}, + {0xf2009339 /* placement */, XFA_Attribute::Placement}, + {0xf4ffce73 /* before */, XFA_Attribute::Before}, + {0xf531b059 /* writingScript */, XFA_Attribute::WritingScript}, + {0xf575ca75 /* endChar */, XFA_Attribute::EndChar}, + {0xf6b47749 /* lock */, XFA_Attribute::Lock}, + {0xf6b4afb0 /* long */, XFA_Attribute::Long}, + {0xf6b59543 /* intact */, XFA_Attribute::Intact}, + {0xf889e747 /* xdpContent */, XFA_Attribute::XdpContent}, + {0xfea53ec6 /* decipherOnly */, XFA_Attribute::DecipherOnly}, +}; + } // namespace // static @@ -656,6 +908,18 @@ XFA_Element CXFA_Node::NameToElement(const WideString& name) { } // static +XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) { + uint32_t hash = FX_HashCode_GetW(name, false); + auto* elem = std::lower_bound( + std::begin(AttributeNameInfoToEnum), std::end(AttributeNameInfoToEnum), + hash, + [](const AttributeNameInfo& a, uint32_t hash) { return a.hash < hash; }); + if (elem != std::end(AttributeNameInfoToEnum) && elem->hash == hash) + return elem->attribute; + return XFA_Attribute::Unknown; +} + +// static std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, XFA_Element element, XFA_XDPPACKET packet) { @@ -1604,3 +1868,1135 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, return nullptr; return node; } + +// static +WideString CXFA_Node::AttributeToName(XFA_Attribute attr) { + switch (attr) { + case XFA_Attribute::H: + return L"h"; + case XFA_Attribute::W: + return L"w"; + case XFA_Attribute::X: + return L"x"; + case XFA_Attribute::Y: + return L"y"; + case XFA_Attribute::Id: + return L"id"; + case XFA_Attribute::To: + return L"to"; + case XFA_Attribute::LineThrough: + return L"lineThrough"; + case XFA_Attribute::HAlign: + return L"hAlign"; + case XFA_Attribute::Typeface: + return L"typeface"; + case XFA_Attribute::BeforeTarget: + return L"beforeTarget"; + case XFA_Attribute::Name: + return L"name"; + case XFA_Attribute::Next: + return L"next"; + case XFA_Attribute::DataRowCount: + return L"dataRowCount"; + case XFA_Attribute::Break: + return L"break"; + case XFA_Attribute::VScrollPolicy: + return L"vScrollPolicy"; + case XFA_Attribute::FontHorizontalScale: + return L"fontHorizontalScale"; + case XFA_Attribute::TextIndent: + return L"textIndent"; + case XFA_Attribute::Context: + return L"context"; + case XFA_Attribute::TrayOut: + return L"trayOut"; + case XFA_Attribute::Cap: + return L"cap"; + case XFA_Attribute::Max: + return L"max"; + case XFA_Attribute::Min: + return L"min"; + case XFA_Attribute::Ref: + return L"ref"; + case XFA_Attribute::Rid: + return L"rid"; + case XFA_Attribute::Url: + return L"url"; + case XFA_Attribute::Use: + return L"use"; + case XFA_Attribute::LeftInset: + return L"leftInset"; + case XFA_Attribute::Widows: + return L"widows"; + case XFA_Attribute::Level: + return L"level"; + case XFA_Attribute::BottomInset: + return L"bottomInset"; + case XFA_Attribute::OverflowTarget: + return L"overflowTarget"; + case XFA_Attribute::AllowMacro: + return L"allowMacro"; + case XFA_Attribute::PagePosition: + return L"pagePosition"; + case XFA_Attribute::ColumnWidths: + return L"columnWidths"; + case XFA_Attribute::OverflowLeader: + return L"overflowLeader"; + case XFA_Attribute::Action: + return L"action"; + case XFA_Attribute::NonRepudiation: + return L"nonRepudiation"; + case XFA_Attribute::Rate: + return L"rate"; + case XFA_Attribute::AllowRichText: + return L"allowRichText"; + case XFA_Attribute::Role: + return L"role"; + case XFA_Attribute::OverflowTrailer: + return L"overflowTrailer"; + case XFA_Attribute::Operation: + return L"operation"; + case XFA_Attribute::Timeout: + return L"timeout"; + case XFA_Attribute::TopInset: + return L"topInset"; + case XFA_Attribute::Access: + return L"access"; + case XFA_Attribute::CommandType: + return L"commandType"; + case XFA_Attribute::Format: + return L"format"; + case XFA_Attribute::DataPrep: + return L"dataPrep"; + case XFA_Attribute::WidgetData: + return L"widgetData"; + case XFA_Attribute::Abbr: + return L"abbr"; + case XFA_Attribute::MarginRight: + return L"marginRight"; + case XFA_Attribute::DataDescription: + return L"dataDescription"; + case XFA_Attribute::EncipherOnly: + return L"encipherOnly"; + case XFA_Attribute::KerningMode: + return L"kerningMode"; + case XFA_Attribute::Rotate: + return L"rotate"; + case XFA_Attribute::WordCharacterCount: + return L"wordCharacterCount"; + case XFA_Attribute::Type: + return L"type"; + case XFA_Attribute::Reserve: + return L"reserve"; + case XFA_Attribute::TextLocation: + return L"textLocation"; + case XFA_Attribute::Priority: + return L"priority"; + case XFA_Attribute::Underline: + return L"underline"; + case XFA_Attribute::ModuleWidth: + return L"moduleWidth"; + case XFA_Attribute::Hyphenate: + return L"hyphenate"; + case XFA_Attribute::Listen: + return L"listen"; + case XFA_Attribute::Delimiter: + return L"delimiter"; + case XFA_Attribute::ContentType: + return L"contentType"; + case XFA_Attribute::StartNew: + return L"startNew"; + case XFA_Attribute::EofAction: + return L"eofAction"; + case XFA_Attribute::AllowNeutral: + return L"allowNeutral"; + case XFA_Attribute::Connection: + return L"connection"; + case XFA_Attribute::BaselineShift: + return L"baselineShift"; + case XFA_Attribute::OverlinePeriod: + return L"overlinePeriod"; + case XFA_Attribute::FracDigits: + return L"fracDigits"; + case XFA_Attribute::Orientation: + return L"orientation"; + case XFA_Attribute::TimeStamp: + return L"timeStamp"; + case XFA_Attribute::PrintCheckDigit: + return L"printCheckDigit"; + case XFA_Attribute::MarginLeft: + return L"marginLeft"; + case XFA_Attribute::Stroke: + return L"stroke"; + case XFA_Attribute::ModuleHeight: + return L"moduleHeight"; + case XFA_Attribute::TransferEncoding: + return L"transferEncoding"; + case XFA_Attribute::Usage: + return L"usage"; + case XFA_Attribute::Presence: + return L"presence"; + case XFA_Attribute::RadixOffset: + return L"radixOffset"; + case XFA_Attribute::Preserve: + return L"preserve"; + case XFA_Attribute::AliasNode: + return L"aliasNode"; + case XFA_Attribute::MultiLine: + return L"multiLine"; + case XFA_Attribute::Version: + return L"version"; + case XFA_Attribute::StartChar: + return L"startChar"; + case XFA_Attribute::ScriptTest: + return L"scriptTest"; + case XFA_Attribute::StartAngle: + return L"startAngle"; + case XFA_Attribute::CursorType: + return L"cursorType"; + case XFA_Attribute::DigitalSignature: + return L"digitalSignature"; + case XFA_Attribute::CodeType: + return L"codeType"; + case XFA_Attribute::Output: + return L"output"; + case XFA_Attribute::BookendTrailer: + return L"bookendTrailer"; + case XFA_Attribute::ImagingBBox: + return L"imagingBBox"; + case XFA_Attribute::ExcludeInitialCap: + return L"excludeInitialCap"; + case XFA_Attribute::Force: + return L"force"; + case XFA_Attribute::CrlSign: + return L"crlSign"; + case XFA_Attribute::Previous: + return L"previous"; + case XFA_Attribute::PushCharacterCount: + return L"pushCharacterCount"; + case XFA_Attribute::NullTest: + return L"nullTest"; + case XFA_Attribute::RunAt: + return L"runAt"; + case XFA_Attribute::SpaceBelow: + return L"spaceBelow"; + case XFA_Attribute::SweepAngle: + return L"sweepAngle"; + case XFA_Attribute::NumberOfCells: + return L"numberOfCells"; + case XFA_Attribute::LetterSpacing: + return L"letterSpacing"; + case XFA_Attribute::LockType: + return L"lockType"; + case XFA_Attribute::PasswordChar: + return L"passwordChar"; + case XFA_Attribute::VAlign: + return L"vAlign"; + case XFA_Attribute::SourceBelow: + return L"sourceBelow"; + case XFA_Attribute::Inverted: + return L"inverted"; + case XFA_Attribute::Mark: + return L"mark"; + case XFA_Attribute::MaxH: + return L"maxH"; + case XFA_Attribute::MaxW: + return L"maxW"; + case XFA_Attribute::Truncate: + return L"truncate"; + case XFA_Attribute::MinH: + return L"minH"; + case XFA_Attribute::MinW: + return L"minW"; + case XFA_Attribute::Initial: + return L"initial"; + case XFA_Attribute::Mode: + return L"mode"; + case XFA_Attribute::Layout: + return L"layout"; + case XFA_Attribute::Server: + return L"server"; + case XFA_Attribute::EmbedPDF: + return L"embedPDF"; + case XFA_Attribute::OddOrEven: + return L"oddOrEven"; + case XFA_Attribute::TabDefault: + return L"tabDefault"; + case XFA_Attribute::Contains: + return L"contains"; + case XFA_Attribute::RightInset: + return L"rightInset"; + case XFA_Attribute::MaxChars: + return L"maxChars"; + case XFA_Attribute::Open: + return L"open"; + case XFA_Attribute::Relation: + return L"relation"; + case XFA_Attribute::WideNarrowRatio: + return L"wideNarrowRatio"; + case XFA_Attribute::Relevant: + return L"relevant"; + case XFA_Attribute::SignatureType: + return L"signatureType"; + case XFA_Attribute::LineThroughPeriod: + return L"lineThroughPeriod"; + case XFA_Attribute::Shape: + return L"shape"; + case XFA_Attribute::TabStops: + return L"tabStops"; + case XFA_Attribute::OutputBelow: + return L"outputBelow"; + case XFA_Attribute::Short: + return L"short"; + case XFA_Attribute::FontVerticalScale: + return L"fontVerticalScale"; + case XFA_Attribute::Thickness: + return L"thickness"; + case XFA_Attribute::CommitOn: + return L"commitOn"; + case XFA_Attribute::RemainCharacterCount: + return L"remainCharacterCount"; + case XFA_Attribute::KeyAgreement: + return L"keyAgreement"; + case XFA_Attribute::ErrorCorrectionLevel: + return L"errorCorrectionLevel"; + case XFA_Attribute::UpsMode: + return L"upsMode"; + case XFA_Attribute::MergeMode: + return L"mergeMode"; + case XFA_Attribute::Circular: + return L"circular"; + case XFA_Attribute::PsName: + return L"psName"; + case XFA_Attribute::Trailer: + return L"trailer"; + case XFA_Attribute::UnicodeRange: + return L"unicodeRange"; + case XFA_Attribute::ExecuteType: + return L"executeType"; + case XFA_Attribute::DuplexImposition: + return L"duplexImposition"; + case XFA_Attribute::TrayIn: + return L"trayIn"; + case XFA_Attribute::BindingNode: + return L"bindingNode"; + case XFA_Attribute::BofAction: + return L"bofAction"; + case XFA_Attribute::Save: + return L"save"; + case XFA_Attribute::TargetType: + return L"targetType"; + case XFA_Attribute::KeyEncipherment: + return L"keyEncipherment"; + case XFA_Attribute::CredentialServerPolicy: + return L"credentialServerPolicy"; + case XFA_Attribute::Size: + return L"size"; + case XFA_Attribute::InitialNumber: + return L"initialNumber"; + case XFA_Attribute::Slope: + return L"slope"; + case XFA_Attribute::CSpace: + return L"cSpace"; + case XFA_Attribute::ColSpan: + return L"colSpan"; + case XFA_Attribute::Binding: + return L"binding"; + case XFA_Attribute::Checksum: + return L"checksum"; + case XFA_Attribute::CharEncoding: + return L"charEncoding"; + case XFA_Attribute::Bind: + return L"bind"; + case XFA_Attribute::TextEntry: + return L"textEntry"; + case XFA_Attribute::Archive: + return L"archive"; + case XFA_Attribute::Uuid: + return L"uuid"; + case XFA_Attribute::Posture: + return L"posture"; + case XFA_Attribute::After: + return L"after"; + case XFA_Attribute::Orphans: + return L"orphans"; + case XFA_Attribute::QualifiedName: + return L"qualifiedName"; + case XFA_Attribute::Usehref: + return L"usehref"; + case XFA_Attribute::Locale: + return L"locale"; + case XFA_Attribute::Weight: + return L"weight"; + case XFA_Attribute::UnderlinePeriod: + return L"underlinePeriod"; + case XFA_Attribute::Data: + return L"data"; + case XFA_Attribute::Desc: + return L"desc"; + case XFA_Attribute::Numbered: + return L"numbered"; + case XFA_Attribute::DataColumnCount: + return L"dataColumnCount"; + case XFA_Attribute::Overline: + return L"overline"; + case XFA_Attribute::UrlPolicy: + return L"urlPolicy"; + case XFA_Attribute::AnchorType: + return L"anchorType"; + case XFA_Attribute::LabelRef: + return L"labelRef"; + case XFA_Attribute::BookendLeader: + return L"bookendLeader"; + case XFA_Attribute::MaxLength: + return L"maxLength"; + case XFA_Attribute::AccessKey: + return L"accessKey"; + case XFA_Attribute::CursorLocation: + return L"cursorLocation"; + case XFA_Attribute::DelayedOpen: + return L"delayedOpen"; + case XFA_Attribute::Target: + return L"target"; + case XFA_Attribute::DataEncipherment: + return L"dataEncipherment"; + case XFA_Attribute::AfterTarget: + return L"afterTarget"; + case XFA_Attribute::Leader: + return L"leader"; + case XFA_Attribute::Picker: + return L"picker"; + case XFA_Attribute::From: + return L"from"; + case XFA_Attribute::BaseProfile: + return L"baseProfile"; + case XFA_Attribute::Aspect: + return L"aspect"; + case XFA_Attribute::RowColumnRatio: + return L"rowColumnRatio"; + case XFA_Attribute::LineHeight: + return L"lineHeight"; + case XFA_Attribute::Highlight: + return L"highlight"; + case XFA_Attribute::ValueRef: + return L"valueRef"; + case XFA_Attribute::MaxEntries: + return L"maxEntries"; + case XFA_Attribute::DataLength: + return L"dataLength"; + case XFA_Attribute::Activity: + return L"activity"; + case XFA_Attribute::Input: + return L"input"; + case XFA_Attribute::Value: + return L"value"; + case XFA_Attribute::BlankOrNotBlank: + return L"blankOrNotBlank"; + case XFA_Attribute::AddRevocationInfo: + return L"addRevocationInfo"; + case XFA_Attribute::GenericFamily: + return L"genericFamily"; + case XFA_Attribute::Hand: + return L"hand"; + case XFA_Attribute::Href: + return L"href"; + case XFA_Attribute::TextEncoding: + return L"textEncoding"; + case XFA_Attribute::LeadDigits: + return L"leadDigits"; + case XFA_Attribute::Permissions: + return L"permissions"; + case XFA_Attribute::SpaceAbove: + return L"spaceAbove"; + case XFA_Attribute::CodeBase: + return L"codeBase"; + case XFA_Attribute::Stock: + return L"stock"; + case XFA_Attribute::IsNull: + return L"isNull"; + case XFA_Attribute::RestoreState: + return L"restoreState"; + case XFA_Attribute::ExcludeAllCaps: + return L"excludeAllCaps"; + case XFA_Attribute::FormatTest: + return L"formatTest"; + case XFA_Attribute::HScrollPolicy: + return L"hScrollPolicy"; + case XFA_Attribute::Join: + return L"join"; + case XFA_Attribute::KeyCertSign: + return L"keyCertSign"; + case XFA_Attribute::Radius: + return L"radius"; + case XFA_Attribute::SourceAbove: + return L"sourceAbove"; + case XFA_Attribute::Override: + return L"override"; + case XFA_Attribute::ClassId: + return L"classId"; + case XFA_Attribute::Disable: + return L"disable"; + case XFA_Attribute::Scope: + return L"scope"; + case XFA_Attribute::Match: + return L"match"; + case XFA_Attribute::Placement: + return L"placement"; + case XFA_Attribute::Before: + return L"before"; + case XFA_Attribute::WritingScript: + return L"writingScript"; + case XFA_Attribute::EndChar: + return L"endChar"; + case XFA_Attribute::Lock: + return L"lock"; + case XFA_Attribute::Long: + return L"long"; + case XFA_Attribute::Intact: + return L"intact"; + case XFA_Attribute::XdpContent: + return L"xdpContent"; + case XFA_Attribute::DecipherOnly: + return L"decipherOnly"; + + default: + NOTREACHED(); + break; + } + return L""; +} + +#ifndef NDEBUG +// static +WideString CXFA_Node::ElementToName(XFA_Element attr) { + switch (attr) { + case XFA_Element::Ps: + return L"ps"; + case XFA_Element::To: + return L"to"; + case XFA_Element::Ui: + return L"ui"; + case XFA_Element::RecordSet: + return L"recordSet"; + case XFA_Element::SubsetBelow: + return L"subsetBelow"; + case XFA_Element::SubformSet: + return L"subformSet"; + case XFA_Element::AdobeExtensionLevel: + return L"adobeExtensionLevel"; + case XFA_Element::Typeface: + return L"typeface"; + case XFA_Element::Break: + return L"break"; + case XFA_Element::FontInfo: + return L"fontInfo"; + case XFA_Element::NumberPattern: + return L"numberPattern"; + case XFA_Element::DynamicRender: + return L"dynamicRender"; + case XFA_Element::PrintScaling: + return L"printScaling"; + case XFA_Element::CheckButton: + return L"checkButton"; + case XFA_Element::DatePatterns: + return L"datePatterns"; + case XFA_Element::SourceSet: + return L"sourceSet"; + case XFA_Element::Amd: + return L"amd"; + case XFA_Element::Arc: + return L"arc"; + case XFA_Element::Day: + return L"day"; + case XFA_Element::Era: + return L"era"; + case XFA_Element::Jog: + return L"jog"; + case XFA_Element::Log: + return L"log"; + case XFA_Element::Map: + return L"map"; + case XFA_Element::Mdp: + return L"mdp"; + case XFA_Element::BreakBefore: + return L"breakBefore"; + case XFA_Element::Oid: + return L"oid"; + case XFA_Element::Pcl: + return L"pcl"; + case XFA_Element::Pdf: + return L"pdf"; + case XFA_Element::Ref: + return L"ref"; + case XFA_Element::Uri: + return L"uri"; + case XFA_Element::Xdc: + return L"xdc"; + case XFA_Element::Xdp: + return L"xdp"; + case XFA_Element::Xfa: + return L"xfa"; + case XFA_Element::Xsl: + return L"xsl"; + case XFA_Element::Zpl: + return L"zpl"; + case XFA_Element::Cache: + return L"cache"; + case XFA_Element::Margin: + return L"margin"; + case XFA_Element::KeyUsage: + return L"keyUsage"; + case XFA_Element::Exclude: + return L"exclude"; + case XFA_Element::ChoiceList: + return L"choiceList"; + case XFA_Element::Level: + return L"level"; + case XFA_Element::LabelPrinter: + return L"labelPrinter"; + case XFA_Element::CalendarSymbols: + return L"calendarSymbols"; + case XFA_Element::Para: + return L"para"; + case XFA_Element::Part: + return L"part"; + case XFA_Element::Pdfa: + return L"pdfa"; + case XFA_Element::Filter: + return L"filter"; + case XFA_Element::Present: + return L"present"; + case XFA_Element::Pagination: + return L"pagination"; + case XFA_Element::Encoding: + return L"encoding"; + case XFA_Element::Event: + return L"event"; + case XFA_Element::Whitespace: + return L"whitespace"; + case XFA_Element::DefaultUi: + return L"defaultUi"; + case XFA_Element::DataModel: + return L"dataModel"; + case XFA_Element::Barcode: + return L"barcode"; + case XFA_Element::TimePattern: + return L"timePattern"; + case XFA_Element::BatchOutput: + return L"batchOutput"; + case XFA_Element::Enforce: + return L"enforce"; + case XFA_Element::CurrencySymbols: + return L"currencySymbols"; + case XFA_Element::AddSilentPrint: + return L"addSilentPrint"; + case XFA_Element::Rename: + return L"rename"; + case XFA_Element::Operation: + return L"operation"; + case XFA_Element::Typefaces: + return L"typefaces"; + case XFA_Element::SubjectDNs: + return L"subjectDNs"; + case XFA_Element::Issuers: + return L"issuers"; + case XFA_Element::SignaturePseudoModel: + return L"signaturePseudoModel"; + case XFA_Element::WsdlConnection: + return L"wsdlConnection"; + case XFA_Element::Debug: + return L"debug"; + case XFA_Element::Delta: + return L"delta"; + case XFA_Element::EraNames: + return L"eraNames"; + case XFA_Element::ModifyAnnots: + return L"modifyAnnots"; + case XFA_Element::StartNode: + return L"startNode"; + case XFA_Element::Button: + return L"button"; + case XFA_Element::Format: + return L"format"; + case XFA_Element::Border: + return L"border"; + case XFA_Element::Area: + return L"area"; + case XFA_Element::Hyphenation: + return L"hyphenation"; + case XFA_Element::Text: + return L"text"; + case XFA_Element::Time: + return L"time"; + case XFA_Element::Type: + return L"type"; + case XFA_Element::Overprint: + return L"overprint"; + case XFA_Element::Certificates: + return L"certificates"; + case XFA_Element::EncryptionMethods: + return L"encryptionMethods"; + case XFA_Element::SetProperty: + return L"setProperty"; + case XFA_Element::PrinterName: + return L"printerName"; + case XFA_Element::StartPage: + return L"startPage"; + case XFA_Element::PageOffset: + return L"pageOffset"; + case XFA_Element::DateTime: + return L"dateTime"; + case XFA_Element::Comb: + return L"comb"; + case XFA_Element::Pattern: + return L"pattern"; + case XFA_Element::IfEmpty: + return L"ifEmpty"; + case XFA_Element::SuppressBanner: + return L"suppressBanner"; + case XFA_Element::OutputBin: + return L"outputBin"; + case XFA_Element::Field: + return L"field"; + case XFA_Element::Agent: + return L"agent"; + case XFA_Element::OutputXSL: + return L"outputXSL"; + case XFA_Element::AdjustData: + return L"adjustData"; + case XFA_Element::AutoSave: + return L"autoSave"; + case XFA_Element::ContentArea: + return L"contentArea"; + case XFA_Element::EventPseudoModel: + return L"eventPseudoModel"; + case XFA_Element::WsdlAddress: + return L"wsdlAddress"; + case XFA_Element::Solid: + return L"solid"; + case XFA_Element::DateTimeSymbols: + return L"dateTimeSymbols"; + case XFA_Element::EncryptionLevel: + return L"encryptionLevel"; + case XFA_Element::Edge: + return L"edge"; + case XFA_Element::Stipple: + return L"stipple"; + case XFA_Element::Attributes: + return L"attributes"; + case XFA_Element::VersionControl: + return L"versionControl"; + case XFA_Element::Meridiem: + return L"meridiem"; + case XFA_Element::ExclGroup: + return L"exclGroup"; + case XFA_Element::ToolTip: + return L"toolTip"; + case XFA_Element::Compress: + return L"compress"; + case XFA_Element::Reason: + return L"reason"; + case XFA_Element::Execute: + return L"execute"; + case XFA_Element::ContentCopy: + return L"contentCopy"; + case XFA_Element::DateTimeEdit: + return L"dateTimeEdit"; + case XFA_Element::Config: + return L"config"; + case XFA_Element::Image: + return L"image"; + case XFA_Element::SharpxHTML: + return L"#xHTML"; + case XFA_Element::NumberOfCopies: + return L"numberOfCopies"; + case XFA_Element::BehaviorOverride: + return L"behaviorOverride"; + case XFA_Element::TimeStamp: + return L"timeStamp"; + case XFA_Element::Month: + return L"month"; + case XFA_Element::ViewerPreferences: + return L"viewerPreferences"; + case XFA_Element::ScriptModel: + return L"scriptModel"; + case XFA_Element::Decimal: + return L"decimal"; + case XFA_Element::Subform: + return L"subform"; + case XFA_Element::Select: + return L"select"; + case XFA_Element::Window: + return L"window"; + case XFA_Element::LocaleSet: + return L"localeSet"; + case XFA_Element::Handler: + return L"handler"; + case XFA_Element::HostPseudoModel: + return L"hostPseudoModel"; + case XFA_Element::Presence: + return L"presence"; + case XFA_Element::Record: + return L"record"; + case XFA_Element::Embed: + return L"embed"; + case XFA_Element::Version: + return L"version"; + case XFA_Element::Command: + return L"command"; + case XFA_Element::Copies: + return L"copies"; + case XFA_Element::Staple: + return L"staple"; + case XFA_Element::SubmitFormat: + return L"submitFormat"; + case XFA_Element::Boolean: + return L"boolean"; + case XFA_Element::Message: + return L"message"; + case XFA_Element::Output: + return L"output"; + case XFA_Element::PsMap: + return L"psMap"; + case XFA_Element::ExcludeNS: + return L"excludeNS"; + case XFA_Element::Assist: + return L"assist"; + case XFA_Element::Picture: + return L"picture"; + case XFA_Element::Traversal: + return L"traversal"; + case XFA_Element::SilentPrint: + return L"silentPrint"; + case XFA_Element::WebClient: + return L"webClient"; + case XFA_Element::LayoutPseudoModel: + return L"layoutPseudoModel"; + case XFA_Element::Producer: + return L"producer"; + case XFA_Element::Corner: + return L"corner"; + case XFA_Element::MsgId: + return L"msgId"; + case XFA_Element::Color: + return L"color"; + case XFA_Element::Keep: + return L"keep"; + case XFA_Element::Query: + return L"query"; + case XFA_Element::Insert: + return L"insert"; + case XFA_Element::ImageEdit: + return L"imageEdit"; + case XFA_Element::Validate: + return L"validate"; + case XFA_Element::DigestMethods: + return L"digestMethods"; + case XFA_Element::NumberPatterns: + return L"numberPatterns"; + case XFA_Element::PageSet: + return L"pageSet"; + case XFA_Element::Integer: + return L"integer"; + case XFA_Element::SoapAddress: + return L"soapAddress"; + case XFA_Element::Equate: + return L"equate"; + case XFA_Element::FormFieldFilling: + return L"formFieldFilling"; + case XFA_Element::PageRange: + return L"pageRange"; + case XFA_Element::Update: + return L"update"; + case XFA_Element::ConnectString: + return L"connectString"; + case XFA_Element::Mode: + return L"mode"; + case XFA_Element::Layout: + return L"layout"; + case XFA_Element::Sharpxml: + return L"#xml"; + case XFA_Element::XsdConnection: + return L"xsdConnection"; + case XFA_Element::Traverse: + return L"traverse"; + case XFA_Element::Encodings: + return L"encodings"; + case XFA_Element::Template: + return L"template"; + case XFA_Element::Acrobat: + return L"acrobat"; + case XFA_Element::ValidationMessaging: + return L"validationMessaging"; + case XFA_Element::Signing: + return L"signing"; + case XFA_Element::DataWindow: + return L"dataWindow"; + case XFA_Element::Script: + return L"script"; + case XFA_Element::AddViewerPreferences: + return L"addViewerPreferences"; + case XFA_Element::AlwaysEmbed: + return L"alwaysEmbed"; + case XFA_Element::PasswordEdit: + return L"passwordEdit"; + case XFA_Element::NumericEdit: + return L"numericEdit"; + case XFA_Element::EncryptionMethod: + return L"encryptionMethod"; + case XFA_Element::Change: + return L"change"; + case XFA_Element::PageArea: + return L"pageArea"; + case XFA_Element::SubmitUrl: + return L"submitUrl"; + case XFA_Element::Oids: + return L"oids"; + case XFA_Element::Signature: + return L"signature"; + case XFA_Element::ADBE_JSConsole: + return L"ADBE_JSConsole"; + case XFA_Element::Caption: + return L"caption"; + case XFA_Element::Relevant: + return L"relevant"; + case XFA_Element::FlipLabel: + return L"flipLabel"; + case XFA_Element::ExData: + return L"exData"; + case XFA_Element::DayNames: + return L"dayNames"; + case XFA_Element::SoapAction: + return L"soapAction"; + case XFA_Element::DefaultTypeface: + return L"defaultTypeface"; + case XFA_Element::Manifest: + return L"manifest"; + case XFA_Element::Overflow: + return L"overflow"; + case XFA_Element::Linear: + return L"linear"; + case XFA_Element::CurrencySymbol: + return L"currencySymbol"; + case XFA_Element::Delete: + return L"delete"; + case XFA_Element::Deltas: + return L"deltas"; + case XFA_Element::DigestMethod: + return L"digestMethod"; + case XFA_Element::InstanceManager: + return L"instanceManager"; + case XFA_Element::EquateRange: + return L"equateRange"; + case XFA_Element::Medium: + return L"medium"; + case XFA_Element::TextEdit: + return L"textEdit"; + case XFA_Element::TemplateCache: + return L"templateCache"; + case XFA_Element::CompressObjectStream: + return L"compressObjectStream"; + case XFA_Element::DataValue: + return L"dataValue"; + case XFA_Element::AccessibleContent: + return L"accessibleContent"; + case XFA_Element::IncludeXDPContent: + return L"includeXDPContent"; + case XFA_Element::XmlConnection: + return L"xmlConnection"; + case XFA_Element::ValidateApprovalSignatures: + return L"validateApprovalSignatures"; + case XFA_Element::SignData: + return L"signData"; + case XFA_Element::Packets: + return L"packets"; + case XFA_Element::DatePattern: + return L"datePattern"; + case XFA_Element::DuplexOption: + return L"duplexOption"; + case XFA_Element::Base: + return L"base"; + case XFA_Element::Bind: + return L"bind"; + case XFA_Element::Compression: + return L"compression"; + case XFA_Element::User: + return L"user"; + case XFA_Element::Rectangle: + return L"rectangle"; + case XFA_Element::EffectiveOutputPolicy: + return L"effectiveOutputPolicy"; + case XFA_Element::ADBE_JSDebugger: + return L"ADBE_JSDebugger"; + case XFA_Element::Acrobat7: + return L"acrobat7"; + case XFA_Element::Interactive: + return L"interactive"; + case XFA_Element::Locale: + return L"locale"; + case XFA_Element::CurrentPage: + return L"currentPage"; + case XFA_Element::Data: + return L"data"; + case XFA_Element::Date: + return L"date"; + case XFA_Element::Desc: + return L"desc"; + case XFA_Element::Encrypt: + return L"encrypt"; + case XFA_Element::Draw: + return L"draw"; + case XFA_Element::Encryption: + return L"encryption"; + case XFA_Element::MeridiemNames: + return L"meridiemNames"; + case XFA_Element::Messaging: + return L"messaging"; + case XFA_Element::Speak: + return L"speak"; + case XFA_Element::DataGroup: + return L"dataGroup"; + case XFA_Element::Common: + return L"common"; + case XFA_Element::Sharptext: + return L"#text"; + case XFA_Element::PaginationOverride: + return L"paginationOverride"; + case XFA_Element::Reasons: + return L"reasons"; + case XFA_Element::SignatureProperties: + return L"signatureProperties"; + case XFA_Element::Threshold: + return L"threshold"; + case XFA_Element::AppearanceFilter: + return L"appearanceFilter"; + case XFA_Element::Fill: + return L"fill"; + case XFA_Element::Font: + return L"font"; + case XFA_Element::Form: + return L"form"; + case XFA_Element::MediumInfo: + return L"mediumInfo"; + case XFA_Element::Certificate: + return L"certificate"; + case XFA_Element::Password: + return L"password"; + case XFA_Element::RunScripts: + return L"runScripts"; + case XFA_Element::Trace: + return L"trace"; + case XFA_Element::Float: + return L"float"; + case XFA_Element::RenderPolicy: + return L"renderPolicy"; + case XFA_Element::LogPseudoModel: + return L"logPseudoModel"; + case XFA_Element::Destination: + return L"destination"; + case XFA_Element::Value: + return L"value"; + case XFA_Element::Bookend: + return L"bookend"; + case XFA_Element::ExObject: + return L"exObject"; + case XFA_Element::OpenAction: + return L"openAction"; + case XFA_Element::NeverEmbed: + return L"neverEmbed"; + case XFA_Element::BindItems: + return L"bindItems"; + case XFA_Element::Calculate: + return L"calculate"; + case XFA_Element::Print: + return L"print"; + case XFA_Element::Extras: + return L"extras"; + case XFA_Element::Proto: + return L"proto"; + case XFA_Element::DSigData: + return L"dSigData"; + case XFA_Element::Creator: + return L"creator"; + case XFA_Element::Connect: + return L"connect"; + case XFA_Element::Permissions: + return L"permissions"; + case XFA_Element::ConnectionSet: + return L"connectionSet"; + case XFA_Element::Submit: + return L"submit"; + case XFA_Element::Range: + return L"range"; + case XFA_Element::Linearized: + return L"linearized"; + case XFA_Element::Packet: + return L"packet"; + case XFA_Element::RootElement: + return L"rootElement"; + case XFA_Element::PlaintextMetadata: + return L"plaintextMetadata"; + case XFA_Element::NumberSymbols: + return L"numberSymbols"; + case XFA_Element::PrintHighQuality: + return L"printHighQuality"; + case XFA_Element::Driver: + return L"driver"; + case XFA_Element::IncrementalLoad: + return L"incrementalLoad"; + case XFA_Element::SubjectDN: + return L"subjectDN"; + case XFA_Element::CompressLogicalStructure: + return L"compressLogicalStructure"; + case XFA_Element::IncrementalMerge: + return L"incrementalMerge"; + case XFA_Element::Radial: + return L"radial"; + case XFA_Element::Variables: + return L"variables"; + case XFA_Element::TimePatterns: + return L"timePatterns"; + case XFA_Element::EffectiveInputPolicy: + return L"effectiveInputPolicy"; + case XFA_Element::NameAttr: + return L"nameAttr"; + case XFA_Element::Conformance: + return L"conformance"; + case XFA_Element::Transform: + return L"transform"; + case XFA_Element::LockDocument: + return L"lockDocument"; + case XFA_Element::BreakAfter: + return L"breakAfter"; + case XFA_Element::Line: + return L"line"; + case XFA_Element::List: + return L"list"; + case XFA_Element::Source: + return L"source"; + case XFA_Element::Occur: + return L"occur"; + case XFA_Element::PickTrayByPDFSize: + return L"pickTrayByPDFSize"; + case XFA_Element::MonthNames: + return L"monthNames"; + case XFA_Element::Severity: + return L"severity"; + case XFA_Element::GroupParent: + return L"groupParent"; + case XFA_Element::DocumentAssembly: + return L"documentAssembly"; + case XFA_Element::NumberSymbol: + return L"numberSymbol"; + case XFA_Element::Tagged: + return L"tagged"; + case XFA_Element::Items: + return L"items"; + + default: + NOTREACHED(); + break; + } + return L""; +} +#endif // NDEBUG diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp index 6970fcc25e..e0196539a3 100644 --- a/xfa/fxfa/parser/cxfa_numberofcopies.cpp +++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"numberOfCopies"; diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp index 71097405ae..9896723587 100644 --- a/xfa/fxfa/parser/cxfa_numberpattern.cpp +++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Numeric}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"numberPattern"; diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp index 064206c82a..46a437f9ef 100644 --- a/xfa/fxfa/parser/cxfa_numbersymbol.cpp +++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Decimal}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"numberSymbol"; diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp index 4f605f321f..2c9f8787c9 100644 --- a/xfa/fxfa/parser/cxfa_numericedit.cpp +++ b/xfa/fxfa/parser/cxfa_numericedit.cpp @@ -13,9 +13,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Comb, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::HScrollPolicy, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"numericEdit"; diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp index 3f0675624c..01ad10eaf7 100644 --- a/xfa/fxfa/parser/cxfa_occur.cpp +++ b/xfa/fxfa/parser/cxfa_occur.cpp @@ -10,10 +10,27 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Max, XFA_Attribute::Min, - XFA_Attribute::Use, XFA_Attribute::Initial, XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Max, XFA_AttributeType::Integer, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)1}, + {XFA_Attribute::Min, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Initial, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"occur"; diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp index e46f701918..96bb3f962d 100644 --- a/xfa/fxfa/parser/cxfa_oid.cpp +++ b/xfa/fxfa/parser/cxfa_oid.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"oid"; diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp index 842171b64f..45b9d7b7c8 100644 --- a/xfa/fxfa/parser/cxfa_oids.cpp +++ b/xfa/fxfa/parser/cxfa_oids.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"oids"; diff --git a/xfa/fxfa/parser/cxfa_openaction.cpp b/xfa/fxfa/parser/cxfa_openaction.cpp index b2db5093d5..daffa2cac4 100644 --- a/xfa/fxfa/parser/cxfa_openaction.cpp +++ b/xfa/fxfa/parser/cxfa_openaction.cpp @@ -11,8 +11,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Destination, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"openAction"; diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp index f58d2ceb6a..81062a32eb 100644 --- a/xfa/fxfa/parser/cxfa_operation.cpp +++ b/xfa/fxfa/parser/cxfa_operation.cpp @@ -8,10 +8,29 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Output, XFA_Attribute::Usehref, XFA_Attribute::Input, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Output, XFA_AttributeType::CData, + XFA_XDPPACKET_ConnectionSet, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Input, XFA_AttributeType::CData, + XFA_XDPPACKET_ConnectionSet, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"operation"; diff --git a/xfa/fxfa/parser/cxfa_output.cpp b/xfa/fxfa/parser/cxfa_output.cpp index 13173ea57a..38f3847b45 100644 --- a/xfa/fxfa/parser/cxfa_output.cpp +++ b/xfa/fxfa/parser/cxfa_output.cpp @@ -12,8 +12,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0}, {XFA_Element::Uri, 1, 0}, {XFA_Element::Type, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"output"; diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp index 61cb1a7b5a..9be45fbe0a 100644 --- a/xfa/fxfa/parser/cxfa_outputbin.cpp +++ b/xfa/fxfa/parser/cxfa_outputbin.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"outputBin"; diff --git a/xfa/fxfa/parser/cxfa_outputxsl.cpp b/xfa/fxfa/parser/cxfa_outputxsl.cpp index 598c931f7d..c3155c10dc 100644 --- a/xfa/fxfa/parser/cxfa_outputxsl.cpp +++ b/xfa/fxfa/parser/cxfa_outputxsl.cpp @@ -10,8 +10,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"outputXSL"; diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp index 86912fafd1..22d704e4be 100644 --- a/xfa/fxfa/parser/cxfa_overflow.cpp +++ b/xfa/fxfa/parser/cxfa_overflow.cpp @@ -8,10 +8,26 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Trailer, - XFA_Attribute::Usehref, XFA_Attribute::Target, XFA_Attribute::Leader, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Trailer, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Target, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Leader, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"overflow"; diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp index cfcba66703..e7a4133ffb 100644 --- a/xfa/fxfa/parser/cxfa_overprint.cpp +++ b/xfa/fxfa/parser/cxfa_overprint.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"overprint"; diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp index 313e2a3543..94de39d1ff 100644 --- a/xfa/fxfa/parser/cxfa_packets.cpp +++ b/xfa/fxfa/parser/cxfa_packets.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"packets"; diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp index 17489f6f26..a133b178be 100644 --- a/xfa/fxfa/parser/cxfa_pagearea.cpp +++ b/xfa/fxfa/parser/cxfa_pagearea.cpp @@ -13,17 +13,37 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Medium, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Occur, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Name, - XFA_Attribute::Use, - XFA_Attribute::PagePosition, - XFA_Attribute::OddOrEven, - XFA_Attribute::Relevant, - XFA_Attribute::InitialNumber, - XFA_Attribute::Usehref, - XFA_Attribute::Numbered, - XFA_Attribute::BlankOrNotBlank, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::PagePosition, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any}, + {XFA_Attribute::OddOrEven, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::InitialNumber, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Numbered, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::BlankOrNotBlank, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pageArea"; diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp index 0d2445849d..090c1e59b6 100644 --- a/xfa/fxfa/parser/cxfa_pageoffset.cpp +++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp @@ -8,9 +8,18 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::X, XFA_Attribute::Y, XFA_Attribute::Desc, - XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pageOffset"; diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp index 10004eb43c..635d19587b 100644 --- a/xfa/fxfa/parser/cxfa_pagerange.cpp +++ b/xfa/fxfa/parser/cxfa_pagerange.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pageRange"; diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp index 914060da58..e76b7b5f66 100644 --- a/xfa/fxfa/parser/cxfa_pageset.cpp +++ b/xfa/fxfa/parser/cxfa_pageset.cpp @@ -11,11 +11,33 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Occur, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Use, XFA_Attribute::Relation, - XFA_Attribute::Relevant, XFA_Attribute::DuplexImposition, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Relation, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_OrderedOccurrence}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::DuplexImposition, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_LongEdge}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pageSet"; diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp index 0290479ab4..a2f3628b35 100644 --- a/xfa/fxfa/parser/cxfa_pagination.cpp +++ b/xfa/fxfa/parser/cxfa_pagination.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pagination"; diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp index 69fb357667..2b06a55bb7 100644 --- a/xfa/fxfa/parser/cxfa_paginationoverride.cpp +++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"paginationOverride"; diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp index 43d63b6e06..89b040df99 100644 --- a/xfa/fxfa/parser/cxfa_para.cpp +++ b/xfa/fxfa/parser/cxfa_para.cpp @@ -11,16 +11,49 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Hyphenation, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::HAlign, - XFA_Attribute::TextIndent, XFA_Attribute::Use, - XFA_Attribute::Widows, XFA_Attribute::MarginRight, - XFA_Attribute::MarginLeft, XFA_Attribute::RadixOffset, - XFA_Attribute::Preserve, XFA_Attribute::SpaceBelow, - XFA_Attribute::VAlign, XFA_Attribute::TabDefault, - XFA_Attribute::TabStops, XFA_Attribute::Orphans, - XFA_Attribute::Usehref, XFA_Attribute::LineHeight, - XFA_Attribute::SpaceAbove, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Left}, + {XFA_Attribute::TextIndent, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Widows, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::MarginRight, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MarginLeft, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::RadixOffset, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Preserve, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::SpaceBelow, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::VAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top}, + {XFA_Attribute::TabDefault, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::TabStops, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Orphans, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::LineHeight, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0pt"}, + {XFA_Attribute::SpaceAbove, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"para"; diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp index 917b46891d..8a97a52bc7 100644 --- a/xfa/fxfa/parser/cxfa_part.cpp +++ b/xfa/fxfa/parser/cxfa_part.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"part"; diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp index 2f4573b76e..f54002b78b 100644 --- a/xfa/fxfa/parser/cxfa_password.cpp +++ b/xfa/fxfa/parser/cxfa_password.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"password"; diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp index 96b040cbd3..245d0184f8 100644 --- a/xfa/fxfa/parser/cxfa_passwordedit.cpp +++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp @@ -12,12 +12,25 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Border, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::Use, - XFA_Attribute::PasswordChar, - XFA_Attribute::Usehref, - XFA_Attribute::HScrollPolicy, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::PasswordChar, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"*"}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"passwordEdit"; diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp index b9740d14c0..9ee2c70d79 100644 --- a/xfa/fxfa/parser/cxfa_pattern.cpp +++ b/xfa/fxfa/parser/cxfa_pattern.cpp @@ -11,9 +11,23 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_CrossHatch}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pattern"; diff --git a/xfa/fxfa/parser/cxfa_pcl.cpp b/xfa/fxfa/parser/cxfa_pcl.cpp index 13ca508a9b..5ae0336362 100644 --- a/xfa/fxfa/parser/cxfa_pcl.cpp +++ b/xfa/fxfa/parser/cxfa_pcl.cpp @@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::PageOffset, 1, 0}, {XFA_Element::OutputBin, 1, 0}, {XFA_Element::Staple, 1, 0}, {XFA_Element::MediumInfo, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pcl"; diff --git a/xfa/fxfa/parser/cxfa_pdf.cpp b/xfa/fxfa/parser/cxfa_pdf.cpp index 957867e448..6b9419321b 100644 --- a/xfa/fxfa/parser/cxfa_pdf.cpp +++ b/xfa/fxfa/parser/cxfa_pdf.cpp @@ -29,9 +29,17 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Linearized, 1, 0}, {XFA_Element::Tagged, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pdf"; diff --git a/xfa/fxfa/parser/cxfa_pdfa.cpp b/xfa/fxfa/parser/cxfa_pdfa.cpp index 76b624980f..fd7be6b8f6 100644 --- a/xfa/fxfa/parser/cxfa_pdfa.cpp +++ b/xfa/fxfa/parser/cxfa_pdfa.cpp @@ -14,8 +14,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::IncludeXDPContent, 1, 0}, {XFA_Element::Conformance, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pdfa"; diff --git a/xfa/fxfa/parser/cxfa_permissions.cpp b/xfa/fxfa/parser/cxfa_permissions.cpp index 29620127f5..33bb76c325 100644 --- a/xfa/fxfa/parser/cxfa_permissions.cpp +++ b/xfa/fxfa/parser/cxfa_permissions.cpp @@ -19,8 +19,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::PrintHighQuality, 1, 0}, {XFA_Element::DocumentAssembly, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"permissions"; diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp index 3a82e108ad..57de8d5089 100644 --- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp +++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"pickTrayByPDFSize"; diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp index 2f5def6c5a..4d2260208c 100644 --- a/xfa/fxfa/parser/cxfa_picture.cpp +++ b/xfa/fxfa/parser/cxfa_picture.cpp @@ -8,9 +8,24 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"picture"; diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp index 52a038eaaf..2b39226329 100644 --- a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp +++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"plaintextMetadata"; diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp index 352c8f0793..6fead44918 100644 --- a/xfa/fxfa/parser/cxfa_presence.cpp +++ b/xfa/fxfa/parser/cxfa_presence.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"presence"; diff --git a/xfa/fxfa/parser/cxfa_present.cpp b/xfa/fxfa/parser/cxfa_present.cpp index 939789af00..97a6a83c75 100644 --- a/xfa/fxfa/parser/cxfa_present.cpp +++ b/xfa/fxfa/parser/cxfa_present.cpp @@ -24,8 +24,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Destination, 1, 0}, {XFA_Element::IncrementalMerge, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"present"; diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp index 42dcb2fb41..7c71b7d15b 100644 --- a/xfa/fxfa/parser/cxfa_print.cpp +++ b/xfa/fxfa/parser/cxfa_print.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"print"; diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp index 711591c461..6d582194ce 100644 --- a/xfa/fxfa/parser/cxfa_printername.cpp +++ b/xfa/fxfa/parser/cxfa_printername.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"printerName"; diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp index 6a443a9b2a..55c58e93c8 100644 --- a/xfa/fxfa/parser/cxfa_printhighquality.cpp +++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"printHighQuality"; diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp index c73a40adeb..5f046c5dca 100644 --- a/xfa/fxfa/parser/cxfa_printscaling.cpp +++ b/xfa/fxfa/parser/cxfa_printscaling.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"printScaling"; diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp index b1829bd551..bc60a1344b 100644 --- a/xfa/fxfa/parser/cxfa_producer.cpp +++ b/xfa/fxfa/parser/cxfa_producer.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"producer"; diff --git a/xfa/fxfa/parser/cxfa_ps.cpp b/xfa/fxfa/parser/cxfa_ps.cpp index 36bc37705b..0c656fbc19 100644 --- a/xfa/fxfa/parser/cxfa_ps.cpp +++ b/xfa/fxfa/parser/cxfa_ps.cpp @@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::OutputBin, 1, 0}, {XFA_Element::Compress, 1, 0}, {XFA_Element::Staple, 1, 0}, {XFA_Element::MediumInfo, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"ps"; diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp index 34d2c0a141..d871d2bff1 100644 --- a/xfa/fxfa/parser/cxfa_query.cpp +++ b/xfa/fxfa/parser/cxfa_query.cpp @@ -11,9 +11,27 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::RecordSet, 1, 0}, {XFA_Element::Select, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::CommandType, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::CommandType, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_Unknown}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"query"; diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp index d080c35693..98ac05c960 100644 --- a/xfa/fxfa/parser/cxfa_radial.cpp +++ b/xfa/fxfa/parser/cxfa_radial.cpp @@ -11,9 +11,23 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_ToEdge}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"radial"; diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp index ec3269394d..56d02e8e84 100644 --- a/xfa/fxfa/parser/cxfa_range.cpp +++ b/xfa/fxfa/parser/cxfa_range.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"range"; diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp index a7b4b52c4f..533b2dd4ba 100644 --- a/xfa/fxfa/parser/cxfa_reason.cpp +++ b/xfa/fxfa/parser/cxfa_reason.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"reason"; diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp index df964d49d1..f578cc16f3 100644 --- a/xfa/fxfa/parser/cxfa_reasons.cpp +++ b/xfa/fxfa/parser/cxfa_reasons.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"reasons"; diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp index 90877e80e5..e2445d0771 100644 --- a/xfa/fxfa/parser/cxfa_record.cpp +++ b/xfa/fxfa/parser/cxfa_record.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"record"; diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp index e7ae76679d..22a0e85e09 100644 --- a/xfa/fxfa/parser/cxfa_recordset.cpp +++ b/xfa/fxfa/parser/cxfa_recordset.cpp @@ -8,13 +8,38 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, - XFA_Attribute::Max, XFA_Attribute::Use, - XFA_Attribute::EofAction, XFA_Attribute::CursorType, - XFA_Attribute::LockType, XFA_Attribute::BofAction, - XFA_Attribute::Usehref, XFA_Attribute::CursorLocation, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Max, XFA_AttributeType::Integer, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)0}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::EofAction, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, + (void*)XFA_ATTRIBUTEENUM_MoveLast}, + {XFA_Attribute::CursorType, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_ForwardOnly}, + {XFA_Attribute::LockType, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, + (void*)XFA_ATTRIBUTEENUM_ReadOnly}, + {XFA_Attribute::BofAction, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, + (void*)XFA_ATTRIBUTEENUM_MoveFirst}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::CursorLocation, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_Client}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"recordSet"; diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp index cd3b584a75..25e4449af3 100644 --- a/xfa/fxfa/parser/cxfa_rectangle.cpp +++ b/xfa/fxfa/parser/cxfa_rectangle.cpp @@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 4, 0}, {XFA_Element::Corner, 4, 0}, {XFA_Element::Fill, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref, - XFA_Attribute::Hand, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Hand, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Even}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"rectangle"; diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp index cbc3ff9f83..138979e228 100644 --- a/xfa/fxfa/parser/cxfa_ref.cpp +++ b/xfa/fxfa/parser/cxfa_ref.cpp @@ -8,9 +8,20 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"ref"; diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp index a4209bc3d8..91e219e3a0 100644 --- a/xfa/fxfa/parser/cxfa_relevant.cpp +++ b/xfa/fxfa/parser/cxfa_relevant.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"relevant"; diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp index 406315e86a..7c74f06622 100644 --- a/xfa/fxfa/parser/cxfa_rename.cpp +++ b/xfa/fxfa/parser/cxfa_rename.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"rename"; diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp index 85eb4b171f..a974f0399e 100644 --- a/xfa/fxfa/parser/cxfa_renderpolicy.cpp +++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"renderPolicy"; diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp index 3cd5614e9b..0ace007cf1 100644 --- a/xfa/fxfa/parser/cxfa_rootelement.cpp +++ b/xfa/fxfa/parser/cxfa_rootelement.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"rootElement"; diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp index 120dbc8120..0b90ceb771 100644 --- a/xfa/fxfa/parser/cxfa_runscripts.cpp +++ b/xfa/fxfa/parser/cxfa_runscripts.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"runScripts"; diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp index c34e09433c..b85ef4b1f0 100644 --- a/xfa/fxfa/parser/cxfa_script.cpp +++ b/xfa/fxfa/parser/cxfa_script.cpp @@ -13,11 +13,38 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::CurrentPage, 1, 0}, {XFA_Element::RunScripts, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::ContentType, XFA_Attribute::RunAt, XFA_Attribute::Binding, - XFA_Attribute::Usehref, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ContentType, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::RunAt, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Client}, + {XFA_Attribute::Binding, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"script"; diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp index bed2e1d6e2..0790169075 100644 --- a/xfa/fxfa/parser/cxfa_scriptmodel.cpp +++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"scriptModel"; diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp index 52835eff7a..90c7fd221a 100644 --- a/xfa/fxfa/parser/cxfa_select.cpp +++ b/xfa/fxfa/parser/cxfa_select.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"select"; diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp index 4826ae4e74..6b68bfa9a1 100644 --- a/xfa/fxfa/parser/cxfa_setproperty.cpp +++ b/xfa/fxfa/parser/cxfa_setproperty.cpp @@ -8,9 +8,16 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Ref, XFA_Attribute::Connection, XFA_Attribute::Target, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Connection, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Target, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"setProperty"; diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp index 0b7d365b86..8d1b83da18 100644 --- a/xfa/fxfa/parser/cxfa_severity.cpp +++ b/xfa/fxfa/parser/cxfa_severity.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"severity"; diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp index 52128a59af..6580c7dd9d 100644 --- a/xfa/fxfa/parser/cxfa_sharptext.cpp +++ b/xfa/fxfa/parser/cxfa_sharptext.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Value, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"#text"; diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp index e3f514e699..21c51a4b6a 100644 --- a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp +++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Value, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"#xHTML"; diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp index dbda7cbb72..3b102bef06 100644 --- a/xfa/fxfa/parser/cxfa_sharpxml.cpp +++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Value, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"#xml"; diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp index 0dca3bcead..03b4423f52 100644 --- a/xfa/fxfa/parser/cxfa_signature.cpp +++ b/xfa/fxfa/parser/cxfa_signature.cpp @@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Margin, 1, 0}, {XFA_Element::Filter, 1, 0}, {XFA_Element::Border, 1, 0}, {XFA_Element::Manifest, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_PDF1_3}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"signature"; diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp index 2f9623b370..318bc89a5f 100644 --- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp +++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp @@ -8,8 +8,16 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Use, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"signatureProperties"; diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp index a9cb38df05..364c6c2759 100644 --- a/xfa/fxfa/parser/cxfa_signdata.cpp +++ b/xfa/fxfa/parser/cxfa_signdata.cpp @@ -11,10 +11,29 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Filter, 1, 0}, {XFA_Element::Manifest, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Ref, XFA_Attribute::Use, - XFA_Attribute::Operation, XFA_Attribute::Usehref, XFA_Attribute::Target, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Operation, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Sign}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Target, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"signData"; diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp index a1ec88bcd9..9ff5ab1600 100644 --- a/xfa/fxfa/parser/cxfa_signing.cpp +++ b/xfa/fxfa/parser/cxfa_signing.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"signing"; diff --git a/xfa/fxfa/parser/cxfa_silentprint.cpp b/xfa/fxfa/parser/cxfa_silentprint.cpp index 5e48a94bbe..6f421597c5 100644 --- a/xfa/fxfa/parser/cxfa_silentprint.cpp +++ b/xfa/fxfa/parser/cxfa_silentprint.cpp @@ -12,8 +12,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::AddSilentPrint, 1, 0}, {XFA_Element::PrinterName, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"silentPrint"; diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp index c5716debb0..55284dd28b 100644 --- a/xfa/fxfa/parser/cxfa_soapaction.cpp +++ b/xfa/fxfa/parser/cxfa_soapaction.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"soapAction"; diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp index 2e4750fe68..d88f74513c 100644 --- a/xfa/fxfa/parser/cxfa_soapaddress.cpp +++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"soapAddress"; diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp index 8c5c051d17..8395794d97 100644 --- a/xfa/fxfa/parser/cxfa_solid.cpp +++ b/xfa/fxfa/parser/cxfa_solid.cpp @@ -10,9 +10,20 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"solid"; diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp index 994213c5ad..5887948361 100644 --- a/xfa/fxfa/parser/cxfa_source.cpp +++ b/xfa/fxfa/parser/cxfa_source.cpp @@ -10,9 +10,25 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Connect, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"source"; diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp index 6757aaabc6..0b61fd8b4b 100644 --- a/xfa/fxfa/parser/cxfa_sourceset.cpp +++ b/xfa/fxfa/parser/cxfa_sourceset.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"sourceSet"; diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp index 789a9fdc0c..4ff0314055 100644 --- a/xfa/fxfa/parser/cxfa_speak.cpp +++ b/xfa/fxfa/parser/cxfa_speak.cpp @@ -8,10 +8,27 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Rid, XFA_Attribute::Use, - XFA_Attribute::Priority, XFA_Attribute::Usehref, XFA_Attribute::Disable, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Rid, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Priority, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Custom}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Disable, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"speak"; diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp index 86e1ce3073..a2cf69592a 100644 --- a/xfa/fxfa/parser/cxfa_staple.cpp +++ b/xfa/fxfa/parser/cxfa_staple.cpp @@ -8,9 +8,14 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Mode, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Mode, XFA_AttributeType::Enum, XFA_XDPPACKET_Config, + (void*)XFA_ATTRIBUTEENUM_UsePrinterSetting}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"staple"; diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp index 736456005b..71d5183cf6 100644 --- a/xfa/fxfa/parser/cxfa_startnode.cpp +++ b/xfa/fxfa/parser/cxfa_startnode.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"startNode"; diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp index 48d5debbb3..60655267a4 100644 --- a/xfa/fxfa/parser/cxfa_startpage.cpp +++ b/xfa/fxfa/parser/cxfa_startpage.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"startPage"; diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp index 0567f5a153..9988a22022 100644 --- a/xfa/fxfa/parser/cxfa_stipple.cpp +++ b/xfa/fxfa/parser/cxfa_stipple.cpp @@ -11,9 +11,22 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Rate, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Rate, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)50}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"stipple"; diff --git a/xfa/fxfa/parser/cxfa_strokedata.cpp b/xfa/fxfa/parser/cxfa_strokedata.cpp index 0845719c9e..061b89e8ef 100644 --- a/xfa/fxfa/parser/cxfa_strokedata.cpp +++ b/xfa/fxfa/parser/cxfa_strokedata.cpp @@ -11,9 +11,13 @@ #include "xfa/fxfa/parser/xfa_utils.h" bool CXFA_StrokeData::IsVisible() const { - return m_pNode ? m_pNode->JSNode()->GetEnum(XFA_Attribute::Presence) == - XFA_ATTRIBUTEENUM_Visible - : false; + if (!m_pNode) + return false; + + XFA_ATTRIBUTEENUM presence = m_pNode->JSNode() + ->TryEnum(XFA_Attribute::Presence, true) + .value_or(XFA_ATTRIBUTEENUM_Visible); + return presence == XFA_ATTRIBUTEENUM_Visible; } XFA_ATTRIBUTEENUM CXFA_StrokeData::GetCapType() const { @@ -83,7 +87,8 @@ bool CXFA_StrokeData::IsInverted() const { float CXFA_StrokeData::GetRadius() const { return m_pNode ? m_pNode->JSNode() - ->GetMeasure(XFA_Attribute::Radius) + ->TryMeasure(XFA_Attribute::Radius, true) + .value_or(CXFA_Measurement(0, XFA_Unit::In)) .ToUnit(XFA_Unit::Pt) : 0; } diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp index e297437d99..1e62f17764 100644 --- a/xfa/fxfa/parser/cxfa_subform.cpp +++ b/xfa/fxfa/parser/cxfa_subform.cpp @@ -18,33 +18,79 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Bookend, 1, 0}, {XFA_Element::Calculate, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Variables, 1, 0}, {XFA_Element::Occur, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::H, - XFA_Attribute::W, - XFA_Attribute::X, - XFA_Attribute::Y, - XFA_Attribute::Id, - XFA_Attribute::HAlign, - XFA_Attribute::Name, - XFA_Attribute::Use, - XFA_Attribute::AllowMacro, - XFA_Attribute::ColumnWidths, - XFA_Attribute::Access, - XFA_Attribute::Presence, - XFA_Attribute::VAlign, - XFA_Attribute::MaxH, - XFA_Attribute::MaxW, - XFA_Attribute::MinH, - XFA_Attribute::MinW, - XFA_Attribute::Layout, - XFA_Attribute::Relevant, - XFA_Attribute::MergeMode, - XFA_Attribute::ColSpan, - XFA_Attribute::Usehref, - XFA_Attribute::Locale, - XFA_Attribute::AnchorType, - XFA_Attribute::RestoreState, - XFA_Attribute::Scope, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::H, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::W, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::X, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Y, XFA_AttributeType::Measure, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)L"0in"}, + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Left}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::AllowMacro, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::ColumnWidths, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Access, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Open}, + {XFA_Attribute::Presence, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Visible}, + {XFA_Attribute::VAlign, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top}, + {XFA_Attribute::MaxH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MaxW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinH, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::MinW, XFA_AttributeType::Measure, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, + {XFA_Attribute::Layout, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Position}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::MergeMode, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_ConsumeData}, + {XFA_Attribute::ColSpan, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Locale, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::AnchorType, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_TopLeft}, + {XFA_Attribute::RestoreState, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Manual}, + {XFA_Attribute::Scope, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Name}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"subform"; diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp index a72549f8a8..4d6d8aac81 100644 --- a/xfa/fxfa/parser/cxfa_subformset.cpp +++ b/xfa/fxfa/parser/cxfa_subformset.cpp @@ -13,10 +13,30 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Desc, 1, 0}, {XFA_Element::Bookend, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Occur, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Relation, XFA_Attribute::Relevant, XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Relation, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Ordered}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"subformSet"; diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp index 3541c7b7c6..989fd9e96e 100644 --- a/xfa/fxfa/parser/cxfa_subjectdn.cpp +++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp @@ -8,9 +8,27 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Delimiter, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Delimiter, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"subjectDN"; diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp index fd551d30b7..d2c370aa66 100644 --- a/xfa/fxfa/parser/cxfa_subjectdns.cpp +++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp @@ -8,9 +8,23 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"subjectDNs"; diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp index 7d3dbe9946..65ba8f58bc 100644 --- a/xfa/fxfa/parser/cxfa_submit.cpp +++ b/xfa/fxfa/parser/cxfa_submit.cpp @@ -10,12 +10,31 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Encrypt, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Format, XFA_Attribute::EmbedPDF, - XFA_Attribute::Usehref, XFA_Attribute::Target, - XFA_Attribute::TextEncoding, XFA_Attribute::XdpContent, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Format, XFA_AttributeType::Enum, + XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Xdp}, + {XFA_Attribute::EmbedPDF, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Target, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::TextEncoding, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::XdpContent, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"submit"; diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp index 1d2962f49e..6c38479611 100644 --- a/xfa/fxfa/parser/cxfa_submitformat.cpp +++ b/xfa/fxfa/parser/cxfa_submitformat.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"submitFormat"; diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp index 6ee7009b72..ccbffeea04 100644 --- a/xfa/fxfa/parser/cxfa_submiturl.cpp +++ b/xfa/fxfa/parser/cxfa_submiturl.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"submitUrl"; diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp index 5116cae9f9..8150992538 100644 --- a/xfa/fxfa/parser/cxfa_subsetbelow.cpp +++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"subsetBelow"; diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp index 5d428956b7..f101351945 100644 --- a/xfa/fxfa/parser/cxfa_suppressbanner.cpp +++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"suppressBanner"; diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp index 180f1a7313..2612f10970 100644 --- a/xfa/fxfa/parser/cxfa_tagged.cpp +++ b/xfa/fxfa/parser/cxfa_tagged.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"tagged"; diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp index 286ecce58e..d7c5aae01a 100644 --- a/xfa/fxfa/parser/cxfa_template.cpp +++ b/xfa/fxfa/parser/cxfa_template.cpp @@ -13,9 +13,15 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::StartPage, 1, 0}, {XFA_Element::Relevant, 1, 0}, {XFA_Element::Base, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::BaseProfile, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::BaseProfile, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Full}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"template"; diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp index f07f486c11..1dfa833d45 100644 --- a/xfa/fxfa/parser/cxfa_templatecache.cpp +++ b/xfa/fxfa/parser/cxfa_templatecache.cpp @@ -8,9 +8,14 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::MaxEntries, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::MaxEntries, XFA_AttributeType::Integer, + XFA_XDPPACKET_Config, (void*)5}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"templateCache"; diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp index be0d95b775..ab297f08c0 100644 --- a/xfa/fxfa/parser/cxfa_text.cpp +++ b/xfa/fxfa/parser/cxfa_text.cpp @@ -8,10 +8,29 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Rid, - XFA_Attribute::Use, XFA_Attribute::MaxChars, XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Rid, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::MaxChars, XFA_AttributeType::Integer, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"text"; diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp index 7dd7468539..db9a8a72ce 100644 --- a/xfa/fxfa/parser/cxfa_textedit.cpp +++ b/xfa/fxfa/parser/cxfa_textedit.cpp @@ -13,14 +13,30 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0}, {XFA_Element::Comb, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, - XFA_Attribute::VScrollPolicy, - XFA_Attribute::Use, - XFA_Attribute::AllowRichText, - XFA_Attribute::MultiLine, - XFA_Attribute::Usehref, - XFA_Attribute::HScrollPolicy, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::VScrollPolicy, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::AllowRichText, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::MultiLine, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Auto}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"textEdit"; diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp index fabebe5cc1..09ac30f83d 100644 --- a/xfa/fxfa/parser/cxfa_threshold.cpp +++ b/xfa/fxfa/parser/cxfa_threshold.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"threshold"; diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp index 0917e22c27..e10c15ae0c 100644 --- a/xfa/fxfa/parser/cxfa_time.cpp +++ b/xfa/fxfa/parser/cxfa_time.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"time"; diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp index 7eb5ac5780..6baea236bb 100644 --- a/xfa/fxfa/parser/cxfa_timepattern.cpp +++ b/xfa/fxfa/parser/cxfa_timepattern.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::Enum, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Med}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"timePattern"; diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp index 52a9fa4621..891e3440d4 100644 --- a/xfa/fxfa/parser/cxfa_timestamp.cpp +++ b/xfa/fxfa/parser/cxfa_timestamp.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type, - XFA_Attribute::Server, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Type, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Optional}, + {XFA_Attribute::Server, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"timeStamp"; diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp index f6a0b7ec87..1acd195182 100644 --- a/xfa/fxfa/parser/cxfa_to.cpp +++ b/xfa/fxfa/parser/cxfa_to.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"to"; diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp index ee58344d84..54f36a7541 100644 --- a/xfa/fxfa/parser/cxfa_tooltip.cpp +++ b/xfa/fxfa/parser/cxfa_tooltip.cpp @@ -8,9 +8,22 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Rid, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Rid, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"toolTip"; diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp index 8342dc6af6..54a7993f10 100644 --- a/xfa/fxfa/parser/cxfa_trace.cpp +++ b/xfa/fxfa/parser/cxfa_trace.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"trace"; diff --git a/xfa/fxfa/parser/cxfa_transform.cpp b/xfa/fxfa/parser/cxfa_transform.cpp index 34bcf019ab..24428d057a 100644 --- a/xfa/fxfa/parser/cxfa_transform.cpp +++ b/xfa/fxfa/parser/cxfa_transform.cpp @@ -13,9 +13,16 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::IfEmpty, 1, 0}, {XFA_Element::Presence, 1, 0}, {XFA_Element::Picture, 1, 0}, {XFA_Element::NameAttr, 1, 0}, {XFA_Element::GroupParent, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Ref, XFA_Attribute::Desc, - XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"transform"; diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp index 4dcedffe09..852853aef9 100644 --- a/xfa/fxfa/parser/cxfa_traversal.cpp +++ b/xfa/fxfa/parser/cxfa_traversal.cpp @@ -10,9 +10,20 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"traversal"; diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp index 96b6b5c339..cd6fd6b65e 100644 --- a/xfa/fxfa/parser/cxfa_traverse.cpp +++ b/xfa/fxfa/parser/cxfa_traverse.cpp @@ -11,9 +11,27 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Ref, XFA_Attribute::Use, - XFA_Attribute::Operation, XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Ref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | + XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Operation, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Next}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"traverse"; diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp index 625888271f..9844c12def 100644 --- a/xfa/fxfa/parser/cxfa_type.cpp +++ b/xfa/fxfa/parser/cxfa_type.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"type"; diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp index b4e002b7c2..bb866eb9d0 100644 --- a/xfa/fxfa/parser/cxfa_typeface.cpp +++ b/xfa/fxfa/parser/cxfa_typeface.cpp @@ -8,8 +8,13 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"typeface"; diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp index 275d7ed821..f061f20770 100644 --- a/xfa/fxfa/parser/cxfa_ui.cpp +++ b/xfa/fxfa/parser/cxfa_ui.cpp @@ -24,9 +24,20 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::ExObject, 1, XFA_PROPERTYFLAG_OneOf}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"ui"; diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp index d668809e1e..4b49258c76 100644 --- a/xfa/fxfa/parser/cxfa_update.cpp +++ b/xfa/fxfa/parser/cxfa_update.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"update"; diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp index 9d825ead53..a0ee552890 100644 --- a/xfa/fxfa/parser/cxfa_uri.cpp +++ b/xfa/fxfa/parser/cxfa_uri.cpp @@ -8,10 +8,29 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"uri"; diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp index 6954bec523..47ef478244 100644 --- a/xfa/fxfa/parser/cxfa_user.cpp +++ b/xfa/fxfa/parser/cxfa_user.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"user"; diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp index aaee8f1d52..a70605de27 100644 --- a/xfa/fxfa/parser/cxfa_validate.cpp +++ b/xfa/fxfa/parser/cxfa_validate.cpp @@ -13,12 +13,33 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0}, {XFA_Element::Script, 1, 0}, {XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::ScriptTest, XFA_Attribute::NullTest, - XFA_Attribute::Usehref, XFA_Attribute::Desc, - XFA_Attribute::FormatTest, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::ScriptTest, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Error}, + {XFA_Attribute::NullTest, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Disabled}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::FormatTest, XFA_AttributeType::Enum, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, + (void*)XFA_ATTRIBUTEENUM_Warning}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"validate"; diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp index 9bf9fdd80f..8026b5d1f5 100644 --- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp +++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"validateApprovalSignatures"; diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp index 85371e2413..ba6e0babe0 100644 --- a/xfa/fxfa/parser/cxfa_validationmessaging.cpp +++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"validationMessaging"; diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp index 020507f333..791dd52e58 100644 --- a/xfa/fxfa/parser/cxfa_value.cpp +++ b/xfa/fxfa/parser/cxfa_value.cpp @@ -23,9 +23,24 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Float, 1, XFA_PROPERTYFLAG_OneOf}, {XFA_Element::Line, 1, XFA_PROPERTYFLAG_OneOf}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Relevant, - XFA_Attribute::Usehref, XFA_Attribute::Override, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Relevant, XFA_AttributeType::CData, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Override, XFA_AttributeType::Boolean, + XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"value"; diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp index d52b517420..8625437060 100644 --- a/xfa/fxfa/parser/cxfa_variables.cpp +++ b/xfa/fxfa/parser/cxfa_variables.cpp @@ -8,9 +8,20 @@ namespace { -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use, - XFA_Attribute::Usehref, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"variables"; diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp index dc3b820d68..003eb6aaf7 100644 --- a/xfa/fxfa/parser/cxfa_version.cpp +++ b/xfa/fxfa/parser/cxfa_version.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"version"; diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp index b14eb3c119..90a9caa6e3 100644 --- a/xfa/fxfa/parser/cxfa_versioncontrol.cpp +++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp @@ -8,9 +8,16 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::SourceBelow, XFA_Attribute::OutputBelow, - XFA_Attribute::SourceAbove, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::SourceBelow, XFA_AttributeType::Enum, XFA_XDPPACKET_Config, + (void*)XFA_ATTRIBUTEENUM_Update}, + {XFA_Attribute::OutputBelow, XFA_AttributeType::Enum, XFA_XDPPACKET_Config, + (void*)XFA_ATTRIBUTEENUM_Warn}, + {XFA_Attribute::SourceAbove, XFA_AttributeType::Enum, XFA_XDPPACKET_Config, + (void*)XFA_ATTRIBUTEENUM_Warn}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"versionControl"; diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp index afee927006..57ab3b7018 100644 --- a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp +++ b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp @@ -19,8 +19,12 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::ADBE_JSDebugger, 1, 0}, {XFA_Element::PickTrayByPDFSize, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"viewerPreferences"; diff --git a/xfa/fxfa/parser/cxfa_webclient.cpp b/xfa/fxfa/parser/cxfa_webclient.cpp index 319d1437b2..bc2010e38a 100644 --- a/xfa/fxfa/parser/cxfa_webclient.cpp +++ b/xfa/fxfa/parser/cxfa_webclient.cpp @@ -11,9 +11,17 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::FontInfo, 1, 0}, {XFA_Element::Xdc, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"webClient"; diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp index de4e25bfe9..0d1d9251bb 100644 --- a/xfa/fxfa/parser/cxfa_whitespace.cpp +++ b/xfa/fxfa/parser/cxfa_whitespace.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"whitespace"; diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp index 14612108e7..23e32f328b 100644 --- a/xfa/fxfa/parser/cxfa_window.cpp +++ b/xfa/fxfa/parser/cxfa_window.cpp @@ -8,8 +8,12 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"window"; diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp index 6e5a55e7b9..6b5d11aa37 100644 --- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp +++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp @@ -8,9 +8,25 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use, - XFA_Attribute::Usehref, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Id, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Use, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Usehref, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"wsdlAddress"; diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp index a828f6080e..dd3f54d5ea 100644 --- a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp +++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp @@ -16,9 +16,15 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::EffectiveOutputPolicy, 1, 0}, {XFA_Element::EffectiveInputPolicy, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::DataDescription, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataDescription, XFA_AttributeType::CData, + XFA_XDPPACKET_ConnectionSet, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"wsdlConnection"; diff --git a/xfa/fxfa/parser/cxfa_xdc.cpp b/xfa/fxfa/parser/cxfa_xdc.cpp index cd1a31d685..ca7dca13b1 100644 --- a/xfa/fxfa/parser/cxfa_xdc.cpp +++ b/xfa/fxfa/parser/cxfa_xdc.cpp @@ -11,8 +11,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0}, {XFA_Element::Xsl, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"xdc"; diff --git a/xfa/fxfa/parser/cxfa_xdp.cpp b/xfa/fxfa/parser/cxfa_xdp.cpp index 4e06c1cf98..9e6a43086c 100644 --- a/xfa/fxfa/parser/cxfa_xdp.cpp +++ b/xfa/fxfa/parser/cxfa_xdp.cpp @@ -10,8 +10,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Packets, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"xdp"; diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp index 2e125de462..c3dc43e1c7 100644 --- a/xfa/fxfa/parser/cxfa_xfa.cpp +++ b/xfa/fxfa/parser/cxfa_xfa.cpp @@ -8,8 +8,11 @@ namespace { -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::TimeStamp, XFA_Attribute::Uuid, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::TimeStamp, XFA_AttributeType::CData, XFA_XDPPACKET_XDP, + nullptr}, + {XFA_Attribute::Uuid, XFA_AttributeType::CData, XFA_XDPPACKET_XDP, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"xfa"; diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp index e41f83795b..56376cf20e 100644 --- a/xfa/fxfa/parser/cxfa_xmlconnection.cpp +++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp @@ -10,9 +10,15 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::DataDescription, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataDescription, XFA_AttributeType::CData, + XFA_XDPPACKET_ConnectionSet, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"xmlConnection"; diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp index 30c1e113fb..08c662a732 100644 --- a/xfa/fxfa/parser/cxfa_xsdconnection.cpp +++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp @@ -12,9 +12,15 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::Uri, 1, 0}, {XFA_Element::RootElement, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name, - XFA_Attribute::DataDescription, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::DataDescription, XFA_AttributeType::CData, + XFA_XDPPACKET_ConnectionSet, nullptr}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"xsdConnection"; diff --git a/xfa/fxfa/parser/cxfa_xsl.cpp b/xfa/fxfa/parser/cxfa_xsl.cpp index b12b71a0c4..e3fda71fd2 100644 --- a/xfa/fxfa/parser/cxfa_xsl.cpp +++ b/xfa/fxfa/parser/cxfa_xsl.cpp @@ -11,8 +11,12 @@ namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0}, {XFA_Element::Debug, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"xsl"; diff --git a/xfa/fxfa/parser/cxfa_zpl.cpp b/xfa/fxfa/parser/cxfa_zpl.cpp index df6ffefd39..cdd4f17856 100644 --- a/xfa/fxfa/parser/cxfa_zpl.cpp +++ b/xfa/fxfa/parser/cxfa_zpl.cpp @@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = { {XFA_Element::BatchOutput, 1, 0}, {XFA_Element::FlipLabel, 1, 0}, {XFA_Element::Unknown, 0, 0}}; -const XFA_Attribute kAttributeData[] = { - XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock, - XFA_Attribute::Unknown}; +const CXFA_Node::AttributeData kAttributeData[] = { + {XFA_Attribute::Name, XFA_AttributeType::CData, + XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | + XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | + XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, + nullptr}, + {XFA_Attribute::Desc, XFA_AttributeType::CData, + XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, + {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config, + (void*)0}, + {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}}; constexpr wchar_t kName[] = L"zpl"; diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h index 3c8b710e80..b5833ff379 100644 --- a/xfa/fxfa/parser/xfa_basic_data.h +++ b/xfa/fxfa/parser/xfa_basic_data.h @@ -17,18 +17,9 @@ extern const int32_t g_iXFAPacketCount; extern const XFA_ATTRIBUTEENUMINFO g_XFAEnumData[]; extern const int32_t g_iXFAEnumCount; -extern const XFA_ATTRIBUTEINFO g_XFAAttributeData[]; -extern const int32_t g_iXFAAttributeCount; - -extern const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[]; -extern const int32_t g_iXFANotsureCount; - extern const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[]; extern const int32_t g_iScriptIndexCount; -extern const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[]; -extern const int32_t g_iXFANotsureCount; - extern const XFA_METHODINFO g_SomMethodData[]; extern const int32_t g_iSomMethodCount; diff --git a/xfa/fxfa/parser/xfa_basic_data_attributes.cpp b/xfa/fxfa/parser/xfa_basic_data_attributes.cpp deleted file mode 100644 index 961475a997..0000000000 --- a/xfa/fxfa/parser/xfa_basic_data_attributes.cpp +++ /dev/null @@ -1,785 +0,0 @@ -// Copyright 2016 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/xfa_basic_data.h" - -#include "xfa/fxfa/fxfa_basic.h" -#include "xfa/fxfa/parser/cxfa_measurement.h" - -const XFA_ATTRIBUTEINFO g_XFAAttributeData[] = { - {0x68, L"h", XFA_Attribute::H, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x77, L"w", XFA_Attribute::W, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x78, L"x", XFA_Attribute::X, XFA_AttributeType::Measure, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x79, L"y", XFA_Attribute::Y, XFA_AttributeType::Measure, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x21aed, L"id", XFA_Attribute::Id, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | - XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, - nullptr}, - {0x25363, L"to", XFA_Attribute::To, XFA_AttributeType::CData, - XFA_XDPPACKET_Config, nullptr}, - {0xcb0ac9, L"lineThrough", XFA_Attribute::LineThrough, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x2282c73, L"hAlign", XFA_Attribute::HAlign, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Left}, - {0x2c1c7f1, L"typeface", XFA_Attribute::Typeface, XFA_AttributeType::CData, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"Courier"}, - {0x3106c3a, L"beforeTarget", XFA_Attribute::BeforeTarget, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x31b19c1, L"name", XFA_Attribute::Name, XFA_AttributeType::NotSure, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | - XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form | - XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, - nullptr}, - {0x3848b3f, L"next", XFA_Attribute::Next, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_None}, - {0x43e349b, L"dataRowCount", XFA_Attribute::DataRowCount, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x5518c25, L"break", XFA_Attribute::Break, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Close}, - {0x5ce6195, L"vScrollPolicy", XFA_Attribute::VScrollPolicy, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0x8c74ae9, L"fontHorizontalScale", XFA_Attribute::FontHorizontalScale, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"100%"}, - {0x8d4f1c7, L"textIndent", XFA_Attribute::TextIndent, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x97c1c65, L"context", XFA_Attribute::Context, XFA_AttributeType::Integer, - XFA_XDPPACKET_UNKNOWN, (void*)0}, - {0x9876578, L"trayOut", XFA_Attribute::TrayOut, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0xa2e3514, L"cap", XFA_Attribute::Cap, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Square}, - {0xb3543a6, L"max", XFA_Attribute::Max, XFA_AttributeType::NotSure, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xb356ca4, L"min", XFA_Attribute::Min, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, - {0xbb8df5d, L"ref", XFA_Attribute::Ref, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | - XFA_XDPPACKET_Form, - nullptr}, - {0xbb8f3df, L"rid", XFA_Attribute::Rid, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xc080cd3, L"url", XFA_Attribute::Url, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xc0811ed, L"use", XFA_Attribute::Use, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | - XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, - nullptr}, - {0xcfea02e, L"leftInset", XFA_Attribute::LeftInset, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x1026c59d, L"widows", XFA_Attribute::Widows, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, - {0x1059ec18, L"level", XFA_Attribute::Level, XFA_AttributeType::Integer, - XFA_XDPPACKET_Config, (void*)0}, - {0x1356caf8, L"bottomInset", XFA_Attribute::BottomInset, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x13a08bdb, L"overflowTarget", XFA_Attribute::OverflowTarget, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x1414d431, L"allowMacro", XFA_Attribute::AllowMacro, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x14a32d52, L"pagePosition", XFA_Attribute::PagePosition, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Any}, - {0x1517dfa1, L"columnWidths", XFA_Attribute::ColumnWidths, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x169134a1, L"overflowLeader", XFA_Attribute::OverflowLeader, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x1b8dce3e, L"action", XFA_Attribute::Action, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Include}, - {0x1e459b8f, L"nonRepudiation", XFA_Attribute::NonRepudiation, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x1ec8ab2c, L"rate", XFA_Attribute::Rate, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)50}, - {0x1ef3a64a, L"allowRichText", XFA_Attribute::AllowRichText, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x2038c9b2, L"role", XFA_Attribute::Role, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x20914367, L"overflowTrailer", XFA_Attribute::OverflowTrailer, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x226ca8f1, L"operation", XFA_Attribute::Operation, - XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x24d85167, L"timeout", XFA_Attribute::Timeout, XFA_AttributeType::NotSure, - XFA_XDPPACKET_SourceSet, nullptr}, - {0x25764436, L"topInset", XFA_Attribute::TopInset, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x25839852, L"access", XFA_Attribute::Access, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Open}, - {0x268b7ec1, L"commandType", XFA_Attribute::CommandType, - XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, - (void*)XFA_ATTRIBUTEENUM_Unknown}, - {0x28dee6e9, L"format", XFA_Attribute::Format, XFA_AttributeType::NotSure, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x28e17e91, L"dataPrep", XFA_Attribute::DataPrep, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_None}, - {0x292b88fe, L"widgetData", XFA_Attribute::WidgetData, - XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0}, - {0x29418bb7, L"abbr", XFA_Attribute::Abbr, XFA_AttributeType::Boolean, - XFA_XDPPACKET_LocaleSet, (void*)0}, - {0x2a82d99c, L"marginRight", XFA_Attribute::MarginRight, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x2b5df51e, L"dataDescription", XFA_Attribute::DataDescription, - XFA_AttributeType::CData, XFA_XDPPACKET_ConnectionSet, nullptr}, - {0x2bb3f470, L"encipherOnly", XFA_Attribute::EncipherOnly, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x2cd79033, L"kerningMode", XFA_Attribute::KerningMode, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_None}, - {0x2ee7678f, L"rotate", XFA_Attribute::Rotate, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, - {0x2f105f72, L"wordCharacterCount", XFA_Attribute::WordCharacterCount, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)7}, - {0x2f16a382, L"type", XFA_Attribute::Type, XFA_AttributeType::NotSure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x34ae103c, L"reserve", XFA_Attribute::Reserve, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"-1"}, - {0x3650557e, L"textLocation", XFA_Attribute::TextLocation, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Below}, - {0x39cdb0a2, L"priority", XFA_Attribute::Priority, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Custom}, - {0x3a0273a6, L"underline", XFA_Attribute::Underline, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x3b582286, L"moduleWidth", XFA_Attribute::ModuleWidth, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0.25mm"}, - {0x3d123c26, L"hyphenate", XFA_Attribute::Hyphenate, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x3e7af94f, L"listen", XFA_Attribute::Listen, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_RefOnly}, - {0x4156ee3f, L"delimiter", XFA_Attribute::Delimiter, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x42fed1fd, L"contentType", XFA_Attribute::ContentType, - XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | - XFA_XDPPACKET_Form, - nullptr}, - {0x453eaf38, L"startNew", XFA_Attribute::StartNew, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x45a6daf8, L"eofAction", XFA_Attribute::EofAction, - XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, - (void*)XFA_ATTRIBUTEENUM_MoveLast}, - {0x47cfa43a, L"allowNeutral", XFA_Attribute::AllowNeutral, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x47d03490, L"connection", XFA_Attribute::Connection, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x4873c601, L"baselineShift", XFA_Attribute::BaselineShift, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x4b319767, L"overlinePeriod", XFA_Attribute::OverlinePeriod, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_All}, - {0x4b8bc840, L"fracDigits", XFA_Attribute::FracDigits, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)2}, - {0x4ef3d02c, L"orientation", XFA_Attribute::Orientation, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Portrait}, - {0x4fdc3454, L"timeStamp", XFA_Attribute::TimeStamp, - XFA_AttributeType::CData, XFA_XDPPACKET_XDP, nullptr}, - {0x52666f1c, L"printCheckDigit", XFA_Attribute::PrintCheckDigit, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x534729c9, L"marginLeft", XFA_Attribute::MarginLeft, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x5392ea58, L"stroke", XFA_Attribute::Stroke, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Solid}, - {0x5404d6df, L"moduleHeight", XFA_Attribute::ModuleHeight, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"5mm"}, - {0x54fa722c, L"transferEncoding", XFA_Attribute::TransferEncoding, - XFA_AttributeType::NotSure, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x552d9ad5, L"usage", XFA_Attribute::Usage, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_ExportAndImport}, - {0x570ce835, L"presence", XFA_Attribute::Presence, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Visible}, - {0x5739d1ff, L"radixOffset", XFA_Attribute::RadixOffset, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x577682ac, L"preserve", XFA_Attribute::Preserve, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x58be2870, L"aliasNode", XFA_Attribute::AliasNode, - XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0}, - {0x5a32e493, L"multiLine", XFA_Attribute::MultiLine, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x5a50e9e6, L"version", XFA_Attribute::Version, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x5ab23b6c, L"startChar", XFA_Attribute::StartChar, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x5b707a35, L"scriptTest", XFA_Attribute::ScriptTest, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Error}, - {0x5c054755, L"startAngle", XFA_Attribute::StartAngle, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x5ec958c0, L"cursorType", XFA_Attribute::CursorType, - XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, - (void*)XFA_ATTRIBUTEENUM_ForwardOnly}, - {0x5f760b50, L"digitalSignature", XFA_Attribute::DigitalSignature, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x60a61edd, L"codeType", XFA_Attribute::CodeType, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x60d4c8b1, L"output", XFA_Attribute::Output, XFA_AttributeType::CData, - XFA_XDPPACKET_ConnectionSet, nullptr}, - {0x64110ab5, L"bookendTrailer", XFA_Attribute::BookendTrailer, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x65e30c67, L"imagingBBox", XFA_Attribute::ImagingBBox, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"none"}, - {0x66539c48, L"excludeInitialCap", XFA_Attribute::ExcludeInitialCap, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x66642f8f, L"force", XFA_Attribute::Force, XFA_AttributeType::Boolean, - XFA_XDPPACKET_Config, nullptr}, - {0x69aa2292, L"crlSign", XFA_Attribute::CrlSign, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x6a3405dd, L"previous", XFA_Attribute::Previous, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_None}, - {0x6a95c976, L"pushCharacterCount", XFA_Attribute::PushCharacterCount, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)3}, - {0x6b6ddcfb, L"nullTest", XFA_Attribute::NullTest, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Disabled}, - {0x6cfa828a, L"runAt", XFA_Attribute::RunAt, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Client}, - {0x731e0665, L"spaceBelow", XFA_Attribute::SpaceBelow, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x74788f8b, L"sweepAngle", XFA_Attribute::SweepAngle, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)360}, - {0x78bff531, L"numberOfCells", XFA_Attribute::NumberOfCells, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x79543055, L"letterSpacing", XFA_Attribute::LetterSpacing, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x79975f2b, L"lockType", XFA_Attribute::LockType, XFA_AttributeType::Enum, - XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_ReadOnly}, - {0x7a0cc471, L"passwordChar", XFA_Attribute::PasswordChar, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"*"}, - {0x7a7cc341, L"vAlign", XFA_Attribute::VAlign, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top}, - {0x7b29630a, L"sourceBelow", XFA_Attribute::SourceBelow, - XFA_AttributeType::Enum, XFA_XDPPACKET_Config, - (void*)XFA_ATTRIBUTEENUM_Update}, - {0x7b95e661, L"inverted", XFA_Attribute::Inverted, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x7c2fd80b, L"mark", XFA_Attribute::Mark, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Default}, - {0x7c2ff6ae, L"maxH", XFA_Attribute::MaxH, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x7c2ff6bd, L"maxW", XFA_Attribute::MaxW, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x7c732a66, L"truncate", XFA_Attribute::Truncate, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x7d02356c, L"minH", XFA_Attribute::MinH, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x7d02357b, L"minW", XFA_Attribute::MinW, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x7d0b5fca, L"initial", XFA_Attribute::Initial, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, - {0x7d9fd7c5, L"mode", XFA_Attribute::Mode, XFA_AttributeType::Enum, - XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_UsePrinterSetting}, - {0x7e7e845e, L"layout", XFA_Attribute::Layout, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Position}, - {0x7f6fd3d7, L"server", XFA_Attribute::Server, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x824f21b7, L"embedPDF", XFA_Attribute::EmbedPDF, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x8340ea66, L"oddOrEven", XFA_Attribute::OddOrEven, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Any}, - {0x836d4d7c, L"tabDefault", XFA_Attribute::TabDefault, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x8855805f, L"contains", XFA_Attribute::Contains, XFA_AttributeType::Enum, - XFA_XDPPACKET_Datasets, (void*)XFA_ATTRIBUTEENUM_Data}, - {0x8a692521, L"rightInset", XFA_Attribute::RightInset, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0x8af2e657, L"maxChars", XFA_Attribute::MaxChars, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x8b90e1f2, L"open", XFA_Attribute::Open, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_UserControl}, - {0x8c99377e, L"relation", XFA_Attribute::Relation, - XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x8d181d61, L"wideNarrowRatio", XFA_Attribute::WideNarrowRatio, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"3:1"}, - {0x8e1c2921, L"relevant", XFA_Attribute::Relevant, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x8e29d794, L"signatureType", XFA_Attribute::SignatureType, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Filter}, - {0x8ec6204c, L"lineThroughPeriod", XFA_Attribute::LineThroughPeriod, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_All}, - {0x8ed182d1, L"shape", XFA_Attribute::Shape, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Square}, - {0x8fa01790, L"tabStops", XFA_Attribute::TabStops, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0x8fc36c0a, L"outputBelow", XFA_Attribute::OutputBelow, - XFA_AttributeType::Enum, XFA_XDPPACKET_Config, - (void*)XFA_ATTRIBUTEENUM_Warn}, - {0x9041d4b0, L"short", XFA_Attribute::Short, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0x907c7719, L"fontVerticalScale", XFA_Attribute::FontVerticalScale, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"100%"}, - {0x94446dcc, L"thickness", XFA_Attribute::Thickness, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0.5pt"}, - {0x957fa006, L"commitOn", XFA_Attribute::CommitOn, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Select}, - {0x982bd892, L"remainCharacterCount", XFA_Attribute::RemainCharacterCount, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)3}, - {0x98fd4d81, L"keyAgreement", XFA_Attribute::KeyAgreement, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x99800d7a, L"errorCorrectionLevel", XFA_Attribute::ErrorCorrectionLevel, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0x9a63da3d, L"upsMode", XFA_Attribute::UpsMode, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_UsCarrier}, - {0x9cc17d75, L"mergeMode", XFA_Attribute::MergeMode, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_ConsumeData}, - {0x9d833d75, L"circular", XFA_Attribute::Circular, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0x9d8ee204, L"psName", XFA_Attribute::PsName, XFA_AttributeType::CData, - XFA_XDPPACKET_Config, nullptr}, - {0x9dcc3ab3, L"trailer", XFA_Attribute::Trailer, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xa0933954, L"unicodeRange", XFA_Attribute::UnicodeRange, - XFA_AttributeType::CData, XFA_XDPPACKET_Config, nullptr}, - {0xa1b0d2f5, L"executeType", XFA_Attribute::ExecuteType, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Import}, - {0xa25a883d, L"duplexImposition", XFA_Attribute::DuplexImposition, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_LongEdge}, - {0xa42ca1b7, L"trayIn", XFA_Attribute::TrayIn, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0xa433f001, L"bindingNode", XFA_Attribute::BindingNode, - XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0}, - {0xa5340ff5, L"bofAction", XFA_Attribute::BofAction, - XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, - (void*)XFA_ATTRIBUTEENUM_MoveFirst}, - {0xa5b410cf, L"save", XFA_Attribute::Save, XFA_AttributeType::Boolean, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, - {0xa6118c89, L"targetType", XFA_Attribute::TargetType, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0xa66404cb, L"keyEncipherment", XFA_Attribute::KeyEncipherment, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xa6710262, L"credentialServerPolicy", - XFA_Attribute::CredentialServerPolicy, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {0xa686975b, L"size", XFA_Attribute::Size, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"}, - {0xa85e74f3, L"initialNumber", XFA_Attribute::InitialNumber, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)1}, - {0xabef37e3, L"slope", XFA_Attribute::Slope, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Backslash}, - {0xabfa6c4f, L"cSpace", XFA_Attribute::CSpace, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"SRGB"}, - {0xac06e2b0, L"colSpan", XFA_Attribute::ColSpan, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1}, - {0xadc4c77b, L"binding", XFA_Attribute::Binding, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xaf754613, L"checksum", XFA_Attribute::Checksum, - XFA_AttributeType::NotSure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form, nullptr}, - {0xb045fbc5, L"charEncoding", XFA_Attribute::CharEncoding, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"UTF-8"}, - {0xb0e5485d, L"bind", XFA_Attribute::Bind, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet, nullptr}, - {0xb12128b7, L"textEntry", XFA_Attribute::TextEntry, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0xb373a862, L"archive", XFA_Attribute::Archive, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xb598a1f7, L"uuid", XFA_Attribute::Uuid, XFA_AttributeType::CData, - XFA_XDPPACKET_XDP, nullptr}, - {0xb5e49bf2, L"posture", XFA_Attribute::Posture, XFA_AttributeType::Enum, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Normal}, - {0xb6b44172, L"after", XFA_Attribute::After, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0xb716467b, L"orphans", XFA_Attribute::Orphans, XFA_AttributeType::Integer, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, - {0xbc0c4695, L"qualifiedName", XFA_Attribute::QualifiedName, - XFA_AttributeType::CData, XFA_XDPPACKET_UNKNOWN, nullptr}, - {0xbc254332, L"usehref", XFA_Attribute::Usehref, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | - XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, - nullptr}, - {0xbc8fa350, L"locale", XFA_Attribute::Locale, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xbd6e1d88, L"weight", XFA_Attribute::Weight, XFA_AttributeType::Enum, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Normal}, - {0xbd96a0e9, L"underlinePeriod", XFA_Attribute::UnderlinePeriod, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_All}, - {0xbde9abda, L"data", XFA_Attribute::Data, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Link}, - {0xbe52dfbf, L"desc", XFA_Attribute::Desc, XFA_AttributeType::CData, - XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr}, - {0xbe9ba472, L"numbered", XFA_Attribute::Numbered, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)1}, - {0xc035c6b1, L"dataColumnCount", XFA_Attribute::DataColumnCount, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xc0ec9fa4, L"overline", XFA_Attribute::Overline, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0xc2ba0923, L"urlPolicy", XFA_Attribute::UrlPolicy, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xc2bd40fd, L"anchorType", XFA_Attribute::AnchorType, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_TopLeft}, - {0xc39a88bd, L"labelRef", XFA_Attribute::LabelRef, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xc3c1442f, L"bookendLeader", XFA_Attribute::BookendLeader, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xc4547a08, L"maxLength", XFA_Attribute::MaxLength, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)-1}, - {0xc4fed09b, L"accessKey", XFA_Attribute::AccessKey, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xc5762157, L"cursorLocation", XFA_Attribute::CursorLocation, - XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet, - (void*)XFA_ATTRIBUTEENUM_Client}, - {0xc860f30a, L"delayedOpen", XFA_Attribute::DelayedOpen, - XFA_AttributeType::CData, XFA_XDPPACKET_SourceSet, nullptr}, - {0xc8da4da7, L"target", XFA_Attribute::Target, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xca5dc27c, L"dataEncipherment", XFA_Attribute::DataEncipherment, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xcb150479, L"afterTarget", XFA_Attribute::AfterTarget, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xcbcaf66d, L"leader", XFA_Attribute::Leader, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xcca7897e, L"picker", XFA_Attribute::Picker, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Host}, - {0xcd7f7b54, L"from", XFA_Attribute::From, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr}, - {0xcea5e62c, L"baseProfile", XFA_Attribute::BaseProfile, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Full}, - {0xd171b240, L"aspect", XFA_Attribute::Aspect, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Fit}, - {0xd3c84d25, L"rowColumnRatio", XFA_Attribute::RowColumnRatio, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xd4b01921, L"lineHeight", XFA_Attribute::LineHeight, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0pt"}, - {0xd4cc53f8, L"highlight", XFA_Attribute::Highlight, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Inverted}, - {0xd50f903a, L"valueRef", XFA_Attribute::ValueRef, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xd52482e0, L"maxEntries", XFA_Attribute::MaxEntries, - XFA_AttributeType::Integer, XFA_XDPPACKET_Config, (void*)5}, - {0xd57c513c, L"dataLength", XFA_Attribute::DataLength, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xd6128d8d, L"activity", XFA_Attribute::Activity, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Click}, - {0xd6a39990, L"input", XFA_Attribute::Input, XFA_AttributeType::CData, - XFA_XDPPACKET_ConnectionSet, nullptr}, - {0xd6e27f1d, L"value", XFA_Attribute::Value, XFA_AttributeType::CData, - XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet | - XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | - XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form, - nullptr}, - {0xd70798c2, L"blankOrNotBlank", XFA_Attribute::BlankOrNotBlank, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Any}, - {0xd861f8af, L"addRevocationInfo", XFA_Attribute::AddRevocationInfo, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xd8f982bf, L"genericFamily", XFA_Attribute::GenericFamily, - XFA_AttributeType::Enum, XFA_XDPPACKET_Config, - (void*)XFA_ATTRIBUTEENUM_Serif}, - {0xd996fa9b, L"hand", XFA_Attribute::Hand, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Even}, - {0xdb55fec5, L"href", XFA_Attribute::Href, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xdc75676c, L"textEncoding", XFA_Attribute::TextEncoding, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xde7f92ba, L"leadDigits", XFA_Attribute::LeadDigits, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)-1}, - {0xe11a2cbc, L"permissions", XFA_Attribute::Permissions, - XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)2}, - {0xe18b5659, L"spaceAbove", XFA_Attribute::SpaceAbove, - XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)L"0in"}, - {0xe1a26b56, L"codeBase", XFA_Attribute::CodeBase, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xe349d044, L"stock", XFA_Attribute::Stock, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xe372ae97, L"isNull", XFA_Attribute::IsNull, XFA_AttributeType::Boolean, - XFA_XDPPACKET_Datasets, (void*)0}, - {0xe4c3a5e5, L"restoreState", XFA_Attribute::RestoreState, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Manual}, - {0xe5c96d6a, L"excludeAllCaps", XFA_Attribute::ExcludeAllCaps, - XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)0}, - {0xe64b1129, L"formatTest", XFA_Attribute::FormatTest, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Warning}, - {0xe6f99487, L"hScrollPolicy", XFA_Attribute::HScrollPolicy, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0xe8dddf50, L"join", XFA_Attribute::Join, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Square}, - {0xe8f118a8, L"keyCertSign", XFA_Attribute::KeyCertSign, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xe948b9a8, L"radius", XFA_Attribute::Radius, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0xe996b2fe, L"sourceAbove", XFA_Attribute::SourceAbove, - XFA_AttributeType::Enum, XFA_XDPPACKET_Config, - (void*)XFA_ATTRIBUTEENUM_Warn}, - {0xea7090a0, L"override", XFA_Attribute::Override, - XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xeb091003, L"classId", XFA_Attribute::ClassId, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xeb511b54, L"disable", XFA_Attribute::Disable, XFA_AttributeType::Boolean, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0}, - {0xeda9017a, L"scope", XFA_Attribute::Scope, XFA_AttributeType::NotSure, - XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xf197844d, L"match", XFA_Attribute::Match, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Once}, - {0xf2009339, L"placement", XFA_Attribute::Placement, - XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Left}, - {0xf4ffce73, L"before", XFA_Attribute::Before, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_Auto}, - {0xf531b059, L"writingScript", XFA_Attribute::WritingScript, - XFA_AttributeType::Enum, XFA_XDPPACKET_Config, - (void*)XFA_ATTRIBUTEENUM_Asterisk}, - {0xf575ca75, L"endChar", XFA_Attribute::EndChar, XFA_AttributeType::CData, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr}, - {0xf6b47749, L"lock", XFA_Attribute::Lock, XFA_AttributeType::Integer, - XFA_XDPPACKET_Config, (void*)0}, - {0xf6b4afb0, L"long", XFA_Attribute::Long, XFA_AttributeType::Measure, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"}, - {0xf6b59543, L"intact", XFA_Attribute::Intact, XFA_AttributeType::Enum, - XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - (void*)XFA_ATTRIBUTEENUM_None}, - {0xf889e747, L"xdpContent", XFA_Attribute::XdpContent, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, - {0xfea53ec6, L"decipherOnly", XFA_Attribute::DecipherOnly, - XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, - nullptr}, -}; -const int32_t g_iXFAAttributeCount = - sizeof(g_XFAAttributeData) / sizeof(XFA_ATTRIBUTEINFO); -static_assert(g_iXFAAttributeCount == - static_cast<int32_t>(XFA_Attribute::LastAttributePlaceholder), - "Attribute count mismatch"); - -const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[] = { - {XFA_Element::SubformSet, XFA_Attribute::Relation, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Ordered}, - {XFA_Element::NumberPattern, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Numeric}, - {XFA_Element::KeyUsage, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::LabelPrinter, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Zpl}, - {XFA_Element::CalendarSymbols, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Gregorian}, - {XFA_Element::Barcode, XFA_Attribute::Type, XFA_AttributeType::CData, - nullptr}, - {XFA_Element::Barcode, XFA_Attribute::Checksum, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_None}, - {XFA_Element::TimePattern, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Med}, - {XFA_Element::BatchOutput, XFA_Attribute::Format, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_None}, - {XFA_Element::SubjectDNs, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Issuers, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::EncryptionMethods, XFA_Attribute::Type, - XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Pattern, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_CrossHatch}, - {XFA_Element::Compress, XFA_Attribute::Scope, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_ImageOnly}, - {XFA_Element::Image, XFA_Attribute::TransferEncoding, - XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Base64}, - {XFA_Element::TimeStamp, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Subform, XFA_Attribute::Scope, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Name}, - {XFA_Element::Handler, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Record, XFA_Attribute::Max, XFA_AttributeType::Integer, - (void*)0}, - {XFA_Element::Command, XFA_Attribute::Timeout, XFA_AttributeType::Integer, - (void*)30}, - {XFA_Element::DigestMethods, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::PageSet, XFA_Attribute::Relation, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_OrderedOccurrence}, - {XFA_Element::Equate, XFA_Attribute::From, XFA_AttributeType::CData, - nullptr}, - {XFA_Element::Equate, XFA_Attribute::To, XFA_AttributeType::CData, nullptr}, - {XFA_Element::Traverse, XFA_Attribute::Operation, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Next}, - {XFA_Element::Encodings, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Signing, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Oids, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Signature, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_PDF1_3}, - {XFA_Element::ExData, XFA_Attribute::TransferEncoding, - XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_None}, - {XFA_Element::Linear, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_ToRight}, - {XFA_Element::CurrencySymbol, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Symbol}, - {XFA_Element::EquateRange, XFA_Attribute::From, XFA_AttributeType::CData, - nullptr}, - {XFA_Element::EquateRange, XFA_Attribute::To, XFA_AttributeType::CData, - nullptr}, - {XFA_Element::SignData, XFA_Attribute::Operation, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Sign}, - {XFA_Element::DatePattern, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Med}, - {XFA_Element::Bind, XFA_Attribute::TransferEncoding, - XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_None}, - {XFA_Element::Reasons, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::AppearanceFilter, XFA_Attribute::Type, - XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Form, XFA_Attribute::Checksum, XFA_AttributeType::CData, - nullptr}, - {XFA_Element::Value, XFA_Attribute::Override, XFA_AttributeType::Boolean, - (void*)0}, - {XFA_Element::Calculate, XFA_Attribute::Override, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Error}, - {XFA_Element::Connect, XFA_Attribute::Timeout, XFA_AttributeType::Integer, - (void*)15}, - {XFA_Element::Submit, XFA_Attribute::Format, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Xdp}, - {XFA_Element::Radial, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_ToEdge}, - {XFA_Element::LockDocument, XFA_Attribute::Type, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Optional}, - {XFA_Element::Occur, XFA_Attribute::Max, XFA_AttributeType::Integer, - (void*)1}, - {XFA_Element::NumberSymbol, XFA_Attribute::Name, XFA_AttributeType::Enum, - (void*)XFA_ATTRIBUTEENUM_Decimal}, -}; -const int32_t g_iXFANotsureCount = - sizeof(g_XFANotsureAttributes) / sizeof(XFA_NOTSUREATTRIBUTE); diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp index 2cf6d82084..112db1efb5 100644 --- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp +++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp @@ -3574,5 +3574,4 @@ const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = { (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Som_DefaultValue, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, }; -const int32_t g_iSomAttributeCount = - sizeof(g_SomAttributeData) / sizeof(XFA_ATTRIBUTEINFO); +const int32_t g_iSomAttributeCount = FX_ArraySize(g_SomAttributeData); diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp index 2f5b479166..9dc34407bd 100644 --- a/xfa/fxfa/parser/xfa_utils.cpp +++ b/xfa/fxfa/parser/xfa_utils.cpp @@ -186,68 +186,6 @@ const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName( return nullptr; } -const XFA_NOTSUREATTRIBUTE* XFA_GetNotsureAttribute(XFA_Element eElement, - XFA_Attribute eAttribute, - XFA_AttributeType eType) { - int32_t iStart = 0, iEnd = g_iXFANotsureCount - 1; - do { - int32_t iMid = (iStart + iEnd) / 2; - const XFA_NOTSUREATTRIBUTE* pAttr = g_XFANotsureAttributes + iMid; - if (eElement == pAttr->eElement) { - if (pAttr->attribute == eAttribute) { - if (eType == XFA_AttributeType::NotSure || eType == pAttr->eType) - return pAttr; - return nullptr; - } - int32_t iBefore = iMid - 1; - if (iBefore >= 0) { - pAttr = g_XFANotsureAttributes + iBefore; - while (eElement == pAttr->eElement) { - if (pAttr->attribute == eAttribute) { - if (eType == XFA_AttributeType::NotSure || eType == pAttr->eType) - return pAttr; - return nullptr; - } - iBefore--; - if (iBefore < 0) - break; - - pAttr = g_XFANotsureAttributes + iBefore; - } - } - - int32_t iAfter = iMid + 1; - if (iAfter <= g_iXFANotsureCount - 1) { - pAttr = g_XFANotsureAttributes + iAfter; - while (eElement == pAttr->eElement) { - if (pAttr->attribute == eAttribute) { - if (eType == XFA_AttributeType::NotSure || eType == pAttr->eType) - return pAttr; - return nullptr; - } - iAfter++; - if (iAfter > g_iXFANotsureCount - 1) - break; - - pAttr = g_XFANotsureAttributes + iAfter; - } - } - return nullptr; - } - - if (eElement < pAttr->eElement) - iEnd = iMid - 1; - else - iStart = iMid + 1; - } while (iStart <= iEnd); - return nullptr; -} - -const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_Attribute eName) { - ASSERT(static_cast<uint8_t>(eName) < g_iXFAAttributeCount); - return g_XFAAttributeData + static_cast<uint8_t>(eName); -} - const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByName( const WideStringView& wsName) { if (wsName.IsEmpty()) diff --git a/xfa/fxfa/parser/xfa_utils.h b/xfa/fxfa/parser/xfa_utils.h index 7a7eb1546c..40e7d7440b 100644 --- a/xfa/fxfa/parser/xfa_utils.h +++ b/xfa/fxfa/parser/xfa_utils.h @@ -38,18 +38,10 @@ void XFA_DataExporter_RegenerateFormFile( const char* pChecksum = nullptr, bool bSaveXML = false); -const XFA_NOTSUREATTRIBUTE* XFA_GetNotsureAttribute( - XFA_Element eElement, - XFA_Attribute eAttribute, - XFA_AttributeType eType = XFA_AttributeType::NotSure); - const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName( XFA_Element eElement, const WideStringView& wsAttributeName); -const XFA_Attribute* XFA_GetElementAttributes(XFA_Element eElement, - int32_t& iCount); -const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_Attribute eName); const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByName( const WideStringView& wsName); const XFA_PACKETINFO* XFA_GetPacketByIndex(XFA_PacketType ePacket); |