Move element/parent relationship data to .inc file

Change-Id: Ie53cd297371e713d32d5d80eacbec7f052993aa3
Reviewed-on: https://pdfium-review.googlesource.com/c/46652
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/cfxjse_resolveprocessor.h b/fxjs/cfxjse_resolveprocessor.h
index 1d38690..8ad17d5 100644
--- a/fxjs/cfxjse_resolveprocessor.h
+++ b/fxjs/cfxjse_resolveprocessor.h
@@ -12,6 +12,7 @@
 
 #include "core/fxcrt/fx_string.h"
 #include "xfa/fxfa/fxfa_basic.h"
+#include "xfa/fxfa/parser/xfa_basic_data.h"
 #include "xfa/fxfa/parser/xfa_resolvenode_rs.h"
 
 class CXFA_NodeHelper;
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index 1312318..a10caef 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -117,8 +117,8 @@
   Unknown = -1,
 #undef ELEM____
 #undef ELEM_HIDDEN____
-#define ELEM____(a, b, c) c,
-#define ELEM_HIDDEN____(a) a,
+#define ELEM____(a, b, c, d) c,
+#define ELEM_HIDDEN____(a, b) a,
 #include "xfa/fxfa/parser/elements.inc"
 #undef ELEM____
 #undef ELEM_HIDDEN____
@@ -132,12 +132,6 @@
   Measure,
 };
 
-struct XFA_SCRIPTHIERARCHY {
-  uint16_t wAttributeStart;
-  uint16_t wAttributeCount;
-  XFA_Element wParentIndex;
-};
-
 #define XFA_PROPERTYFLAG_OneOf 0x01
 #define XFA_PROPERTYFLAG_DefaultOneOf 0x02
 
