XFA: generate element tables via C preprocessor

Note that here the enum and the tables differ, due to some
internal types that aren't present in tables, so use two
different kinds of macros.

We should reconcile these differences down the road.

Change-Id: Ibcac32e651b22def077309187cfa1de9fde02caa
Reviewed-on: https://pdfium-review.googlesource.com/c/46671
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index 267448e..345fdff 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -115,319 +115,13 @@
 
 enum class XFA_Element : int16_t {
   Unknown = -1,
-
-  Ps,
-  To,
-  Ui,
-  RecordSet,
-  SubsetBelow,
-  SubformSet,
-  AdobeExtensionLevel,
-  Typeface,
-  Break,
-  FontInfo,
-  NumberPattern,
-  DynamicRender,
-  PrintScaling,
-  CheckButton,
-  DatePatterns,
-  SourceSet,
-  Amd,
-  Arc,
-  Day,
-  Era,
-  Jog,
-  Log,
-  Map,
-  Mdp,
-  BreakBefore,
-  Oid,
-  Pcl,
-  Pdf,
-  Ref,
-  Uri,
-  Xdc,
-  Xdp,
-  Xfa,
-  Xsl,
-  Zpl,
-  Cache,
-  Margin,
-  KeyUsage,
-  Exclude,
-  ChoiceList,
-  Level,
-  LabelPrinter,
-  CalendarSymbols,
-  Para,
-  Part,
-  Pdfa,
-  Filter,
-  Present,
-  Pagination,
-  Encoding,
-  Event,
-  Whitespace,
-  DefaultUi,
-  DataModel,
-  Barcode,
-  TimePattern,
-  BatchOutput,
-  Enforce,
-  CurrencySymbols,
-  AddSilentPrint,
-  Rename,
-  Operation,
-  Typefaces,
-  SubjectDNs,
-  Issuers,
-  SignaturePseudoModel,
-  WsdlConnection,
-  Debug,
-  Delta,
-  EraNames,
-  ModifyAnnots,
-  StartNode,
-  Button,
-  Format,
-  Border,
-  Area,
-  Hyphenation,
-  Text,
-  Time,
-  Type,
-  Overprint,
-  Certificates,
-  EncryptionMethods,
-  SetProperty,
-  PrinterName,
-  StartPage,
-  PageOffset,
-  DateTime,
-  Comb,
-  Pattern,
-  IfEmpty,
-  SuppressBanner,
-  OutputBin,
-  Field,
-  Agent,
-  OutputXSL,
-  AdjustData,
-  AutoSave,
-  ContentArea,
-  EventPseudoModel,
-  WsdlAddress,
-  Solid,
-  DateTimeSymbols,
-  EncryptionLevel,
-  Edge,
-  Stipple,
-  Attributes,
-  VersionControl,
-  Meridiem,
-  ExclGroup,
-  ToolTip,
-  Compress,
-  Reason,
-  Execute,
-  ContentCopy,
-  DateTimeEdit,
-  Config,
-  Image,
-  SharpxHTML,
-  NumberOfCopies,
-  BehaviorOverride,
-  TimeStamp,
-  Month,
-  ViewerPreferences,
-  ScriptModel,
-  Decimal,
-  Subform,
-  Select,
-  Window,
-  LocaleSet,
-  Handler,
-  HostPseudoModel,
-  Presence,
-  Record,
-  Embed,
-  Version,
-  Command,
-  Copies,
-  Staple,
-  SubmitFormat,
-  Boolean,
-  Message,
-  Output,
-  PsMap,
-  ExcludeNS,
-  Assist,
-  Picture,
-  Traversal,
-  SilentPrint,
-  WebClient,
-  LayoutPseudoModel,
-  Producer,
-  Corner,
-  MsgId,
-  Color,
-  Keep,
-  Query,
-  Insert,
-  ImageEdit,
-  Validate,
-  DigestMethods,
-  NumberPatterns,
-  PageSet,
-  Integer,
-  SoapAddress,
-  Equate,
-  FormFieldFilling,
-  PageRange,
-  Update,
-  ConnectString,
-  Mode,
-  Layout,
-  Sharpxml,
-  XsdConnection,
-  Traverse,
-  Encodings,
-  Template,
-  Acrobat,
-  ValidationMessaging,
-  Signing,
-  DataWindow,
-  Script,
-  AddViewerPreferences,
-  AlwaysEmbed,
-  PasswordEdit,
-  NumericEdit,
-  EncryptionMethod,
-  Change,
-  PageArea,
-  SubmitUrl,
-  Oids,
-  Signature,
-  ADBE_JSConsole,
-  Caption,
-  Relevant,
-  FlipLabel,
-  ExData,
-  DayNames,
-  SoapAction,
-  DefaultTypeface,
-  Manifest,
-  Overflow,
-  Linear,
-  CurrencySymbol,
-  Delete,
-  Deltas,
-  DigestMethod,
-  InstanceManager,
-  EquateRange,
-  Medium,
-  TextEdit,
-  TemplateCache,
-  CompressObjectStream,
-  DataValue,
-  AccessibleContent,
-  TreeList,
-  IncludeXDPContent,
-  XmlConnection,
-  ValidateApprovalSignatures,
-  SignData,
-  Packets,
-  DatePattern,
-  DuplexOption,
-  Base,
-  Bind,
-  Compression,
-  User,
-  Rectangle,
-  EffectiveOutputPolicy,
-  ADBE_JSDebugger,
-  Acrobat7,
-  Interactive,
-  Locale,
-  CurrentPage,
-  Data,
-  Date,
-  Desc,
-  Encrypt,
-  Draw,
-  Encryption,
-  MeridiemNames,
-  Messaging,
-  Speak,
-  DataGroup,
-  Common,
-  Sharptext,
-  PaginationOverride,
-  Reasons,
-  SignatureProperties,
-  Threshold,
-  AppearanceFilter,
-  Fill,
-  Font,
-  Form,
-  MediumInfo,
-  Certificate,
-  Password,
-  RunScripts,
-  Trace,
-  Float,
-  RenderPolicy,
-  LogPseudoModel,
-  Destination,
-  Value,
-  Bookend,
-  ExObject,
-  OpenAction,
-  NeverEmbed,
-  BindItems,
-  Calculate,
-  Print,
-  Extras,
-  Proto,
-  DSigData,
-  Creator,
-  Connect,
-  Permissions,
-  ConnectionSet,
-  Submit,
-  Range,
-  Linearized,
-  Packet,
-  RootElement,
-  PlaintextMetadata,
-  NumberSymbols,
-  PrintHighQuality,
-  Driver,
-  IncrementalLoad,
-  SubjectDN,
-  CompressLogicalStructure,
-  IncrementalMerge,
-  Radial,
-  Variables,
-  TimePatterns,
-  EffectiveInputPolicy,
-  NameAttr,
-  Conformance,
-  Transform,
-  LockDocument,
-  BreakAfter,
-  Line,
-  List,
-  Source,
-  Occur,
-  PickTrayByPDFSize,
-  MonthNames,
-  Severity,
-  GroupParent,
-  DocumentAssembly,
-  NumberSymbol,
-  Tagged,
-  Items
+#undef ELEM____
+#undef ELEM_HIDDEN____
+#define ELEM____(a, b, c) c,
+#define ELEM_HIDDEN____(a) a,
+#include "xfa/fxfa/parser/elements.inc"
+#undef ELEM____
+#undef ELEM_HIDDEN____
 };
 
 enum class XFA_AttributeType : uint8_t {
diff --git a/xfa/fxfa/fxfa_basic_unittest.cpp b/xfa/fxfa/fxfa_basic_unittest.cpp
index 7462b04..95284c0 100644
--- a/xfa/fxfa/fxfa_basic_unittest.cpp
+++ b/xfa/fxfa/fxfa_basic_unittest.cpp
@@ -40,3 +40,26 @@
 #include "xfa/fxfa/parser/attribute_values.inc"
 #undef VALUE____
 }
