blob: 08242b6e737bdf36d8619fc10cfcfa86b8010073 [file] [log] [blame]
// Copyright 2017 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#include <memory>
#include "third_party/base/ptr_util.h"
#include "xfa/fxfa/parser/cxfa_accessiblecontent.h"
#include "xfa/fxfa/parser/cxfa_acrobat.h"
#include "xfa/fxfa/parser/cxfa_acrobat7.h"
#include "xfa/fxfa/parser/cxfa_adbe_jsconsole.h"
#include "xfa/fxfa/parser/cxfa_adbe_jsdebugger.h"
#include "xfa/fxfa/parser/cxfa_addsilentprint.h"
#include "xfa/fxfa/parser/cxfa_addviewerpreferences.h"
#include "xfa/fxfa/parser/cxfa_adjustdata.h"
#include "xfa/fxfa/parser/cxfa_adobeextensionlevel.h"
#include "xfa/fxfa/parser/cxfa_agent.h"
#include "xfa/fxfa/parser/cxfa_alwaysembed.h"
#include "xfa/fxfa/parser/cxfa_amd.h"
#include "xfa/fxfa/parser/cxfa_appearancefilter.h"
#include "xfa/fxfa/parser/cxfa_arc.h"
#include "xfa/fxfa/parser/cxfa_area.h"
#include "xfa/fxfa/parser/cxfa_assist.h"
#include "xfa/fxfa/parser/cxfa_attributes.h"
#include "xfa/fxfa/parser/cxfa_autosave.h"
#include "xfa/fxfa/parser/cxfa_barcode.h"
#include "xfa/fxfa/parser/cxfa_base.h"
#include "xfa/fxfa/parser/cxfa_batchoutput.h"
#include "xfa/fxfa/parser/cxfa_behavioroverride.h"
#include "xfa/fxfa/parser/cxfa_bind.h"
#include "xfa/fxfa/parser/cxfa_binditems.h"
#include "xfa/fxfa/parser/cxfa_bookend.h"
#include "xfa/fxfa/parser/cxfa_boolean.h"
#include "xfa/fxfa/parser/cxfa_border.h"
#include "xfa/fxfa/parser/cxfa_break.h"
#include "xfa/fxfa/parser/cxfa_breakafter.h"
#include "xfa/fxfa/parser/cxfa_breakbefore.h"
#include "xfa/fxfa/parser/cxfa_button.h"
#include "xfa/fxfa/parser/cxfa_cache.h"
#include "xfa/fxfa/parser/cxfa_calculate.h"
#include "xfa/fxfa/parser/cxfa_calendarsymbols.h"
#include "xfa/fxfa/parser/cxfa_caption.h"
#include "xfa/fxfa/parser/cxfa_certificate.h"
#include "xfa/fxfa/parser/cxfa_certificates.h"
#include "xfa/fxfa/parser/cxfa_change.h"
#include "xfa/fxfa/parser/cxfa_checkbutton.h"
#include "xfa/fxfa/parser/cxfa_choicelist.h"
#include "xfa/fxfa/parser/cxfa_color.h"
#include "xfa/fxfa/parser/cxfa_comb.h"
#include "xfa/fxfa/parser/cxfa_command.h"
#include "xfa/fxfa/parser/cxfa_common.h"
#include "xfa/fxfa/parser/cxfa_compress.h"
#include "xfa/fxfa/parser/cxfa_compression.h"
#include "xfa/fxfa/parser/cxfa_compresslogicalstructure.h"
#include "xfa/fxfa/parser/cxfa_compressobjectstream.h"
#include "xfa/fxfa/parser/cxfa_config.h"
#include "xfa/fxfa/parser/cxfa_conformance.h"
#include "xfa/fxfa/parser/cxfa_connect.h"
#include "xfa/fxfa/parser/cxfa_connectionset.h"
#include "xfa/fxfa/parser/cxfa_connectstring.h"
#include "xfa/fxfa/parser/cxfa_contentarea.h"
#include "xfa/fxfa/parser/cxfa_contentcopy.h"
#include "xfa/fxfa/parser/cxfa_copies.h"
#include "xfa/fxfa/parser/cxfa_corner.h"
#include "xfa/fxfa/parser/cxfa_creator.h"
#include "xfa/fxfa/parser/cxfa_currencysymbol.h"
#include "xfa/fxfa/parser/cxfa_currencysymbols.h"
#include "xfa/fxfa/parser/cxfa_currentpage.h"
#include "xfa/fxfa/parser/cxfa_data.h"
#include "xfa/fxfa/parser/cxfa_datagroup.h"
#include "xfa/fxfa/parser/cxfa_datamodel.h"
#include "xfa/fxfa/parser/cxfa_datavalue.h"
#include "xfa/fxfa/parser/cxfa_date.h"
#include "xfa/fxfa/parser/cxfa_datepattern.h"
#include "xfa/fxfa/parser/cxfa_datepatterns.h"
#include "xfa/fxfa/parser/cxfa_datetime.h"
#include "xfa/fxfa/parser/cxfa_datetimeedit.h"
#include "xfa/fxfa/parser/cxfa_datetimesymbols.h"
#include "xfa/fxfa/parser/cxfa_day.h"
#include "xfa/fxfa/parser/cxfa_daynames.h"
#include "xfa/fxfa/parser/cxfa_debug.h"
#include "xfa/fxfa/parser/cxfa_decimal.h"
#include "xfa/fxfa/parser/cxfa_defaulttypeface.h"
#include "xfa/fxfa/parser/cxfa_defaultui.h"
#include "xfa/fxfa/parser/cxfa_delete.h"
#include "xfa/fxfa/parser/cxfa_delta.h"
#include "xfa/fxfa/parser/cxfa_deltas.h"
#include "xfa/fxfa/parser/cxfa_desc.h"
#include "xfa/fxfa/parser/cxfa_destination.h"
#include "xfa/fxfa/parser/cxfa_digestmethod.h"
#include "xfa/fxfa/parser/cxfa_digestmethods.h"
#include "xfa/fxfa/parser/cxfa_documentassembly.h"
#include "xfa/fxfa/parser/cxfa_draw.h"
#include "xfa/fxfa/parser/cxfa_driver.h"
#include "xfa/fxfa/parser/cxfa_dsigdata.h"
#include "xfa/fxfa/parser/cxfa_duplexoption.h"
#include "xfa/fxfa/parser/cxfa_dynamicrender.h"
#include "xfa/fxfa/parser/cxfa_edge.h"
#include "xfa/fxfa/parser/cxfa_effectiveinputpolicy.h"
#include "xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h"
#include "xfa/fxfa/parser/cxfa_embed.h"
#include "xfa/fxfa/parser/cxfa_encoding.h"
#include "xfa/fxfa/parser/cxfa_encodings.h"
#include "xfa/fxfa/parser/cxfa_encrypt.h"
#include "xfa/fxfa/parser/cxfa_encryption.h"
#include "xfa/fxfa/parser/cxfa_encryptionlevel.h"
#include "xfa/fxfa/parser/cxfa_encryptionmethod.h"
#include "xfa/fxfa/parser/cxfa_encryptionmethods.h"
#include "xfa/fxfa/parser/cxfa_enforce.h"
#include "xfa/fxfa/parser/cxfa_equate.h"
#include "xfa/fxfa/parser/cxfa_equaterange.h"
#include "xfa/fxfa/parser/cxfa_era.h"
#include "xfa/fxfa/parser/cxfa_eranames.h"
#include "xfa/fxfa/parser/cxfa_event.h"
#include "xfa/fxfa/parser/cxfa_exclgroup.h"
#include "xfa/fxfa/parser/cxfa_exclude.h"
#include "xfa/fxfa/parser/cxfa_excludens.h"
#include "xfa/fxfa/parser/cxfa_exdata.h"
#include "xfa/fxfa/parser/cxfa_execute.h"
#include "xfa/fxfa/parser/cxfa_exobject.h"
#include "xfa/fxfa/parser/cxfa_extras.h"
#include "xfa/fxfa/parser/cxfa_field.h"
#include "xfa/fxfa/parser/cxfa_fill.h"
#include "xfa/fxfa/parser/cxfa_filter.h"
#include "xfa/fxfa/parser/cxfa_fliplabel.h"
#include "xfa/fxfa/parser/cxfa_float.h"
#include "xfa/fxfa/parser/cxfa_font.h"
#include "xfa/fxfa/parser/cxfa_fontinfo.h"
#include "xfa/fxfa/parser/cxfa_form.h"
#include "xfa/fxfa/parser/cxfa_format.h"
#include "xfa/fxfa/parser/cxfa_formfieldfilling.h"
#include "xfa/fxfa/parser/cxfa_groupparent.h"
#include "xfa/fxfa/parser/cxfa_handler.h"
#include "xfa/fxfa/parser/cxfa_hyphenation.h"
#include "xfa/fxfa/parser/cxfa_ifempty.h"
#include "xfa/fxfa/parser/cxfa_image.h"
#include "xfa/fxfa/parser/cxfa_imageedit.h"
#include "xfa/fxfa/parser/cxfa_includexdpcontent.h"
#include "xfa/fxfa/parser/cxfa_incrementalload.h"
#include "xfa/fxfa/parser/cxfa_incrementalmerge.h"
#include "xfa/fxfa/parser/cxfa_insert.h"
#include "xfa/fxfa/parser/cxfa_instancemanager.h"
#include "xfa/fxfa/parser/cxfa_integer.h"
#include "xfa/fxfa/parser/cxfa_interactive.h"
#include "xfa/fxfa/parser/cxfa_issuers.h"
#include "xfa/fxfa/parser/cxfa_items.h"
#include "xfa/fxfa/parser/cxfa_jog.h"
#include "xfa/fxfa/parser/cxfa_keep.h"
#include "xfa/fxfa/parser/cxfa_keyusage.h"
#include "xfa/fxfa/parser/cxfa_labelprinter.h"
#include "xfa/fxfa/parser/cxfa_layout.h"
#include "xfa/fxfa/parser/cxfa_level.h"
#include "xfa/fxfa/parser/cxfa_line.h"
#include "xfa/fxfa/parser/cxfa_linear.h"
#include "xfa/fxfa/parser/cxfa_linearized.h"
#include "xfa/fxfa/parser/cxfa_locale.h"
#include "xfa/fxfa/parser/cxfa_localeset.h"
#include "xfa/fxfa/parser/cxfa_lockdocument.h"
#include "xfa/fxfa/parser/cxfa_log.h"
#include "xfa/fxfa/parser/cxfa_manifest.h"
#include "xfa/fxfa/parser/cxfa_map.h"
#include "xfa/fxfa/parser/cxfa_margin.h"
#include "xfa/fxfa/parser/cxfa_mdp.h"
#include "xfa/fxfa/parser/cxfa_medium.h"
#include "xfa/fxfa/parser/cxfa_mediuminfo.h"
#include "xfa/fxfa/parser/cxfa_meridiem.h"
#include "xfa/fxfa/parser/cxfa_meridiemnames.h"
#include "xfa/fxfa/parser/cxfa_message.h"
#include "xfa/fxfa/parser/cxfa_messaging.h"
#include "xfa/fxfa/parser/cxfa_mode.h"
#include "xfa/fxfa/parser/cxfa_modifyannots.h"
#include "xfa/fxfa/parser/cxfa_month.h"
#include "xfa/fxfa/parser/cxfa_monthnames.h"
#include "xfa/fxfa/parser/cxfa_msgid.h"
#include "xfa/fxfa/parser/cxfa_nameattr.h"
#include "xfa/fxfa/parser/cxfa_neverembed.h"
#include "xfa/fxfa/parser/cxfa_node.h"
#include "xfa/fxfa/parser/cxfa_numberofcopies.h"
#include "xfa/fxfa/parser/cxfa_numberpattern.h"
#include "xfa/fxfa/parser/cxfa_numberpatterns.h"
#include "xfa/fxfa/parser/cxfa_numbersymbol.h"
#include "xfa/fxfa/parser/cxfa_numbersymbols.h"
#include "xfa/fxfa/parser/cxfa_numericedit.h"
#include "xfa/fxfa/parser/cxfa_occur.h"
#include "xfa/fxfa/parser/cxfa_oid.h"
#include "xfa/fxfa/parser/cxfa_oids.h"
#include "xfa/fxfa/parser/cxfa_openaction.h"
#include "xfa/fxfa/parser/cxfa_operation.h"
#include "xfa/fxfa/parser/cxfa_output.h"
#include "xfa/fxfa/parser/cxfa_outputbin.h"
#include "xfa/fxfa/parser/cxfa_outputxsl.h"
#include "xfa/fxfa/parser/cxfa_overflow.h"
#include "xfa/fxfa/parser/cxfa_overprint.h"
#include "xfa/fxfa/parser/cxfa_packet.h"
#include "xfa/fxfa/parser/cxfa_packets.h"
#include "xfa/fxfa/parser/cxfa_pagearea.h"
#include "xfa/fxfa/parser/cxfa_pageoffset.h"
#include "xfa/fxfa/parser/cxfa_pagerange.h"
#include "xfa/fxfa/parser/cxfa_pageset.h"
#include "xfa/fxfa/parser/cxfa_pagination.h"
#include "xfa/fxfa/parser/cxfa_paginationoverride.h"
#include "xfa/fxfa/parser/cxfa_para.h"
#include "xfa/fxfa/parser/cxfa_part.h"
#include "xfa/fxfa/parser/cxfa_password.h"
#include "xfa/fxfa/parser/cxfa_passwordedit.h"
#include "xfa/fxfa/parser/cxfa_pattern.h"
#include "xfa/fxfa/parser/cxfa_pcl.h"
#include "xfa/fxfa/parser/cxfa_pdf.h"
#include "xfa/fxfa/parser/cxfa_pdfa.h"
#include "xfa/fxfa/parser/cxfa_permissions.h"
#include "xfa/fxfa/parser/cxfa_picktraybypdfsize.h"
#include "xfa/fxfa/parser/cxfa_picture.h"
#include "xfa/fxfa/parser/cxfa_plaintextmetadata.h"
#include "xfa/fxfa/parser/cxfa_presence.h"
#include "xfa/fxfa/parser/cxfa_present.h"
#include "xfa/fxfa/parser/cxfa_print.h"
#include "xfa/fxfa/parser/cxfa_printername.h"
#include "xfa/fxfa/parser/cxfa_printhighquality.h"
#include "xfa/fxfa/parser/cxfa_printscaling.h"
#include "xfa/fxfa/parser/cxfa_producer.h"
#include "xfa/fxfa/parser/cxfa_proto.h"
#include "xfa/fxfa/parser/cxfa_ps.h"
#include "xfa/fxfa/parser/cxfa_psmap.h"
#include "xfa/fxfa/parser/cxfa_query.h"
#include "xfa/fxfa/parser/cxfa_radial.h"
#include "xfa/fxfa/parser/cxfa_range.h"
#include "xfa/fxfa/parser/cxfa_reason.h"
#include "xfa/fxfa/parser/cxfa_reasons.h"
#include "xfa/fxfa/parser/cxfa_record.h"
#include "xfa/fxfa/parser/cxfa_recordset.h"
#include "xfa/fxfa/parser/cxfa_rectangle.h"
#include "xfa/fxfa/parser/cxfa_ref.h"
#include "xfa/fxfa/parser/cxfa_relevant.h"
#include "xfa/fxfa/parser/cxfa_rename.h"
#include "xfa/fxfa/parser/cxfa_renderpolicy.h"
#include "xfa/fxfa/parser/cxfa_rootelement.h"
#include "xfa/fxfa/parser/cxfa_runscripts.h"
#include "xfa/fxfa/parser/cxfa_script.h"
#include "xfa/fxfa/parser/cxfa_scriptmodel.h"
#include "xfa/fxfa/parser/cxfa_select.h"
#include "xfa/fxfa/parser/cxfa_setproperty.h"
#include "xfa/fxfa/parser/cxfa_severity.h"
#include "xfa/fxfa/parser/cxfa_sharptext.h"
#include "xfa/fxfa/parser/cxfa_sharpxhtml.h"
#include "xfa/fxfa/parser/cxfa_sharpxml.h"
#include "xfa/fxfa/parser/cxfa_signature.h"
#include "xfa/fxfa/parser/cxfa_signatureproperties.h"
#include "xfa/fxfa/parser/cxfa_signdata.h"
#include "xfa/fxfa/parser/cxfa_signing.h"
#include "xfa/fxfa/parser/cxfa_silentprint.h"
#include "xfa/fxfa/parser/cxfa_soapaction.h"
#include "xfa/fxfa/parser/cxfa_soapaddress.h"
#include "xfa/fxfa/parser/cxfa_solid.h"
#include "xfa/fxfa/parser/cxfa_source.h"
#include "xfa/fxfa/parser/cxfa_sourceset.h"
#include "xfa/fxfa/parser/cxfa_speak.h"
#include "xfa/fxfa/parser/cxfa_staple.h"
#include "xfa/fxfa/parser/cxfa_startnode.h"
#include "xfa/fxfa/parser/cxfa_startpage.h"
#include "xfa/fxfa/parser/cxfa_stipple.h"
#include "xfa/fxfa/parser/cxfa_subform.h"
#include "xfa/fxfa/parser/cxfa_subformset.h"
#include "xfa/fxfa/parser/cxfa_subjectdn.h"
#include "xfa/fxfa/parser/cxfa_subjectdns.h"
#include "xfa/fxfa/parser/cxfa_submit.h"
#include "xfa/fxfa/parser/cxfa_submitformat.h"
#include "xfa/fxfa/parser/cxfa_submiturl.h"
#include "xfa/fxfa/parser/cxfa_subsetbelow.h"
#include "xfa/fxfa/parser/cxfa_suppressbanner.h"
#include "xfa/fxfa/parser/cxfa_tagged.h"
#include "xfa/fxfa/parser/cxfa_template.h"
#include "xfa/fxfa/parser/cxfa_templatecache.h"
#include "xfa/fxfa/parser/cxfa_text.h"
#include "xfa/fxfa/parser/cxfa_textedit.h"
#include "xfa/fxfa/parser/cxfa_threshold.h"
#include "xfa/fxfa/parser/cxfa_time.h"
#include "xfa/fxfa/parser/cxfa_timepattern.h"
#include "xfa/fxfa/parser/cxfa_timepatterns.h"
#include "xfa/fxfa/parser/cxfa_timestamp.h"
#include "xfa/fxfa/parser/cxfa_to.h"
#include "xfa/fxfa/parser/cxfa_tooltip.h"
#include "xfa/fxfa/parser/cxfa_trace.h"
#include "xfa/fxfa/parser/cxfa_transform.h"
#include "xfa/fxfa/parser/cxfa_traversal.h"
#include "xfa/fxfa/parser/cxfa_traverse.h"
#include "xfa/fxfa/parser/cxfa_type.h"
#include "xfa/fxfa/parser/cxfa_typeface.h"
#include "xfa/fxfa/parser/cxfa_typefaces.h"
#include "xfa/fxfa/parser/cxfa_ui.h"
#include "xfa/fxfa/parser/cxfa_update.h"
#include "xfa/fxfa/parser/cxfa_uri.h"
#include "xfa/fxfa/parser/cxfa_user.h"
#include "xfa/fxfa/parser/cxfa_validate.h"
#include "xfa/fxfa/parser/cxfa_validateapprovalsignatures.h"
#include "xfa/fxfa/parser/cxfa_validationmessaging.h"
#include "xfa/fxfa/parser/cxfa_value.h"
#include "xfa/fxfa/parser/cxfa_variables.h"
#include "xfa/fxfa/parser/cxfa_version.h"
#include "xfa/fxfa/parser/cxfa_versioncontrol.h"
#include "xfa/fxfa/parser/cxfa_viewerpreferences.h"
#include "xfa/fxfa/parser/cxfa_webclient.h"
#include "xfa/fxfa/parser/cxfa_whitespace.h"
#include "xfa/fxfa/parser/cxfa_window.h"
#include "xfa/fxfa/parser/cxfa_wsdladdress.h"
#include "xfa/fxfa/parser/cxfa_wsdlconnection.h"
#include "xfa/fxfa/parser/cxfa_xdc.h"
#include "xfa/fxfa/parser/cxfa_xdp.h"
#include "xfa/fxfa/parser/cxfa_xfa.h"
#include "xfa/fxfa/parser/cxfa_xmlconnection.h"
#include "xfa/fxfa/parser/cxfa_xsdconnection.h"
#include "xfa/fxfa/parser/cxfa_xsl.h"
#include "xfa/fxfa/parser/cxfa_zpl.h"
namespace {
struct ElementNameInfo {
uint32_t hash; // Hashed as wide string.
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
struct AttributeNameInfo {
uint32_t hash; // Hashed as wide string.
XFA_Attribute attribute;
};
const AttributeNameInfo AttributeNameInfoToEnum[] = {
#undef ATTR____
#define ATTR____(a, b, c) {a, XFA_Attribute::c},
#include "xfa/fxfa/parser/attributes.inc"
#undef ATTR____
};
const char* AttributeToNameASCII(XFA_Attribute attr) {
switch (attr) {
#undef ATTR____
#define ATTR____(a, b, c) \
case XFA_Attribute::c: \
return b;
#include "xfa/fxfa/parser/attributes.inc"
#undef ATTR____
default:
NOTREACHED();
return "";
}
}
} // namespace
// static
XFA_Element CXFA_Node::NameToElement(const WideString& name) {
uint32_t hash = FX_HashCode_GetW(name.AsStringView(), false);
auto* elem = std::lower_bound(
std::begin(ElementNameToEnum), std::end(ElementNameToEnum), hash,
[](const ElementNameInfo& a, uint32_t hash) { return a.hash < hash; });
if (elem != std::end(ElementNameToEnum) && elem->hash == hash)
return elem->element;
return XFA_Element::Unknown;
}
// static
XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) {
uint32_t hash = FX_HashCode_GetW(name, false);
auto* elem = std::lower_bound(
std::begin(AttributeNameInfoToEnum), std::end(AttributeNameInfoToEnum),
hash,
[](const AttributeNameInfo& a, uint32_t hash) { return a.hash < hash; });
if (elem != std::end(AttributeNameInfoToEnum) && elem->hash == hash)
return elem->attribute;
return XFA_Attribute::Unknown;
}
// static
std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
XFA_Element element,
XFA_PacketType packet) {
std::unique_ptr<CXFA_Node> node;
switch (element) {
case XFA_Element::Ps:
node = pdfium::MakeUnique<CXFA_Ps>(doc, packet);
break;
case XFA_Element::To:
node = pdfium::MakeUnique<CXFA_To>(doc, packet);
break;
case XFA_Element::Ui:
node = pdfium::MakeUnique<CXFA_Ui>(doc, packet);
break;
case XFA_Element::RecordSet:
node = pdfium::MakeUnique<CXFA_RecordSet>(doc, packet);
break;
case XFA_Element::SubsetBelow:
node = pdfium::MakeUnique<CXFA_SubsetBelow>(doc, packet);
break;
case XFA_Element::SubformSet:
node = pdfium::MakeUnique<CXFA_SubformSet>(doc, packet);
break;
case XFA_Element::AdobeExtensionLevel:
node = pdfium::MakeUnique<CXFA_AdobeExtensionLevel>(doc, packet);
break;
case XFA_Element::Typeface:
node = pdfium::MakeUnique<CXFA_Typeface>(doc, packet);
break;
case XFA_Element::Break:
node = pdfium::MakeUnique<CXFA_Break>(doc, packet);
break;
case XFA_Element::FontInfo:
node = pdfium::MakeUnique<CXFA_FontInfo>(doc, packet);
break;
case XFA_Element::NumberPattern:
node = pdfium::MakeUnique<CXFA_NumberPattern>(doc, packet);
break;
case XFA_Element::DynamicRender:
node = pdfium::MakeUnique<CXFA_DynamicRender>(doc, packet);
break;
case XFA_Element::PrintScaling:
node = pdfium::MakeUnique<CXFA_PrintScaling>(doc, packet);
break;
case XFA_Element::CheckButton:
node = pdfium::MakeUnique<CXFA_CheckButton>(doc, packet);
break;
case XFA_Element::DatePatterns:
node = pdfium::MakeUnique<CXFA_DatePatterns>(doc, packet);
break;
case XFA_Element::SourceSet:
node = pdfium::MakeUnique<CXFA_SourceSet>(doc, packet);
break;
case XFA_Element::Amd:
node = pdfium::MakeUnique<CXFA_Amd>(doc, packet);
break;
case XFA_Element::Arc:
node = pdfium::MakeUnique<CXFA_Arc>(doc, packet);
break;
case XFA_Element::Day:
node = pdfium::MakeUnique<CXFA_Day>(doc, packet);
break;
case XFA_Element::Era:
node = pdfium::MakeUnique<CXFA_Era>(doc, packet);
break;
case XFA_Element::Jog:
node = pdfium::MakeUnique<CXFA_Jog>(doc, packet);
break;
case XFA_Element::Log:
node = pdfium::MakeUnique<CXFA_Log>(doc, packet);
break;
case XFA_Element::Map:
node = pdfium::MakeUnique<CXFA_Map>(doc, packet);
break;
case XFA_Element::Mdp:
node = pdfium::MakeUnique<CXFA_Mdp>(doc, packet);
break;
case XFA_Element::BreakBefore:
node = pdfium::MakeUnique<CXFA_BreakBefore>(doc, packet);
break;
case XFA_Element::Oid:
node = pdfium::MakeUnique<CXFA_Oid>(doc, packet);
break;
case XFA_Element::Pcl:
node = pdfium::MakeUnique<CXFA_Pcl>(doc, packet);
break;
case XFA_Element::Pdf:
node = pdfium::MakeUnique<CXFA_Pdf>(doc, packet);
break;
case XFA_Element::Ref:
node = pdfium::MakeUnique<CXFA_Ref>(doc, packet);
break;
case XFA_Element::Uri:
node = pdfium::MakeUnique<CXFA_Uri>(doc, packet);
break;
case XFA_Element::Xdc:
node = pdfium::MakeUnique<CXFA_Xdc>(doc, packet);
break;
case XFA_Element::Xdp:
node = pdfium::MakeUnique<CXFA_Xdp>(doc, packet);
break;
case XFA_Element::Xfa:
node = pdfium::MakeUnique<CXFA_Xfa>(doc, packet);
break;
case XFA_Element::Xsl:
node = pdfium::MakeUnique<CXFA_Xsl>(doc, packet);
break;
case XFA_Element::Zpl:
node = pdfium::MakeUnique<CXFA_Zpl>(doc, packet);
break;
case XFA_Element::Cache:
node = pdfium::MakeUnique<CXFA_Cache>(doc, packet);
break;
case XFA_Element::Margin:
node = pdfium::MakeUnique<CXFA_Margin>(doc, packet);
break;
case XFA_Element::KeyUsage:
node = pdfium::MakeUnique<CXFA_KeyUsage>(doc, packet);
break;
case XFA_Element::Exclude:
node = pdfium::MakeUnique<CXFA_Exclude>(doc, packet);
break;
case XFA_Element::ChoiceList:
node = pdfium::MakeUnique<CXFA_ChoiceList>(doc, packet);
break;
case XFA_Element::Level:
node = pdfium::MakeUnique<CXFA_Level>(doc, packet);
break;
case XFA_Element::LabelPrinter:
node = pdfium::MakeUnique<CXFA_LabelPrinter>(doc, packet);
break;
case XFA_Element::CalendarSymbols:
node = pdfium::MakeUnique<CXFA_CalendarSymbols>(doc, packet);
break;
case XFA_Element::Para:
node = pdfium::MakeUnique<CXFA_Para>(doc, packet);
break;
case XFA_Element::Part:
node = pdfium::MakeUnique<CXFA_Part>(doc, packet);
break;
case XFA_Element::Pdfa:
node = pdfium::MakeUnique<CXFA_Pdfa>(doc, packet);
break;
case XFA_Element::Filter:
node = pdfium::MakeUnique<CXFA_Filter>(doc, packet);
break;
case XFA_Element::Present:
node = pdfium::MakeUnique<CXFA_Present>(doc, packet);
break;
case XFA_Element::Pagination:
node = pdfium::MakeUnique<CXFA_Pagination>(doc, packet);
break;
case XFA_Element::Encoding:
node = pdfium::MakeUnique<CXFA_Encoding>(doc, packet);
break;
case XFA_Element::Event:
node = pdfium::MakeUnique<CXFA_Event>(doc, packet);
break;
case XFA_Element::Whitespace:
node = pdfium::MakeUnique<CXFA_Whitespace>(doc, packet);
break;
case XFA_Element::DefaultUi:
node = pdfium::MakeUnique<CXFA_DefaultUi>(doc, packet);
break;
case XFA_Element::DataModel:
node = pdfium::MakeUnique<CXFA_DataModel>(doc, packet);
break;
case XFA_Element::Barcode:
node = pdfium::MakeUnique<CXFA_Barcode>(doc, packet);
break;
case XFA_Element::TimePattern:
node = pdfium::MakeUnique<CXFA_TimePattern>(doc, packet);
break;
case XFA_Element::BatchOutput:
node = pdfium::MakeUnique<CXFA_BatchOutput>(doc, packet);
break;
case XFA_Element::Enforce:
node = pdfium::MakeUnique<CXFA_Enforce>(doc, packet);
break;
case XFA_Element::CurrencySymbols:
node = pdfium::MakeUnique<CXFA_CurrencySymbols>(doc, packet);
break;
case XFA_Element::AddSilentPrint:
node = pdfium::MakeUnique<CXFA_AddSilentPrint>(doc, packet);
break;
case XFA_Element::Rename:
node = pdfium::MakeUnique<CXFA_Rename>(doc, packet);
break;
case XFA_Element::Operation:
node = pdfium::MakeUnique<CXFA_Operation>(doc, packet);
break;
case XFA_Element::Typefaces:
node = pdfium::MakeUnique<CXFA_Typefaces>(doc, packet);
break;
case XFA_Element::SubjectDNs:
node = pdfium::MakeUnique<CXFA_SubjectDNs>(doc, packet);
break;
case XFA_Element::Issuers:
node = pdfium::MakeUnique<CXFA_Issuers>(doc, packet);
break;
case XFA_Element::WsdlConnection:
node = pdfium::MakeUnique<CXFA_WsdlConnection>(doc, packet);
break;
case XFA_Element::Debug:
node = pdfium::MakeUnique<CXFA_Debug>(doc, packet);
break;
case XFA_Element::Delta:
node = pdfium::MakeUnique<CXFA_Delta>(doc, packet);
break;
case XFA_Element::EraNames:
node = pdfium::MakeUnique<CXFA_EraNames>(doc, packet);
break;
case XFA_Element::ModifyAnnots:
node = pdfium::MakeUnique<CXFA_ModifyAnnots>(doc, packet);
break;
case XFA_Element::StartNode:
node = pdfium::MakeUnique<CXFA_StartNode>(doc, packet);
break;
case XFA_Element::Button:
node = pdfium::MakeUnique<CXFA_Button>(doc, packet);
break;
case XFA_Element::Format:
node = pdfium::MakeUnique<CXFA_Format>(doc, packet);
break;
case XFA_Element::Border:
node = pdfium::MakeUnique<CXFA_Border>(doc, packet);
break;
case XFA_Element::Area:
node = pdfium::MakeUnique<CXFA_Area>(doc, packet);
break;
case XFA_Element::Hyphenation:
node = pdfium::MakeUnique<CXFA_Hyphenation>(doc, packet);
break;
case XFA_Element::Text:
node = pdfium::MakeUnique<CXFA_Text>(doc, packet);
break;
case XFA_Element::Time:
node = pdfium::MakeUnique<CXFA_Time>(doc, packet);
break;
case XFA_Element::Type:
node = pdfium::MakeUnique<CXFA_Type>(doc, packet);
break;
case XFA_Element::Overprint:
node = pdfium::MakeUnique<CXFA_Overprint>(doc, packet);
break;
case XFA_Element::Certificates:
node = pdfium::MakeUnique<CXFA_Certificates>(doc, packet);
break;
case XFA_Element::EncryptionMethods:
node = pdfium::MakeUnique<CXFA_EncryptionMethods>(doc, packet);
break;
case XFA_Element::SetProperty:
node = pdfium::MakeUnique<CXFA_SetProperty>(doc, packet);
break;
case XFA_Element::PrinterName:
node = pdfium::MakeUnique<CXFA_PrinterName>(doc, packet);
break;
case XFA_Element::StartPage:
node = pdfium::MakeUnique<CXFA_StartPage>(doc, packet);
break;
case XFA_Element::PageOffset:
node = pdfium::MakeUnique<CXFA_PageOffset>(doc, packet);
break;
case XFA_Element::DateTime:
node = pdfium::MakeUnique<CXFA_DateTime>(doc, packet);
break;
case XFA_Element::Comb:
node = pdfium::MakeUnique<CXFA_Comb>(doc, packet);
break;
case XFA_Element::Pattern:
node = pdfium::MakeUnique<CXFA_Pattern>(doc, packet);
break;
case XFA_Element::IfEmpty:
node = pdfium::MakeUnique<CXFA_IfEmpty>(doc, packet);
break;
case XFA_Element::SuppressBanner:
node = pdfium::MakeUnique<CXFA_SuppressBanner>(doc, packet);
break;
case XFA_Element::OutputBin:
node = pdfium::MakeUnique<CXFA_OutputBin>(doc, packet);
break;
case XFA_Element::Field:
node = pdfium::MakeUnique<CXFA_Field>(doc, packet);
break;
case XFA_Element::Agent:
node = pdfium::MakeUnique<CXFA_Agent>(doc, packet);
break;
case XFA_Element::OutputXSL:
node = pdfium::MakeUnique<CXFA_OutputXSL>(doc, packet);
break;
case XFA_Element::AdjustData:
node = pdfium::MakeUnique<CXFA_AdjustData>(doc, packet);
break;
case XFA_Element::AutoSave:
node = pdfium::MakeUnique<CXFA_AutoSave>(doc, packet);
break;
case XFA_Element::ContentArea:
node = pdfium::MakeUnique<CXFA_ContentArea>(doc, packet);
break;
case XFA_Element::WsdlAddress:
node = pdfium::MakeUnique<CXFA_WsdlAddress>(doc, packet);
break;
case XFA_Element::Solid:
node = pdfium::MakeUnique<CXFA_Solid>(doc, packet);
break;
case XFA_Element::DateTimeSymbols:
node = pdfium::MakeUnique<CXFA_DateTimeSymbols>(doc, packet);
break;
case XFA_Element::EncryptionLevel:
node = pdfium::MakeUnique<CXFA_EncryptionLevel>(doc, packet);
break;
case XFA_Element::Edge:
node = pdfium::MakeUnique<CXFA_Edge>(doc, packet);
break;
case XFA_Element::Stipple:
node = pdfium::MakeUnique<CXFA_Stipple>(doc, packet);
break;
case XFA_Element::Attributes:
node = pdfium::MakeUnique<CXFA_Attributes>(doc, packet);
break;
case XFA_Element::VersionControl:
node = pdfium::MakeUnique<CXFA_VersionControl>(doc, packet);
break;
case XFA_Element::Meridiem:
node = pdfium::MakeUnique<CXFA_Meridiem>(doc, packet);
break;
case XFA_Element::ExclGroup:
node = pdfium::MakeUnique<CXFA_ExclGroup>(doc, packet);
break;
case XFA_Element::ToolTip:
node = pdfium::MakeUnique<CXFA_ToolTip>(doc, packet);
break;
case XFA_Element::Compress:
node = pdfium::MakeUnique<CXFA_Compress>(doc, packet);
break;
case XFA_Element::Reason:
node = pdfium::MakeUnique<CXFA_Reason>(doc, packet);
break;
case XFA_Element::Execute:
node = pdfium::MakeUnique<CXFA_Execute>(doc, packet);
break;
case XFA_Element::ContentCopy:
node = pdfium::MakeUnique<CXFA_ContentCopy>(doc, packet);
break;
case XFA_Element::DateTimeEdit:
node = pdfium::MakeUnique<CXFA_DateTimeEdit>(doc, packet);
break;
case XFA_Element::Config:
node = pdfium::MakeUnique<CXFA_Config>(doc, packet);
break;
case XFA_Element::Image:
node = pdfium::MakeUnique<CXFA_Image>(doc, packet);
break;
case XFA_Element::SharpxHTML:
node = pdfium::MakeUnique<CXFA_SharpxHTML>(doc, packet);
break;
case XFA_Element::NumberOfCopies:
node = pdfium::MakeUnique<CXFA_NumberOfCopies>(doc, packet);
break;
case XFA_Element::BehaviorOverride:
node = pdfium::MakeUnique<CXFA_BehaviorOverride>(doc, packet);
break;
case XFA_Element::TimeStamp:
node = pdfium::MakeUnique<CXFA_TimeStamp>(doc, packet);
break;
case XFA_Element::Month:
node = pdfium::MakeUnique<CXFA_Month>(doc, packet);
break;
case XFA_Element::ViewerPreferences:
node = pdfium::MakeUnique<CXFA_ViewerPreferences>(doc, packet);
break;
case XFA_Element::ScriptModel:
node = pdfium::MakeUnique<CXFA_ScriptModel>(doc, packet);
break;
case XFA_Element::Decimal:
node = pdfium::MakeUnique<CXFA_Decimal>(doc, packet);
break;
case XFA_Element::Subform:
node = pdfium::MakeUnique<CXFA_Subform>(doc, packet);
break;
case XFA_Element::Select:
node = pdfium::MakeUnique<CXFA_Select>(doc, packet);
break;
case XFA_Element::Window:
node = pdfium::MakeUnique<CXFA_Window>(doc, packet);
break;
case XFA_Element::LocaleSet:
node = pdfium::MakeUnique<CXFA_LocaleSet>(doc, packet);
break;
case XFA_Element::Handler:
node = pdfium::MakeUnique<CXFA_Handler>(doc, packet);
break;
case XFA_Element::Presence:
node = pdfium::MakeUnique<CXFA_Presence>(doc, packet);
break;
case XFA_Element::Record:
node = pdfium::MakeUnique<CXFA_Record>(doc, packet);
break;
case XFA_Element::Embed:
node = pdfium::MakeUnique<CXFA_Embed>(doc, packet);
break;
case XFA_Element::Version:
node = pdfium::MakeUnique<CXFA_Version>(doc, packet);
break;
case XFA_Element::Command:
node = pdfium::MakeUnique<CXFA_Command>(doc, packet);
break;
case XFA_Element::Copies:
node = pdfium::MakeUnique<CXFA_Copies>(doc, packet);
break;
case XFA_Element::Staple:
node = pdfium::MakeUnique<CXFA_Staple>(doc, packet);
break;
case XFA_Element::SubmitFormat:
node = pdfium::MakeUnique<CXFA_SubmitFormat>(doc, packet);
break;
case XFA_Element::Boolean:
node = pdfium::MakeUnique<CXFA_Boolean>(doc, packet);
break;
case XFA_Element::Message:
node = pdfium::MakeUnique<CXFA_Message>(doc, packet);
break;
case XFA_Element::Output:
node = pdfium::MakeUnique<CXFA_Output>(doc, packet);
break;
case XFA_Element::PsMap:
node = pdfium::MakeUnique<CXFA_PsMap>(doc, packet);
break;
case XFA_Element::ExcludeNS:
node = pdfium::MakeUnique<CXFA_ExcludeNS>(doc, packet);
break;
case XFA_Element::Assist:
node = pdfium::MakeUnique<CXFA_Assist>(doc, packet);
break;
case XFA_Element::Picture:
node = pdfium::MakeUnique<CXFA_Picture>(doc, packet);
break;
case XFA_Element::Traversal:
node = pdfium::MakeUnique<CXFA_Traversal>(doc, packet);
break;
case XFA_Element::SilentPrint:
node = pdfium::MakeUnique<CXFA_SilentPrint>(doc, packet);
break;
case XFA_Element::WebClient:
node = pdfium::MakeUnique<CXFA_WebClient>(doc, packet);
break;
case XFA_Element::Producer:
node = pdfium::MakeUnique<CXFA_Producer>(doc, packet);
break;
case XFA_Element::Corner:
node = pdfium::MakeUnique<CXFA_Corner>(doc, packet);
break;
case XFA_Element::MsgId:
node = pdfium::MakeUnique<CXFA_MsgId>(doc, packet);
break;
case XFA_Element::Color:
node = pdfium::MakeUnique<CXFA_Color>(doc, packet);
break;
case XFA_Element::Keep:
node = pdfium::MakeUnique<CXFA_Keep>(doc, packet);
break;
case XFA_Element::Query:
node = pdfium::MakeUnique<CXFA_Query>(doc, packet);
break;
case XFA_Element::Insert:
node = pdfium::MakeUnique<CXFA_Insert>(doc, packet);
break;
case XFA_Element::ImageEdit:
node = pdfium::MakeUnique<CXFA_ImageEdit>(doc, packet);
break;
case XFA_Element::Validate:
node = pdfium::MakeUnique<CXFA_Validate>(doc, packet);
break;
case XFA_Element::DigestMethods:
node = pdfium::MakeUnique<CXFA_DigestMethods>(doc, packet);
break;
case XFA_Element::NumberPatterns:
node = pdfium::MakeUnique<CXFA_NumberPatterns>(doc, packet);
break;
case XFA_Element::PageSet:
node = pdfium::MakeUnique<CXFA_PageSet>(doc, packet);
break;
case XFA_Element::Integer:
node = pdfium::MakeUnique<CXFA_Integer>(doc, packet);
break;
case XFA_Element::SoapAddress:
node = pdfium::MakeUnique<CXFA_SoapAddress>(doc, packet);
break;
case XFA_Element::Equate:
node = pdfium::MakeUnique<CXFA_Equate>(doc, packet);
break;
case XFA_Element::FormFieldFilling:
node = pdfium::MakeUnique<CXFA_FormFieldFilling>(doc, packet);
break;
case XFA_Element::PageRange:
node = pdfium::MakeUnique<CXFA_PageRange>(doc, packet);
break;
case XFA_Element::Update:
node = pdfium::MakeUnique<CXFA_Update>(doc, packet);
break;
case XFA_Element::ConnectString:
node = pdfium::MakeUnique<CXFA_ConnectString>(doc, packet);
break;
case XFA_Element::Mode:
node = pdfium::MakeUnique<CXFA_Mode>(doc, packet);
break;
case XFA_Element::Layout:
node = pdfium::MakeUnique<CXFA_Layout>(doc, packet);
break;
case XFA_Element::Sharpxml:
node = pdfium::MakeUnique<CXFA_Sharpxml>(doc, packet);
break;
case XFA_Element::XsdConnection:
node = pdfium::MakeUnique<CXFA_XsdConnection>(doc, packet);
break;
case XFA_Element::Traverse:
node = pdfium::MakeUnique<CXFA_Traverse>(doc, packet);
break;
case XFA_Element::Encodings:
node = pdfium::MakeUnique<CXFA_Encodings>(doc, packet);
break;
case XFA_Element::Template:
node = pdfium::MakeUnique<CXFA_Template>(doc, packet);
break;
case XFA_Element::Acrobat:
node = pdfium::MakeUnique<CXFA_Acrobat>(doc, packet);
break;
case XFA_Element::ValidationMessaging:
node = pdfium::MakeUnique<CXFA_ValidationMessaging>(doc, packet);
break;
case XFA_Element::Signing:
node = pdfium::MakeUnique<CXFA_Signing>(doc, packet);
break;
case XFA_Element::Script:
node = pdfium::MakeUnique<CXFA_Script>(doc, packet);
break;
case XFA_Element::AddViewerPreferences:
node = pdfium::MakeUnique<CXFA_AddViewerPreferences>(doc, packet);
break;
case XFA_Element::AlwaysEmbed:
node = pdfium::MakeUnique<CXFA_AlwaysEmbed>(doc, packet);
break;
case XFA_Element::PasswordEdit:
node = pdfium::MakeUnique<CXFA_PasswordEdit>(doc, packet);
break;
case XFA_Element::NumericEdit:
node = pdfium::MakeUnique<CXFA_NumericEdit>(doc, packet);
break;
case XFA_Element::EncryptionMethod:
node = pdfium::MakeUnique<CXFA_EncryptionMethod>(doc, packet);
break;
case XFA_Element::Change:
node = pdfium::MakeUnique<CXFA_Change>(doc, packet);
break;
case XFA_Element::PageArea:
node = pdfium::MakeUnique<CXFA_PageArea>(doc, packet);
break;
case XFA_Element::SubmitUrl:
node = pdfium::MakeUnique<CXFA_SubmitUrl>(doc, packet);
break;
case XFA_Element::Oids:
node = pdfium::MakeUnique<CXFA_Oids>(doc, packet);
break;
case XFA_Element::Signature:
node = pdfium::MakeUnique<CXFA_Signature>(doc, packet);
break;
case XFA_Element::ADBE_JSConsole:
node = pdfium::MakeUnique<CXFA_aDBE_JSConsole>(doc, packet);
break;
case XFA_Element::Caption:
node = pdfium::MakeUnique<CXFA_Caption>(doc, packet);
break;
case XFA_Element::Relevant:
node = pdfium::MakeUnique<CXFA_Relevant>(doc, packet);
break;
case XFA_Element::FlipLabel:
node = pdfium::MakeUnique<CXFA_FlipLabel>(doc, packet);
break;
case XFA_Element::ExData:
node = pdfium::MakeUnique<CXFA_ExData>(doc, packet);
break;
case XFA_Element::DayNames:
node = pdfium::MakeUnique<CXFA_DayNames>(doc, packet);
break;
case XFA_Element::SoapAction:
node = pdfium::MakeUnique<CXFA_SoapAction>(doc, packet);
break;
case XFA_Element::DefaultTypeface:
node = pdfium::MakeUnique<CXFA_DefaultTypeface>(doc, packet);
break;
case XFA_Element::Manifest:
node = pdfium::MakeUnique<CXFA_Manifest>(doc, packet);
break;
case XFA_Element::Overflow:
node = pdfium::MakeUnique<CXFA_Overflow>(doc, packet);
break;
case XFA_Element::Linear:
node = pdfium::MakeUnique<CXFA_Linear>(doc, packet);
break;
case XFA_Element::CurrencySymbol:
node = pdfium::MakeUnique<CXFA_CurrencySymbol>(doc, packet);
break;
case XFA_Element::Delete:
node = pdfium::MakeUnique<CXFA_Delete>(doc, packet);
break;
case XFA_Element::DigestMethod:
node = pdfium::MakeUnique<CXFA_DigestMethod>(doc, packet);
break;
case XFA_Element::InstanceManager:
node = pdfium::MakeUnique<CXFA_InstanceManager>(doc, packet);
break;
case XFA_Element::EquateRange:
node = pdfium::MakeUnique<CXFA_EquateRange>(doc, packet);
break;
case XFA_Element::Medium:
node = pdfium::MakeUnique<CXFA_Medium>(doc, packet);
break;
case XFA_Element::TextEdit:
node = pdfium::MakeUnique<CXFA_TextEdit>(doc, packet);
break;
case XFA_Element::TemplateCache:
node = pdfium::MakeUnique<CXFA_TemplateCache>(doc, packet);
break;
case XFA_Element::CompressObjectStream:
node = pdfium::MakeUnique<CXFA_CompressObjectStream>(doc, packet);
break;
case XFA_Element::DataValue:
node = pdfium::MakeUnique<CXFA_DataValue>(doc, packet);
break;
case XFA_Element::AccessibleContent:
node = pdfium::MakeUnique<CXFA_AccessibleContent>(doc, packet);
break;
case XFA_Element::IncludeXDPContent:
node = pdfium::MakeUnique<CXFA_IncludeXDPContent>(doc, packet);
break;
case XFA_Element::XmlConnection:
node = pdfium::MakeUnique<CXFA_XmlConnection>(doc, packet);
break;
case XFA_Element::ValidateApprovalSignatures:
node = pdfium::MakeUnique<CXFA_ValidateApprovalSignatures>(doc, packet);
break;
case XFA_Element::SignData:
node = pdfium::MakeUnique<CXFA_SignData>(doc, packet);
break;
case XFA_Element::Packets:
node = pdfium::MakeUnique<CXFA_Packets>(doc, packet);
break;
case XFA_Element::DatePattern:
node = pdfium::MakeUnique<CXFA_DatePattern>(doc, packet);
break;
case XFA_Element::DuplexOption:
node = pdfium::MakeUnique<CXFA_DuplexOption>(doc, packet);
break;
case XFA_Element::Base:
node = pdfium::MakeUnique<CXFA_Base>(doc, packet);
break;
case XFA_Element::Bind:
node = pdfium::MakeUnique<CXFA_Bind>(doc, packet);
break;
case XFA_Element::Compression:
node = pdfium::MakeUnique<CXFA_Compression>(doc, packet);
break;
case XFA_Element::User:
node = pdfium::MakeUnique<CXFA_User>(doc, packet);
break;
case XFA_Element::Rectangle:
node = pdfium::MakeUnique<CXFA_Rectangle>(doc, packet);
break;
case XFA_Element::EffectiveOutputPolicy:
node = pdfium::MakeUnique<CXFA_EffectiveOutputPolicy>(doc, packet);
break;
case XFA_Element::ADBE_JSDebugger:
node = pdfium::MakeUnique<CXFA_aDBE_JSDebugger>(doc, packet);
break;
case XFA_Element::Acrobat7:
node = pdfium::MakeUnique<CXFA_Acrobat7>(doc, packet);
break;
case XFA_Element::Interactive:
node = pdfium::MakeUnique<CXFA_Interactive>(doc, packet);
break;
case XFA_Element::Locale:
node = pdfium::MakeUnique<CXFA_Locale>(doc, packet);
break;
case XFA_Element::CurrentPage:
node = pdfium::MakeUnique<CXFA_CurrentPage>(doc, packet);
break;
case XFA_Element::Data:
node = pdfium::MakeUnique<CXFA_Data>(doc, packet);
break;
case XFA_Element::Date:
node = pdfium::MakeUnique<CXFA_Date>(doc, packet);
break;
case XFA_Element::Desc:
node = pdfium::MakeUnique<CXFA_Desc>(doc, packet);
break;
case XFA_Element::Encrypt:
node = pdfium::MakeUnique<CXFA_Encrypt>(doc, packet);
break;
case XFA_Element::Draw:
node = pdfium::MakeUnique<CXFA_Draw>(doc, packet);
break;
case XFA_Element::Encryption:
node = pdfium::MakeUnique<CXFA_Encryption>(doc, packet);
break;
case XFA_Element::MeridiemNames:
node = pdfium::MakeUnique<CXFA_MeridiemNames>(doc, packet);
break;
case XFA_Element::Messaging:
node = pdfium::MakeUnique<CXFA_Messaging>(doc, packet);
break;
case XFA_Element::Speak:
node = pdfium::MakeUnique<CXFA_Speak>(doc, packet);
break;
case XFA_Element::DataGroup:
node = pdfium::MakeUnique<CXFA_DataGroup>(doc, packet);
break;
case XFA_Element::Common:
node = pdfium::MakeUnique<CXFA_Common>(doc, packet);
break;
case XFA_Element::Sharptext:
node = pdfium::MakeUnique<CXFA_Sharptext>(doc, packet);
break;
case XFA_Element::PaginationOverride:
node = pdfium::MakeUnique<CXFA_PaginationOverride>(doc, packet);
break;
case XFA_Element::Reasons:
node = pdfium::MakeUnique<CXFA_Reasons>(doc, packet);
break;
case XFA_Element::SignatureProperties:
node = pdfium::MakeUnique<CXFA_SignatureProperties>(doc, packet);
break;
case XFA_Element::Threshold:
node = pdfium::MakeUnique<CXFA_Threshold>(doc, packet);
break;
case XFA_Element::AppearanceFilter:
node = pdfium::MakeUnique<CXFA_AppearanceFilter>(doc, packet);
break;
case XFA_Element::Fill:
node = pdfium::MakeUnique<CXFA_Fill>(doc, packet);
break;
case XFA_Element::Font:
node = pdfium::MakeUnique<CXFA_Font>(doc, packet);
break;
case XFA_Element::Form:
node = pdfium::MakeUnique<CXFA_Form>(doc, packet);
break;
case XFA_Element::MediumInfo:
node = pdfium::MakeUnique<CXFA_MediumInfo>(doc, packet);
break;
case XFA_Element::Certificate:
node = pdfium::MakeUnique<CXFA_Certificate>(doc, packet);
break;
case XFA_Element::Password:
node = pdfium::MakeUnique<CXFA_Password>(doc, packet);
break;
case XFA_Element::RunScripts:
node = pdfium::MakeUnique<CXFA_RunScripts>(doc, packet);
break;
case XFA_Element::Trace:
node = pdfium::MakeUnique<CXFA_Trace>(doc, packet);
break;
case XFA_Element::Float:
node = pdfium::MakeUnique<CXFA_Float>(doc, packet);
break;
case XFA_Element::RenderPolicy:
node = pdfium::MakeUnique<CXFA_RenderPolicy>(doc, packet);
break;
case XFA_Element::Destination:
node = pdfium::MakeUnique<CXFA_Destination>(doc, packet);
break;
case XFA_Element::Value:
node = pdfium::MakeUnique<CXFA_Value>(doc, packet);
break;
case XFA_Element::Bookend:
node = pdfium::MakeUnique<CXFA_Bookend>(doc, packet);
break;
case XFA_Element::ExObject:
node = pdfium::MakeUnique<CXFA_ExObject>(doc, packet);
break;
case XFA_Element::OpenAction:
node = pdfium::MakeUnique<CXFA_OpenAction>(doc, packet);
break;
case XFA_Element::NeverEmbed:
node = pdfium::MakeUnique<CXFA_NeverEmbed>(doc, packet);
break;
case XFA_Element::BindItems:
node = pdfium::MakeUnique<CXFA_BindItems>(doc, packet);
break;
case XFA_Element::Calculate:
node = pdfium::MakeUnique<CXFA_Calculate>(doc, packet);
break;
case XFA_Element::Print:
node = pdfium::MakeUnique<CXFA_Print>(doc, packet);
break;
case XFA_Element::Extras:
node = pdfium::MakeUnique<CXFA_Extras>(doc, packet);
break;
case XFA_Element::Proto:
node = pdfium::MakeUnique<CXFA_Proto>(doc, packet);
break;
case XFA_Element::DSigData:
node = pdfium::MakeUnique<CXFA_DSigData>(doc, packet);
break;
case XFA_Element::Creator:
node = pdfium::MakeUnique<CXFA_Creator>(doc, packet);
break;
case XFA_Element::Connect:
node = pdfium::MakeUnique<CXFA_Connect>(doc, packet);
break;
case XFA_Element::Permissions:
node = pdfium::MakeUnique<CXFA_Permissions>(doc, packet);
break;
case XFA_Element::ConnectionSet:
node = pdfium::MakeUnique<CXFA_ConnectionSet>(doc, packet);
break;
case XFA_Element::Submit:
node = pdfium::MakeUnique<CXFA_Submit>(doc, packet);
break;
case XFA_Element::Range:
node = pdfium::MakeUnique<CXFA_Range>(doc, packet);
break;
case XFA_Element::Linearized:
node = pdfium::MakeUnique<CXFA_Linearized>(doc, packet);
break;
case XFA_Element::Packet:
node = pdfium::MakeUnique<CXFA_Packet>(doc, packet);
break;
case XFA_Element::RootElement:
node = pdfium::MakeUnique<CXFA_RootElement>(doc, packet);
break;
case XFA_Element::PlaintextMetadata:
node = pdfium::MakeUnique<CXFA_PlaintextMetadata>(doc, packet);
break;
case XFA_Element::NumberSymbols:
node = pdfium::MakeUnique<CXFA_NumberSymbols>(doc, packet);
break;
case XFA_Element::PrintHighQuality:
node = pdfium::MakeUnique<CXFA_PrintHighQuality>(doc, packet);
break;
case XFA_Element::Driver:
node = pdfium::MakeUnique<CXFA_Driver>(doc, packet);
break;
case XFA_Element::IncrementalLoad:
node = pdfium::MakeUnique<CXFA_IncrementalLoad>(doc, packet);
break;
case XFA_Element::SubjectDN:
node = pdfium::MakeUnique<CXFA_SubjectDN>(doc, packet);
break;
case XFA_Element::CompressLogicalStructure:
node = pdfium::MakeUnique<CXFA_CompressLogicalStructure>(doc, packet);
break;
case XFA_Element::IncrementalMerge:
node = pdfium::MakeUnique<CXFA_IncrementalMerge>(doc, packet);
break;
case XFA_Element::Radial:
node = pdfium::MakeUnique<CXFA_Radial>(doc, packet);
break;
case XFA_Element::Variables:
node = pdfium::MakeUnique<CXFA_Variables>(doc, packet);
break;
case XFA_Element::TimePatterns:
node = pdfium::MakeUnique<CXFA_TimePatterns>(doc, packet);
break;
case XFA_Element::EffectiveInputPolicy:
node = pdfium::MakeUnique<CXFA_EffectiveInputPolicy>(doc, packet);
break;
case XFA_Element::NameAttr:
node = pdfium::MakeUnique<CXFA_NameAttr>(doc, packet);
break;
case XFA_Element::Conformance:
node = pdfium::MakeUnique<CXFA_Conformance>(doc, packet);
break;
case XFA_Element::Transform:
node = pdfium::MakeUnique<CXFA_Transform>(doc, packet);
break;
case XFA_Element::LockDocument:
node = pdfium::MakeUnique<CXFA_LockDocument>(doc, packet);
break;
case XFA_Element::BreakAfter:
node = pdfium::MakeUnique<CXFA_BreakAfter>(doc, packet);
break;
case XFA_Element::Line:
node = pdfium::MakeUnique<CXFA_Line>(doc, packet);
break;
case XFA_Element::Source:
node = pdfium::MakeUnique<CXFA_Source>(doc, packet);
break;
case XFA_Element::Occur:
node = pdfium::MakeUnique<CXFA_Occur>(doc, packet);
break;
case XFA_Element::PickTrayByPDFSize:
node = pdfium::MakeUnique<CXFA_PickTrayByPDFSize>(doc, packet);
break;
case XFA_Element::MonthNames:
node = pdfium::MakeUnique<CXFA_MonthNames>(doc, packet);
break;
case XFA_Element::Severity:
node = pdfium::MakeUnique<CXFA_Severity>(doc, packet);
break;
case XFA_Element::GroupParent:
node = pdfium::MakeUnique<CXFA_GroupParent>(doc, packet);
break;
case XFA_Element::DocumentAssembly:
node = pdfium::MakeUnique<CXFA_DocumentAssembly>(doc, packet);
break;
case XFA_Element::NumberSymbol:
node = pdfium::MakeUnique<CXFA_NumberSymbol>(doc, packet);
break;
case XFA_Element::Tagged:
node = pdfium::MakeUnique<CXFA_Tagged>(doc, packet);
break;
case XFA_Element::Items:
node = pdfium::MakeUnique<CXFA_Items>(doc, packet);
break;
default:
NOTREACHED();
return nullptr;
}
if (!node || !node->IsValidInPacket(packet))
return nullptr;
return node;
}
// static
WideString CXFA_Node::AttributeToName(XFA_Attribute attr) {
return WideString::FromASCII(AttributeToNameASCII(attr));
}