diff --git a/xfa/fxfa/fxfa_basic_unittest.cpp b/xfa/fxfa/fxfa_basic_unittest.cpp
index 95284c0..4bc1364 100644
--- a/xfa/fxfa/fxfa_basic_unittest.cpp
+++ b/xfa/fxfa/fxfa_basic_unittest.cpp
@@ -44,8 +44,8 @@
 TEST(FXFABasic, ElementHashMatchesString) {
 #undef ELEM____
 #undef ELEM_HIDDEN____
-#define ELEM____(a, b, c) EXPECT_EQ(a, FX_HashCode_GetAsIfW(b, false));
-#define ELEM_HIDDEN____(a)
+#define ELEM____(a, b, c, d) EXPECT_EQ(a, FX_HashCode_GetAsIfW(b, false));
+#define ELEM_HIDDEN____(a, b)
 #include "xfa/fxfa/parser/elements.inc"
 #undef ELEM____
 #undef ELEM_HIDDEN____
@@ -55,10 +55,10 @@
   uint32_t so_far = 0;
 #undef ELEM____
 #undef ELEM_HIDDEN____
-#define ELEM____(a, b, c) \
-  EXPECT_LT(so_far, a);   \
+#define ELEM____(a, b, c, d) \
+  EXPECT_LT(so_far, a);      \
   so_far = a;
-#define ELEM_HIDDEN____(a)
+#define ELEM_HIDDEN____(a, b)
 #include "xfa/fxfa/parser/elements.inc"
 #undef ELEM____
 #undef ELEM_HIDDEN____
diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp
index 97c7d28..dd71311 100644
--- a/xfa/fxfa/parser/cxfa_node_statics.cpp
+++ b/xfa/fxfa/parser/cxfa_node_statics.cpp
@@ -323,8 +323,8 @@
 const ElementNameInfo ElementNameToEnum[] = {
 #undef ELEM____
 #undef ELEM_HIDDEN____
-#define ELEM____(a, b, c) {a, XFA_Element::c},
-#define ELEM_HIDDEN____(a)
+#define ELEM____(a, b, c, d) {a, XFA_Element::c},
+#define ELEM_HIDDEN____(a, b)
 #include "xfa/fxfa/parser/elements.inc"
 #undef ELEM____
 #undef ELEM_HIDDEN____
diff --git a/xfa/fxfa/parser/elements.inc b/xfa/fxfa/parser/elements.inc
index 094aebe..28f6461 100644
--- a/xfa/fxfa/parser/elements.inc
+++ b/xfa/fxfa/parser/elements.inc
@@ -4,324 +4,324 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-ELEM____(0x0023ee3u, "ps", Ps)
-ELEM____(0x0025363u, "to", To)
-ELEM____(0x002587eu, "ui", Ui)
-ELEM____(0x01c648bu, "recordSet", RecordSet)
-ELEM____(0x0171428fu, "subsetBelow", SubsetBelow)
-ELEM____(0x01a0776au, "subformSet", SubformSet)
-ELEM____(0x02340d70u, "adobeExtensionLevel", AdobeExtensionLevel)
-ELEM____(0x02c1c7f1u, "typeface", Typeface)
-ELEM____(0x05518c25u, "break", Break)
-ELEM____(0x05fff523u, "fontInfo", FontInfo)
-ELEM____(0x0653a227u, "numberPattern", NumberPattern)
-ELEM____(0x065b4a05u, "dynamicRender", DynamicRender)
-ELEM____(0x07e4362eu, "printScaling", PrintScaling)
-ELEM____(0x07fe6d3au, "checkButton", CheckButton)
-ELEM____(0x080cf58fu, "datePatterns", DatePatterns)
-ELEM____(0x0811929du, "sourceSet", SourceSet)
-ELEM____(0x09f9d612u, "amd", Amd)
-ELEM____(0x09f9efb6u, "arc", Arc)
-ELEM____(0x0a48835eu, "day", Day)
-ELEM____(0x0a6328b8u, "era", Era)
-ELEM____(0x0ae6a0a0u, "jog", Jog)
-ELEM____(0x0b1b3d22u, "log", Log)
-ELEM____(0x0b35439eu, "map", Map)
-ELEM____(0x0b355301u, "mdp", Mdp)
-ELEM____(0x0b420438u, "breakBefore", BreakBefore)
-ELEM____(0x0b6a091cu, "oid", Oid)
-ELEM____(0x0b84389fu, "pcl", Pcl)
-ELEM____(0x0b843dbau, "pdf", Pdf)
-ELEM____(0x0bb8df5du, "ref", Ref)
-ELEM____(0x0c080cd0u, "uri", Uri)
-ELEM____(0x0c56afbfu, "xdc", Xdc)
-ELEM____(0x0c56afccu, "xdp", Xdp)
-ELEM____(0x0c56b9ffu, "xfa", Xfa)
-ELEM____(0x0c56fcb7u, "xsl", Xsl)
-ELEM____(0x0c8b89d6u, "zpl", Zpl)
-ELEM____(0x0c9bae94u, "cache", Cache)
-ELEM____(0x0cb016beu, "margin", Margin)
-ELEM____(0x0e1378feu, "keyUsage", KeyUsage)
-ELEM____(0x0fe3596au, "exclude", Exclude)
-ELEM____(0x10395ac7u, "choiceList", ChoiceList)
-ELEM____(0x1059ec18u, "level", Level)
-ELEM____(0x10874804u, "labelPrinter", LabelPrinter)
-ELEM____(0x10c40e03u, "calendarSymbols", CalendarSymbols)
-ELEM____(0x10f1ea24u, "para", Para)
-ELEM____(0x10f1ea37u, "part", Part)
-ELEM____(0x1140975bu, "pdfa", Pdfa)
-ELEM____(0x1154efe6u, "filter", Filter)
-ELEM____(0x13f41de1u, "present", Present)
-ELEM____(0x1827e6eau, "pagination", Pagination)
-ELEM____(0x18463707u, "encoding", Encoding)
-ELEM____(0x185e41e2u, "event", Event)
-ELEM____(0x1adb142du, "whitespace", Whitespace)
-ELEM____(0x1f3f64c3u, "defaultUi", DefaultUi)
-ELEM____(0x204e87cbu, "dataModel", DataModel)
-ELEM____(0x2057b350u, "barcode", Barcode)
-ELEM____(0x20596badu, "timePattern", TimePattern)
-ELEM____(0x210b74d3u, "batchOutput", BatchOutput)
-ELEM____(0x212ff0e2u, "enforce", Enforce)
-ELEM____(0x21d351b4u, "currencySymbols", CurrencySymbols)
-ELEM____(0x21db83c5u, "addSilentPrint", AddSilentPrint)
-ELEM____(0x22266258u, "rename", Rename)
-ELEM____(0x226ca8f1u, "operation", Operation)
-ELEM____(0x23e27b84u, "typefaces", Typefaces)
-ELEM____(0x23f4aa75u, "subjectDNs", SubjectDNs)
-ELEM____(0x240d5e8eu, "issuers", Issuers)
-ELEM_HIDDEN____(SignaturePseudoModel)
-ELEM____(0x24a52f8au, "wsdlConnection", WsdlConnection)
-ELEM____(0x254ebd07u, "debug", Debug)
-ELEM____(0x2655c66au, "delta", Delta)
-ELEM____(0x26c0daecu, "eraNames", EraNames)
-ELEM____(0x273ab03bu, "modifyAnnots", ModifyAnnots)
-ELEM____(0x27875bb4u, "startNode", StartNode)
-ELEM____(0x285d0dbcu, "button", Button)
-ELEM____(0x28dee6e9u, "format", Format)
-ELEM____(0x2a23349eu, "border", Border)
-ELEM____(0x2ae67f19u, "area", Area)
-ELEM____(0x2c3c4c67u, "hyphenation", Hyphenation)
-ELEM____(0x2d08af85u, "text", Text)
-ELEM____(0x2d71b00fu, "time", Time)
-ELEM____(0x2f16a382u, "type", Type)
-ELEM____(0x2fe057e9u, "overprint", Overprint)
-ELEM____(0x302aee16u, "certificates", Certificates)
-ELEM____(0x30b227dfu, "encryptionMethods", EncryptionMethods)
-ELEM____(0x32b900d1u, "setProperty", SetProperty)
-ELEM____(0x337d9e45u, "printerName", PrinterName)
-ELEM____(0x33edda4bu, "startPage", StartPage)
-ELEM____(0x381943e4u, "pageOffset", PageOffset)
-ELEM____(0x382106cdu, "dateTime", DateTime)
-ELEM____(0x386e7421u, "comb", Comb)
-ELEM____(0x390acd9eu, "pattern", Pattern)
-ELEM____(0x3942163eu, "ifEmpty", IfEmpty)
-ELEM____(0x39944a7bu, "suppressBanner", SuppressBanner)
-ELEM____(0x3b3c3dcau, "outputBin", OutputBin)
-ELEM____(0x3b8a4024u, "field", Field)
-ELEM____(0x3c15352fu, "agent", Agent)
-ELEM____(0x3d7e8668u, "outputXSL", OutputXSL)
-ELEM____(0x3e1c91c5u, "adjustData", AdjustData)
-ELEM____(0x3e7a9408u, "autoSave", AutoSave)
-ELEM____(0x3ecead94u, "contentArea", ContentArea)
-ELEM_HIDDEN____(EventPseudoModel)
-ELEM____(0x3fadaec0u, "wsdlAddress", WsdlAddress)
-ELEM____(0x40623b5bu, "solid", Solid)
-ELEM____(0x41f0bd76u, "dateTimeSymbols", DateTimeSymbols)
-ELEM____(0x444e7523u, "encryptionLevel", EncryptionLevel)
-ELEM____(0x4523af55u, "edge", Edge)
-ELEM____(0x45d5e3c1u, "stipple", Stipple)
-ELEM____(0x475e4e87u, "attributes", Attributes)
-ELEM____(0x487a8c87u, "versionControl", VersionControl)
-ELEM____(0x48e5248cu, "meridiem", Meridiem)
-ELEM____(0x48f36719u, "exclGroup", ExclGroup)
-ELEM____(0x4977356bu, "toolTip", ToolTip)
-ELEM____(0x499afeccu, "compress", Compress)
-ELEM____(0x4a0c4948u, "reason", Reason)
-ELEM____(0x4bdcce13u, "execute", Execute)
-ELEM____(0x4c56b216u, "contentCopy", ContentCopy)
-ELEM____(0x4cc176d3u, "dateTimeEdit", DateTimeEdit)
-ELEM____(0x4e1e39b6u, "config", Config)
-ELEM____(0x4e2d6083u, "image", Image)
-ELEM____(0x4e814150u, "#xHTML", SharpxHTML)
-ELEM____(0x4f2388c1u, "numberOfCopies", NumberOfCopies)
-ELEM____(0x4f512e30u, "behaviorOverride", BehaviorOverride)
-ELEM____(0x4fdc3454u, "timeStamp", TimeStamp)
-ELEM____(0x51d90546u, "month", Month)
-ELEM____(0x523437e4u, "viewerPreferences", ViewerPreferences)
-ELEM____(0x53abc1c6u, "scriptModel", ScriptModel)
-ELEM____(0x54034c2fu, "decimal", Decimal)
-ELEM____(0x54202c9eu, "subform", Subform)
-ELEM____(0x542c7300u, "select", Select)
-ELEM____(0x5436d198u, "window", Window)
-ELEM____(0x5473b6dcu, "localeSet", LocaleSet)
-ELEM____(0x56ae179eu, "handler", Handler)
-ELEM_HIDDEN____(HostPseudoModel)
-ELEM____(0x570ce835u, "presence", Presence)
-ELEM____(0x5779d65fu, "record", Record)
-ELEM____(0x59c8f27du, "embed", Embed)
-ELEM____(0x5a50e9e6u, "version", Version)
-ELEM____(0x5b8383dfu, "command", Command)
-ELEM____(0x5c43c6c3u, "copies", Copies)
-ELEM____(0x5e0c2c49u, "staple", Staple)
-ELEM____(0x5e5083ddu, "submitFormat", SubmitFormat)
-ELEM____(0x5e8c5d20u, "boolean", Boolean)
-ELEM____(0x60490a85u, "message", Message)
-ELEM____(0x60d4c8b1u, "output", Output)
-ELEM____(0x61810081u, "psMap", PsMap)
-ELEM____(0x62bd904bu, "excludeNS", ExcludeNS)
-ELEM____(0x669d4f77u, "assist", Assist)
-ELEM____(0x67334a1cu, "picture", Picture)
-ELEM____(0x67fe7334u, "traversal", Traversal)
-ELEM____(0x6894589cu, "silentPrint", SilentPrint)
-ELEM____(0x68a16bbdu, "webClient", WebClient)
-ELEM_HIDDEN____(LayoutPseudoModel)
-ELEM____(0x6a4bc084u, "producer", Producer)
-ELEM____(0x6a9e04c9u, "corner", Corner)
-ELEM____(0x6ccd7274u, "msgId", MsgId)
-ELEM____(0x6e67921fu, "color", Color)
-ELEM____(0x6ec217a5u, "keep", Keep)
-ELEM____(0x6eef1116u, "query", Query)
-ELEM____(0x7033bfd5u, "insert", Insert)
-ELEM____(0x704af389u, "imageEdit", ImageEdit)
-ELEM____(0x7233018au, "validate", Validate)
-ELEM____(0x72ba47b4u, "digestMethods", DigestMethods)
-ELEM____(0x72f2aa7au, "numberPatterns", NumberPatterns)
-ELEM____(0x74caed29u, "pageSet", PageSet)
-ELEM____(0x7568e6aeu, "integer", Integer)
-ELEM____(0x76182db9u, "soapAddress", SoapAddress)
-ELEM____(0x773146c5u, "equate", Equate)
-ELEM____(0x77d449ddu, "formFieldFilling", FormFieldFilling)
-ELEM____(0x7889d68au, "pageRange", PageRange)
-ELEM____(0x7baca2e3u, "update", Update)
-ELEM____(0x7ce89001u, "connectString", ConnectString)
-ELEM____(0x7d9fd7c5u, "mode", Mode)
-ELEM____(0x7e7e845eu, "layout", Layout)
-ELEM____(0x7e845c34u, "#xml", Sharpxml)
-ELEM____(0x7fb341dfu, "xsdConnection", XsdConnection)
-ELEM____(0x7ffb51ccu, "traverse", Traverse)
-ELEM____(0x80203b5au, "encodings", Encodings)
-ELEM____(0x803550fcu, "template", Template)
-ELEM____(0x803d5bbcu, "acrobat", Acrobat)
-ELEM____(0x821d6569u, "validationMessaging", ValidationMessaging)
-ELEM____(0x830e688fu, "signing", Signing)
-ELEM_HIDDEN____(DataWindow)
-ELEM____(0x83dab9f5u, "script", Script)
-ELEM____(0x8411ebcdu, "addViewerPreferences", AddViewerPreferences)
-ELEM____(0x8777642eu, "alwaysEmbed", AlwaysEmbed)
-ELEM____(0x877a6b39u, "passwordEdit", PasswordEdit)
-ELEM____(0x87e84c99u, "numericEdit", NumericEdit)
-ELEM____(0x8852cdecu, "encryptionMethod", EncryptionMethod)
-ELEM____(0x891f4606u, "change", Change)
-ELEM____(0x89939f36u, "pageArea", PageArea)
-ELEM____(0x8a9d6247u, "submitUrl", SubmitUrl)
-ELEM____(0x8ad8b90fu, "oids", Oids)
-ELEM____(0x8b036f32u, "signature", Signature)
-ELEM____(0x8b128efbu, "ADBE_JSConsole", ADBE_JSConsole)
-ELEM____(0x8bcfe96eu, "caption", Caption)
-ELEM____(0x8e1c2921u, "relevant", Relevant)
-ELEM____(0x8e3f0a4bu, "flipLabel", FlipLabel)
-ELEM____(0x900280b7u, "exData", ExData)
-ELEM____(0x91e80352u, "dayNames", DayNames)
-ELEM____(0x93113b11u, "soapAction", SoapAction)
-ELEM____(0x938b09f6u, "defaultTypeface", DefaultTypeface)
-ELEM____(0x95b37897u, "manifest", Manifest)
-ELEM____(0x97b76b54u, "overflow", Overflow)
-ELEM____(0x9a57861bu, "linear", Linear)
-ELEM____(0x9ad5a821u, "currencySymbol", CurrencySymbol)
-ELEM____(0x9c6471b3u, "delete", Delete)
-ELEM____(0x9deea61du, "deltas", Deltas)
-ELEM____(0x9e67de21u, "digestMethod", DigestMethod)
-ELEM____(0x9f3e9510u, "instanceManager", InstanceManager)
-ELEM____(0xa0799892u, "equateRange", EquateRange)
-ELEM____(0xa084a381u, "medium", Medium)
-ELEM____(0xa1211b8bu, "textEdit", TextEdit)
-ELEM____(0xa17008f0u, "templateCache", TemplateCache)
-ELEM____(0xa4f7b88fu, "compressObjectStream", CompressObjectStream)
-ELEM____(0xa65f5d17u, "dataValue", DataValue)
-ELEM____(0xa6caaa89u, "accessibleContent", AccessibleContent)
-ELEM_HIDDEN____(TreeList)
-ELEM____(0xa94cc00bu, "includeXDPContent", IncludeXDPContent)
-ELEM____(0xa9b081a1u, "xmlConnection", XmlConnection)
-ELEM____(0xab2a3b74u, "validateApprovalSignatures", ValidateApprovalSignatures)
-ELEM____(0xab8c5a2bu, "signData", SignData)
-ELEM____(0xabaa2cebu, "packets", Packets)
-ELEM____(0xadba359cu, "datePattern", DatePattern)
-ELEM____(0xae222b2bu, "duplexOption", DuplexOption)
-ELEM____(0xb012effbu, "base", Base)
-ELEM____(0xb0e5485du, "bind", Bind)
-ELEM____(0xb45d61b2u, "compression", Compression)
-ELEM____(0xb563f0ffu, "user", User)
-ELEM____(0xb5848ad5u, "rectangle", Rectangle)
-ELEM____(0xb6dacb72u, "effectiveOutputPolicy", EffectiveOutputPolicy)
-ELEM____(0xb7d7654du, "ADBE_JSDebugger", ADBE_JSDebugger)
-ELEM____(0xbab37f73u, "acrobat7", Acrobat7)
-ELEM____(0xbc70081eu, "interactive", Interactive)
-ELEM____(0xbc8fa350u, "locale", Locale)
-ELEM____(0xbcd44940u, "currentPage", CurrentPage)
-ELEM____(0xbde9abdau, "data", Data)
-ELEM____(0xbde9abdeu, "date", Date)
-ELEM____(0xbe52dfbfu, "desc", Desc)
-ELEM____(0xbf4b6405u, "encrypt", Encrypt)
-ELEM____(0xbfa87cceu, "draw", Draw)
-ELEM____(0xc181ff4bu, "encryption", Encryption)
-ELEM____(0xc1970f40u, "meridiemNames", MeridiemNames)
-ELEM____(0xc5ad9f5eu, "messaging", Messaging)
-ELEM____(0xc69549f4u, "speak", Speak)
-ELEM____(0xc7743dc7u, "dataGroup", DataGroup)
-ELEM____(0xc7eb20e9u, "common", Common)
-ELEM____(0xc85d4528u, "#text", Sharptext)
-ELEM____(0xc861556au, "paginationOverride", PaginationOverride)
-ELEM____(0xc903dabbu, "reasons", Reasons)
-ELEM____(0xc9a8127fu, "signatureProperties", SignatureProperties)
-ELEM____(0xca010c2du, "threshold", Threshold)
-ELEM____(0xcb4c5e96u, "appearanceFilter", AppearanceFilter)
-ELEM____(0xcc92aba7u, "fill", Fill)
-ELEM____(0xcd308b77u, "font", Font)
-ELEM____(0xcd309ff4u, "form", Form)
-ELEM____(0xcebcca2du, "mediumInfo", MediumInfo)
-ELEM____(0xcfe0d643u, "certificate", Certificate)
-ELEM____(0xd012c033u, "password", Password)
-ELEM____(0xd01604bdu, "runScripts", RunScripts)
-ELEM____(0xd1227e6fu, "trace", Trace)
-ELEM____(0xd1532876u, "float", Float)
-ELEM____(0xd17a6c30u, "renderPolicy", RenderPolicy)
-ELEM_HIDDEN____(LogPseudoModel)
-ELEM____(0xd58aa962u, "destination", Destination)
-ELEM____(0xd6e27f1du, "value", Value)
-ELEM____(0xd7a14462u, "bookend", Bookend)
-ELEM____(0xd8c31254u, "exObject", ExObject)
-ELEM____(0xda6a8590u, "openAction", OpenAction)
-ELEM____(0xdab4fb7du, "neverEmbed", NeverEmbed)
-ELEM____(0xdb98475fu, "bindItems", BindItems)
-ELEM____(0xdbfbe02eu, "calculate", Calculate)
-ELEM____(0xdd7676edu, "print", Print)
-ELEM____(0xdde273d7u, "extras", Extras)
-ELEM____(0xde146b34u, "proto", Proto)
-ELEM____(0xdf059321u, "dSigData", DSigData)
-ELEM____(0xdfccf030u, "creator", Creator)
-ELEM____(0xdff78c6au, "connect", Connect)
-ELEM____(0xe11a2cbcu, "permissions", Permissions)
-ELEM____(0xe14c801cu, "connectionSet", ConnectionSet)
-ELEM____(0xe1c83a14u, "submit", Submit)
-ELEM____(0xe29821cdu, "range", Range)
-ELEM____(0xe38d83c7u, "linearized", Linearized)
-ELEM____(0xe3aa2578u, "packet", Packet)
-ELEM____(0xe3aa860eu, "rootElement", RootElement)
-ELEM____(0xe3e553fau, "plaintextMetadata", PlaintextMetadata)
-ELEM____(0xe3e6e4f2u, "numberSymbols", NumberSymbols)
-ELEM____(0xe3f067f6u, "printHighQuality", PrintHighQuality)
-ELEM____(0xe3fd078cu, "driver", Driver)
-ELEM____(0xe48b34f2u, "incrementalLoad", IncrementalLoad)
-ELEM____(0xe550e7c2u, "subjectDN", SubjectDN)
-ELEM____(0xe6669a78u, "compressLogicalStructure", CompressLogicalStructure)
-ELEM____(0xe7a7ea02u, "incrementalMerge", IncrementalMerge)
-ELEM____(0xe948530du, "radial", Radial)
-ELEM____(0xea8d6999u, "variables", Variables)
-ELEM____(0xeaa142c0u, "timePatterns", TimePatterns)
-ELEM____(0xeb943a71u, "effectiveInputPolicy", EffectiveInputPolicy)
-ELEM____(0xef04a2bcu, "nameAttr", NameAttr)
-ELEM____(0xf07222abu, "conformance", Conformance)
-ELEM____(0xf0aaaadcu, "transform", Transform)
-ELEM____(0xf1433e88u, "lockDocument", LockDocument)
-ELEM____(0xf54eb997u, "breakAfter", BreakAfter)
-ELEM____(0xf616da28u, "line", Line)
-ELEM_HIDDEN____(List)
-ELEM____(0xf7055fb1u, "source", Source)
-ELEM____(0xf7eebe1cu, "occur", Occur)
-ELEM____(0xf8d10d97u, "pickTrayByPDFSize", PickTrayByPDFSize)
-ELEM____(0xf8f19e3au, "monthNames", MonthNames)
-ELEM____(0xf984149bu, "severity", Severity)
-ELEM____(0xf9bcb037u, "groupParent", GroupParent)
-ELEM____(0xfbc42fffu, "documentAssembly", DocumentAssembly)
-ELEM____(0xfc78159fu, "numberSymbol", NumberSymbol)
-ELEM____(0xfcbd606cu, "tagged", Tagged)
-ELEM____(0xff063802u, "items", Items)
-ELEM_HIDDEN____(Object)
-ELEM_HIDDEN____(ListDuplicate)
-ELEM_HIDDEN____(Placeholder1)
-ELEM_HIDDEN____(Tree)
-ELEM_HIDDEN____(Node)
-ELEM_HIDDEN____(Placeholder2)
-ELEM_HIDDEN____(Placeholder3)
-ELEM_HIDDEN____(Model)
-ELEM_HIDDEN____(Placeholder4)
+ELEM____(0x0023ee3u, "ps", Ps, Node)
+ELEM____(0x0025363u, "to", To, Node)
+ELEM____(0x002587eu, "ui", Ui, Node)
+ELEM____(0x01c648bu, "recordSet", RecordSet, Node)
+ELEM____(0x0171428fu, "subsetBelow", SubsetBelow, Node)
+ELEM____(0x01a0776au, "subformSet", SubformSet, Placeholder2)
+ELEM____(0x02340d70u, "adobeExtensionLevel", AdobeExtensionLevel, Node)
+ELEM____(0x02c1c7f1u, "typeface", Typeface, Node)
+ELEM____(0x05518c25u, "break", Break, Node)
+ELEM____(0x05fff523u, "fontInfo", FontInfo, Node)
+ELEM____(0x0653a227u, "numberPattern", NumberPattern, Node)
+ELEM____(0x065b4a05u, "dynamicRender", DynamicRender, Node)
+ELEM____(0x07e4362eu, "printScaling", PrintScaling, Node)
+ELEM____(0x07fe6d3au, "checkButton", CheckButton, Node)
+ELEM____(0x080cf58fu, "datePatterns", DatePatterns, Node)
+ELEM____(0x0811929du, "sourceSet", SourceSet, Model)
+ELEM____(0x09f9d612u, "amd", Amd, Node)
+ELEM____(0x09f9efb6u, "arc", Arc, Node)
+ELEM____(0x0a48835eu, "day", Day, Node)
+ELEM____(0x0a6328b8u, "era", Era, Node)
+ELEM____(0x0ae6a0a0u, "jog", Jog, Node)
+ELEM____(0x0b1b3d22u, "log", Log, Node)
+ELEM____(0x0b35439eu, "map", Map, Node)
+ELEM____(0x0b355301u, "mdp", Mdp, Node)
+ELEM____(0x0b420438u, "breakBefore", BreakBefore, Node)
+ELEM____(0x0b6a091cu, "oid", Oid, Placeholder4)
+ELEM____(0x0b84389fu, "pcl", Pcl, Node)
+ELEM____(0x0b843dbau, "pdf", Pdf, Node)
+ELEM____(0x0bb8df5du, "ref", Ref, Placeholder4)
+ELEM____(0x0c080cd0u, "uri", Uri, Placeholder4)
+ELEM____(0x0c56afbfu, "xdc", Xdc, Node)
+ELEM____(0x0c56afccu, "xdp", Xdp, Node)
+ELEM____(0x0c56b9ffu, "xfa", Xfa, Model)
+ELEM____(0x0c56fcb7u, "xsl", Xsl, Node)
+ELEM____(0x0c8b89d6u, "zpl", Zpl, Node)
+ELEM____(0x0c9bae94u, "cache", Cache, Node)
+ELEM____(0x0cb016beu, "margin", Margin, Node)
+ELEM____(0x0e1378feu, "keyUsage", KeyUsage, Node)
+ELEM____(0x0fe3596au, "exclude", Exclude, Node)
+ELEM____(0x10395ac7u, "choiceList", ChoiceList, Node)
+ELEM____(0x1059ec18u, "level", Level, Node)
+ELEM____(0x10874804u, "labelPrinter", LabelPrinter, Node)
+ELEM____(0x10c40e03u, "calendarSymbols", CalendarSymbols, Node)
+ELEM____(0x10f1ea24u, "para", Para, Node)
+ELEM____(0x10f1ea37u, "part", Part, Node)
+ELEM____(0x1140975bu, "pdfa", Pdfa, Node)
+ELEM____(0x1154efe6u, "filter", Filter, Node)
+ELEM____(0x13f41de1u, "present", Present, Node)
+ELEM____(0x1827e6eau, "pagination", Pagination, Node)
+ELEM____(0x18463707u, "encoding", Encoding, Node)
+ELEM____(0x185e41e2u, "event", Event, Node)
+ELEM____(0x1adb142du, "whitespace", Whitespace, Node)
+ELEM____(0x1f3f64c3u, "defaultUi", DefaultUi, Node)
+ELEM____(0x204e87cbu, "dataModel", DataModel, Model)
+ELEM____(0x2057b350u, "barcode", Barcode, Node)
+ELEM____(0x20596badu, "timePattern", TimePattern, Node)
+ELEM____(0x210b74d3u, "batchOutput", BatchOutput, Node)
+ELEM____(0x212ff0e2u, "enforce", Enforce, Node)
+ELEM____(0x21d351b4u, "currencySymbols", CurrencySymbols, Node)
+ELEM____(0x21db83c5u, "addSilentPrint", AddSilentPrint, Node)
+ELEM____(0x22266258u, "rename", Rename, Node)
+ELEM____(0x226ca8f1u, "operation", Operation, Placeholder4)
+ELEM____(0x23e27b84u, "typefaces", Typefaces, Node)
+ELEM____(0x23f4aa75u, "subjectDNs", SubjectDNs, Node)
+ELEM____(0x240d5e8eu, "issuers", Issuers, Node)
+ELEM_HIDDEN____(SignaturePseudoModel, Object)
+ELEM____(0x24a52f8au, "wsdlConnection", WsdlConnection, Node)
+ELEM____(0x254ebd07u, "debug", Debug, Node)
+ELEM____(0x2655c66au, "delta", Delta, Unknown)
+ELEM____(0x26c0daecu, "eraNames", EraNames, Node)
+ELEM____(0x273ab03bu, "modifyAnnots", ModifyAnnots, Node)
+ELEM____(0x27875bb4u, "startNode", StartNode, Node)
+ELEM____(0x285d0dbcu, "button", Button, Node)
+ELEM____(0x28dee6e9u, "format", Format, Node)
+ELEM____(0x2a23349eu, "border", Border, Node)
+ELEM____(0x2ae67f19u, "area", Area, Placeholder2)
+ELEM____(0x2c3c4c67u, "hyphenation", Hyphenation, Node)
+ELEM____(0x2d08af85u, "text", Text, Placeholder3)
+ELEM____(0x2d71b00fu, "time", Time, Placeholder3)
+ELEM____(0x2f16a382u, "type", Type, Node)
+ELEM____(0x2fe057e9u, "overprint", Overprint, Node)
+ELEM____(0x302aee16u, "certificates", Certificates, Node)
+ELEM____(0x30b227dfu, "encryptionMethods", EncryptionMethods, Node)
+ELEM____(0x32b900d1u, "setProperty", SetProperty, Node)
+ELEM____(0x337d9e45u, "printerName", PrinterName, Node)
+ELEM____(0x33edda4bu, "startPage", StartPage, Node)
+ELEM____(0x381943e4u, "pageOffset", PageOffset, Node)
+ELEM____(0x382106cdu, "dateTime", DateTime, Node)
+ELEM____(0x386e7421u, "comb", Comb, Node)
+ELEM____(0x390acd9eu, "pattern", Pattern, Node)
+ELEM____(0x3942163eu, "ifEmpty", IfEmpty, Node)
+ELEM____(0x39944a7bu, "suppressBanner", SuppressBanner, Node)
+ELEM____(0x3b3c3dcau, "outputBin", OutputBin, Node)
+ELEM____(0x3b8a4024u, "field", Field, Placeholder2)
+ELEM____(0x3c15352fu, "agent", Agent, Node)
+ELEM____(0x3d7e8668u, "outputXSL", OutputXSL, Node)
+ELEM____(0x3e1c91c5u, "adjustData", AdjustData, Node)
+ELEM____(0x3e7a9408u, "autoSave", AutoSave, Node)
+ELEM____(0x3ecead94u, "contentArea", ContentArea, Placeholder2)
+ELEM_HIDDEN____(EventPseudoModel, Object)
+ELEM____(0x3fadaec0u, "wsdlAddress", WsdlAddress, Placeholder4)
+ELEM____(0x40623b5bu, "solid", Solid, Node)
+ELEM____(0x41f0bd76u, "dateTimeSymbols", DateTimeSymbols, Node)
+ELEM____(0x444e7523u, "encryptionLevel", EncryptionLevel, Node)
+ELEM____(0x4523af55u, "edge", Edge, Node)
+ELEM____(0x45d5e3c1u, "stipple", Stipple, Node)
+ELEM____(0x475e4e87u, "attributes", Attributes, Node)
+ELEM____(0x487a8c87u, "versionControl", VersionControl, Node)
+ELEM____(0x48e5248cu, "meridiem", Meridiem, Node)
+ELEM____(0x48f36719u, "exclGroup", ExclGroup, Node)
+ELEM____(0x4977356bu, "toolTip", ToolTip, Placeholder4)
+ELEM____(0x499afeccu, "compress", Compress, Node)
+ELEM____(0x4a0c4948u, "reason", Reason, Placeholder4)
+ELEM____(0x4bdcce13u, "execute", Execute, Node)
+ELEM____(0x4c56b216u, "contentCopy", ContentCopy, Node)
+ELEM____(0x4cc176d3u, "dateTimeEdit", DateTimeEdit, Node)
+ELEM____(0x4e1e39b6u, "config", Config, Node)
+ELEM____(0x4e2d6083u, "image", Image, Node)
+ELEM____(0x4e814150u, "#xHTML", SharpxHTML, Node)
+ELEM____(0x4f2388c1u, "numberOfCopies", NumberOfCopies, Node)
+ELEM____(0x4f512e30u, "behaviorOverride", BehaviorOverride, Node)
+ELEM____(0x4fdc3454u, "timeStamp", TimeStamp, Node)
+ELEM____(0x51d90546u, "month", Month, Node)
+ELEM____(0x523437e4u, "viewerPreferences", ViewerPreferences, Node)
+ELEM____(0x53abc1c6u, "scriptModel", ScriptModel, Node)
+ELEM____(0x54034c2fu, "decimal", Decimal, Placeholder3)
+ELEM____(0x54202c9eu, "subform", Subform, Placeholder2)
+ELEM____(0x542c7300u, "select", Select, Placeholder4)
+ELEM____(0x5436d198u, "window", Window, Node)
+ELEM____(0x5473b6dcu, "localeSet", LocaleSet, Node)
+ELEM____(0x56ae179eu, "handler", Handler, Placeholder4)
+ELEM_HIDDEN____(HostPseudoModel, Object)
+ELEM____(0x570ce835u, "presence", Presence, Node)
+ELEM____(0x5779d65fu, "record", Record, Node)
+ELEM____(0x59c8f27du, "embed", Embed, Node)
+ELEM____(0x5a50e9e6u, "version", Version, Node)
+ELEM____(0x5b8383dfu, "command", Command, Node)
+ELEM____(0x5c43c6c3u, "copies", Copies, Node)
+ELEM____(0x5e0c2c49u, "staple", Staple, Node)
+ELEM____(0x5e5083ddu, "submitFormat", SubmitFormat, Node)
+ELEM____(0x5e8c5d20u, "boolean", Boolean, Placeholder3)
+ELEM____(0x60490a85u, "message", Message, Node)
+ELEM____(0x60d4c8b1u, "output", Output, Node)
+ELEM____(0x61810081u, "psMap", PsMap, Node)
+ELEM____(0x62bd904bu, "excludeNS", ExcludeNS, Node)
+ELEM____(0x669d4f77u, "assist", Assist, Node)
+ELEM____(0x67334a1cu, "picture", Picture, Node)
+ELEM____(0x67fe7334u, "traversal", Traversal, Node)
+ELEM____(0x6894589cu, "silentPrint", SilentPrint, Node)
+ELEM____(0x68a16bbdu, "webClient", WebClient, Node)
+ELEM_HIDDEN____(LayoutPseudoModel, Object)
+ELEM____(0x6a4bc084u, "producer", Producer, Node)
+ELEM____(0x6a9e04c9u, "corner", Corner, Node)
+ELEM____(0x6ccd7274u, "msgId", MsgId, Node)
+ELEM____(0x6e67921fu, "color", Color, Node)
+ELEM____(0x6ec217a5u, "keep", Keep, Node)
+ELEM____(0x6eef1116u, "query", Query, Node)
+ELEM____(0x7033bfd5u, "insert", Insert, Placeholder4)
+ELEM____(0x704af389u, "imageEdit", ImageEdit, Node)
+ELEM____(0x7233018au, "validate", Validate, Node)
+ELEM____(0x72ba47b4u, "digestMethods", DigestMethods, Node)
+ELEM____(0x72f2aa7au, "numberPatterns", NumberPatterns, Node)
+ELEM____(0x74caed29u, "pageSet", PageSet, Placeholder2)
+ELEM____(0x7568e6aeu, "integer", Integer, Placeholder3)
+ELEM____(0x76182db9u, "soapAddress", SoapAddress, Placeholder4)
+ELEM____(0x773146c5u, "equate", Equate, Node)
+ELEM____(0x77d449ddu, "formFieldFilling", FormFieldFilling, Node)
+ELEM____(0x7889d68au, "pageRange", PageRange, Node)
+ELEM____(0x7baca2e3u, "update", Update, Placeholder4)
+ELEM____(0x7ce89001u, "connectString", ConnectString, Placeholder4)
+ELEM____(0x7d9fd7c5u, "mode", Mode, Node)
+ELEM____(0x7e7e845eu, "layout", Layout, Node)
+ELEM____(0x7e845c34u, "#xml", Sharpxml, Node)
+ELEM____(0x7fb341dfu, "xsdConnection", XsdConnection, Node)
+ELEM____(0x7ffb51ccu, "traverse", Traverse, Node)
+ELEM____(0x80203b5au, "encodings", Encodings, Node)
+ELEM____(0x803550fcu, "template", Template, Model)
+ELEM____(0x803d5bbcu, "acrobat", Acrobat, Node)
+ELEM____(0x821d6569u, "validationMessaging", ValidationMessaging, Node)
+ELEM____(0x830e688fu, "signing", Signing, Node)
+ELEM_HIDDEN____(DataWindow, Object)
+ELEM____(0x83dab9f5u, "script", Script, Node)
+ELEM____(0x8411ebcdu, "addViewerPreferences", AddViewerPreferences, Node)
+ELEM____(0x8777642eu, "alwaysEmbed", AlwaysEmbed, Node)
+ELEM____(0x877a6b39u, "passwordEdit", PasswordEdit, Node)
+ELEM____(0x87e84c99u, "numericEdit", NumericEdit, Node)
+ELEM____(0x8852cdecu, "encryptionMethod", EncryptionMethod, Node)
+ELEM____(0x891f4606u, "change", Change, Node)
+ELEM____(0x89939f36u, "pageArea", PageArea, Placeholder2)
+ELEM____(0x8a9d6247u, "submitUrl", SubmitUrl, Node)
+ELEM____(0x8ad8b90fu, "oids", Oids, Node)
+ELEM____(0x8b036f32u, "signature", Signature, Node)
+ELEM____(0x8b128efbu, "ADBE_JSConsole", ADBE_JSConsole, Node)
+ELEM____(0x8bcfe96eu, "caption", Caption, Node)
+ELEM____(0x8e1c2921u, "relevant", Relevant, Node)
+ELEM____(0x8e3f0a4bu, "flipLabel", FlipLabel, Node)
+ELEM____(0x900280b7u, "exData", ExData, Placeholder3)
+ELEM____(0x91e80352u, "dayNames", DayNames, Node)
+ELEM____(0x93113b11u, "soapAction", SoapAction, Placeholder4)
+ELEM____(0x938b09f6u, "defaultTypeface", DefaultTypeface, Node)
+ELEM____(0x95b37897u, "manifest", Manifest, Node)
+ELEM____(0x97b76b54u, "overflow", Overflow, Node)
+ELEM____(0x9a57861bu, "linear", Linear, Node)
+ELEM____(0x9ad5a821u, "currencySymbol", CurrencySymbol, Node)
+ELEM____(0x9c6471b3u, "delete", Delete, Placeholder4)
+ELEM____(0x9deea61du, "deltas", Deltas, ListDuplicate)
+ELEM____(0x9e67de21u, "digestMethod", DigestMethod, Node)
+ELEM____(0x9f3e9510u, "instanceManager", InstanceManager, Node)
+ELEM____(0xa0799892u, "equateRange", EquateRange, Node)
+ELEM____(0xa084a381u, "medium", Medium, Node)
+ELEM____(0xa1211b8bu, "textEdit", TextEdit, Node)
+ELEM____(0xa17008f0u, "templateCache", TemplateCache, Node)
+ELEM____(0xa4f7b88fu, "compressObjectStream", CompressObjectStream, Node)
+ELEM____(0xa65f5d17u, "dataValue", DataValue, Node)
+ELEM____(0xa6caaa89u, "accessibleContent", AccessibleContent, Node)
+ELEM_HIDDEN____(TreeList, Placeholder1)
+ELEM____(0xa94cc00bu, "includeXDPContent", IncludeXDPContent, Node)
+ELEM____(0xa9b081a1u, "xmlConnection", XmlConnection, Node)
+ELEM____(0xab2a3b74u, "validateApprovalSignatures", ValidateApprovalSignatures, Node)
+ELEM____(0xab8c5a2bu, "signData", SignData, Node)
+ELEM____(0xabaa2cebu, "packets", Packets, Node)
+ELEM____(0xadba359cu, "datePattern", DatePattern, Node)
+ELEM____(0xae222b2bu, "duplexOption", DuplexOption, Node)
+ELEM____(0xb012effbu, "base", Base, Node)
+ELEM____(0xb0e5485du, "bind", Bind, Node)
+ELEM____(0xb45d61b2u, "compression", Compression, Node)
+ELEM____(0xb563f0ffu, "user", User, Placeholder4)
+ELEM____(0xb5848ad5u, "rectangle", Rectangle, Node)
+ELEM____(0xb6dacb72u, "effectiveOutputPolicy", EffectiveOutputPolicy, Node)
+ELEM____(0xb7d7654du, "ADBE_JSDebugger", ADBE_JSDebugger, Node)
+ELEM____(0xbab37f73u, "acrobat7", Acrobat7, Node)
+ELEM____(0xbc70081eu, "interactive", Interactive, Node)
+ELEM____(0xbc8fa350u, "locale", Locale, Node)
+ELEM____(0xbcd44940u, "currentPage", CurrentPage, Node)
+ELEM____(0xbde9abdau, "data", Data, Node)
+ELEM____(0xbde9abdeu, "date", Date, Placeholder3)
+ELEM____(0xbe52dfbfu, "desc", Desc, Node)
+ELEM____(0xbf4b6405u, "encrypt", Encrypt, Node)
+ELEM____(0xbfa87cceu, "draw", Draw, Placeholder2)
+ELEM____(0xc181ff4bu, "encryption", Encryption, Node)
+ELEM____(0xc1970f40u, "meridiemNames", MeridiemNames, Node)
+ELEM____(0xc5ad9f5eu, "messaging", Messaging, Node)
+ELEM____(0xc69549f4u, "speak", Speak, Placeholder4)
+ELEM____(0xc7743dc7u, "dataGroup", DataGroup, Node)
+ELEM____(0xc7eb20e9u, "common", Common, Node)
+ELEM____(0xc85d4528u, "#text", Sharptext, Node)
+ELEM____(0xc861556au, "paginationOverride", PaginationOverride, Node)
+ELEM____(0xc903dabbu, "reasons", Reasons, Node)
+ELEM____(0xc9a8127fu, "signatureProperties", SignatureProperties, Node)
+ELEM____(0xca010c2du, "threshold", Threshold, Node)
+ELEM____(0xcb4c5e96u, "appearanceFilter", AppearanceFilter, Node)
+ELEM____(0xcc92aba7u, "fill", Fill, Node)
+ELEM____(0xcd308b77u, "font", Font, Node)
+ELEM____(0xcd309ff4u, "form", Form, Model)
+ELEM____(0xcebcca2du, "mediumInfo", MediumInfo, Node)
+ELEM____(0xcfe0d643u, "certificate", Certificate, Placeholder4)
+ELEM____(0xd012c033u, "password", Password, Placeholder4)
+ELEM____(0xd01604bdu, "runScripts", RunScripts, Node)
+ELEM____(0xd1227e6fu, "trace", Trace, Node)
+ELEM____(0xd1532876u, "float", Float, Placeholder3)
+ELEM____(0xd17a6c30u, "renderPolicy", RenderPolicy, Node)
+ELEM_HIDDEN____(LogPseudoModel, Object)
+ELEM____(0xd58aa962u, "destination", Destination, Node)
+ELEM____(0xd6e27f1du, "value", Value, Node)
+ELEM____(0xd7a14462u, "bookend", Bookend, Node)
+ELEM____(0xd8c31254u, "exObject", ExObject, Node)
+ELEM____(0xda6a8590u, "openAction", OpenAction, Node)
+ELEM____(0xdab4fb7du, "neverEmbed", NeverEmbed, Node)
+ELEM____(0xdb98475fu, "bindItems", BindItems, Node)
+ELEM____(0xdbfbe02eu, "calculate", Calculate, Node)
+ELEM____(0xdd7676edu, "print", Print, Node)
+ELEM____(0xdde273d7u, "extras", Extras, Node)
+ELEM____(0xde146b34u, "proto", Proto, Node)
+ELEM____(0xdf059321u, "dSigData", DSigData, Node)
+ELEM____(0xdfccf030u, "creator", Creator, Node)
+ELEM____(0xdff78c6au, "connect", Connect, Node)
+ELEM____(0xe11a2cbcu, "permissions", Permissions, Node)
+ELEM____(0xe14c801cu, "connectionSet", ConnectionSet, Model)
+ELEM____(0xe1c83a14u, "submit", Submit, Node)
+ELEM____(0xe29821cdu, "range", Range, Node)
+ELEM____(0xe38d83c7u, "linearized", Linearized, Node)
+ELEM____(0xe3aa2578u, "packet", Packet, Node)
+ELEM____(0xe3aa860eu, "rootElement", RootElement, Placeholder4)
+ELEM____(0xe3e553fau, "plaintextMetadata", PlaintextMetadata, Node)
+ELEM____(0xe3e6e4f2u, "numberSymbols", NumberSymbols, Node)
+ELEM____(0xe3f067f6u, "printHighQuality", PrintHighQuality, Node)
+ELEM____(0xe3fd078cu, "driver", Driver, Node)
+ELEM____(0xe48b34f2u, "incrementalLoad", IncrementalLoad, Node)
+ELEM____(0xe550e7c2u, "subjectDN", SubjectDN, Node)
+ELEM____(0xe6669a78u, "compressLogicalStructure", CompressLogicalStructure, Node)
+ELEM____(0xe7a7ea02u, "incrementalMerge", IncrementalMerge, Node)
+ELEM____(0xe948530du, "radial", Radial, Node)
+ELEM____(0xea8d6999u, "variables", Variables, Placeholder2)
+ELEM____(0xeaa142c0u, "timePatterns", TimePatterns, Node)
+ELEM____(0xeb943a71u, "effectiveInputPolicy", EffectiveInputPolicy, Node)
+ELEM____(0xef04a2bcu, "nameAttr", NameAttr, Node)
+ELEM____(0xf07222abu, "conformance", Conformance, Node)
+ELEM____(0xf0aaaadcu, "transform", Transform, Node)
+ELEM____(0xf1433e88u, "lockDocument", LockDocument, Node)
+ELEM____(0xf54eb997u, "breakAfter", BreakAfter, Node)
+ELEM____(0xf616da28u, "line", Line, Node)
+ELEM_HIDDEN____(List, ListDuplicate)
+ELEM____(0xf7055fb1u, "source", Source, Node)
+ELEM____(0xf7eebe1cu, "occur", Occur, Node)
+ELEM____(0xf8d10d97u, "pickTrayByPDFSize", PickTrayByPDFSize, Node)
+ELEM____(0xf8f19e3au, "monthNames", MonthNames, Node)
+ELEM____(0xf984149bu, "severity", Severity, Node)
+ELEM____(0xf9bcb037u, "groupParent", GroupParent, Node)
+ELEM____(0xfbc42fffu, "documentAssembly", DocumentAssembly, Node)
+ELEM____(0xfc78159fu, "numberSymbol", NumberSymbol, Node)
+ELEM____(0xfcbd606cu, "tagged", Tagged, Node)
+ELEM____(0xff063802u, "items", Items, Node)
+ELEM_HIDDEN____(Object, Unknown)
+ELEM_HIDDEN____(ListDuplicate, Object)
+ELEM_HIDDEN____(Placeholder1, ListDuplicate)
+ELEM_HIDDEN____(Tree, Object)
+ELEM_HIDDEN____(Node, Tree)
+ELEM_HIDDEN____(Placeholder2, Node)
+ELEM_HIDDEN____(Placeholder3, Node)
+ELEM_HIDDEN____(Model, Node)
+ELEM_HIDDEN____(Placeholder4, Node)
diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h
index d2e887d..98accd3 100644
--- a/xfa/fxfa/parser/xfa_basic_data.h
+++ b/xfa/fxfa/parser/xfa_basic_data.h
@@ -9,15 +9,17 @@
 
 #include <stddef.h>
 
+#include "core/fxcrt/widestring.h"
 #include "xfa/fxfa/fxfa_basic.h"
 
 extern const XFA_AttributeValueInfo g_XFAEnumData[];
 extern const size_t g_szXFAEnumCount;
 
-extern const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[];
-extern const size_t g_szScriptIndexCount;
-
 extern const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[];
 extern const size_t g_szSomAttributeCount;
 
+const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
+    XFA_Element eElement,
+    WideStringView wsAttributeName);
+
 #endif  // XFA_FXFA_PARSER_XFA_BASIC_DATA_H_
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index 8e425d5..48c81c4 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -149,329 +149,343 @@
 #include "fxjs/xfa/cjx_xsdconnection.h"
 #include "xfa/fxfa/fxfa_basic.h"
 
-const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[] = {
-    {/* ps */ 0, 2, XFA_Element::Node},
-    {/* to */ 2, 2, XFA_Element::Node},
-    {/* ui */ 4, 2, XFA_Element::Node},
-    {/* recordSet */ 6, 8, XFA_Element::Node},
-    {/* subsetBelow */ 14, 4, XFA_Element::Node},
-    {/* subformSet */ 18, 5, XFA_Element::Placeholder2},
-    {/* adobeExtensionLevel */ 23, 2, XFA_Element::Node},
-    {/* typeface */ 25, 1, XFA_Element::Node},
-    {/* break */ 26, 12, XFA_Element::Node},
-    {/* fontInfo */ 38, 2, XFA_Element::Node},
-    {/* numberPattern */ 40, 1, XFA_Element::Node},
-    {/* dynamicRender */ 41, 3, XFA_Element::Node},
-    {/* printScaling */ 44, 2, XFA_Element::Node},
-    {/* checkButton */ 46, 6, XFA_Element::Node},
-    {/* datePatterns */ 52, 0, XFA_Element::Node},
-    {/* sourceSet */ 52, 2, XFA_Element::Model},
-    {/* amd */ 54, 2, XFA_Element::Node},
-    {/* arc */ 56, 6, XFA_Element::Node},
-    {/* day */ 62, 0, XFA_Element::Node},
-    {/* era */ 62, 0, XFA_Element::Node},
-    {/* jog */ 62, 2, XFA_Element::Node},
-    {/* log */ 64, 2, XFA_Element::Node},
-    {/* map */ 66, 6, XFA_Element::Node},
-    {/* mdp */ 72, 4, XFA_Element::Node},
-    {/* breakBefore */ 76, 7, XFA_Element::Node},
-    {/* oid */ 83, 2, XFA_Element::Placeholder4},
-    {/* pcl */ 85, 3, XFA_Element::Node},
-    {/* pdf */ 88, 3, XFA_Element::Node},
-    {/* ref */ 91, 2, XFA_Element::Placeholder4},
-    {/* uri */ 93, 6, XFA_Element::Placeholder4},
-    {/* xdc */ 99, 4, XFA_Element::Node},
-    {/* xdp */ 103, 2, XFA_Element::Node},
-    {/* xfa */ 105, 3, XFA_Element::Model},
-    {/* xsl */ 108, 4, XFA_Element::Node},
-    {/* zpl */ 112, 3, XFA_Element::Node},
-    {/* cache */ 115, 2, XFA_Element::Node},
-    {/* margin */ 117, 6, XFA_Element::Node},
-    {/* keyUsage */ 123, 12, XFA_Element::Node},
-    {/* exclude */ 135, 2, XFA_Element::Node},
-    {/* choiceList */ 137, 5, XFA_Element::Node},
-    {/* level */ 142, 2, XFA_Element::Node},
-    {/* labelPrinter */ 144, 3, XFA_Element::Node},
-    {/* calendarSymbols */ 147, 1, XFA_Element::Node},
-    {/* para */ 148, 14, XFA_Element::Node},
-    {/* part */ 162, 2, XFA_Element::Node},
-    {/* pdfa */ 164, 2, XFA_Element::Node},
-    {/* filter */ 166, 3, XFA_Element::Node},
-    {/* present */ 169, 2, XFA_Element::Node},
-    {/* pagination */ 171, 2, XFA_Element::Node},
-    {/* encoding */ 173, 2, XFA_Element::Node},
-    {/* event */ 175, 4, XFA_Element::Node},
-    {/* whitespace */ 179, 2, XFA_Element::Node},
-    {/* defaultUi */ 181, 2, XFA_Element::Node},
-    {/* dataModel */ 183, 0, XFA_Element::Model},
-    {/* barcode */ 183, 20, XFA_Element::Node},
-    {/* timePattern */ 203, 1, XFA_Element::Node},
-    {/* batchOutput */ 204, 3, XFA_Element::Node},
-    {/* enforce */ 207, 2, XFA_Element::Node},
-    {/* currencySymbols */ 209, 0, XFA_Element::Node},
-    {/* addSilentPrint */ 209, 2, XFA_Element::Node},
-    {/* rename */ 211, 2, XFA_Element::Node},
-    {/* operation */ 213, 4, XFA_Element::Placeholder4},
-    {/* typefaces */ 217, 0, XFA_Element::Node},
-    {/* subjectDNs */ 217, 1, XFA_Element::Node},
-    {/* issuers */ 218, 3, XFA_Element::Node},
-    {/* signaturePseudoModel */ 221, 0, XFA_Element::Object},
-    {/* wsdlConnection */ 221, 1, XFA_Element::Node},
-    {/* debug */ 222, 2, XFA_Element::Node},
-    {/* delta */ 224, 3, XFA_Element::Unknown},
-    {/* eraNames */ 227, 0, XFA_Element::Node},
-    {/* modifyAnnots */ 227, 2, XFA_Element::Node},
-    {/* startNode */ 229, 2, XFA_Element::Node},
-    {/* button */ 231, 3, XFA_Element::Node},
-    {/* format */ 234, 2, XFA_Element::Node},
-    {/* border */ 236, 6, XFA_Element::Node},
-    {/* area */ 242, 10, XFA_Element::Placeholder2},
-    {/* hyphenation */ 252, 9, XFA_Element::Node},
-    {/* text */ 261, 5, XFA_Element::Placeholder3},
-    {/* time */ 266, 4, XFA_Element::Placeholder3},
-    {/* type */ 270, 2, XFA_Element::Node},
-    {/* overprint */ 272, 2, XFA_Element::Node},
-    {/* certificates */ 274, 5, XFA_Element::Node},
-    {/* encryptionMethods */ 279, 3, XFA_Element::Node},
-    {/* setProperty */ 282, 2, XFA_Element::Node},
-    {/* printerName */ 284, 2, XFA_Element::Node},
-    {/* startPage */ 286, 2, XFA_Element::Node},
-    {/* pageOffset */ 288, 2, XFA_Element::Node},
-    {/* dateTime */ 290, 4, XFA_Element::Node},
-    {/* comb */ 294, 3, XFA_Element::Node},
-    {/* pattern */ 297, 3, XFA_Element::Node},
-    {/* ifEmpty */ 300, 2, XFA_Element::Node},
-    {/* suppressBanner */ 302, 2, XFA_Element::Node},
-    {/* outputBin */ 304, 2, XFA_Element::Node},
-    {/* field */ 306, 36, XFA_Element::Placeholder2},
-    {/* agent */ 342, 3, XFA_Element::Node},
-    {/* outputXSL */ 345, 2, XFA_Element::Node},
-    {/* adjustData */ 347, 2, XFA_Element::Node},
-    {/* autoSave */ 349, 2, XFA_Element::Node},
-    {/* contentArea */ 351, 7, XFA_Element::Placeholder2},
-    {/* eventPseudoModel */ 358, 17, XFA_Element::Object},
-    {/* wsdlAddress */ 375, 2, XFA_Element::Placeholder4},
-    {/* solid */ 377, 2, XFA_Element::Node},
-    {/* dateTimeSymbols */ 379, 0, XFA_Element::Node},
-    {/* encryptionLevel */ 379, 2, XFA_Element::Node},
-    {/* edge */ 381, 6, XFA_Element::Node},
-    {/* stipple */ 387, 3, XFA_Element::Node},
-    {/* attributes */ 390, 2, XFA_Element::Node},
-    {/* versionControl */ 392, 4, XFA_Element::Node},
-    {/* meridiem */ 396, 0, XFA_Element::Node},
-    {/* exclGroup */ 396, 30, XFA_Element::Node},
-    {/* toolTip */ 426, 2, XFA_Element::Placeholder4},
-    {/* compress */ 428, 3, XFA_Element::Node},
-    {/* reason */ 431, 2, XFA_Element::Placeholder4},
-    {/* execute */ 433, 5, XFA_Element::Node},
-    {/* contentCopy */ 438, 2, XFA_Element::Node},
-    {/* dateTimeEdit */ 440, 3, XFA_Element::Node},
-    {/* config */ 443, 2, XFA_Element::Node},
-    {/* image */ 445, 8, XFA_Element::Node},
-    {/* #xHTML */ 453, 1, XFA_Element::Node},
-    {/* numberOfCopies */ 454, 2, XFA_Element::Node},
-    {/* behaviorOverride */ 456, 2, XFA_Element::Node},
-    {/* timeStamp */ 458, 4, XFA_Element::Node},
-    {/* month */ 462, 0, XFA_Element::Node},
-    {/* viewerPreferences */ 462, 2, XFA_Element::Node},
-    {/* scriptModel */ 464, 2, XFA_Element::Node},
-    {/* decimal */ 466, 6, XFA_Element::Placeholder3},
-    {/* subform */ 472, 31, XFA_Element::Placeholder2},
-    {/* select */ 503, 2, XFA_Element::Placeholder4},
-    {/* window */ 505, 2, XFA_Element::Node},
-    {/* localeSet */ 507, 2, XFA_Element::Node},
-    {/* handler */ 509, 4, XFA_Element::Placeholder4},
-    {/* hostPseudoModel */ 513, 11, XFA_Element::Object},
-    {/* presence */ 524, 2, XFA_Element::Node},
-    {/* record */ 526, 2, XFA_Element::Node},
-    {/* embed */ 528, 2, XFA_Element::Node},
-    {/* version */ 530, 2, XFA_Element::Node},
-    {/* command */ 532, 3, XFA_Element::Node},
-    {/* copies */ 535, 2, XFA_Element::Node},
-    {/* staple */ 537, 3, XFA_Element::Node},
-    {/* submitFormat */ 540, 3, XFA_Element::Node},
-    {/* boolean */ 543, 4, XFA_Element::Placeholder3},
-    {/* message */ 547, 4, XFA_Element::Node},
-    {/* output */ 551, 2, XFA_Element::Node},
-    {/* psMap */ 553, 0, XFA_Element::Node},
-    {/* excludeNS */ 553, 2, XFA_Element::Node},
-    {/* assist */ 555, 3, XFA_Element::Node},
-    {/* picture */ 558, 6, XFA_Element::Node},
-    {/* traversal */ 564, 2, XFA_Element::Node},
-    {/* silentPrint */ 566, 2, XFA_Element::Node},
-    {/* webClient */ 568, 3, XFA_Element::Node},
-    {/* layoutPseudoModel */ 571, 1, XFA_Element::Object},
-    {/* producer */ 572, 2, XFA_Element::Node},
-    {/* corner */ 574, 8, XFA_Element::Node},
-    {/* msgId */ 582, 2, XFA_Element::Node},
-    {/* color */ 584, 4, XFA_Element::Node},
-    {/* keep */ 588, 5, XFA_Element::Node},
-    {/* query */ 593, 3, XFA_Element::Node},
-    {/* insert */ 596, 2, XFA_Element::Placeholder4},
-    {/* imageEdit */ 598, 3, XFA_Element::Node},
-    {/* validate */ 601, 7, XFA_Element::Node},
-    {/* digestMethods */ 608, 3, XFA_Element::Node},
-    {/* numberPatterns */ 611, 0, XFA_Element::Node},
-    {/* pageSet */ 611, 4, XFA_Element::Placeholder2},
-    {/* integer */ 615, 4, XFA_Element::Placeholder3},
-    {/* soapAddress */ 619, 2, XFA_Element::Placeholder4},
-    {/* equate */ 621, 5, XFA_Element::Node},
-    {/* formFieldFilling */ 626, 2, XFA_Element::Node},
-    {/* pageRange */ 628, 2, XFA_Element::Node},
-    {/* update */ 630, 2, XFA_Element::Placeholder4},
-    {/* connectString */ 632, 2, XFA_Element::Placeholder4},
-    {/* mode */ 634, 4, XFA_Element::Node},
-    {/* layout */ 638, 2, XFA_Element::Node},
-    {/* #xml */ 640, 1, XFA_Element::Node},
-    {/* xsdConnection */ 641, 1, XFA_Element::Node},
-    {/* traverse */ 642, 4, XFA_Element::Node},
-    {/* encodings */ 646, 3, XFA_Element::Node},
-    {/* template */ 649, 2, XFA_Element::Model},
-    {/* acrobat */ 651, 2, XFA_Element::Node},
-    {/* validationMessaging */ 653, 2, XFA_Element::Node},
-    {/* signing */ 655, 3, XFA_Element::Node},
-    {/* dataWindow */ 658, 4, XFA_Element::Object},
-    {/* script */ 662, 10, XFA_Element::Node},
-    {/* addViewerPreferences */ 672, 2, XFA_Element::Node},
-    {/* alwaysEmbed */ 674, 4, XFA_Element::Node},
-    {/* passwordEdit */ 678, 4, XFA_Element::Node},
-    {/* numericEdit */ 682, 3, XFA_Element::Node},
-    {/* encryptionMethod */ 685, 2, XFA_Element::Node},
-    {/* change */ 687, 2, XFA_Element::Node},
-    {/* pageArea */ 689, 8, XFA_Element::Placeholder2},
-    {/* submitUrl */ 697, 3, XFA_Element::Node},
-    {/* oids */ 700, 3, XFA_Element::Node},
-    {/* signature */ 703, 2, XFA_Element::Node},
-    {/* ADBE_JSConsole */ 705, 2, XFA_Element::Node},
-    {/* caption */ 707, 5, XFA_Element::Node},
-    {/* relevant */ 712, 4, XFA_Element::Node},
-    {/* flipLabel */ 716, 2, XFA_Element::Node},
-    {/* exData */ 718, 8, XFA_Element::Placeholder3},
-    {/* dayNames */ 726, 1, XFA_Element::Node},
-    {/* soapAction */ 727, 2, XFA_Element::Placeholder4},
-    {/* defaultTypeface */ 729, 3, XFA_Element::Node},
-    {/* manifest */ 732, 4, XFA_Element::Node},
-    {/* overflow */ 736, 5, XFA_Element::Node},
-    {/* linear */ 741, 3, XFA_Element::Node},
-    {/* currencySymbol */ 744, 1, XFA_Element::Node},
-    {/* delete */ 745, 2, XFA_Element::Placeholder4},
-    {/* deltas */ 747, 0, XFA_Element::ListDuplicate},
-    {/* digestMethod */ 747, 2, XFA_Element::Node},
-    {/* instanceManager */ 749, 3, XFA_Element::Node},
-    {/* equateRange */ 752, 5, XFA_Element::Node},
-    {/* medium */ 757, 7, XFA_Element::Node},
-    {/* textEdit */ 764, 6, XFA_Element::Node},
-    {/* templateCache */ 770, 3, XFA_Element::Node},
-    {/* compressObjectStream */ 773, 2, XFA_Element::Node},
-    {/* dataValue */ 775, 5, XFA_Element::Node},
-    {/* accessibleContent */ 780, 2, XFA_Element::Node},
-    {/* nodeList */ 782, 0, XFA_Element::Placeholder1},
-    {/* includeXDPContent */ 782, 2, XFA_Element::Node},
-    {/* xmlConnection */ 784, 1, XFA_Element::Node},
-    {/* validateApprovalSignatures */ 785, 2, XFA_Element::Node},
-    {/* signData */ 787, 5, XFA_Element::Node},
-    {/* packets */ 792, 2, XFA_Element::Node},
-    {/* datePattern */ 794, 1, XFA_Element::Node},
-    {/* duplexOption */ 795, 2, XFA_Element::Node},
-    {/* base */ 797, 2, XFA_Element::Node},
-    {/* bind */ 799, 6, XFA_Element::Node},
-    {/* compression */ 805, 2, XFA_Element::Node},
-    {/* user */ 807, 2, XFA_Element::Placeholder4},
-    {/* rectangle */ 809, 3, XFA_Element::Node},
-    {/* effectiveOutputPolicy */ 812, 4, XFA_Element::Node},
-    {/* ADBE_JSDebugger */ 816, 2, XFA_Element::Node},
-    {/* acrobat7 */ 818, 2, XFA_Element::Node},
-    {/* interactive */ 820, 2, XFA_Element::Node},
-    {/* locale */ 822, 2, XFA_Element::Node},
-    {/* currentPage */ 824, 2, XFA_Element::Node},
-    {/* data */ 826, 2, XFA_Element::Node},
-    {/* date */ 828, 4, XFA_Element::Placeholder3},
-    {/* desc */ 832, 2, XFA_Element::Node},
-    {/* encrypt */ 834, 5, XFA_Element::Node},
-    {/* draw */ 839, 20, XFA_Element::Placeholder2},
-    {/* encryption */ 859, 2, XFA_Element::Node},
-    {/* meridiemNames */ 861, 0, XFA_Element::Node},
-    {/* messaging */ 861, 2, XFA_Element::Node},
-    {/* speak */ 863, 4, XFA_Element::Placeholder4},
-    {/* dataGroup */ 867, 0, XFA_Element::Node},
-    {/* common */ 867, 2, XFA_Element::Node},
-    {/* #text */ 869, 1, XFA_Element::Node},
-    {/* paginationOverride */ 870, 2, XFA_Element::Node},
-    {/* reasons */ 872, 3, XFA_Element::Node},
-    {/* signatureProperties */ 875, 2, XFA_Element::Node},
-    {/* threshold */ 877, 2, XFA_Element::Node},
-    {/* appearanceFilter */ 879, 4, XFA_Element::Node},
-    {/* fill */ 883, 3, XFA_Element::Node},
-    {/* font */ 886, 17, XFA_Element::Node},
-    {/* form */ 903, 1, XFA_Element::Model},
-    {/* mediumInfo */ 904, 2, XFA_Element::Node},
-    {/* certificate */ 906, 2, XFA_Element::Placeholder4},
-    {/* password */ 908, 2, XFA_Element::Placeholder4},
-    {/* runScripts */ 910, 2, XFA_Element::Node},
-    {/* trace */ 912, 2, XFA_Element::Node},
-    {/* float */ 914, 4, XFA_Element::Placeholder3},
-    {/* renderPolicy */ 918, 2, XFA_Element::Node},
-    {/* logPseudoModel */ 920, 0, XFA_Element::Object},
-    {/* destination */ 920, 2, XFA_Element::Node},
-    {/* value */ 922, 4, XFA_Element::Node},
-    {/* bookend */ 926, 4, XFA_Element::Node},
-    {/* exObject */ 930, 6, XFA_Element::Node},
-    {/* openAction */ 936, 2, XFA_Element::Node},
-    {/* neverEmbed */ 938, 4, XFA_Element::Node},
-    {/* bindItems */ 942, 3, XFA_Element::Node},
-    {/* calculate */ 945, 3, XFA_Element::Node},
-    {/* print */ 948, 2, XFA_Element::Node},
-    {/* extras */ 950, 3, XFA_Element::Node},
-    {/* proto */ 953, 0, XFA_Element::Node},
-    {/* dSigData */ 953, 0, XFA_Element::Node},
-    {/* creator */ 953, 2, XFA_Element::Node},
-    {/* connect */ 955, 7, XFA_Element::Node},
-    {/* permissions */ 962, 2, XFA_Element::Node},
-    {/* connectionSet */ 964, 0, XFA_Element::Model},
-    {/* submit */ 964, 7, XFA_Element::Node},
-    {/* range */ 971, 2, XFA_Element::Node},
-    {/* linearized */ 973, 2, XFA_Element::Node},
-    {/* packet */ 975, 1, XFA_Element::Node},
-    {/* rootElement */ 976, 2, XFA_Element::Placeholder4},
-    {/* plaintextMetadata */ 978, 4, XFA_Element::Node},
-    {/* numberSymbols */ 982, 0, XFA_Element::Node},
-    {/* printHighQuality */ 982, 2, XFA_Element::Node},
-    {/* driver */ 984, 2, XFA_Element::Node},
-    {/* incrementalLoad */ 986, 4, XFA_Element::Node},
-    {/* subjectDN */ 990, 1, XFA_Element::Node},
-    {/* compressLogicalStructure */ 991, 2, XFA_Element::Node},
-    {/* incrementalMerge */ 993, 2, XFA_Element::Node},
-    {/* radial */ 995, 3, XFA_Element::Node},
-    {/* variables */ 998, 2, XFA_Element::Placeholder2},
-    {/* timePatterns */ 1000, 0, XFA_Element::Node},
-    {/* effectiveInputPolicy */ 1000, 4, XFA_Element::Node},
-    {/* nameAttr */ 1004, 4, XFA_Element::Node},
-    {/* conformance */ 1008, 2, XFA_Element::Node},
-    {/* transform */ 1010, 3, XFA_Element::Node},
-    {/* lockDocument */ 1013, 4, XFA_Element::Node},
-    {/* breakAfter */ 1017, 7, XFA_Element::Node},
-    {/* line */ 1024, 4, XFA_Element::Node},
-    {/* list */ 1028, 1, XFA_Element::ListDuplicate},
-    {/* source */ 1029, 3, XFA_Element::Node},
-    {/* occur */ 1032, 5, XFA_Element::Node},
-    {/* pickTrayByPDFSize */ 1037, 2, XFA_Element::Node},
-    {/* monthNames */ 1039, 1, XFA_Element::Node},
-    {/* severity */ 1040, 4, XFA_Element::Node},
-    {/* groupParent */ 1044, 2, XFA_Element::Node},
-    {/* documentAssembly */ 1046, 2, XFA_Element::Node},
-    {/* numberSymbol */ 1048, 1, XFA_Element::Node},
-    {/* tagged */ 1049, 2, XFA_Element::Node},
-    {/* items */ 1051, 5, XFA_Element::Node},
-    {/* 312=Object */ 1056, 1, XFA_Element::Unknown},
-    {/* 313=ListDuplicate */ 1057, 1, XFA_Element::Object},
-    {/* 314=Placeholder1 */ 1058, 0, XFA_Element::ListDuplicate},
-    {/* 315=Tree */ 1058, 8, XFA_Element::Object},
-    {/* 316=Node  */ 1066, 6, XFA_Element::Tree},
-    {/* 317=Placeholder2 */ 1072, 0, XFA_Element::Node},
-    {/* 318=Placeholder3 */ 1072, 0, XFA_Element::Node},
-    {/* 319=Model */ 1072, 2, XFA_Element::Node},
-    {/* 320=Placeholder4 */ 1074, 2, XFA_Element::Node}};
-const size_t g_szScriptIndexCount = FX_ArraySize(g_XFAScriptIndex);
+const XFA_Element g_XFAScriptParents[] = {
+#undef ELEM____
+#undef ELEM_HIDDEN____
+#define ELEM____(a, b, c, d) XFA_Element::d,
+#define ELEM_HIDDEN____(a, b) XFA_Element::b,
+#include "xfa/fxfa/parser/elements.inc"
+#undef ELEM____
+#undef ELEM_HIDDEN____
+};
+
+struct XFA_SCRIPTINDEX {
+  uint16_t wAttributeStart;
+  uint16_t wAttributeCount;
+};
+
+const XFA_SCRIPTINDEX g_XFAScriptIndex[] = {
+    {/* ps */ 0, 2},
+    {/* to */ 2, 2},
+    {/* ui */ 4, 2},
+    {/* recordSet */ 6, 8},
+    {/* subsetBelow */ 14, 4},
+    {/* subformSet */ 18, 5},
+    {/* adobeExtensionLevel */ 23, 2},
+    {/* typeface */ 25, 1},
+    {/* break */ 26, 12},
+    {/* fontInfo */ 38, 2},
+    {/* numberPattern */ 40, 1},
+    {/* dynamicRender */ 41, 3},
+    {/* printScaling */ 44, 2},
+    {/* checkButton */ 46, 6},
+    {/* datePatterns */ 52, 0},
+    {/* sourceSet */ 52, 2},
+    {/* amd */ 54, 2},
+    {/* arc */ 56, 6},
+    {/* day */ 62, 0},
+    {/* era */ 62, 0},
+    {/* jog */ 62, 2},
+    {/* log */ 64, 2},
+    {/* map */ 66, 6},
+    {/* mdp */ 72, 4},
+    {/* breakBefore */ 76, 7},
+    {/* oid */ 83, 2},
+    {/* pcl */ 85, 3},
+    {/* pdf */ 88, 3},
+    {/* ref */ 91, 2},
+    {/* uri */ 93, 6},
+    {/* xdc */ 99, 4},
+    {/* xdp */ 103, 2},
+    {/* xfa */ 105, 3},
+    {/* xsl */ 108, 4},
+    {/* zpl */ 112, 3},
+    {/* cache */ 115, 2},
+    {/* margin */ 117, 6},
+    {/* keyUsage */ 123, 12},
+    {/* exclude */ 135, 2},
+    {/* choiceList */ 137, 5},
+    {/* level */ 142, 2},
+    {/* labelPrinter */ 144, 3},
+    {/* calendarSymbols */ 147, 1},
+    {/* para */ 148, 14},
+    {/* part */ 162, 2},
+    {/* pdfa */ 164, 2},
+    {/* filter */ 166, 3},
+    {/* present */ 169, 2},
+    {/* pagination */ 171, 2},
+    {/* encoding */ 173, 2},
+    {/* event */ 175, 4},
+    {/* whitespace */ 179, 2},
+    {/* defaultUi */ 181, 2},
+    {/* dataModel */ 183, 0},
+    {/* barcode */ 183, 20},
+    {/* timePattern */ 203, 1},
+    {/* batchOutput */ 204, 3},
+    {/* enforce */ 207, 2},
+    {/* currencySymbols */ 209, 0},
+    {/* addSilentPrint */ 209, 2},
+    {/* rename */ 211, 2},
+    {/* operation */ 213, 4},
+    {/* typefaces */ 217, 0},
+    {/* subjectDNs */ 217, 1},
+    {/* issuers */ 218, 3},
+    {/* signaturePseudoModel */ 221, 0},
+    {/* wsdlConnection */ 221, 1},
+    {/* debug */ 222, 2},
+    {/* delta */ 224, 3},
+    {/* eraNames */ 227, 0},
+    {/* modifyAnnots */ 227, 2},
+    {/* startNode */ 229, 2},
+    {/* button */ 231, 3},
+    {/* format */ 234, 2},
+    {/* border */ 236, 6},
+    {/* area */ 242, 10},
+    {/* hyphenation */ 252, 9},
+    {/* text */ 261, 5},
+    {/* time */ 266, 4},
+    {/* type */ 270, 2},
+    {/* overprint */ 272, 2},
+    {/* certificates */ 274, 5},
+    {/* encryptionMethods */ 279, 3},
+    {/* setProperty */ 282, 2},
+    {/* printerName */ 284, 2},
+    {/* startPage */ 286, 2},
+    {/* pageOffset */ 288, 2},
+    {/* dateTime */ 290, 4},
+    {/* comb */ 294, 3},
+    {/* pattern */ 297, 3},
+    {/* ifEmpty */ 300, 2},
+    {/* suppressBanner */ 302, 2},
+    {/* outputBin */ 304, 2},
+    {/* field */ 306, 36},
+    {/* agent */ 342, 3},
+    {/* outputXSL */ 345, 2},
+    {/* adjustData */ 347, 2},
+    {/* autoSave */ 349, 2},
+    {/* contentArea */ 351, 7},
+    {/* eventPseudoModel */ 358, 17},
+    {/* wsdlAddress */ 375, 2},
+    {/* solid */ 377, 2},
+    {/* dateTimeSymbols */ 379, 0},
+    {/* encryptionLevel */ 379, 2},
+    {/* edge */ 381, 6},
+    {/* stipple */ 387, 3},
+    {/* attributes */ 390, 2},
+    {/* versionControl */ 392, 4},
+    {/* meridiem */ 396, 0},
+    {/* exclGroup */ 396, 30},
+    {/* toolTip */ 426, 2},
+    {/* compress */ 428, 3},
+    {/* reason */ 431, 2},
+    {/* execute */ 433, 5},
+    {/* contentCopy */ 438, 2},
+    {/* dateTimeEdit */ 440, 3},
+    {/* config */ 443, 2},
+    {/* image */ 445, 8},
+    {/* #xHTML */ 453, 1},
+    {/* numberOfCopies */ 454, 2},
+    {/* behaviorOverride */ 456, 2},
+    {/* timeStamp */ 458, 4},
+    {/* month */ 462, 0},
+    {/* viewerPreferences */ 462, 2},
+    {/* scriptModel */ 464, 2},
+    {/* decimal */ 466, 6},
+    {/* subform */ 472, 31},
+    {/* select */ 503, 2},
+    {/* window */ 505, 2},
+    {/* localeSet */ 507, 2},
+    {/* handler */ 509, 4},
+    {/* hostPseudoModel */ 513, 11},
+    {/* presence */ 524, 2},
+    {/* record */ 526, 2},
+    {/* embed */ 528, 2},
+    {/* version */ 530, 2},
+    {/* command */ 532, 3},
+    {/* copies */ 535, 2},
+    {/* staple */ 537, 3},
+    {/* submitFormat */ 540, 3},
+    {/* boolean */ 543, 4},
+    {/* message */ 547, 4},
+    {/* output */ 551, 2},
+    {/* psMap */ 553, 0},
+    {/* excludeNS */ 553, 2},
+    {/* assist */ 555, 3},
+    {/* picture */ 558, 6},
+    {/* traversal */ 564, 2},
+    {/* silentPrint */ 566, 2},
+    {/* webClient */ 568, 3},
+    {/* layoutPseudoModel */ 571, 1},
+    {/* producer */ 572, 2},
+    {/* corner */ 574, 8},
+    {/* msgId */ 582, 2},
+    {/* color */ 584, 4},
+    {/* keep */ 588, 5},
+    {/* query */ 593, 3},
+    {/* insert */ 596, 2},
+    {/* imageEdit */ 598, 3},
+    {/* validate */ 601, 7},
+    {/* digestMethods */ 608, 3},
+    {/* numberPatterns */ 611, 0},
+    {/* pageSet */ 611, 4},
+    {/* integer */ 615, 4},
+    {/* soapAddress */ 619, 2},
+    {/* equate */ 621, 5},
+    {/* formFieldFilling */ 626, 2},
+    {/* pageRange */ 628, 2},
+    {/* update */ 630, 2},
+    {/* connectString */ 632, 2},
+    {/* mode */ 634, 4},
+    {/* layout */ 638, 2},
+    {/* #xml */ 640, 1},
+    {/* xsdConnection */ 641, 1},
+    {/* traverse */ 642, 4},
+    {/* encodings */ 646, 3},
+    {/* template */ 649, 2},
+    {/* acrobat */ 651, 2},
+    {/* validationMessaging */ 653, 2},
+    {/* signing */ 655, 3},
+    {/* dataWindow */ 658, 4},
+    {/* script */ 662, 10},
+    {/* addViewerPreferences */ 672, 2},
+    {/* alwaysEmbed */ 674, 4},
+    {/* passwordEdit */ 678, 4},
+    {/* numericEdit */ 682, 3},
+    {/* encryptionMethod */ 685, 2},
+    {/* change */ 687, 2},
+    {/* pageArea */ 689, 8},
+    {/* submitUrl */ 697, 3},
+    {/* oids */ 700, 3},
+    {/* signature */ 703, 2},
+    {/* ADBE_JSConsole */ 705, 2},
+    {/* caption */ 707, 5},
+    {/* relevant */ 712, 4},
+    {/* flipLabel */ 716, 2},
+    {/* exData */ 718, 8},
+    {/* dayNames */ 726, 1},
+    {/* soapAction */ 727, 2},
+    {/* defaultTypeface */ 729, 3},
+    {/* manifest */ 732, 4},
+    {/* overflow */ 736, 5},
+    {/* linear */ 741, 3},
+    {/* currencySymbol */ 744, 1},
+    {/* delete */ 745, 2},
+    {/* deltas */ 747, 0},
+    {/* digestMethod */ 747, 2},
+    {/* instanceManager */ 749, 3},
+    {/* equateRange */ 752, 5},
+    {/* medium */ 757, 7},
+    {/* textEdit */ 764, 6},
+    {/* templateCache */ 770, 3},
+    {/* compressObjectStream */ 773, 2},
+    {/* dataValue */ 775, 5},
+    {/* accessibleContent */ 780, 2},
+    {/* nodeList */ 782, 0},
+    {/* includeXDPContent */ 782, 2},
+    {/* xmlConnection */ 784, 1},
+    {/* validateApprovalSignatures */ 785, 2},
+    {/* signData */ 787, 5},
+    {/* packets */ 792, 2},
+    {/* datePattern */ 794, 1},
+    {/* duplexOption */ 795, 2},
+    {/* base */ 797, 2},
+    {/* bind */ 799, 6},
+    {/* compression */ 805, 2},
+    {/* user */ 807, 2},
+    {/* rectangle */ 809, 3},
+    {/* effectiveOutputPolicy */ 812, 4},
+    {/* ADBE_JSDebugger */ 816, 2},
+    {/* acrobat7 */ 818, 2},
+    {/* interactive */ 820, 2},
+    {/* locale */ 822, 2},
+    {/* currentPage */ 824, 2},
+    {/* data */ 826, 2},
+    {/* date */ 828, 4},
+    {/* desc */ 832, 2},
+    {/* encrypt */ 834, 5},
+    {/* draw */ 839, 20},
+    {/* encryption */ 859, 2},
+    {/* meridiemNames */ 861, 0},
+    {/* messaging */ 861, 2},
+    {/* speak */ 863, 4},
+    {/* dataGroup */ 867, 0},
+    {/* common */ 867, 2},
+    {/* #text */ 869, 1},
+    {/* paginationOverride */ 870, 2},
+    {/* reasons */ 872, 3},
+    {/* signatureProperties */ 875, 2},
+    {/* threshold */ 877, 2},
+    {/* appearanceFilter */ 879, 4},
+    {/* fill */ 883, 3},
+    {/* font */ 886, 17},
+    {/* form */ 903, 1},
+    {/* mediumInfo */ 904, 2},
+    {/* certificate */ 906, 2},
+    {/* password */ 908, 2},
+    {/* runScripts */ 910, 2},
+    {/* trace */ 912, 2},
+    {/* float */ 914, 4},
+    {/* renderPolicy */ 918, 2},
+    {/* logPseudoModel */ 920, 0},
+    {/* destination */ 920, 2},
+    {/* value */ 922, 4},
+    {/* bookend */ 926, 4},
+    {/* exObject */ 930, 6},
+    {/* openAction */ 936, 2},
+    {/* neverEmbed */ 938, 4},
+    {/* bindItems */ 942, 3},
+    {/* calculate */ 945, 3},
+    {/* print */ 948, 2},
+    {/* extras */ 950, 3},
+    {/* proto */ 953, 0},
+    {/* dSigData */ 953, 0},
+    {/* creator */ 953, 2},
+    {/* connect */ 955, 7},
+    {/* permissions */ 962, 2},
+    {/* connectionSet */ 964, 0},
+    {/* submit */ 964, 7},
+    {/* range */ 971, 2},
+    {/* linearized */ 973, 2},
+    {/* packet */ 975, 1},
+    {/* rootElement */ 976, 2},
+    {/* plaintextMetadata */ 978, 4},
+    {/* numberSymbols */ 982, 0},
+    {/* printHighQuality */ 982, 2},
+    {/* driver */ 984, 2},
+    {/* incrementalLoad */ 986, 4},
+    {/* subjectDN */ 990, 1},
+    {/* compressLogicalStructure */ 991, 2},
+    {/* incrementalMerge */ 993, 2},
+    {/* radial */ 995, 3},
+    {/* variables */ 998, 2},
+    {/* timePatterns */ 1000, 0},
+    {/* effectiveInputPolicy */ 1000, 4},
+    {/* nameAttr */ 1004, 4},
+    {/* conformance */ 1008, 2},
+    {/* transform */ 1010, 3},
+    {/* lockDocument */ 1013, 4},
+    {/* breakAfter */ 1017, 7},
+    {/* line */ 1024, 4},
+    {/* list */ 1028, 1},
+    {/* source */ 1029, 3},
+    {/* occur */ 1032, 5},
+    {/* pickTrayByPDFSize */ 1037, 2},
+    {/* monthNames */ 1039, 1},
+    {/* severity */ 1040, 4},
+    {/* groupParent */ 1044, 2},
+    {/* documentAssembly */ 1046, 2},
+    {/* numberSymbol */ 1048, 1},
+    {/* tagged */ 1049, 2},
+    {/* items */ 1051, 5},
+    {/* 312=Object */ 1056, 1},
+    {/* 313=ListDuplicate */ 1057, 1},
+    {/* 314=Placeholder1 */ 1058, 0},
+    {/* 315=Tree */ 1058, 8},
+    {/* 316=Node  */ 1066, 6},
+    {/* 317=Placeholder2 */ 1072, 0},
+    {/* 318=Placeholder3 */ 1072, 0},
+    {/* 319=Model */ 1072, 2},
+    {/* 320=Placeholder4 */ 1074, 2}};
 
 static_assert(static_cast<int>(XFA_Element::Object) == 312, "312");
 static_assert(static_cast<int>(XFA_Element::ListDuplicate) == 313, "313");
@@ -6515,3 +6529,25 @@
 #undef ATTR
 
 const size_t g_szSomAttributeCount = FX_ArraySize(g_SomAttributeData);
+
+const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
+    XFA_Element eElement,
+    WideStringView wsAttributeName) {
+  if (wsAttributeName.IsEmpty())
+    return nullptr;
+
+  uint32_t uHash = FX_HashCode_GetW(wsAttributeName, false);
+  while (eElement != XFA_Element::Unknown) {
+    const XFA_SCRIPTINDEX* scriptIndex =
+        &g_XFAScriptIndex[static_cast<size_t>(eElement)];
+    size_t iStart = scriptIndex->wAttributeStart;
+    size_t iEnd = iStart + scriptIndex->wAttributeCount;
+    for (size_t iter = iStart; iter < iEnd; ++iter) {
+      const XFA_SCRIPTATTRIBUTEINFO* pInfo = &g_SomAttributeData[iter];
+      if (uHash == pInfo->uHash)
+        return pInfo;
+    }
+    eElement = g_XFAScriptParents[static_cast<size_t>(eElement)];
+  }
+  return nullptr;
+}
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp
index eb830bf..747a1b4 100644
--- a/xfa/fxfa/parser/xfa_utils.cpp
+++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -531,25 +531,3 @@
   nRotation = nRotation < 0 ? nRotation + 360 : nRotation;
   return nRotation;
 }