+
+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)
+#include "xfa/fxfa/parser/elements.inc"
+#undef ELEM____
+#undef ELEM_HIDDEN____
+}
+
+TEST(FXFABasic, ElementHashOrder) {
+  uint32_t so_far = 0;
+#undef ELEM____
+#undef ELEM_HIDDEN____
+#define ELEM____(a, b, c) \
+  EXPECT_LT(so_far, a);   \
+  so_far = a;
+#define ELEM_HIDDEN____(a)
+#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 08242b6..97c7d28 100644
--- a/xfa/fxfa/parser/cxfa_node_statics.cpp
+++ b/xfa/fxfa/parser/cxfa_node_statics.cpp
@@ -320,330 +320,16 @@
   XFA_Element element;
 };
 
-#undef ELEM
-#define ELEM(a, b, c) a, c
-
 const ElementNameInfo ElementNameToEnum[] = {
-    {ELEM(0x23ee3, "ps", XFA_Element::Ps)},
-    {ELEM(0x25363, "to", XFA_Element::To)},
-    {ELEM(0x2587e, "ui", XFA_Element::Ui)},
-    {ELEM(0x1c648b, "recordSet", XFA_Element::RecordSet)},
-    {ELEM(0x171428f, "subsetBelow", XFA_Element::SubsetBelow)},
-    {ELEM(0x1a0776a, "subformSet", XFA_Element::SubformSet)},
-    {ELEM(0x2340d70, "adobeExtensionLevel", XFA_Element::AdobeExtensionLevel)},
-    {ELEM(0x2c1c7f1, "typeface", XFA_Element::Typeface)},
-    {ELEM(0x5518c25, "break", XFA_Element::Break)},
-    {ELEM(0x5fff523, "fontInfo", XFA_Element::FontInfo)},
-    {ELEM(0x653a227, "numberPattern", XFA_Element::NumberPattern)},
-    {ELEM(0x65b4a05, "dynamicRender", XFA_Element::DynamicRender)},
-    {ELEM(0x7e4362e, "printScaling", XFA_Element::PrintScaling)},
-    {ELEM(0x7fe6d3a, "checkButton", XFA_Element::CheckButton)},
-    {ELEM(0x80cf58f, "datePatterns", XFA_Element::DatePatterns)},
-    {ELEM(0x811929d, "sourceSet", XFA_Element::SourceSet)},
-    {ELEM(0x9f9d612, "amd", XFA_Element::Amd)},
-    {ELEM(0x9f9efb6, "arc", XFA_Element::Arc)},
-    {ELEM(0xa48835e, "day", XFA_Element::Day)},
-    {ELEM(0xa6328b8, "era", XFA_Element::Era)},
-    {ELEM(0xae6a0a0, "jog", XFA_Element::Jog)},
-    {ELEM(0xb1b3d22, "log", XFA_Element::Log)},
-    {ELEM(0xb35439e, "map", XFA_Element::Map)},
-    {ELEM(0xb355301, "mdp", XFA_Element::Mdp)},
-    {ELEM(0xb420438, "breakBefore", XFA_Element::BreakBefore)},
-    {ELEM(0xb6a091c, "oid", XFA_Element::Oid)},
-    {ELEM(0xb84389f, "pcl", XFA_Element::Pcl)},
-    {ELEM(0xb843dba, "pdf", XFA_Element::Pdf)},
-    {ELEM(0xbb8df5d, "ref", XFA_Element::Ref)},
-    {ELEM(0xc080cd0, "uri", XFA_Element::Uri)},
-    {ELEM(0xc56afbf, "xdc", XFA_Element::Xdc)},
-    {ELEM(0xc56afcc, "xdp", XFA_Element::Xdp)},
-    {ELEM(0xc56b9ff, "xfa", XFA_Element::Xfa)},
-    {ELEM(0xc56fcb7, "xsl", XFA_Element::Xsl)},
-    {ELEM(0xc8b89d6, "zpl", XFA_Element::Zpl)},
-    {ELEM(0xc9bae94, "cache", XFA_Element::Cache)},
-    {ELEM(0xcb016be, "margin", XFA_Element::Margin)},
-    {ELEM(0xe1378fe, "keyUsage", XFA_Element::KeyUsage)},
-    {ELEM(0xfe3596a, "exclude", XFA_Element::Exclude)},
-    {ELEM(0x10395ac7, "choiceList", XFA_Element::ChoiceList)},
-    {ELEM(0x1059ec18, "level", XFA_Element::Level)},
-    {ELEM(0x10874804, "labelPrinter", XFA_Element::LabelPrinter)},
-    {ELEM(0x10c40e03, "calendarSymbols", XFA_Element::CalendarSymbols)},
-    {ELEM(0x10f1ea24, "para", XFA_Element::Para)},
-    {ELEM(0x10f1ea37, "part", XFA_Element::Part)},
-    {ELEM(0x1140975b, "pdfa", XFA_Element::Pdfa)},
-    {ELEM(0x1154efe6, "filter", XFA_Element::Filter)},
-    {ELEM(0x13f41de1, "present", XFA_Element::Present)},
-    {ELEM(0x1827e6ea, "pagination", XFA_Element::Pagination)},
-    {ELEM(0x18463707, "encoding", XFA_Element::Encoding)},
-    {ELEM(0x185e41e2, "event", XFA_Element::Event)},
-    {ELEM(0x1adb142d, "whitespace", XFA_Element::Whitespace)},
-    {ELEM(0x1f3f64c3, "defaultUi", XFA_Element::DefaultUi)},
-    {ELEM(0x204e87cb, "dataModel", XFA_Element::DataModel)},
-    {ELEM(0x2057b350, "barcode", XFA_Element::Barcode)},
-    {ELEM(0x20596bad, "timePattern", XFA_Element::TimePattern)},
-    {ELEM(0x210b74d3, "batchOutput", XFA_Element::BatchOutput)},
-    {ELEM(0x212ff0e2, "enforce", XFA_Element::Enforce)},
-    {ELEM(0x21d351b4, "currencySymbols", XFA_Element::CurrencySymbols)},
-    {ELEM(0x21db83c5, "addSilentPrint", XFA_Element::AddSilentPrint)},
-    {ELEM(0x22266258, "rename", XFA_Element::Rename)},
-    {ELEM(0x226ca8f1, "operation", XFA_Element::Operation)},
-    {ELEM(0x23e27b84, "typefaces", XFA_Element::Typefaces)},
-    {ELEM(0x23f4aa75, "subjectDNs", XFA_Element::SubjectDNs)},
-    {ELEM(0x240d5e8e, "issuers", XFA_Element::Issuers)},
-    {ELEM(0x24a52f8a, "wsdlConnection", XFA_Element::WsdlConnection)},
-    {ELEM(0x254ebd07, "debug", XFA_Element::Debug)},
-    {ELEM(0x2655c66a, "delta", XFA_Element::Delta)},
-    {ELEM(0x26c0daec, "eraNames", XFA_Element::EraNames)},
-    {ELEM(0x273ab03b, "modifyAnnots", XFA_Element::ModifyAnnots)},
-    {ELEM(0x27875bb4, "startNode", XFA_Element::StartNode)},
-    {ELEM(0x285d0dbc, "button", XFA_Element::Button)},
-    {ELEM(0x28dee6e9, "format", XFA_Element::Format)},
-    {ELEM(0x2a23349e, "border", XFA_Element::Border)},
-    {ELEM(0x2ae67f19, "area", XFA_Element::Area)},
-    {ELEM(0x2c3c4c67, "hyphenation", XFA_Element::Hyphenation)},
-    {ELEM(0x2d08af85, "text", XFA_Element::Text)},
-    {ELEM(0x2d71b00f, "time", XFA_Element::Time)},
-    {ELEM(0x2f16a382, "type", XFA_Element::Type)},
-    {ELEM(0x2fe057e9, "overprint", XFA_Element::Overprint)},
-    {ELEM(0x302aee16, "certificates", XFA_Element::Certificates)},
-    {ELEM(0x30b227df, "encryptionMethods", XFA_Element::EncryptionMethods)},
-    {ELEM(0x32b900d1, "setProperty", XFA_Element::SetProperty)},
-    {ELEM(0x337d9e45, "printerName", XFA_Element::PrinterName)},
-    {ELEM(0x33edda4b, "startPage", XFA_Element::StartPage)},
-    {ELEM(0x381943e4, "pageOffset", XFA_Element::PageOffset)},
-    {ELEM(0x382106cd, "dateTime", XFA_Element::DateTime)},
-    {ELEM(0x386e7421, "comb", XFA_Element::Comb)},
-    {ELEM(0x390acd9e, "pattern", XFA_Element::Pattern)},
-    {ELEM(0x3942163e, "ifEmpty", XFA_Element::IfEmpty)},
-    {ELEM(0x39944a7b, "suppressBanner", XFA_Element::SuppressBanner)},
-    {ELEM(0x3b3c3dca, "outputBin", XFA_Element::OutputBin)},
-    {ELEM(0x3b8a4024, "field", XFA_Element::Field)},
-    {ELEM(0x3c15352f, "agent", XFA_Element::Agent)},
-    {ELEM(0x3d7e8668, "outputXSL", XFA_Element::OutputXSL)},
-    {ELEM(0x3e1c91c5, "adjustData", XFA_Element::AdjustData)},
-    {ELEM(0x3e7a9408, "autoSave", XFA_Element::AutoSave)},
-    {ELEM(0x3ecead94, "contentArea", XFA_Element::ContentArea)},
-    {ELEM(0x3fadaec0, "wsdlAddress", XFA_Element::WsdlAddress)},
-    {ELEM(0x40623b5b, "solid", XFA_Element::Solid)},
-    {ELEM(0x41f0bd76, "dateTimeSymbols", XFA_Element::DateTimeSymbols)},
-    {ELEM(0x444e7523, "encryptionLevel", XFA_Element::EncryptionLevel)},
-    {ELEM(0x4523af55, "edge", XFA_Element::Edge)},
-    {ELEM(0x45d5e3c1, "stipple", XFA_Element::Stipple)},
-    {ELEM(0x475e4e87, "attributes", XFA_Element::Attributes)},
-    {ELEM(0x487a8c87, "versionControl", XFA_Element::VersionControl)},
-    {ELEM(0x48e5248c, "meridiem", XFA_Element::Meridiem)},
-    {ELEM(0x48f36719, "exclGroup", XFA_Element::ExclGroup)},
-    {ELEM(0x4977356b, "toolTip", XFA_Element::ToolTip)},
-    {ELEM(0x499afecc, "compress", XFA_Element::Compress)},
-    {ELEM(0x4a0c4948, "reason", XFA_Element::Reason)},
-    {ELEM(0x4bdcce13, "execute", XFA_Element::Execute)},
-    {ELEM(0x4c56b216, "contentCopy", XFA_Element::ContentCopy)},
-    {ELEM(0x4cc176d3, "dateTimeEdit", XFA_Element::DateTimeEdit)},
-    {ELEM(0x4e1e39b6, "config", XFA_Element::Config)},
-    {ELEM(0x4e2d6083, "image", XFA_Element::Image)},
-    {ELEM(0x4e814150, "#xHTML", XFA_Element::SharpxHTML)},
-    {ELEM(0x4f2388c1, "numberOfCopies", XFA_Element::NumberOfCopies)},
-    {ELEM(0x4f512e30, "behaviorOverride", XFA_Element::BehaviorOverride)},
-    {ELEM(0x4fdc3454, "timeStamp", XFA_Element::TimeStamp)},
-    {ELEM(0x51d90546, "month", XFA_Element::Month)},
-    {ELEM(0x523437e4, "viewerPreferences", XFA_Element::ViewerPreferences)},
-    {ELEM(0x53abc1c6, "scriptModel", XFA_Element::ScriptModel)},
-    {ELEM(0x54034c2f, "decimal", XFA_Element::Decimal)},
-    {ELEM(0x54202c9e, "subform", XFA_Element::Subform)},
-    {ELEM(0x542c7300, "select", XFA_Element::Select)},
-    {ELEM(0x5436d198, "window", XFA_Element::Window)},
-    {ELEM(0x5473b6dc, "localeSet", XFA_Element::LocaleSet)},
-    {ELEM(0x56ae179e, "handler", XFA_Element::Handler)},
-    {ELEM(0x570ce835, "presence", XFA_Element::Presence)},
-    {ELEM(0x5779d65f, "record", XFA_Element::Record)},
-    {ELEM(0x59c8f27d, "embed", XFA_Element::Embed)},
-    {ELEM(0x5a50e9e6, "version", XFA_Element::Version)},
-    {ELEM(0x5b8383df, "command", XFA_Element::Command)},
-    {ELEM(0x5c43c6c3, "copies", XFA_Element::Copies)},
-    {ELEM(0x5e0c2c49, "staple", XFA_Element::Staple)},
-    {ELEM(0x5e5083dd, "submitFormat", XFA_Element::SubmitFormat)},
-    {ELEM(0x5e8c5d20, "boolean", XFA_Element::Boolean)},
-    {ELEM(0x60490a85, "message", XFA_Element::Message)},
-    {ELEM(0x60d4c8b1, "output", XFA_Element::Output)},
-    {ELEM(0x61810081, "psMap", XFA_Element::PsMap)},
-    {ELEM(0x62bd904b, "excludeNS", XFA_Element::ExcludeNS)},
-    {ELEM(0x669d4f77, "assist", XFA_Element::Assist)},
-    {ELEM(0x67334a1c, "picture", XFA_Element::Picture)},
-    {ELEM(0x67fe7334, "traversal", XFA_Element::Traversal)},
-    {ELEM(0x6894589c, "silentPrint", XFA_Element::SilentPrint)},
-    {ELEM(0x68a16bbd, "webClient", XFA_Element::WebClient)},
-    {ELEM(0x6a4bc084, "producer", XFA_Element::Producer)},
-    {ELEM(0x6a9e04c9, "corner", XFA_Element::Corner)},
-    {ELEM(0x6ccd7274, "msgId", XFA_Element::MsgId)},
-    {ELEM(0x6e67921f, "color", XFA_Element::Color)},
-    {ELEM(0x6ec217a5, "keep", XFA_Element::Keep)},
-    {ELEM(0x6eef1116, "query", XFA_Element::Query)},
-    {ELEM(0x7033bfd5, "insert", XFA_Element::Insert)},
-    {ELEM(0x704af389, "imageEdit", XFA_Element::ImageEdit)},
-    {ELEM(0x7233018a, "validate", XFA_Element::Validate)},
-    {ELEM(0x72ba47b4, "digestMethods", XFA_Element::DigestMethods)},
-    {ELEM(0x72f2aa7a, "numberPatterns", XFA_Element::NumberPatterns)},
-    {ELEM(0x74caed29, "pageSet", XFA_Element::PageSet)},
-    {ELEM(0x7568e6ae, "integer", XFA_Element::Integer)},
-    {ELEM(0x76182db9, "soapAddress", XFA_Element::SoapAddress)},
-    {ELEM(0x773146c5, "equate", XFA_Element::Equate)},
-    {ELEM(0x77d449dd, "formFieldFilling", XFA_Element::FormFieldFilling)},
-    {ELEM(0x7889d68a, "pageRange", XFA_Element::PageRange)},
-    {ELEM(0x7baca2e3, "update", XFA_Element::Update)},
-    {ELEM(0x7ce89001, "connectString", XFA_Element::ConnectString)},
-    {ELEM(0x7d9fd7c5, "mode", XFA_Element::Mode)},
-    {ELEM(0x7e7e845e, "layout", XFA_Element::Layout)},
-    {ELEM(0x7e845c34, "#xml", XFA_Element::Sharpxml)},
-    {ELEM(0x7fb341df, "xsdConnection", XFA_Element::XsdConnection)},
-    {ELEM(0x7ffb51cc, "traverse", XFA_Element::Traverse)},
-    {ELEM(0x80203b5a, "encodings", XFA_Element::Encodings)},
-    {ELEM(0x803550fc, "template", XFA_Element::Template)},
-    {ELEM(0x803d5bbc, "acrobat", XFA_Element::Acrobat)},
-    {ELEM(0x821d6569, "validationMessaging", XFA_Element::ValidationMessaging)},
-    {ELEM(0x830e688f, "signing", XFA_Element::Signing)},
-    {ELEM(0x83dab9f5, "script", XFA_Element::Script)},
-    {ELEM(0x8411ebcd,
-          "addViewerPreferences",
-          XFA_Element::AddViewerPreferences)},
-    {ELEM(0x8777642e, "alwaysEmbed", XFA_Element::AlwaysEmbed)},
-    {ELEM(0x877a6b39, "passwordEdit", XFA_Element::PasswordEdit)},
-    {ELEM(0x87e84c99, "numericEdit", XFA_Element::NumericEdit)},
-    {ELEM(0x8852cdec, "encryptionMethod", XFA_Element::EncryptionMethod)},
-    {ELEM(0x891f4606, "change", XFA_Element::Change)},
-    {ELEM(0x89939f36, "pageArea", XFA_Element::PageArea)},
-    {ELEM(0x8a9d6247, "submitUrl", XFA_Element::SubmitUrl)},
-    {ELEM(0x8ad8b90f, "oids", XFA_Element::Oids)},
-    {ELEM(0x8b036f32, "signature", XFA_Element::Signature)},
-    {ELEM(0x8b128efb, "ADBE_JSConsole", XFA_Element::ADBE_JSConsole)},
-    {ELEM(0x8bcfe96e, "caption", XFA_Element::Caption)},
-    {ELEM(0x8e1c2921, "relevant", XFA_Element::Relevant)},
-    {ELEM(0x8e3f0a4b, "flipLabel", XFA_Element::FlipLabel)},
-    {ELEM(0x900280b7, "exData", XFA_Element::ExData)},
-    {ELEM(0x91e80352, "dayNames", XFA_Element::DayNames)},
-    {ELEM(0x93113b11, "soapAction", XFA_Element::SoapAction)},
-    {ELEM(0x938b09f6, "defaultTypeface", XFA_Element::DefaultTypeface)},
-    {ELEM(0x95b37897, "manifest", XFA_Element::Manifest)},
-    {ELEM(0x97b76b54, "overflow", XFA_Element::Overflow)},
-    {ELEM(0x9a57861b, "linear", XFA_Element::Linear)},
-    {ELEM(0x9ad5a821, "currencySymbol", XFA_Element::CurrencySymbol)},
-    {ELEM(0x9c6471b3, "delete", XFA_Element::Delete)},
-    {ELEM(0x9deea61d, "deltas", XFA_Element::Deltas)},
-    {ELEM(0x9e67de21, "digestMethod", XFA_Element::DigestMethod)},
-    {ELEM(0x9f3e9510, "instanceManager", XFA_Element::InstanceManager)},
-    {ELEM(0xa0799892, "equateRange", XFA_Element::EquateRange)},
-    {ELEM(0xa084a381, "medium", XFA_Element::Medium)},
-    {ELEM(0xa1211b8b, "textEdit", XFA_Element::TextEdit)},
-    {ELEM(0xa17008f0, "templateCache", XFA_Element::TemplateCache)},
-    {ELEM(0xa4f7b88f,
-          "compressObjectStream",
-          XFA_Element::CompressObjectStream)},
-    {ELEM(0xa65f5d17, "dataValue", XFA_Element::DataValue)},
-    {ELEM(0xa6caaa89, "accessibleContent", XFA_Element::AccessibleContent)},
-    {ELEM(0xa94cc00b, "includeXDPContent", XFA_Element::IncludeXDPContent)},
-    {ELEM(0xa9b081a1, "xmlConnection", XFA_Element::XmlConnection)},
-    {ELEM(0xab2a3b74,
-          "validateApprovalSignatures",
-          XFA_Element::ValidateApprovalSignatures)},
-    {ELEM(0xab8c5a2b, "signData", XFA_Element::SignData)},
-    {ELEM(0xabaa2ceb, "packets", XFA_Element::Packets)},
-    {ELEM(0xadba359c, "datePattern", XFA_Element::DatePattern)},
-    {ELEM(0xae222b2b, "duplexOption", XFA_Element::DuplexOption)},
-    {ELEM(0xb012effb, "base", XFA_Element::Base)},
-    {ELEM(0xb0e5485d, "bind", XFA_Element::Bind)},
-    {ELEM(0xb45d61b2, "compression", XFA_Element::Compression)},
-    {ELEM(0xb563f0ff, "user", XFA_Element::User)},
-    {ELEM(0xb5848ad5, "rectangle", XFA_Element::Rectangle)},
-    {ELEM(0xb6dacb72,
-          "effectiveOutputPolicy",
-          XFA_Element::EffectiveOutputPolicy)},
-    {ELEM(0xb7d7654d, "ADBE_JSDebugger", XFA_Element::ADBE_JSDebugger)},
-    {ELEM(0xbab37f73, "acrobat7", XFA_Element::Acrobat7)},
-    {ELEM(0xbc70081e, "interactive", XFA_Element::Interactive)},
-    {ELEM(0xbc8fa350, "locale", XFA_Element::Locale)},
-    {ELEM(0xbcd44940, "currentPage", XFA_Element::CurrentPage)},
-    {ELEM(0xbde9abda, "data", XFA_Element::Data)},
-    {ELEM(0xbde9abde, "date", XFA_Element::Date)},
-    {ELEM(0xbe52dfbf, "desc", XFA_Element::Desc)},
-    {ELEM(0xbf4b6405, "encrypt", XFA_Element::Encrypt)},
-    {ELEM(0xbfa87cce, "draw", XFA_Element::Draw)},
-    {ELEM(0xc181ff4b, "encryption", XFA_Element::Encryption)},
-    {ELEM(0xc1970f40, "meridiemNames", XFA_Element::MeridiemNames)},
-    {ELEM(0xc5ad9f5e, "messaging", XFA_Element::Messaging)},
-    {ELEM(0xc69549f4, "speak", XFA_Element::Speak)},
-    {ELEM(0xc7743dc7, "dataGroup", XFA_Element::DataGroup)},
-    {ELEM(0xc7eb20e9, "common", XFA_Element::Common)},
-    {ELEM(0xc85d4528, "#text", XFA_Element::Sharptext)},
-    {ELEM(0xc861556a, "paginationOverride", XFA_Element::PaginationOverride)},
-    {ELEM(0xc903dabb, "reasons", XFA_Element::Reasons)},
-    {ELEM(0xc9a8127f, "signatureProperties", XFA_Element::SignatureProperties)},
-    {ELEM(0xca010c2d, "threshold", XFA_Element::Threshold)},
-    {ELEM(0xcb4c5e96, "appearanceFilter", XFA_Element::AppearanceFilter)},
-    {ELEM(0xcc92aba7, "fill", XFA_Element::Fill)},
-    {ELEM(0xcd308b77, "font", XFA_Element::Font)},
-    {ELEM(0xcd309ff4, "form", XFA_Element::Form)},
-    {ELEM(0xcebcca2d, "mediumInfo", XFA_Element::MediumInfo)},
-    {ELEM(0xcfe0d643, "certificate", XFA_Element::Certificate)},
-    {ELEM(0xd012c033, "password", XFA_Element::Password)},
-    {ELEM(0xd01604bd, "runScripts", XFA_Element::RunScripts)},
-    {ELEM(0xd1227e6f, "trace", XFA_Element::Trace)},
-    {ELEM(0xd1532876, "float", XFA_Element::Float)},
-    {ELEM(0xd17a6c30, "renderPolicy", XFA_Element::RenderPolicy)},
-    {ELEM(0xd58aa962, "destination", XFA_Element::Destination)},
-    {ELEM(0xd6e27f1d, "value", XFA_Element::Value)},
-    {ELEM(0xd7a14462, "bookend", XFA_Element::Bookend)},
-    {ELEM(0xd8c31254, "exObject", XFA_Element::ExObject)},
-    {ELEM(0xda6a8590, "openAction", XFA_Element::OpenAction)},
-    {ELEM(0xdab4fb7d, "neverEmbed", XFA_Element::NeverEmbed)},
-    {ELEM(0xdb98475f, "bindItems", XFA_Element::BindItems)},
-    {ELEM(0xdbfbe02e, "calculate", XFA_Element::Calculate)},
-    {ELEM(0xdd7676ed, "print", XFA_Element::Print)},
-    {ELEM(0xdde273d7, "extras", XFA_Element::Extras)},
-    {ELEM(0xde146b34, "proto", XFA_Element::Proto)},
-    {ELEM(0xdf059321, "dSigData", XFA_Element::DSigData)},
-    {ELEM(0xdfccf030, "creator", XFA_Element::Creator)},
-    {ELEM(0xdff78c6a, "connect", XFA_Element::Connect)},
-    {ELEM(0xe11a2cbc, "permissions", XFA_Element::Permissions)},
-    {ELEM(0xe14c801c, "connectionSet", XFA_Element::ConnectionSet)},
-    {ELEM(0xe1c83a14, "submit", XFA_Element::Submit)},
-    {ELEM(0xe29821cd, "range", XFA_Element::Range)},
-    {ELEM(0xe38d83c7, "linearized", XFA_Element::Linearized)},
-    {ELEM(0xe3aa2578, "packet", XFA_Element::Packet)},
-    {ELEM(0xe3aa860e, "rootElement", XFA_Element::RootElement)},
-    {ELEM(0xe3e553fa, "plaintextMetadata", XFA_Element::PlaintextMetadata)},
-    {ELEM(0xe3e6e4f2, "numberSymbols", XFA_Element::NumberSymbols)},
-    {ELEM(0xe3f067f6, "printHighQuality", XFA_Element::PrintHighQuality)},
-    {ELEM(0xe3fd078c, "driver", XFA_Element::Driver)},
-    {ELEM(0xe48b34f2, "incrementalLoad", XFA_Element::IncrementalLoad)},
-    {ELEM(0xe550e7c2, "subjectDN", XFA_Element::SubjectDN)},
-    {ELEM(0xe6669a78,
-          "compressLogicalStructure",
-          XFA_Element::CompressLogicalStructure)},
-    {ELEM(0xe7a7ea02, "incrementalMerge", XFA_Element::IncrementalMerge)},
-    {ELEM(0xe948530d, "radial", XFA_Element::Radial)},
-    {ELEM(0xea8d6999, "variables", XFA_Element::Variables)},
-    {ELEM(0xeaa142c0, "timePatterns", XFA_Element::TimePatterns)},
-    {ELEM(0xeb943a71,
-          "effectiveInputPolicy",
-          XFA_Element::EffectiveInputPolicy)},
-    {ELEM(0xef04a2bc, "nameAttr", XFA_Element::NameAttr)},
-    {ELEM(0xf07222ab, "conformance", XFA_Element::Conformance)},
-    {ELEM(0xf0aaaadc, "transform", XFA_Element::Transform)},
-    {ELEM(0xf1433e88, "lockDocument", XFA_Element::LockDocument)},
-    {ELEM(0xf54eb997, "breakAfter", XFA_Element::BreakAfter)},
-    {ELEM(0xf616da28, "line", XFA_Element::Line)},
-    {ELEM(0xf7055fb1, "source", XFA_Element::Source)},
-    {ELEM(0xf7eebe1c, "occur", XFA_Element::Occur)},
-    {ELEM(0xf8d10d97, "pickTrayByPDFSize", XFA_Element::PickTrayByPDFSize)},
-    {ELEM(0xf8f19e3a, "monthNames", XFA_Element::MonthNames)},
-    {ELEM(0xf984149b, "severity", XFA_Element::Severity)},
-    {ELEM(0xf9bcb037, "groupParent", XFA_Element::GroupParent)},
-    {ELEM(0xfbc42fff, "documentAssembly", XFA_Element::DocumentAssembly)},
-    {ELEM(0xfc78159f, "numberSymbol", XFA_Element::NumberSymbol)},
-    {ELEM(0xfcbd606c, "tagged", XFA_Element::Tagged)},
-    {ELEM(0xff063802, "items", XFA_Element::Items)},
+#undef ELEM____
+#undef ELEM_HIDDEN____
+#define ELEM____(a, b, c) {a, XFA_Element::c},
+#define ELEM_HIDDEN____(a)
+#include "xfa/fxfa/parser/elements.inc"
+#undef ELEM____
+#undef ELEM_HIDDEN____
 };
 
-#undef ELEM
-
 struct AttributeNameInfo {
   uint32_t hash;  // Hashed as wide string.
   XFA_Attribute attribute;
diff --git a/xfa/fxfa/parser/elements.inc b/xfa/fxfa/parser/elements.inc
new file mode 100644
index 0000000..e2ad579
--- /dev/null
+++ b/xfa/fxfa/parser/elements.inc
@@ -0,0 +1,318 @@
+// Copyright 2018 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
+
+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)