-
-const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
-    XFA_Element eElement,
-    WideStringView wsAttributeName) {
-  if (wsAttributeName.IsEmpty())
-    return nullptr;
-
-  uint32_t uHash = FX_HashCode_GetW(wsAttributeName, false);
-  while (eElement != XFA_Element::Unknown) {
-    const XFA_SCRIPTHIERARCHY* scriptIndex =
-        &g_XFAScriptIndex[static_cast<size_t>(eElement)];
-    size_t iStart = scriptIndex->wAttributeStart;
-    size_t iEnd = iStart + scriptIndex->wAttributeCount;
-    for (size_t iter = iStart; iter < iEnd; ++iter) {
-      const XFA_SCRIPTATTRIBUTEINFO* pInfo = &g_SomAttributeData[iter];
-      if (uHash == pInfo->uHash)
-        return pInfo;
-    }
-    eElement = scriptIndex->wParentIndex;
-  }
-  return nullptr;
-}
diff --git a/xfa/fxfa/parser/xfa_utils.h b/xfa/fxfa/parser/xfa_utils.h
index dff7d3d..f602f19 100644
--- a/xfa/fxfa/parser/xfa_utils.h
+++ b/xfa/fxfa/parser/xfa_utils.h
@@ -31,8 +31,4 @@
     const RetainPtr<IFX_SeekableStream>& pStream,
     bool bSaveXML);
 
-const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
-    XFA_Element eElement,
-    WideStringView wsAttributeName);
-
 #endif  // XFA_FXFA_PARSER_XFA_UTILS_H_