Home | History | Annotate | Download | only in parser
      1 // Copyright 2017 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #include <memory>
      8 
      9 #include "third_party/base/ptr_util.h"
     10 #include "xfa/fxfa/parser/cxfa_accessiblecontent.h"
     11 #include "xfa/fxfa/parser/cxfa_acrobat.h"
     12 #include "xfa/fxfa/parser/cxfa_acrobat7.h"
     13 #include "xfa/fxfa/parser/cxfa_adbe_jsconsole.h"
     14 #include "xfa/fxfa/parser/cxfa_adbe_jsdebugger.h"
     15 #include "xfa/fxfa/parser/cxfa_addsilentprint.h"
     16 #include "xfa/fxfa/parser/cxfa_addviewerpreferences.h"
     17 #include "xfa/fxfa/parser/cxfa_adjustdata.h"
     18 #include "xfa/fxfa/parser/cxfa_adobeextensionlevel.h"
     19 #include "xfa/fxfa/parser/cxfa_agent.h"
     20 #include "xfa/fxfa/parser/cxfa_alwaysembed.h"
     21 #include "xfa/fxfa/parser/cxfa_amd.h"
     22 #include "xfa/fxfa/parser/cxfa_appearancefilter.h"
     23 #include "xfa/fxfa/parser/cxfa_arc.h"
     24 #include "xfa/fxfa/parser/cxfa_area.h"
     25 #include "xfa/fxfa/parser/cxfa_assist.h"
     26 #include "xfa/fxfa/parser/cxfa_attributes.h"
     27 #include "xfa/fxfa/parser/cxfa_autosave.h"
     28 #include "xfa/fxfa/parser/cxfa_barcode.h"
     29 #include "xfa/fxfa/parser/cxfa_base.h"
     30 #include "xfa/fxfa/parser/cxfa_batchoutput.h"
     31 #include "xfa/fxfa/parser/cxfa_behavioroverride.h"
     32 #include "xfa/fxfa/parser/cxfa_bind.h"
     33 #include "xfa/fxfa/parser/cxfa_binditems.h"
     34 #include "xfa/fxfa/parser/cxfa_bookend.h"
     35 #include "xfa/fxfa/parser/cxfa_boolean.h"
     36 #include "xfa/fxfa/parser/cxfa_border.h"
     37 #include "xfa/fxfa/parser/cxfa_break.h"
     38 #include "xfa/fxfa/parser/cxfa_breakafter.h"
     39 #include "xfa/fxfa/parser/cxfa_breakbefore.h"
     40 #include "xfa/fxfa/parser/cxfa_button.h"
     41 #include "xfa/fxfa/parser/cxfa_cache.h"
     42 #include "xfa/fxfa/parser/cxfa_calculate.h"
     43 #include "xfa/fxfa/parser/cxfa_calendarsymbols.h"
     44 #include "xfa/fxfa/parser/cxfa_caption.h"
     45 #include "xfa/fxfa/parser/cxfa_certificate.h"
     46 #include "xfa/fxfa/parser/cxfa_certificates.h"
     47 #include "xfa/fxfa/parser/cxfa_change.h"
     48 #include "xfa/fxfa/parser/cxfa_checkbutton.h"
     49 #include "xfa/fxfa/parser/cxfa_choicelist.h"
     50 #include "xfa/fxfa/parser/cxfa_color.h"
     51 #include "xfa/fxfa/parser/cxfa_comb.h"
     52 #include "xfa/fxfa/parser/cxfa_command.h"
     53 #include "xfa/fxfa/parser/cxfa_common.h"
     54 #include "xfa/fxfa/parser/cxfa_compress.h"
     55 #include "xfa/fxfa/parser/cxfa_compression.h"
     56 #include "xfa/fxfa/parser/cxfa_compresslogicalstructure.h"
     57 #include "xfa/fxfa/parser/cxfa_compressobjectstream.h"
     58 #include "xfa/fxfa/parser/cxfa_config.h"
     59 #include "xfa/fxfa/parser/cxfa_conformance.h"
     60 #include "xfa/fxfa/parser/cxfa_connect.h"
     61 #include "xfa/fxfa/parser/cxfa_connectionset.h"
     62 #include "xfa/fxfa/parser/cxfa_connectstring.h"
     63 #include "xfa/fxfa/parser/cxfa_contentarea.h"
     64 #include "xfa/fxfa/parser/cxfa_contentcopy.h"
     65 #include "xfa/fxfa/parser/cxfa_copies.h"
     66 #include "xfa/fxfa/parser/cxfa_corner.h"
     67 #include "xfa/fxfa/parser/cxfa_creator.h"
     68 #include "xfa/fxfa/parser/cxfa_currencysymbol.h"
     69 #include "xfa/fxfa/parser/cxfa_currencysymbols.h"
     70 #include "xfa/fxfa/parser/cxfa_currentpage.h"
     71 #include "xfa/fxfa/parser/cxfa_data.h"
     72 #include "xfa/fxfa/parser/cxfa_datagroup.h"
     73 #include "xfa/fxfa/parser/cxfa_datamodel.h"
     74 #include "xfa/fxfa/parser/cxfa_datavalue.h"
     75 #include "xfa/fxfa/parser/cxfa_date.h"
     76 #include "xfa/fxfa/parser/cxfa_datepattern.h"
     77 #include "xfa/fxfa/parser/cxfa_datepatterns.h"
     78 #include "xfa/fxfa/parser/cxfa_datetime.h"
     79 #include "xfa/fxfa/parser/cxfa_datetimeedit.h"
     80 #include "xfa/fxfa/parser/cxfa_datetimesymbols.h"
     81 #include "xfa/fxfa/parser/cxfa_day.h"
     82 #include "xfa/fxfa/parser/cxfa_daynames.h"
     83 #include "xfa/fxfa/parser/cxfa_debug.h"
     84 #include "xfa/fxfa/parser/cxfa_decimal.h"
     85 #include "xfa/fxfa/parser/cxfa_defaulttypeface.h"
     86 #include "xfa/fxfa/parser/cxfa_defaultui.h"
     87 #include "xfa/fxfa/parser/cxfa_delete.h"
     88 #include "xfa/fxfa/parser/cxfa_delta.h"
     89 #include "xfa/fxfa/parser/cxfa_deltas.h"
     90 #include "xfa/fxfa/parser/cxfa_desc.h"
     91 #include "xfa/fxfa/parser/cxfa_destination.h"
     92 #include "xfa/fxfa/parser/cxfa_digestmethod.h"
     93 #include "xfa/fxfa/parser/cxfa_digestmethods.h"
     94 #include "xfa/fxfa/parser/cxfa_documentassembly.h"
     95 #include "xfa/fxfa/parser/cxfa_draw.h"
     96 #include "xfa/fxfa/parser/cxfa_driver.h"
     97 #include "xfa/fxfa/parser/cxfa_dsigdata.h"
     98 #include "xfa/fxfa/parser/cxfa_duplexoption.h"
     99 #include "xfa/fxfa/parser/cxfa_dynamicrender.h"
    100 #include "xfa/fxfa/parser/cxfa_edge.h"
    101 #include "xfa/fxfa/parser/cxfa_effectiveinputpolicy.h"
    102 #include "xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h"
    103 #include "xfa/fxfa/parser/cxfa_embed.h"
    104 #include "xfa/fxfa/parser/cxfa_encoding.h"
    105 #include "xfa/fxfa/parser/cxfa_encodings.h"
    106 #include "xfa/fxfa/parser/cxfa_encrypt.h"
    107 #include "xfa/fxfa/parser/cxfa_encryption.h"
    108 #include "xfa/fxfa/parser/cxfa_encryptionlevel.h"
    109 #include "xfa/fxfa/parser/cxfa_encryptionmethod.h"
    110 #include "xfa/fxfa/parser/cxfa_encryptionmethods.h"
    111 #include "xfa/fxfa/parser/cxfa_enforce.h"
    112 #include "xfa/fxfa/parser/cxfa_equate.h"
    113 #include "xfa/fxfa/parser/cxfa_equaterange.h"
    114 #include "xfa/fxfa/parser/cxfa_era.h"
    115 #include "xfa/fxfa/parser/cxfa_eranames.h"
    116 #include "xfa/fxfa/parser/cxfa_event.h"
    117 #include "xfa/fxfa/parser/cxfa_exclgroup.h"
    118 #include "xfa/fxfa/parser/cxfa_exclude.h"
    119 #include "xfa/fxfa/parser/cxfa_excludens.h"
    120 #include "xfa/fxfa/parser/cxfa_exdata.h"
    121 #include "xfa/fxfa/parser/cxfa_execute.h"
    122 #include "xfa/fxfa/parser/cxfa_exobject.h"
    123 #include "xfa/fxfa/parser/cxfa_extras.h"
    124 #include "xfa/fxfa/parser/cxfa_field.h"
    125 #include "xfa/fxfa/parser/cxfa_fill.h"
    126 #include "xfa/fxfa/parser/cxfa_filter.h"
    127 #include "xfa/fxfa/parser/cxfa_fliplabel.h"
    128 #include "xfa/fxfa/parser/cxfa_float.h"
    129 #include "xfa/fxfa/parser/cxfa_font.h"
    130 #include "xfa/fxfa/parser/cxfa_fontinfo.h"
    131 #include "xfa/fxfa/parser/cxfa_form.h"
    132 #include "xfa/fxfa/parser/cxfa_format.h"
    133 #include "xfa/fxfa/parser/cxfa_formfieldfilling.h"
    134 #include "xfa/fxfa/parser/cxfa_groupparent.h"
    135 #include "xfa/fxfa/parser/cxfa_handler.h"
    136 #include "xfa/fxfa/parser/cxfa_hyphenation.h"
    137 #include "xfa/fxfa/parser/cxfa_ifempty.h"
    138 #include "xfa/fxfa/parser/cxfa_image.h"
    139 #include "xfa/fxfa/parser/cxfa_imageedit.h"
    140 #include "xfa/fxfa/parser/cxfa_includexdpcontent.h"
    141 #include "xfa/fxfa/parser/cxfa_incrementalload.h"
    142 #include "xfa/fxfa/parser/cxfa_incrementalmerge.h"
    143 #include "xfa/fxfa/parser/cxfa_insert.h"
    144 #include "xfa/fxfa/parser/cxfa_instancemanager.h"
    145 #include "xfa/fxfa/parser/cxfa_integer.h"
    146 #include "xfa/fxfa/parser/cxfa_interactive.h"
    147 #include "xfa/fxfa/parser/cxfa_issuers.h"
    148 #include "xfa/fxfa/parser/cxfa_items.h"
    149 #include "xfa/fxfa/parser/cxfa_jog.h"
    150 #include "xfa/fxfa/parser/cxfa_keep.h"
    151 #include "xfa/fxfa/parser/cxfa_keyusage.h"
    152 #include "xfa/fxfa/parser/cxfa_labelprinter.h"
    153 #include "xfa/fxfa/parser/cxfa_layout.h"
    154 #include "xfa/fxfa/parser/cxfa_level.h"
    155 #include "xfa/fxfa/parser/cxfa_line.h"
    156 #include "xfa/fxfa/parser/cxfa_linear.h"
    157 #include "xfa/fxfa/parser/cxfa_linearized.h"
    158 #include "xfa/fxfa/parser/cxfa_locale.h"
    159 #include "xfa/fxfa/parser/cxfa_localeset.h"
    160 #include "xfa/fxfa/parser/cxfa_lockdocument.h"
    161 #include "xfa/fxfa/parser/cxfa_log.h"
    162 #include "xfa/fxfa/parser/cxfa_manifest.h"
    163 #include "xfa/fxfa/parser/cxfa_map.h"
    164 #include "xfa/fxfa/parser/cxfa_margin.h"
    165 #include "xfa/fxfa/parser/cxfa_mdp.h"
    166 #include "xfa/fxfa/parser/cxfa_medium.h"
    167 #include "xfa/fxfa/parser/cxfa_mediuminfo.h"
    168 #include "xfa/fxfa/parser/cxfa_meridiem.h"
    169 #include "xfa/fxfa/parser/cxfa_meridiemnames.h"
    170 #include "xfa/fxfa/parser/cxfa_message.h"
    171 #include "xfa/fxfa/parser/cxfa_messaging.h"
    172 #include "xfa/fxfa/parser/cxfa_mode.h"
    173 #include "xfa/fxfa/parser/cxfa_modifyannots.h"
    174 #include "xfa/fxfa/parser/cxfa_month.h"
    175 #include "xfa/fxfa/parser/cxfa_monthnames.h"
    176 #include "xfa/fxfa/parser/cxfa_msgid.h"
    177 #include "xfa/fxfa/parser/cxfa_nameattr.h"
    178 #include "xfa/fxfa/parser/cxfa_neverembed.h"
    179 #include "xfa/fxfa/parser/cxfa_node.h"
    180 #include "xfa/fxfa/parser/cxfa_numberofcopies.h"
    181 #include "xfa/fxfa/parser/cxfa_numberpattern.h"
    182 #include "xfa/fxfa/parser/cxfa_numberpatterns.h"
    183 #include "xfa/fxfa/parser/cxfa_numbersymbol.h"
    184 #include "xfa/fxfa/parser/cxfa_numbersymbols.h"
    185 #include "xfa/fxfa/parser/cxfa_numericedit.h"
    186 #include "xfa/fxfa/parser/cxfa_occur.h"
    187 #include "xfa/fxfa/parser/cxfa_oid.h"
    188 #include "xfa/fxfa/parser/cxfa_oids.h"
    189 #include "xfa/fxfa/parser/cxfa_openaction.h"
    190 #include "xfa/fxfa/parser/cxfa_operation.h"
    191 #include "xfa/fxfa/parser/cxfa_output.h"
    192 #include "xfa/fxfa/parser/cxfa_outputbin.h"
    193 #include "xfa/fxfa/parser/cxfa_outputxsl.h"
    194 #include "xfa/fxfa/parser/cxfa_overflow.h"
    195 #include "xfa/fxfa/parser/cxfa_overprint.h"
    196 #include "xfa/fxfa/parser/cxfa_packet.h"
    197 #include "xfa/fxfa/parser/cxfa_packets.h"
    198 #include "xfa/fxfa/parser/cxfa_pagearea.h"
    199 #include "xfa/fxfa/parser/cxfa_pageoffset.h"
    200 #include "xfa/fxfa/parser/cxfa_pagerange.h"
    201 #include "xfa/fxfa/parser/cxfa_pageset.h"
    202 #include "xfa/fxfa/parser/cxfa_pagination.h"
    203 #include "xfa/fxfa/parser/cxfa_paginationoverride.h"
    204 #include "xfa/fxfa/parser/cxfa_para.h"
    205 #include "xfa/fxfa/parser/cxfa_part.h"
    206 #include "xfa/fxfa/parser/cxfa_password.h"
    207 #include "xfa/fxfa/parser/cxfa_passwordedit.h"
    208 #include "xfa/fxfa/parser/cxfa_pattern.h"
    209 #include "xfa/fxfa/parser/cxfa_pcl.h"
    210 #include "xfa/fxfa/parser/cxfa_pdf.h"
    211 #include "xfa/fxfa/parser/cxfa_pdfa.h"
    212 #include "xfa/fxfa/parser/cxfa_permissions.h"
    213 #include "xfa/fxfa/parser/cxfa_picktraybypdfsize.h"
    214 #include "xfa/fxfa/parser/cxfa_picture.h"
    215 #include "xfa/fxfa/parser/cxfa_plaintextmetadata.h"
    216 #include "xfa/fxfa/parser/cxfa_presence.h"
    217 #include "xfa/fxfa/parser/cxfa_present.h"
    218 #include "xfa/fxfa/parser/cxfa_print.h"
    219 #include "xfa/fxfa/parser/cxfa_printername.h"
    220 #include "xfa/fxfa/parser/cxfa_printhighquality.h"
    221 #include "xfa/fxfa/parser/cxfa_printscaling.h"
    222 #include "xfa/fxfa/parser/cxfa_producer.h"
    223 #include "xfa/fxfa/parser/cxfa_proto.h"
    224 #include "xfa/fxfa/parser/cxfa_ps.h"
    225 #include "xfa/fxfa/parser/cxfa_psmap.h"
    226 #include "xfa/fxfa/parser/cxfa_query.h"
    227 #include "xfa/fxfa/parser/cxfa_radial.h"
    228 #include "xfa/fxfa/parser/cxfa_range.h"
    229 #include "xfa/fxfa/parser/cxfa_reason.h"
    230 #include "xfa/fxfa/parser/cxfa_reasons.h"
    231 #include "xfa/fxfa/parser/cxfa_record.h"
    232 #include "xfa/fxfa/parser/cxfa_recordset.h"
    233 #include "xfa/fxfa/parser/cxfa_rectangle.h"
    234 #include "xfa/fxfa/parser/cxfa_ref.h"
    235 #include "xfa/fxfa/parser/cxfa_relevant.h"
    236 #include "xfa/fxfa/parser/cxfa_rename.h"
    237 #include "xfa/fxfa/parser/cxfa_renderpolicy.h"
    238 #include "xfa/fxfa/parser/cxfa_rootelement.h"
    239 #include "xfa/fxfa/parser/cxfa_runscripts.h"
    240 #include "xfa/fxfa/parser/cxfa_script.h"
    241 #include "xfa/fxfa/parser/cxfa_scriptmodel.h"
    242 #include "xfa/fxfa/parser/cxfa_select.h"
    243 #include "xfa/fxfa/parser/cxfa_setproperty.h"
    244 #include "xfa/fxfa/parser/cxfa_severity.h"
    245 #include "xfa/fxfa/parser/cxfa_sharptext.h"
    246 #include "xfa/fxfa/parser/cxfa_sharpxhtml.h"
    247 #include "xfa/fxfa/parser/cxfa_sharpxml.h"
    248 #include "xfa/fxfa/parser/cxfa_signature.h"
    249 #include "xfa/fxfa/parser/cxfa_signatureproperties.h"
    250 #include "xfa/fxfa/parser/cxfa_signdata.h"
    251 #include "xfa/fxfa/parser/cxfa_signing.h"
    252 #include "xfa/fxfa/parser/cxfa_silentprint.h"
    253 #include "xfa/fxfa/parser/cxfa_soapaction.h"
    254 #include "xfa/fxfa/parser/cxfa_soapaddress.h"
    255 #include "xfa/fxfa/parser/cxfa_solid.h"
    256 #include "xfa/fxfa/parser/cxfa_source.h"
    257 #include "xfa/fxfa/parser/cxfa_sourceset.h"
    258 #include "xfa/fxfa/parser/cxfa_speak.h"
    259 #include "xfa/fxfa/parser/cxfa_staple.h"
    260 #include "xfa/fxfa/parser/cxfa_startnode.h"
    261 #include "xfa/fxfa/parser/cxfa_startpage.h"
    262 #include "xfa/fxfa/parser/cxfa_stipple.h"
    263 #include "xfa/fxfa/parser/cxfa_subform.h"
    264 #include "xfa/fxfa/parser/cxfa_subformset.h"
    265 #include "xfa/fxfa/parser/cxfa_subjectdn.h"
    266 #include "xfa/fxfa/parser/cxfa_subjectdns.h"
    267 #include "xfa/fxfa/parser/cxfa_submit.h"
    268 #include "xfa/fxfa/parser/cxfa_submitformat.h"
    269 #include "xfa/fxfa/parser/cxfa_submiturl.h"
    270 #include "xfa/fxfa/parser/cxfa_subsetbelow.h"
    271 #include "xfa/fxfa/parser/cxfa_suppressbanner.h"
    272 #include "xfa/fxfa/parser/cxfa_tagged.h"
    273 #include "xfa/fxfa/parser/cxfa_template.h"
    274 #include "xfa/fxfa/parser/cxfa_templatecache.h"
    275 #include "xfa/fxfa/parser/cxfa_text.h"
    276 #include "xfa/fxfa/parser/cxfa_textedit.h"
    277 #include "xfa/fxfa/parser/cxfa_threshold.h"
    278 #include "xfa/fxfa/parser/cxfa_time.h"
    279 #include "xfa/fxfa/parser/cxfa_timepattern.h"
    280 #include "xfa/fxfa/parser/cxfa_timepatterns.h"
    281 #include "xfa/fxfa/parser/cxfa_timestamp.h"
    282 #include "xfa/fxfa/parser/cxfa_to.h"
    283 #include "xfa/fxfa/parser/cxfa_tooltip.h"
    284 #include "xfa/fxfa/parser/cxfa_trace.h"
    285 #include "xfa/fxfa/parser/cxfa_transform.h"
    286 #include "xfa/fxfa/parser/cxfa_traversal.h"
    287 #include "xfa/fxfa/parser/cxfa_traverse.h"
    288 #include "xfa/fxfa/parser/cxfa_type.h"
    289 #include "xfa/fxfa/parser/cxfa_typeface.h"
    290 #include "xfa/fxfa/parser/cxfa_typefaces.h"
    291 #include "xfa/fxfa/parser/cxfa_ui.h"
    292 #include "xfa/fxfa/parser/cxfa_update.h"
    293 #include "xfa/fxfa/parser/cxfa_uri.h"
    294 #include "xfa/fxfa/parser/cxfa_user.h"
    295 #include "xfa/fxfa/parser/cxfa_validate.h"
    296 #include "xfa/fxfa/parser/cxfa_validateapprovalsignatures.h"
    297 #include "xfa/fxfa/parser/cxfa_validationmessaging.h"
    298 #include "xfa/fxfa/parser/cxfa_value.h"
    299 #include "xfa/fxfa/parser/cxfa_variables.h"
    300 #include "xfa/fxfa/parser/cxfa_version.h"
    301 #include "xfa/fxfa/parser/cxfa_versioncontrol.h"
    302 #include "xfa/fxfa/parser/cxfa_viewerpreferences.h"
    303 #include "xfa/fxfa/parser/cxfa_webclient.h"
    304 #include "xfa/fxfa/parser/cxfa_whitespace.h"
    305 #include "xfa/fxfa/parser/cxfa_window.h"
    306 #include "xfa/fxfa/parser/cxfa_wsdladdress.h"
    307 #include "xfa/fxfa/parser/cxfa_wsdlconnection.h"
    308 #include "xfa/fxfa/parser/cxfa_xdc.h"
    309 #include "xfa/fxfa/parser/cxfa_xdp.h"
    310 #include "xfa/fxfa/parser/cxfa_xfa.h"
    311 #include "xfa/fxfa/parser/cxfa_xmlconnection.h"
    312 #include "xfa/fxfa/parser/cxfa_xsdconnection.h"
    313 #include "xfa/fxfa/parser/cxfa_xsl.h"
    314 #include "xfa/fxfa/parser/cxfa_zpl.h"
    315 
    316 namespace {
    317 
    318 struct ElementNameInfo {
    319   uint32_t hash;
    320   XFA_Element element;
    321 } ElementNameToEnum[] = {
    322     {0x23ee3 /* ps */, XFA_Element::Ps},
    323     {0x25363 /* to */, XFA_Element::To},
    324     {0x2587e /* ui */, XFA_Element::Ui},
    325     {0x1c648b /* recordSet */, XFA_Element::RecordSet},
    326     {0x171428f /* subsetBelow */, XFA_Element::SubsetBelow},
    327     {0x1a0776a /* subformSet */, XFA_Element::SubformSet},
    328     {0x2340d70 /* adobeExtensionLevel */, XFA_Element::AdobeExtensionLevel},
    329     {0x2c1c7f1 /* typeface */, XFA_Element::Typeface},
    330     {0x5518c25 /* break */, XFA_Element::Break},
    331     {0x5fff523 /* fontInfo */, XFA_Element::FontInfo},
    332     {0x653a227 /* numberPattern */, XFA_Element::NumberPattern},
    333     {0x65b4a05 /* dynamicRender */, XFA_Element::DynamicRender},
    334     {0x7e4362e /* printScaling */, XFA_Element::PrintScaling},
    335     {0x7fe6d3a /* checkButton */, XFA_Element::CheckButton},
    336     {0x80cf58f /* datePatterns */, XFA_Element::DatePatterns},
    337     {0x811929d /* sourceSet */, XFA_Element::SourceSet},
    338     {0x9f9d612 /* amd */, XFA_Element::Amd},
    339     {0x9f9efb6 /* arc */, XFA_Element::Arc},
    340     {0xa48835e /* day */, XFA_Element::Day},
    341     {0xa6328b8 /* era */, XFA_Element::Era},
    342     {0xae6a0a0 /* jog */, XFA_Element::Jog},
    343     {0xb1b3d22 /* log */, XFA_Element::Log},
    344     {0xb35439e /* map */, XFA_Element::Map},
    345     {0xb355301 /* mdp */, XFA_Element::Mdp},
    346     {0xb420438 /* breakBefore */, XFA_Element::BreakBefore},
    347     {0xb6a091c /* oid */, XFA_Element::Oid},
    348     {0xb84389f /* pcl */, XFA_Element::Pcl},
    349     {0xb843dba /* pdf */, XFA_Element::Pdf},
    350     {0xbb8df5d /* ref */, XFA_Element::Ref},
    351     {0xc080cd0 /* uri */, XFA_Element::Uri},
    352     {0xc56afbf /* xdc */, XFA_Element::Xdc},
    353     {0xc56afcc /* xdp */, XFA_Element::Xdp},
    354     {0xc56b9ff /* xfa */, XFA_Element::Xfa},
    355     {0xc56fcb7 /* xsl */, XFA_Element::Xsl},
    356     {0xc8b89d6 /* zpl */, XFA_Element::Zpl},
    357     {0xc9bae94 /* cache */, XFA_Element::Cache},
    358     {0xcb016be /* margin */, XFA_Element::Margin},
    359     {0xe1378fe /* keyUsage */, XFA_Element::KeyUsage},
    360     {0xfe3596a /* exclude */, XFA_Element::Exclude},
    361     {0x10395ac7 /* choiceList */, XFA_Element::ChoiceList},
    362     {0x1059ec18 /* level */, XFA_Element::Level},
    363     {0x10874804 /* labelPrinter */, XFA_Element::LabelPrinter},
    364     {0x10c40e03 /* calendarSymbols */, XFA_Element::CalendarSymbols},
    365     {0x10f1ea24 /* para */, XFA_Element::Para},
    366     {0x10f1ea37 /* part */, XFA_Element::Part},
    367     {0x1140975b /* pdfa */, XFA_Element::Pdfa},
    368     {0x1154efe6 /* filter */, XFA_Element::Filter},
    369     {0x13f41de1 /* present */, XFA_Element::Present},
    370     {0x1827e6ea /* pagination */, XFA_Element::Pagination},
    371     {0x18463707 /* encoding */, XFA_Element::Encoding},
    372     {0x185e41e2 /* event */, XFA_Element::Event},
    373     {0x1adb142d /* whitespace */, XFA_Element::Whitespace},
    374     {0x1f3f64c3 /* defaultUi */, XFA_Element::DefaultUi},
    375     {0x204e87cb /* dataModel */, XFA_Element::DataModel},
    376     {0x2057b350 /* barcode */, XFA_Element::Barcode},
    377     {0x20596bad /* timePattern */, XFA_Element::TimePattern},
    378     {0x210b74d3 /* batchOutput */, XFA_Element::BatchOutput},
    379     {0x212ff0e2 /* enforce */, XFA_Element::Enforce},
    380     {0x21d351b4 /* currencySymbols */, XFA_Element::CurrencySymbols},
    381     {0x21db83c5 /* addSilentPrint */, XFA_Element::AddSilentPrint},
    382     {0x22266258 /* rename */, XFA_Element::Rename},
    383     {0x226ca8f1 /* operation */, XFA_Element::Operation},
    384     {0x23e27b84 /* typefaces */, XFA_Element::Typefaces},
    385     {0x23f4aa75 /* subjectDNs */, XFA_Element::SubjectDNs},
    386     {0x240d5e8e /* issuers */, XFA_Element::Issuers},
    387     {0x24a52f8a /* wsdlConnection */, XFA_Element::WsdlConnection},
    388     {0x254ebd07 /* debug */, XFA_Element::Debug},
    389     {0x2655c66a /* delta */, XFA_Element::Delta},
    390     {0x26c0daec /* eraNames */, XFA_Element::EraNames},
    391     {0x273ab03b /* modifyAnnots */, XFA_Element::ModifyAnnots},
    392     {0x27875bb4 /* startNode */, XFA_Element::StartNode},
    393     {0x285d0dbc /* button */, XFA_Element::Button},
    394     {0x28dee6e9 /* format */, XFA_Element::Format},
    395     {0x2a23349e /* border */, XFA_Element::Border},
    396     {0x2ae67f19 /* area */, XFA_Element::Area},
    397     {0x2c3c4c67 /* hyphenation */, XFA_Element::Hyphenation},
    398     {0x2d08af85 /* text */, XFA_Element::Text},
    399     {0x2d71b00f /* time */, XFA_Element::Time},
    400     {0x2f16a382 /* type */, XFA_Element::Type},
    401     {0x2fe057e9 /* overprint */, XFA_Element::Overprint},
    402     {0x302aee16 /* certificates */, XFA_Element::Certificates},
    403     {0x30b227df /* encryptionMethods */, XFA_Element::EncryptionMethods},
    404     {0x32b900d1 /* setProperty */, XFA_Element::SetProperty},
    405     {0x337d9e45 /* printerName */, XFA_Element::PrinterName},
    406     {0x33edda4b /* startPage */, XFA_Element::StartPage},
    407     {0x381943e4 /* pageOffset */, XFA_Element::PageOffset},
    408     {0x382106cd /* dateTime */, XFA_Element::DateTime},
    409     {0x386e7421 /* comb */, XFA_Element::Comb},
    410     {0x390acd9e /* pattern */, XFA_Element::Pattern},
    411     {0x3942163e /* ifEmpty */, XFA_Element::IfEmpty},
    412     {0x39944a7b /* suppressBanner */, XFA_Element::SuppressBanner},
    413     {0x3b3c3dca /* outputBin */, XFA_Element::OutputBin},
    414     {0x3b8a4024 /* field */, XFA_Element::Field},
    415     {0x3c15352f /* agent */, XFA_Element::Agent},
    416     {0x3d7e8668 /* outputXSL */, XFA_Element::OutputXSL},
    417     {0x3e1c91c5 /* adjustData */, XFA_Element::AdjustData},
    418     {0x3e7a9408 /* autoSave */, XFA_Element::AutoSave},
    419     {0x3ecead94 /* contentArea */, XFA_Element::ContentArea},
    420     {0x3fadaec0 /* wsdlAddress */, XFA_Element::WsdlAddress},
    421     {0x40623b5b /* solid */, XFA_Element::Solid},
    422     {0x41f0bd76 /* dateTimeSymbols */, XFA_Element::DateTimeSymbols},
    423     {0x444e7523 /* encryptionLevel */, XFA_Element::EncryptionLevel},
    424     {0x4523af55 /* edge */, XFA_Element::Edge},
    425     {0x45d5e3c1 /* stipple */, XFA_Element::Stipple},
    426     {0x475e4e87 /* attributes */, XFA_Element::Attributes},
    427     {0x487a8c87 /* versionControl */, XFA_Element::VersionControl},
    428     {0x48e5248c /* meridiem */, XFA_Element::Meridiem},
    429     {0x48f36719 /* exclGroup */, XFA_Element::ExclGroup},
    430     {0x4977356b /* toolTip */, XFA_Element::ToolTip},
    431     {0x499afecc /* compress */, XFA_Element::Compress},
    432     {0x4a0c4948 /* reason */, XFA_Element::Reason},
    433     {0x4bdcce13 /* execute */, XFA_Element::Execute},
    434     {0x4c56b216 /* contentCopy */, XFA_Element::ContentCopy},
    435     {0x4cc176d3 /* dateTimeEdit */, XFA_Element::DateTimeEdit},
    436     {0x4e1e39b6 /* config */, XFA_Element::Config},
    437     {0x4e2d6083 /* image */, XFA_Element::Image},
    438     {0x4e814150 /* #xHTML */, XFA_Element::SharpxHTML},
    439     {0x4f2388c1 /* numberOfCopies */, XFA_Element::NumberOfCopies},
    440     {0x4f512e30 /* behaviorOverride */, XFA_Element::BehaviorOverride},
    441     {0x4fdc3454 /* timeStamp */, XFA_Element::TimeStamp},
    442     {0x51d90546 /* month */, XFA_Element::Month},
    443     {0x523437e4 /* viewerPreferences */, XFA_Element::ViewerPreferences},
    444     {0x53abc1c6 /* scriptModel */, XFA_Element::ScriptModel},
    445     {0x54034c2f /* decimal */, XFA_Element::Decimal},
    446     {0x54202c9e /* subform */, XFA_Element::Subform},
    447     {0x542c7300 /* select */, XFA_Element::Select},
    448     {0x5436d198 /* window */, XFA_Element::Window},
    449     {0x5473b6dc /* localeSet */, XFA_Element::LocaleSet},
    450     {0x56ae179e /* handler */, XFA_Element::Handler},
    451     {0x570ce835 /* presence */, XFA_Element::Presence},
    452     {0x5779d65f /* record */, XFA_Element::Record},
    453     {0x59c8f27d /* embed */, XFA_Element::Embed},
    454     {0x5a50e9e6 /* version */, XFA_Element::Version},
    455     {0x5b8383df /* command */, XFA_Element::Command},
    456     {0x5c43c6c3 /* copies */, XFA_Element::Copies},
    457     {0x5e0c2c49 /* staple */, XFA_Element::Staple},
    458     {0x5e5083dd /* submitFormat */, XFA_Element::SubmitFormat},
    459     {0x5e8c5d20 /* boolean */, XFA_Element::Boolean},
    460     {0x60490a85 /* message */, XFA_Element::Message},
    461     {0x60d4c8b1 /* output */, XFA_Element::Output},
    462     {0x61810081 /* psMap */, XFA_Element::PsMap},
    463     {0x62bd904b /* excludeNS */, XFA_Element::ExcludeNS},
    464     {0x669d4f77 /* assist */, XFA_Element::Assist},
    465     {0x67334a1c /* picture */, XFA_Element::Picture},
    466     {0x67fe7334 /* traversal */, XFA_Element::Traversal},
    467     {0x6894589c /* silentPrint */, XFA_Element::SilentPrint},
    468     {0x68a16bbd /* webClient */, XFA_Element::WebClient},
    469     {0x6a4bc084 /* producer */, XFA_Element::Producer},
    470     {0x6a9e04c9 /* corner */, XFA_Element::Corner},
    471     {0x6ccd7274 /* msgId */, XFA_Element::MsgId},
    472     {0x6e67921f /* color */, XFA_Element::Color},
    473     {0x6ec217a5 /* keep */, XFA_Element::Keep},
    474     {0x6eef1116 /* query */, XFA_Element::Query},
    475     {0x7033bfd5 /* insert */, XFA_Element::Insert},
    476     {0x704af389 /* imageEdit */, XFA_Element::ImageEdit},
    477     {0x7233018a /* validate */, XFA_Element::Validate},
    478     {0x72ba47b4 /* digestMethods */, XFA_Element::DigestMethods},
    479     {0x72f2aa7a /* numberPatterns */, XFA_Element::NumberPatterns},
    480     {0x74caed29 /* pageSet */, XFA_Element::PageSet},
    481     {0x7568e6ae /* integer */, XFA_Element::Integer},
    482     {0x76182db9 /* soapAddress */, XFA_Element::SoapAddress},
    483     {0x773146c5 /* equate */, XFA_Element::Equate},
    484     {0x77d449dd /* formFieldFilling */, XFA_Element::FormFieldFilling},
    485     {0x7889d68a /* pageRange */, XFA_Element::PageRange},
    486     {0x7baca2e3 /* update */, XFA_Element::Update},
    487     {0x7ce89001 /* connectString */, XFA_Element::ConnectString},
    488     {0x7d9fd7c5 /* mode */, XFA_Element::Mode},
    489     {0x7e7e845e /* layout */, XFA_Element::Layout},
    490     {0x7e845c34 /* #xml */, XFA_Element::Sharpxml},
    491     {0x7fb341df /* xsdConnection */, XFA_Element::XsdConnection},
    492     {0x7ffb51cc /* traverse */, XFA_Element::Traverse},
    493     {0x80203b5a /* encodings */, XFA_Element::Encodings},
    494     {0x803550fc /* template */, XFA_Element::Template},
    495     {0x803d5bbc /* acrobat */, XFA_Element::Acrobat},
    496     {0x821d6569 /* validationMessaging */, XFA_Element::ValidationMessaging},
    497     {0x830e688f /* signing */, XFA_Element::Signing},
    498     {0x83dab9f5 /* script */, XFA_Element::Script},
    499     {0x8411ebcd /* addViewerPreferences */, XFA_Element::AddViewerPreferences},
    500     {0x8777642e /* alwaysEmbed */, XFA_Element::AlwaysEmbed},
    501     {0x877a6b39 /* passwordEdit */, XFA_Element::PasswordEdit},
    502     {0x87e84c99 /* numericEdit */, XFA_Element::NumericEdit},
    503     {0x8852cdec /* encryptionMethod */, XFA_Element::EncryptionMethod},
    504     {0x891f4606 /* change */, XFA_Element::Change},
    505     {0x89939f36 /* pageArea */, XFA_Element::PageArea},
    506     {0x8a9d6247 /* submitUrl */, XFA_Element::SubmitUrl},
    507     {0x8ad8b90f /* oids */, XFA_Element::Oids},
    508     {0x8b036f32 /* signature */, XFA_Element::Signature},
    509     {0x8b128efb /* ADBE_JSConsole */, XFA_Element::ADBE_JSConsole},
    510     {0x8bcfe96e /* caption */, XFA_Element::Caption},
    511     {0x8e1c2921 /* relevant */, XFA_Element::Relevant},
    512     {0x8e3f0a4b /* flipLabel */, XFA_Element::FlipLabel},
    513     {0x900280b7 /* exData */, XFA_Element::ExData},
    514     {0x91e80352 /* dayNames */, XFA_Element::DayNames},
    515     {0x93113b11 /* soapAction */, XFA_Element::SoapAction},
    516     {0x938b09f6 /* defaultTypeface */, XFA_Element::DefaultTypeface},
    517     {0x95b37897 /* manifest */, XFA_Element::Manifest},
    518     {0x97b76b54 /* overflow */, XFA_Element::Overflow},
    519     {0x9a57861b /* linear */, XFA_Element::Linear},
    520     {0x9ad5a821 /* currencySymbol */, XFA_Element::CurrencySymbol},
    521     {0x9c6471b3 /* delete */, XFA_Element::Delete},
    522     {0x9deea61d /* deltas */, XFA_Element::Deltas},
    523     {0x9e67de21 /* digestMethod */, XFA_Element::DigestMethod},
    524     {0x9f3e9510 /* instanceManager */, XFA_Element::InstanceManager},
    525     {0xa0799892 /* equateRange */, XFA_Element::EquateRange},
    526     {0xa084a381 /* medium */, XFA_Element::Medium},
    527     {0xa1211b8b /* textEdit */, XFA_Element::TextEdit},
    528     {0xa17008f0 /* templateCache */, XFA_Element::TemplateCache},
    529     {0xa4f7b88f /* compressObjectStream */, XFA_Element::CompressObjectStream},
    530     {0xa65f5d17 /* dataValue */, XFA_Element::DataValue},
    531     {0xa6caaa89 /* accessibleContent */, XFA_Element::AccessibleContent},
    532     {0xa94cc00b /* includeXDPContent */, XFA_Element::IncludeXDPContent},
    533     {0xa9b081a1 /* xmlConnection */, XFA_Element::XmlConnection},
    534     {0xab2a3b74 /* validateApprovalSignatures */,
    535      XFA_Element::ValidateApprovalSignatures},
    536     {0xab8c5a2b /* signData */, XFA_Element::SignData},
    537     {0xabaa2ceb /* packets */, XFA_Element::Packets},
    538     {0xadba359c /* datePattern */, XFA_Element::DatePattern},
    539     {0xae222b2b /* duplexOption */, XFA_Element::DuplexOption},
    540     {0xb012effb /* base */, XFA_Element::Base},
    541     {0xb0e5485d /* bind */, XFA_Element::Bind},
    542     {0xb45d61b2 /* compression */, XFA_Element::Compression},
    543     {0xb563f0ff /* user */, XFA_Element::User},
    544     {0xb5848ad5 /* rectangle */, XFA_Element::Rectangle},
    545     {0xb6dacb72 /* effectiveOutputPolicy */,
    546      XFA_Element::EffectiveOutputPolicy},
    547     {0xb7d7654d /* ADBE_JSDebugger */, XFA_Element::ADBE_JSDebugger},
    548     {0xbab37f73 /* acrobat7 */, XFA_Element::Acrobat7},
    549     {0xbc70081e /* interactive */, XFA_Element::Interactive},
    550     {0xbc8fa350 /* locale */, XFA_Element::Locale},
    551     {0xbcd44940 /* currentPage */, XFA_Element::CurrentPage},
    552     {0xbde9abda /* data */, XFA_Element::Data},
    553     {0xbde9abde /* date */, XFA_Element::Date},
    554     {0xbe52dfbf /* desc */, XFA_Element::Desc},
    555     {0xbf4b6405 /* encrypt */, XFA_Element::Encrypt},
    556     {0xbfa87cce /* draw */, XFA_Element::Draw},
    557     {0xc181ff4b /* encryption */, XFA_Element::Encryption},
    558     {0xc1970f40 /* meridiemNames */, XFA_Element::MeridiemNames},
    559     {0xc5ad9f5e /* messaging */, XFA_Element::Messaging},
    560     {0xc69549f4 /* speak */, XFA_Element::Speak},
    561     {0xc7743dc7 /* dataGroup */, XFA_Element::DataGroup},
    562     {0xc7eb20e9 /* common */, XFA_Element::Common},
    563     {0xc85d4528 /* #text */, XFA_Element::Sharptext},
    564     {0xc861556a /* paginationOverride */, XFA_Element::PaginationOverride},
    565     {0xc903dabb /* reasons */, XFA_Element::Reasons},
    566     {0xc9a8127f /* signatureProperties */, XFA_Element::SignatureProperties},
    567     {0xca010c2d /* threshold */, XFA_Element::Threshold},
    568     {0xcb4c5e96 /* appearanceFilter */, XFA_Element::AppearanceFilter},
    569     {0xcc92aba7 /* fill */, XFA_Element::Fill},
    570     {0xcd308b77 /* font */, XFA_Element::Font},
    571     {0xcd309ff4 /* form */, XFA_Element::Form},
    572     {0xcebcca2d /* mediumInfo */, XFA_Element::MediumInfo},
    573     {0xcfe0d643 /* certificate */, XFA_Element::Certificate},
    574     {0xd012c033 /* password */, XFA_Element::Password},
    575     {0xd01604bd /* runScripts */, XFA_Element::RunScripts},
    576     {0xd1227e6f /* trace */, XFA_Element::Trace},
    577     {0xd1532876 /* float */, XFA_Element::Float},
    578     {0xd17a6c30 /* renderPolicy */, XFA_Element::RenderPolicy},
    579     {0xd58aa962 /* destination */, XFA_Element::Destination},
    580     {0xd6e27f1d /* value */, XFA_Element::Value},
    581     {0xd7a14462 /* bookend */, XFA_Element::Bookend},
    582     {0xd8c31254 /* exObject */, XFA_Element::ExObject},
    583     {0xda6a8590 /* openAction */, XFA_Element::OpenAction},
    584     {0xdab4fb7d /* neverEmbed */, XFA_Element::NeverEmbed},
    585     {0xdb98475f /* bindItems */, XFA_Element::BindItems},
    586     {0xdbfbe02e /* calculate */, XFA_Element::Calculate},
    587     {0xdd7676ed /* print */, XFA_Element::Print},
    588     {0xdde273d7 /* extras */, XFA_Element::Extras},
    589     {0xde146b34 /* proto */, XFA_Element::Proto},
    590     {0xdf059321 /* dSigData */, XFA_Element::DSigData},
    591     {0xdfccf030 /* creator */, XFA_Element::Creator},
    592     {0xdff78c6a /* connect */, XFA_Element::Connect},
    593     {0xe11a2cbc /* permissions */, XFA_Element::Permissions},
    594     {0xe14c801c /* connectionSet */, XFA_Element::ConnectionSet},
    595     {0xe1c83a14 /* submit */, XFA_Element::Submit},
    596     {0xe29821cd /* range */, XFA_Element::Range},
    597     {0xe38d83c7 /* linearized */, XFA_Element::Linearized},
    598     {0xe3aa2578 /* packet */, XFA_Element::Packet},
    599     {0xe3aa860e /* rootElement */, XFA_Element::RootElement},
    600     {0xe3e553fa /* plaintextMetadata */, XFA_Element::PlaintextMetadata},
    601     {0xe3e6e4f2 /* numberSymbols */, XFA_Element::NumberSymbols},
    602     {0xe3f067f6 /* printHighQuality */, XFA_Element::PrintHighQuality},
    603     {0xe3fd078c /* driver */, XFA_Element::Driver},
    604     {0xe48b34f2 /* incrementalLoad */, XFA_Element::IncrementalLoad},
    605     {0xe550e7c2 /* subjectDN */, XFA_Element::SubjectDN},
    606     {0xe6669a78 /* compressLogicalStructure */,
    607      XFA_Element::CompressLogicalStructure},
    608     {0xe7a7ea02 /* incrementalMerge */, XFA_Element::IncrementalMerge},
    609     {0xe948530d /* radial */, XFA_Element::Radial},
    610     {0xea8d6999 /* variables */, XFA_Element::Variables},
    611     {0xeaa142c0 /* timePatterns */, XFA_Element::TimePatterns},
    612     {0xeb943a71 /* effectiveInputPolicy */, XFA_Element::EffectiveInputPolicy},
    613     {0xef04a2bc /* nameAttr */, XFA_Element::NameAttr},
    614     {0xf07222ab /* conformance */, XFA_Element::Conformance},
    615     {0xf0aaaadc /* transform */, XFA_Element::Transform},
    616     {0xf1433e88 /* lockDocument */, XFA_Element::LockDocument},
    617     {0xf54eb997 /* breakAfter */, XFA_Element::BreakAfter},
    618     {0xf616da28 /* line */, XFA_Element::Line},
    619     {0xf7055fb1 /* source */, XFA_Element::Source},
    620     {0xf7eebe1c /* occur */, XFA_Element::Occur},
    621     {0xf8d10d97 /* pickTrayByPDFSize */, XFA_Element::PickTrayByPDFSize},
    622     {0xf8f19e3a /* monthNames */, XFA_Element::MonthNames},
    623     {0xf984149b /* severity */, XFA_Element::Severity},
    624     {0xf9bcb037 /* groupParent */, XFA_Element::GroupParent},
    625     {0xfbc42fff /* documentAssembly */, XFA_Element::DocumentAssembly},
    626     {0xfc78159f /* numberSymbol */, XFA_Element::NumberSymbol},
    627     {0xfcbd606c /* tagged */, XFA_Element::Tagged},
    628     {0xff063802 /* items */, XFA_Element::Items},
    629 };
    630 
    631 struct AttributeNameInfo {
    632   uint32_t hash;
    633   XFA_Attribute attribute;
    634 } AttributeNameInfoToEnum[] = {
    635     {0x68 /* h */, XFA_Attribute::H},
    636     {0x77 /* w */, XFA_Attribute::W},
    637     {0x78 /* x */, XFA_Attribute::X},
    638     {0x79 /* y */, XFA_Attribute::Y},
    639     {0x21aed /* id */, XFA_Attribute::Id},
    640     {0x25363 /* to */, XFA_Attribute::To},
    641     {0xcb0ac9 /* lineThrough */, XFA_Attribute::LineThrough},
    642     {0x2282c73 /* hAlign */, XFA_Attribute::HAlign},
    643     {0x2c1c7f1 /* typeface */, XFA_Attribute::Typeface},
    644     {0x3106c3a /* beforeTarget */, XFA_Attribute::BeforeTarget},
    645     {0x31b19c1 /* name */, XFA_Attribute::Name},
    646     {0x3848b3f /* next */, XFA_Attribute::Next},
    647     {0x43e349b /* dataRowCount */, XFA_Attribute::DataRowCount},
    648     {0x5518c25 /* break */, XFA_Attribute::Break},
    649     {0x5ce6195 /* vScrollPolicy */, XFA_Attribute::VScrollPolicy},
    650     {0x8c74ae9 /* fontHorizontalScale */, XFA_Attribute::FontHorizontalScale},
    651     {0x8d4f1c7 /* textIndent */, XFA_Attribute::TextIndent},
    652     {0x97c1c65 /* context */, XFA_Attribute::Context},
    653     {0x9876578 /* trayOut */, XFA_Attribute::TrayOut},
    654     {0xa2e3514 /* cap */, XFA_Attribute::Cap},
    655     {0xb3543a6 /* max */, XFA_Attribute::Max},
    656     {0xb356ca4 /* min */, XFA_Attribute::Min},
    657     {0xbb8df5d /* ref */, XFA_Attribute::Ref},
    658     {0xbb8f3df /* rid */, XFA_Attribute::Rid},
    659     {0xc080cd3 /* url */, XFA_Attribute::Url},
    660     {0xc0811ed /* use */, XFA_Attribute::Use},
    661     {0xcfea02e /* leftInset */, XFA_Attribute::LeftInset},
    662     {0x1026c59d /* widows */, XFA_Attribute::Widows},
    663     {0x1059ec18 /* level */, XFA_Attribute::Level},
    664     {0x1356caf8 /* bottomInset */, XFA_Attribute::BottomInset},
    665     {0x13a08bdb /* overflowTarget */, XFA_Attribute::OverflowTarget},
    666     {0x1414d431 /* allowMacro */, XFA_Attribute::AllowMacro},
    667     {0x14a32d52 /* pagePosition */, XFA_Attribute::PagePosition},
    668     {0x1517dfa1 /* columnWidths */, XFA_Attribute::ColumnWidths},
    669     {0x169134a1 /* overflowLeader */, XFA_Attribute::OverflowLeader},
    670     {0x1b8dce3e /* action */, XFA_Attribute::Action},
    671     {0x1e459b8f /* nonRepudiation */, XFA_Attribute::NonRepudiation},
    672     {0x1ec8ab2c /* rate */, XFA_Attribute::Rate},
    673     {0x1ef3a64a /* allowRichText */, XFA_Attribute::AllowRichText},
    674     {0x2038c9b2 /* role */, XFA_Attribute::Role},
    675     {0x20914367 /* overflowTrailer */, XFA_Attribute::OverflowTrailer},
    676     {0x226ca8f1 /* operation */, XFA_Attribute::Operation},
    677     {0x24d85167 /* timeout */, XFA_Attribute::Timeout},
    678     {0x25764436 /* topInset */, XFA_Attribute::TopInset},
    679     {0x25839852 /* access */, XFA_Attribute::Access},
    680     {0x268b7ec1 /* commandType */, XFA_Attribute::CommandType},
    681     {0x28dee6e9 /* format */, XFA_Attribute::Format},
    682     {0x28e17e91 /* dataPrep */, XFA_Attribute::DataPrep},
    683     {0x292b88fe /* widgetData */, XFA_Attribute::WidgetData},
    684     {0x29418bb7 /* abbr */, XFA_Attribute::Abbr},
    685     {0x2a82d99c /* marginRight */, XFA_Attribute::MarginRight},
    686     {0x2b5df51e /* dataDescription */, XFA_Attribute::DataDescription},
    687     {0x2bb3f470 /* encipherOnly */, XFA_Attribute::EncipherOnly},
    688     {0x2cd79033 /* kerningMode */, XFA_Attribute::KerningMode},
    689     {0x2ee7678f /* rotate */, XFA_Attribute::Rotate},
    690     {0x2f105f72 /* wordCharacterCount */, XFA_Attribute::WordCharacterCount},
    691     {0x2f16a382 /* type */, XFA_Attribute::Type},
    692     {0x34ae103c /* reserve */, XFA_Attribute::Reserve},
    693     {0x3650557e /* textLocation */, XFA_Attribute::TextLocation},
    694     {0x39cdb0a2 /* priority */, XFA_Attribute::Priority},
    695     {0x3a0273a6 /* underline */, XFA_Attribute::Underline},
    696     {0x3b582286 /* moduleWidth */, XFA_Attribute::ModuleWidth},
    697     {0x3d123c26 /* hyphenate */, XFA_Attribute::Hyphenate},
    698     {0x3e7af94f /* listen */, XFA_Attribute::Listen},
    699     {0x4156ee3f /* delimiter */, XFA_Attribute::Delimiter},
    700     {0x42fed1fd /* contentType */, XFA_Attribute::ContentType},
    701     {0x453eaf38 /* startNew */, XFA_Attribute::StartNew},
    702     {0x45a6daf8 /* eofAction */, XFA_Attribute::EofAction},
    703     {0x47cfa43a /* allowNeutral */, XFA_Attribute::AllowNeutral},
    704     {0x47d03490 /* connection */, XFA_Attribute::Connection},
    705     {0x4873c601 /* baselineShift */, XFA_Attribute::BaselineShift},
    706     {0x4b319767 /* overlinePeriod */, XFA_Attribute::OverlinePeriod},
    707     {0x4b8bc840 /* fracDigits */, XFA_Attribute::FracDigits},
    708     {0x4ef3d02c /* orientation */, XFA_Attribute::Orientation},
    709     {0x4fdc3454 /* timeStamp */, XFA_Attribute::TimeStamp},
    710     {0x52666f1c /* printCheckDigit */, XFA_Attribute::PrintCheckDigit},
    711     {0x534729c9 /* marginLeft */, XFA_Attribute::MarginLeft},
    712     {0x5392ea58 /* stroke */, XFA_Attribute::Stroke},
    713     {0x5404d6df /* moduleHeight */, XFA_Attribute::ModuleHeight},
    714     {0x54fa722c /* transferEncoding */, XFA_Attribute::TransferEncoding},
    715     {0x552d9ad5 /* usage */, XFA_Attribute::Usage},
    716     {0x570ce835 /* presence */, XFA_Attribute::Presence},
    717     {0x5739d1ff /* radixOffset */, XFA_Attribute::RadixOffset},
    718     {0x577682ac /* preserve */, XFA_Attribute::Preserve},
    719     {0x58be2870 /* aliasNode */, XFA_Attribute::AliasNode},
    720     {0x5a32e493 /* multiLine */, XFA_Attribute::MultiLine},
    721     {0x5a50e9e6 /* version */, XFA_Attribute::Version},
    722     {0x5ab23b6c /* startChar */, XFA_Attribute::StartChar},
    723     {0x5b707a35 /* scriptTest */, XFA_Attribute::ScriptTest},
    724     {0x5c054755 /* startAngle */, XFA_Attribute::StartAngle},
    725     {0x5ec958c0 /* cursorType */, XFA_Attribute::CursorType},
    726     {0x5f760b50 /* digitalSignature */, XFA_Attribute::DigitalSignature},
    727     {0x60a61edd /* codeType */, XFA_Attribute::CodeType},
    728     {0x60d4c8b1 /* output */, XFA_Attribute::Output},
    729     {0x64110ab5 /* bookendTrailer */, XFA_Attribute::BookendTrailer},
    730     {0x65e30c67 /* imagingBBox */, XFA_Attribute::ImagingBBox},
    731     {0x66539c48 /* excludeInitialCap */, XFA_Attribute::ExcludeInitialCap},
    732     {0x66642f8f /* force */, XFA_Attribute::Force},
    733     {0x69aa2292 /* crlSign */, XFA_Attribute::CrlSign},
    734     {0x6a3405dd /* previous */, XFA_Attribute::Previous},
    735     {0x6a95c976 /* pushCharacterCount */, XFA_Attribute::PushCharacterCount},
    736     {0x6b6ddcfb /* nullTest */, XFA_Attribute::NullTest},
    737     {0x6cfa828a /* runAt */, XFA_Attribute::RunAt},
    738     {0x731e0665 /* spaceBelow */, XFA_Attribute::SpaceBelow},
    739     {0x74788f8b /* sweepAngle */, XFA_Attribute::SweepAngle},
    740     {0x78bff531 /* numberOfCells */, XFA_Attribute::NumberOfCells},
    741     {0x79543055 /* letterSpacing */, XFA_Attribute::LetterSpacing},
    742     {0x79975f2b /* lockType */, XFA_Attribute::LockType},
    743     {0x7a0cc471 /* passwordChar */, XFA_Attribute::PasswordChar},
    744     {0x7a7cc341 /* vAlign */, XFA_Attribute::VAlign},
    745     {0x7b29630a /* sourceBelow */, XFA_Attribute::SourceBelow},
    746     {0x7b95e661 /* inverted */, XFA_Attribute::Inverted},
    747     {0x7c2fd80b /* mark */, XFA_Attribute::Mark},
    748     {0x7c2ff6ae /* maxH */, XFA_Attribute::MaxH},
    749     {0x7c2ff6bd /* maxW */, XFA_Attribute::MaxW},
    750     {0x7c732a66 /* truncate */, XFA_Attribute::Truncate},
    751     {0x7d02356c /* minH */, XFA_Attribute::MinH},
    752     {0x7d02357b /* minW */, XFA_Attribute::MinW},
    753     {0x7d0b5fca /* initial */, XFA_Attribute::Initial},
    754     {0x7d9fd7c5 /* mode */, XFA_Attribute::Mode},
    755     {0x7e7e845e /* layout */, XFA_Attribute::Layout},
    756     {0x7f6fd3d7 /* server */, XFA_Attribute::Server},
    757     {0x824f21b7 /* embedPDF */, XFA_Attribute::EmbedPDF},
    758     {0x8340ea66 /* oddOrEven */, XFA_Attribute::OddOrEven},
    759     {0x836d4d7c /* tabDefault */, XFA_Attribute::TabDefault},
    760     {0x8855805f /* contains */, XFA_Attribute::Contains},
    761     {0x8a692521 /* rightInset */, XFA_Attribute::RightInset},
    762     {0x8af2e657 /* maxChars */, XFA_Attribute::MaxChars},
    763     {0x8b90e1f2 /* open */, XFA_Attribute::Open},
    764     {0x8c99377e /* relation */, XFA_Attribute::Relation},
    765     {0x8d181d61 /* wideNarrowRatio */, XFA_Attribute::WideNarrowRatio},
    766     {0x8e1c2921 /* relevant */, XFA_Attribute::Relevant},
    767     {0x8e29d794 /* signatureType */, XFA_Attribute::SignatureType},
    768     {0x8ec6204c /* lineThroughPeriod */, XFA_Attribute::LineThroughPeriod},
    769     {0x8ed182d1 /* shape */, XFA_Attribute::Shape},
    770     {0x8fa01790 /* tabStops */, XFA_Attribute::TabStops},
    771     {0x8fc36c0a /* outputBelow */, XFA_Attribute::OutputBelow},
    772     {0x9041d4b0 /* short */, XFA_Attribute::Short},
    773     {0x907c7719 /* fontVerticalScale */, XFA_Attribute::FontVerticalScale},
    774     {0x94446dcc /* thickness */, XFA_Attribute::Thickness},
    775     {0x957fa006 /* commitOn */, XFA_Attribute::CommitOn},
    776     {0x982bd892 /* remainCharacterCount */,
    777      XFA_Attribute::RemainCharacterCount},
    778     {0x98fd4d81 /* keyAgreement */, XFA_Attribute::KeyAgreement},
    779     {0x99800d7a /* errorCorrectionLevel */,
    780      XFA_Attribute::ErrorCorrectionLevel},
    781     {0x9a63da3d /* upsMode */, XFA_Attribute::UpsMode},
    782     {0x9cc17d75 /* mergeMode */, XFA_Attribute::MergeMode},
    783     {0x9d833d75 /* circular */, XFA_Attribute::Circular},
    784     {0x9d8ee204 /* psName */, XFA_Attribute::PsName},
    785     {0x9dcc3ab3 /* trailer */, XFA_Attribute::Trailer},
    786     {0xa0933954 /* unicodeRange */, XFA_Attribute::UnicodeRange},
    787     {0xa1b0d2f5 /* executeType */, XFA_Attribute::ExecuteType},
    788     {0xa25a883d /* duplexImposition */, XFA_Attribute::DuplexImposition},
    789     {0xa42ca1b7 /* trayIn */, XFA_Attribute::TrayIn},
    790     {0xa433f001 /* bindingNode */, XFA_Attribute::BindingNode},
    791     {0xa5340ff5 /* bofAction */, XFA_Attribute::BofAction},
    792     {0xa5b410cf /* save */, XFA_Attribute::Save},
    793     {0xa6118c89 /* targetType */, XFA_Attribute::TargetType},
    794     {0xa66404cb /* keyEncipherment */, XFA_Attribute::KeyEncipherment},
    795     {0xa6710262 /* credentialServerPolicy */,
    796      XFA_Attribute::CredentialServerPolicy},
    797     {0xa686975b /* size */, XFA_Attribute::Size},
    798     {0xa85e74f3 /* initialNumber */, XFA_Attribute::InitialNumber},
    799     {0xabef37e3 /* slope */, XFA_Attribute::Slope},
    800     {0xabfa6c4f /* cSpace */, XFA_Attribute::CSpace},
    801     {0xac06e2b0 /* colSpan */, XFA_Attribute::ColSpan},
    802     {0xadc4c77b /* binding */, XFA_Attribute::Binding},
    803     {0xaf754613 /* checksum */, XFA_Attribute::Checksum},
    804     {0xb045fbc5 /* charEncoding */, XFA_Attribute::CharEncoding},
    805     {0xb0e5485d /* bind */, XFA_Attribute::Bind},
    806     {0xb12128b7 /* textEntry */, XFA_Attribute::TextEntry},
    807     {0xb373a862 /* archive */, XFA_Attribute::Archive},
    808     {0xb598a1f7 /* uuid */, XFA_Attribute::Uuid},
    809     {0xb5e49bf2 /* posture */, XFA_Attribute::Posture},
    810     {0xb6b44172 /* after */, XFA_Attribute::After},
    811     {0xb716467b /* orphans */, XFA_Attribute::Orphans},
    812     {0xbc0c4695 /* qualifiedName */, XFA_Attribute::QualifiedName},
    813     {0xbc254332 /* usehref */, XFA_Attribute::Usehref},
    814     {0xbc8fa350 /* locale */, XFA_Attribute::Locale},
    815     {0xbd6e1d88 /* weight */, XFA_Attribute::Weight},
    816     {0xbd96a0e9 /* underlinePeriod */, XFA_Attribute::UnderlinePeriod},
    817     {0xbde9abda /* data */, XFA_Attribute::Data},
    818     {0xbe52dfbf /* desc */, XFA_Attribute::Desc},
    819     {0xbe9ba472 /* numbered */, XFA_Attribute::Numbered},
    820     {0xc035c6b1 /* dataColumnCount */, XFA_Attribute::DataColumnCount},
    821     {0xc0ec9fa4 /* overline */, XFA_Attribute::Overline},
    822     {0xc2ba0923 /* urlPolicy */, XFA_Attribute::UrlPolicy},
    823     {0xc2bd40fd /* anchorType */, XFA_Attribute::AnchorType},
    824     {0xc39a88bd /* labelRef */, XFA_Attribute::LabelRef},
    825     {0xc3c1442f /* bookendLeader */, XFA_Attribute::BookendLeader},
    826     {0xc4547a08 /* maxLength */, XFA_Attribute::MaxLength},
    827     {0xc4fed09b /* accessKey */, XFA_Attribute::AccessKey},
    828     {0xc5762157 /* cursorLocation */, XFA_Attribute::CursorLocation},
    829     {0xc860f30a /* delayedOpen */, XFA_Attribute::DelayedOpen},
    830     {0xc8da4da7 /* target */, XFA_Attribute::Target},
    831     {0xca5dc27c /* dataEncipherment */, XFA_Attribute::DataEncipherment},
    832     {0xcb150479 /* afterTarget */, XFA_Attribute::AfterTarget},
    833     {0xcbcaf66d /* leader */, XFA_Attribute::Leader},
    834     {0xcca7897e /* picker */, XFA_Attribute::Picker},
    835     {0xcd7f7b54 /* from */, XFA_Attribute::From},
    836     {0xcea5e62c /* baseProfile */, XFA_Attribute::BaseProfile},
    837     {0xd171b240 /* aspect */, XFA_Attribute::Aspect},
    838     {0xd3c84d25 /* rowColumnRatio */, XFA_Attribute::RowColumnRatio},
    839     {0xd4b01921 /* lineHeight */, XFA_Attribute::LineHeight},
    840     {0xd4cc53f8 /* highlight */, XFA_Attribute::Highlight},
    841     {0xd50f903a /* valueRef */, XFA_Attribute::ValueRef},
    842     {0xd52482e0 /* maxEntries */, XFA_Attribute::MaxEntries},
    843     {0xd57c513c /* dataLength */, XFA_Attribute::DataLength},
    844     {0xd6128d8d /* activity */, XFA_Attribute::Activity},
    845     {0xd6a39990 /* input */, XFA_Attribute::Input},
    846     {0xd6e27f1d /* value */, XFA_Attribute::Value},
    847     {0xd70798c2 /* blankOrNotBlank */, XFA_Attribute::BlankOrNotBlank},
    848     {0xd861f8af /* addRevocationInfo */, XFA_Attribute::AddRevocationInfo},
    849     {0xd8f982bf /* genericFamily */, XFA_Attribute::GenericFamily},
    850     {0xd996fa9b /* hand */, XFA_Attribute::Hand},
    851     {0xdb55fec5 /* href */, XFA_Attribute::Href},
    852     {0xdc75676c /* textEncoding */, XFA_Attribute::TextEncoding},
    853     {0xde7f92ba /* leadDigits */, XFA_Attribute::LeadDigits},
    854     {0xe11a2cbc /* permissions */, XFA_Attribute::Permissions},
    855     {0xe18b5659 /* spaceAbove */, XFA_Attribute::SpaceAbove},
    856     {0xe1a26b56 /* codeBase */, XFA_Attribute::CodeBase},
    857     {0xe349d044 /* stock */, XFA_Attribute::Stock},
    858     {0xe372ae97 /* isNull */, XFA_Attribute::IsNull},
    859     {0xe4c3a5e5 /* restoreState */, XFA_Attribute::RestoreState},
    860     {0xe5c96d6a /* excludeAllCaps */, XFA_Attribute::ExcludeAllCaps},
    861     {0xe64b1129 /* formatTest */, XFA_Attribute::FormatTest},
    862     {0xe6f99487 /* hScrollPolicy */, XFA_Attribute::HScrollPolicy},
    863     {0xe8dddf50 /* join */, XFA_Attribute::Join},
    864     {0xe8f118a8 /* keyCertSign */, XFA_Attribute::KeyCertSign},
    865     {0xe948b9a8 /* radius */, XFA_Attribute::Radius},
    866     {0xe996b2fe /* sourceAbove */, XFA_Attribute::SourceAbove},
    867     {0xea7090a0 /* override */, XFA_Attribute::Override},
    868     {0xeb091003 /* classId */, XFA_Attribute::ClassId},
    869     {0xeb511b54 /* disable */, XFA_Attribute::Disable},
    870     {0xeda9017a /* scope */, XFA_Attribute::Scope},
    871     {0xf197844d /* match */, XFA_Attribute::Match},
    872     {0xf2009339 /* placement */, XFA_Attribute::Placement},
    873     {0xf4ffce73 /* before */, XFA_Attribute::Before},
    874     {0xf531b059 /* writingScript */, XFA_Attribute::WritingScript},
    875     {0xf575ca75 /* endChar */, XFA_Attribute::EndChar},
    876     {0xf6b47749 /* lock */, XFA_Attribute::Lock},
    877     {0xf6b4afb0 /* long */, XFA_Attribute::Long},
    878     {0xf6b59543 /* intact */, XFA_Attribute::Intact},
    879     {0xf889e747 /* xdpContent */, XFA_Attribute::XdpContent},
    880     {0xfea53ec6 /* decipherOnly */, XFA_Attribute::DecipherOnly},
    881 };
    882 
    883 }  // namespace
    884 
    885 // static
    886 XFA_Element CXFA_Node::NameToElement(const WideString& name) {
    887   uint32_t hash = FX_HashCode_GetW(name.AsStringView(), false);
    888   auto* elem = std::lower_bound(
    889       std::begin(ElementNameToEnum), std::end(ElementNameToEnum), hash,
    890       [](const ElementNameInfo& a, uint32_t hash) { return a.hash < hash; });
    891   if (elem != std::end(ElementNameToEnum) && elem->hash == hash)
    892     return elem->element;
    893   return XFA_Element::Unknown;
    894 }
    895 
    896 // static
    897 XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) {
    898   uint32_t hash = FX_HashCode_GetW(name, false);
    899   auto* elem = std::lower_bound(
    900       std::begin(AttributeNameInfoToEnum), std::end(AttributeNameInfoToEnum),
    901       hash,
    902       [](const AttributeNameInfo& a, uint32_t hash) { return a.hash < hash; });
    903   if (elem != std::end(AttributeNameInfoToEnum) && elem->hash == hash)
    904     return elem->attribute;
    905   return XFA_Attribute::Unknown;
    906 }
    907 
    908 // static
    909 std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
    910                                              XFA_Element element,
    911                                              XFA_PacketType packet) {
    912   std::unique_ptr<CXFA_Node> node;
    913   switch (element) {
    914     case XFA_Element::Ps:
    915       node = pdfium::MakeUnique<CXFA_Ps>(doc, packet);
    916       break;
    917     case XFA_Element::To:
    918       node = pdfium::MakeUnique<CXFA_To>(doc, packet);
    919       break;
    920     case XFA_Element::Ui:
    921       node = pdfium::MakeUnique<CXFA_Ui>(doc, packet);
    922       break;
    923     case XFA_Element::RecordSet:
    924       node = pdfium::MakeUnique<CXFA_RecordSet>(doc, packet);
    925       break;
    926     case XFA_Element::SubsetBelow:
    927       node = pdfium::MakeUnique<CXFA_SubsetBelow>(doc, packet);
    928       break;
    929     case XFA_Element::SubformSet:
    930       node = pdfium::MakeUnique<CXFA_SubformSet>(doc, packet);
    931       break;
    932     case XFA_Element::AdobeExtensionLevel:
    933       node = pdfium::MakeUnique<CXFA_AdobeExtensionLevel>(doc, packet);
    934       break;
    935     case XFA_Element::Typeface:
    936       node = pdfium::MakeUnique<CXFA_Typeface>(doc, packet);
    937       break;
    938     case XFA_Element::Break:
    939       node = pdfium::MakeUnique<CXFA_Break>(doc, packet);
    940       break;
    941     case XFA_Element::FontInfo:
    942       node = pdfium::MakeUnique<CXFA_FontInfo>(doc, packet);
    943       break;
    944     case XFA_Element::NumberPattern:
    945       node = pdfium::MakeUnique<CXFA_NumberPattern>(doc, packet);
    946       break;
    947     case XFA_Element::DynamicRender:
    948       node = pdfium::MakeUnique<CXFA_DynamicRender>(doc, packet);
    949       break;
    950     case XFA_Element::PrintScaling:
    951       node = pdfium::MakeUnique<CXFA_PrintScaling>(doc, packet);
    952       break;
    953     case XFA_Element::CheckButton:
    954       node = pdfium::MakeUnique<CXFA_CheckButton>(doc, packet);
    955       break;
    956     case XFA_Element::DatePatterns:
    957       node = pdfium::MakeUnique<CXFA_DatePatterns>(doc, packet);
    958       break;
    959     case XFA_Element::SourceSet:
    960       node = pdfium::MakeUnique<CXFA_SourceSet>(doc, packet);
    961       break;
    962     case XFA_Element::Amd:
    963       node = pdfium::MakeUnique<CXFA_Amd>(doc, packet);
    964       break;
    965     case XFA_Element::Arc:
    966       node = pdfium::MakeUnique<CXFA_Arc>(doc, packet);
    967       break;
    968     case XFA_Element::Day:
    969       node = pdfium::MakeUnique<CXFA_Day>(doc, packet);
    970       break;
    971     case XFA_Element::Era:
    972       node = pdfium::MakeUnique<CXFA_Era>(doc, packet);
    973       break;
    974     case XFA_Element::Jog:
    975       node = pdfium::MakeUnique<CXFA_Jog>(doc, packet);
    976       break;
    977     case XFA_Element::Log:
    978       node = pdfium::MakeUnique<CXFA_Log>(doc, packet);
    979       break;
    980     case XFA_Element::Map:
    981       node = pdfium::MakeUnique<CXFA_Map>(doc, packet);
    982       break;
    983     case XFA_Element::Mdp:
    984       node = pdfium::MakeUnique<CXFA_Mdp>(doc, packet);
    985       break;
    986     case XFA_Element::BreakBefore:
    987       node = pdfium::MakeUnique<CXFA_BreakBefore>(doc, packet);
    988       break;
    989     case XFA_Element::Oid:
    990       node = pdfium::MakeUnique<CXFA_Oid>(doc, packet);
    991       break;
    992     case XFA_Element::Pcl:
    993       node = pdfium::MakeUnique<CXFA_Pcl>(doc, packet);
    994       break;
    995     case XFA_Element::Pdf:
    996       node = pdfium::MakeUnique<CXFA_Pdf>(doc, packet);
    997       break;
    998     case XFA_Element::Ref:
    999       node = pdfium::MakeUnique<CXFA_Ref>(doc, packet);
   1000       break;
   1001     case XFA_Element::Uri:
   1002       node = pdfium::MakeUnique<CXFA_Uri>(doc, packet);
   1003       break;
   1004     case XFA_Element::Xdc:
   1005       node = pdfium::MakeUnique<CXFA_Xdc>(doc, packet);
   1006       break;
   1007     case XFA_Element::Xdp:
   1008       node = pdfium::MakeUnique<CXFA_Xdp>(doc, packet);
   1009       break;
   1010     case XFA_Element::Xfa:
   1011       node = pdfium::MakeUnique<CXFA_Xfa>(doc, packet);
   1012       break;
   1013     case XFA_Element::Xsl:
   1014       node = pdfium::MakeUnique<CXFA_Xsl>(doc, packet);
   1015       break;
   1016     case XFA_Element::Zpl:
   1017       node = pdfium::MakeUnique<CXFA_Zpl>(doc, packet);
   1018       break;
   1019     case XFA_Element::Cache:
   1020       node = pdfium::MakeUnique<CXFA_Cache>(doc, packet);
   1021       break;
   1022     case XFA_Element::Margin:
   1023       node = pdfium::MakeUnique<CXFA_Margin>(doc, packet);
   1024       break;
   1025     case XFA_Element::KeyUsage:
   1026       node = pdfium::MakeUnique<CXFA_KeyUsage>(doc, packet);
   1027       break;
   1028     case XFA_Element::Exclude:
   1029       node = pdfium::MakeUnique<CXFA_Exclude>(doc, packet);
   1030       break;
   1031     case XFA_Element::ChoiceList:
   1032       node = pdfium::MakeUnique<CXFA_ChoiceList>(doc, packet);
   1033       break;
   1034     case XFA_Element::Level:
   1035       node = pdfium::MakeUnique<CXFA_Level>(doc, packet);
   1036       break;
   1037     case XFA_Element::LabelPrinter:
   1038       node = pdfium::MakeUnique<CXFA_LabelPrinter>(doc, packet);
   1039       break;
   1040     case XFA_Element::CalendarSymbols:
   1041       node = pdfium::MakeUnique<CXFA_CalendarSymbols>(doc, packet);
   1042       break;
   1043     case XFA_Element::Para:
   1044       node = pdfium::MakeUnique<CXFA_Para>(doc, packet);
   1045       break;
   1046     case XFA_Element::Part:
   1047       node = pdfium::MakeUnique<CXFA_Part>(doc, packet);
   1048       break;
   1049     case XFA_Element::Pdfa:
   1050       node = pdfium::MakeUnique<CXFA_Pdfa>(doc, packet);
   1051       break;
   1052     case XFA_Element::Filter:
   1053       node = pdfium::MakeUnique<CXFA_Filter>(doc, packet);
   1054       break;
   1055     case XFA_Element::Present:
   1056       node = pdfium::MakeUnique<CXFA_Present>(doc, packet);
   1057       break;
   1058     case XFA_Element::Pagination:
   1059       node = pdfium::MakeUnique<CXFA_Pagination>(doc, packet);
   1060       break;
   1061     case XFA_Element::Encoding:
   1062       node = pdfium::MakeUnique<CXFA_Encoding>(doc, packet);
   1063       break;
   1064     case XFA_Element::Event:
   1065       node = pdfium::MakeUnique<CXFA_Event>(doc, packet);
   1066       break;
   1067     case XFA_Element::Whitespace:
   1068       node = pdfium::MakeUnique<CXFA_Whitespace>(doc, packet);
   1069       break;
   1070     case XFA_Element::DefaultUi:
   1071       node = pdfium::MakeUnique<CXFA_DefaultUi>(doc, packet);
   1072       break;
   1073     case XFA_Element::DataModel:
   1074       node = pdfium::MakeUnique<CXFA_DataModel>(doc, packet);
   1075       break;
   1076     case XFA_Element::Barcode:
   1077       node = pdfium::MakeUnique<CXFA_Barcode>(doc, packet);
   1078       break;
   1079     case XFA_Element::TimePattern:
   1080       node = pdfium::MakeUnique<CXFA_TimePattern>(doc, packet);
   1081       break;
   1082     case XFA_Element::BatchOutput:
   1083       node = pdfium::MakeUnique<CXFA_BatchOutput>(doc, packet);
   1084       break;
   1085     case XFA_Element::Enforce:
   1086       node = pdfium::MakeUnique<CXFA_Enforce>(doc, packet);
   1087       break;
   1088     case XFA_Element::CurrencySymbols:
   1089       node = pdfium::MakeUnique<CXFA_CurrencySymbols>(doc, packet);
   1090       break;
   1091     case XFA_Element::AddSilentPrint:
   1092       node = pdfium::MakeUnique<CXFA_AddSilentPrint>(doc, packet);
   1093       break;
   1094     case XFA_Element::Rename:
   1095       node = pdfium::MakeUnique<CXFA_Rename>(doc, packet);
   1096       break;
   1097     case XFA_Element::Operation:
   1098       node = pdfium::MakeUnique<CXFA_Operation>(doc, packet);
   1099       break;
   1100     case XFA_Element::Typefaces:
   1101       node = pdfium::MakeUnique<CXFA_Typefaces>(doc, packet);
   1102       break;
   1103     case XFA_Element::SubjectDNs:
   1104       node = pdfium::MakeUnique<CXFA_SubjectDNs>(doc, packet);
   1105       break;
   1106     case XFA_Element::Issuers:
   1107       node = pdfium::MakeUnique<CXFA_Issuers>(doc, packet);
   1108       break;
   1109     case XFA_Element::WsdlConnection:
   1110       node = pdfium::MakeUnique<CXFA_WsdlConnection>(doc, packet);
   1111       break;
   1112     case XFA_Element::Debug:
   1113       node = pdfium::MakeUnique<CXFA_Debug>(doc, packet);
   1114       break;
   1115     case XFA_Element::Delta:
   1116       node = pdfium::MakeUnique<CXFA_Delta>(doc, packet);
   1117       break;
   1118     case XFA_Element::EraNames:
   1119       node = pdfium::MakeUnique<CXFA_EraNames>(doc, packet);
   1120       break;
   1121     case XFA_Element::ModifyAnnots:
   1122       node = pdfium::MakeUnique<CXFA_ModifyAnnots>(doc, packet);
   1123       break;
   1124     case XFA_Element::StartNode:
   1125       node = pdfium::MakeUnique<CXFA_StartNode>(doc, packet);
   1126       break;
   1127     case XFA_Element::Button:
   1128       node = pdfium::MakeUnique<CXFA_Button>(doc, packet);
   1129       break;
   1130     case XFA_Element::Format:
   1131       node = pdfium::MakeUnique<CXFA_Format>(doc, packet);
   1132       break;
   1133     case XFA_Element::Border:
   1134       node = pdfium::MakeUnique<CXFA_Border>(doc, packet);
   1135       break;
   1136     case XFA_Element::Area:
   1137       node = pdfium::MakeUnique<CXFA_Area>(doc, packet);
   1138       break;
   1139     case XFA_Element::Hyphenation:
   1140       node = pdfium::MakeUnique<CXFA_Hyphenation>(doc, packet);
   1141       break;
   1142     case XFA_Element::Text:
   1143       node = pdfium::MakeUnique<CXFA_Text>(doc, packet);
   1144       break;
   1145     case XFA_Element::Time:
   1146       node = pdfium::MakeUnique<CXFA_Time>(doc, packet);
   1147       break;
   1148     case XFA_Element::Type:
   1149       node = pdfium::MakeUnique<CXFA_Type>(doc, packet);
   1150       break;
   1151     case XFA_Element::Overprint:
   1152       node = pdfium::MakeUnique<CXFA_Overprint>(doc, packet);
   1153       break;
   1154     case XFA_Element::Certificates:
   1155       node = pdfium::MakeUnique<CXFA_Certificates>(doc, packet);
   1156       break;
   1157     case XFA_Element::EncryptionMethods:
   1158       node = pdfium::MakeUnique<CXFA_EncryptionMethods>(doc, packet);
   1159       break;
   1160     case XFA_Element::SetProperty:
   1161       node = pdfium::MakeUnique<CXFA_SetProperty>(doc, packet);
   1162       break;
   1163     case XFA_Element::PrinterName:
   1164       node = pdfium::MakeUnique<CXFA_PrinterName>(doc, packet);
   1165       break;
   1166     case XFA_Element::StartPage:
   1167       node = pdfium::MakeUnique<CXFA_StartPage>(doc, packet);
   1168       break;
   1169     case XFA_Element::PageOffset:
   1170       node = pdfium::MakeUnique<CXFA_PageOffset>(doc, packet);
   1171       break;
   1172     case XFA_Element::DateTime:
   1173       node = pdfium::MakeUnique<CXFA_DateTime>(doc, packet);
   1174       break;
   1175     case XFA_Element::Comb:
   1176       node = pdfium::MakeUnique<CXFA_Comb>(doc, packet);
   1177       break;
   1178     case XFA_Element::Pattern:
   1179       node = pdfium::MakeUnique<CXFA_Pattern>(doc, packet);
   1180       break;
   1181     case XFA_Element::IfEmpty:
   1182       node = pdfium::MakeUnique<CXFA_IfEmpty>(doc, packet);
   1183       break;
   1184     case XFA_Element::SuppressBanner:
   1185       node = pdfium::MakeUnique<CXFA_SuppressBanner>(doc, packet);
   1186       break;
   1187     case XFA_Element::OutputBin:
   1188       node = pdfium::MakeUnique<CXFA_OutputBin>(doc, packet);
   1189       break;
   1190     case XFA_Element::Field:
   1191       node = pdfium::MakeUnique<CXFA_Field>(doc, packet);
   1192       break;
   1193     case XFA_Element::Agent:
   1194       node = pdfium::MakeUnique<CXFA_Agent>(doc, packet);
   1195       break;
   1196     case XFA_Element::OutputXSL:
   1197       node = pdfium::MakeUnique<CXFA_OutputXSL>(doc, packet);
   1198       break;
   1199     case XFA_Element::AdjustData:
   1200       node = pdfium::MakeUnique<CXFA_AdjustData>(doc, packet);
   1201       break;
   1202     case XFA_Element::AutoSave:
   1203       node = pdfium::MakeUnique<CXFA_AutoSave>(doc, packet);
   1204       break;
   1205     case XFA_Element::ContentArea:
   1206       node = pdfium::MakeUnique<CXFA_ContentArea>(doc, packet);
   1207       break;
   1208     case XFA_Element::WsdlAddress:
   1209       node = pdfium::MakeUnique<CXFA_WsdlAddress>(doc, packet);
   1210       break;
   1211     case XFA_Element::Solid:
   1212       node = pdfium::MakeUnique<CXFA_Solid>(doc, packet);
   1213       break;
   1214     case XFA_Element::DateTimeSymbols:
   1215       node = pdfium::MakeUnique<CXFA_DateTimeSymbols>(doc, packet);
   1216       break;
   1217     case XFA_Element::EncryptionLevel:
   1218       node = pdfium::MakeUnique<CXFA_EncryptionLevel>(doc, packet);
   1219       break;
   1220     case XFA_Element::Edge:
   1221       node = pdfium::MakeUnique<CXFA_Edge>(doc, packet);
   1222       break;
   1223     case XFA_Element::Stipple:
   1224       node = pdfium::MakeUnique<CXFA_Stipple>(doc, packet);
   1225       break;
   1226     case XFA_Element::Attributes:
   1227       node = pdfium::MakeUnique<CXFA_Attributes>(doc, packet);
   1228       break;
   1229     case XFA_Element::VersionControl:
   1230       node = pdfium::MakeUnique<CXFA_VersionControl>(doc, packet);
   1231       break;
   1232     case XFA_Element::Meridiem:
   1233       node = pdfium::MakeUnique<CXFA_Meridiem>(doc, packet);
   1234       break;
   1235     case XFA_Element::ExclGroup:
   1236       node = pdfium::MakeUnique<CXFA_ExclGroup>(doc, packet);
   1237       break;
   1238     case XFA_Element::ToolTip:
   1239       node = pdfium::MakeUnique<CXFA_ToolTip>(doc, packet);
   1240       break;
   1241     case XFA_Element::Compress:
   1242       node = pdfium::MakeUnique<CXFA_Compress>(doc, packet);
   1243       break;
   1244     case XFA_Element::Reason:
   1245       node = pdfium::MakeUnique<CXFA_Reason>(doc, packet);
   1246       break;
   1247     case XFA_Element::Execute:
   1248       node = pdfium::MakeUnique<CXFA_Execute>(doc, packet);
   1249       break;
   1250     case XFA_Element::ContentCopy:
   1251       node = pdfium::MakeUnique<CXFA_ContentCopy>(doc, packet);
   1252       break;
   1253     case XFA_Element::DateTimeEdit:
   1254       node = pdfium::MakeUnique<CXFA_DateTimeEdit>(doc, packet);
   1255       break;
   1256     case XFA_Element::Config:
   1257       node = pdfium::MakeUnique<CXFA_Config>(doc, packet);
   1258       break;
   1259     case XFA_Element::Image:
   1260       node = pdfium::MakeUnique<CXFA_Image>(doc, packet);
   1261       break;
   1262     case XFA_Element::SharpxHTML:
   1263       node = pdfium::MakeUnique<CXFA_SharpxHTML>(doc, packet);
   1264       break;
   1265     case XFA_Element::NumberOfCopies:
   1266       node = pdfium::MakeUnique<CXFA_NumberOfCopies>(doc, packet);
   1267       break;
   1268     case XFA_Element::BehaviorOverride:
   1269       node = pdfium::MakeUnique<CXFA_BehaviorOverride>(doc, packet);
   1270       break;
   1271     case XFA_Element::TimeStamp:
   1272       node = pdfium::MakeUnique<CXFA_TimeStamp>(doc, packet);
   1273       break;
   1274     case XFA_Element::Month:
   1275       node = pdfium::MakeUnique<CXFA_Month>(doc, packet);
   1276       break;
   1277     case XFA_Element::ViewerPreferences:
   1278       node = pdfium::MakeUnique<CXFA_ViewerPreferences>(doc, packet);
   1279       break;
   1280     case XFA_Element::ScriptModel:
   1281       node = pdfium::MakeUnique<CXFA_ScriptModel>(doc, packet);
   1282       break;
   1283     case XFA_Element::Decimal:
   1284       node = pdfium::MakeUnique<CXFA_Decimal>(doc, packet);
   1285       break;
   1286     case XFA_Element::Subform:
   1287       node = pdfium::MakeUnique<CXFA_Subform>(doc, packet);
   1288       break;
   1289     case XFA_Element::Select:
   1290       node = pdfium::MakeUnique<CXFA_Select>(doc, packet);
   1291       break;
   1292     case XFA_Element::Window:
   1293       node = pdfium::MakeUnique<CXFA_Window>(doc, packet);
   1294       break;
   1295     case XFA_Element::LocaleSet:
   1296       node = pdfium::MakeUnique<CXFA_LocaleSet>(doc, packet);
   1297       break;
   1298     case XFA_Element::Handler:
   1299       node = pdfium::MakeUnique<CXFA_Handler>(doc, packet);
   1300       break;
   1301     case XFA_Element::Presence:
   1302       node = pdfium::MakeUnique<CXFA_Presence>(doc, packet);
   1303       break;
   1304     case XFA_Element::Record:
   1305       node = pdfium::MakeUnique<CXFA_Record>(doc, packet);
   1306       break;
   1307     case XFA_Element::Embed:
   1308       node = pdfium::MakeUnique<CXFA_Embed>(doc, packet);
   1309       break;
   1310     case XFA_Element::Version:
   1311       node = pdfium::MakeUnique<CXFA_Version>(doc, packet);
   1312       break;
   1313     case XFA_Element::Command:
   1314       node = pdfium::MakeUnique<CXFA_Command>(doc, packet);
   1315       break;
   1316     case XFA_Element::Copies:
   1317       node = pdfium::MakeUnique<CXFA_Copies>(doc, packet);
   1318       break;
   1319     case XFA_Element::Staple:
   1320       node = pdfium::MakeUnique<CXFA_Staple>(doc, packet);
   1321       break;
   1322     case XFA_Element::SubmitFormat:
   1323       node = pdfium::MakeUnique<CXFA_SubmitFormat>(doc, packet);
   1324       break;
   1325     case XFA_Element::Boolean:
   1326       node = pdfium::MakeUnique<CXFA_Boolean>(doc, packet);
   1327       break;
   1328     case XFA_Element::Message:
   1329       node = pdfium::MakeUnique<CXFA_Message>(doc, packet);
   1330       break;
   1331     case XFA_Element::Output:
   1332       node = pdfium::MakeUnique<CXFA_Output>(doc, packet);
   1333       break;
   1334     case XFA_Element::PsMap:
   1335       node = pdfium::MakeUnique<CXFA_PsMap>(doc, packet);
   1336       break;
   1337     case XFA_Element::ExcludeNS:
   1338       node = pdfium::MakeUnique<CXFA_ExcludeNS>(doc, packet);
   1339       break;
   1340     case XFA_Element::Assist:
   1341       node = pdfium::MakeUnique<CXFA_Assist>(doc, packet);
   1342       break;
   1343     case XFA_Element::Picture:
   1344       node = pdfium::MakeUnique<CXFA_Picture>(doc, packet);
   1345       break;
   1346     case XFA_Element::Traversal:
   1347       node = pdfium::MakeUnique<CXFA_Traversal>(doc, packet);
   1348       break;
   1349     case XFA_Element::SilentPrint:
   1350       node = pdfium::MakeUnique<CXFA_SilentPrint>(doc, packet);
   1351       break;
   1352     case XFA_Element::WebClient:
   1353       node = pdfium::MakeUnique<CXFA_WebClient>(doc, packet);
   1354       break;
   1355     case XFA_Element::Producer:
   1356       node = pdfium::MakeUnique<CXFA_Producer>(doc, packet);
   1357       break;
   1358     case XFA_Element::Corner:
   1359       node = pdfium::MakeUnique<CXFA_Corner>(doc, packet);
   1360       break;
   1361     case XFA_Element::MsgId:
   1362       node = pdfium::MakeUnique<CXFA_MsgId>(doc, packet);
   1363       break;
   1364     case XFA_Element::Color:
   1365       node = pdfium::MakeUnique<CXFA_Color>(doc, packet);
   1366       break;
   1367     case XFA_Element::Keep:
   1368       node = pdfium::MakeUnique<CXFA_Keep>(doc, packet);
   1369       break;
   1370     case XFA_Element::Query:
   1371       node = pdfium::MakeUnique<CXFA_Query>(doc, packet);
   1372       break;
   1373     case XFA_Element::Insert:
   1374       node = pdfium::MakeUnique<CXFA_Insert>(doc, packet);
   1375       break;
   1376     case XFA_Element::ImageEdit:
   1377       node = pdfium::MakeUnique<CXFA_ImageEdit>(doc, packet);
   1378       break;
   1379     case XFA_Element::Validate:
   1380       node = pdfium::MakeUnique<CXFA_Validate>(doc, packet);
   1381       break;
   1382     case XFA_Element::DigestMethods:
   1383       node = pdfium::MakeUnique<CXFA_DigestMethods>(doc, packet);
   1384       break;
   1385     case XFA_Element::NumberPatterns:
   1386       node = pdfium::MakeUnique<CXFA_NumberPatterns>(doc, packet);
   1387       break;
   1388     case XFA_Element::PageSet:
   1389       node = pdfium::MakeUnique<CXFA_PageSet>(doc, packet);
   1390       break;
   1391     case XFA_Element::Integer:
   1392       node = pdfium::MakeUnique<CXFA_Integer>(doc, packet);
   1393       break;
   1394     case XFA_Element::SoapAddress:
   1395       node = pdfium::MakeUnique<CXFA_SoapAddress>(doc, packet);
   1396       break;
   1397     case XFA_Element::Equate:
   1398       node = pdfium::MakeUnique<CXFA_Equate>(doc, packet);
   1399       break;
   1400     case XFA_Element::FormFieldFilling:
   1401       node = pdfium::MakeUnique<CXFA_FormFieldFilling>(doc, packet);
   1402       break;
   1403     case XFA_Element::PageRange:
   1404       node = pdfium::MakeUnique<CXFA_PageRange>(doc, packet);
   1405       break;
   1406     case XFA_Element::Update:
   1407       node = pdfium::MakeUnique<CXFA_Update>(doc, packet);
   1408       break;
   1409     case XFA_Element::ConnectString:
   1410       node = pdfium::MakeUnique<CXFA_ConnectString>(doc, packet);
   1411       break;
   1412     case XFA_Element::Mode:
   1413       node = pdfium::MakeUnique<CXFA_Mode>(doc, packet);
   1414       break;
   1415     case XFA_Element::Layout:
   1416       node = pdfium::MakeUnique<CXFA_Layout>(doc, packet);
   1417       break;
   1418     case XFA_Element::Sharpxml:
   1419       node = pdfium::MakeUnique<CXFA_Sharpxml>(doc, packet);
   1420       break;
   1421     case XFA_Element::XsdConnection:
   1422       node = pdfium::MakeUnique<CXFA_XsdConnection>(doc, packet);
   1423       break;
   1424     case XFA_Element::Traverse:
   1425       node = pdfium::MakeUnique<CXFA_Traverse>(doc, packet);
   1426       break;
   1427     case XFA_Element::Encodings:
   1428       node = pdfium::MakeUnique<CXFA_Encodings>(doc, packet);
   1429       break;
   1430     case XFA_Element::Template:
   1431       node = pdfium::MakeUnique<CXFA_Template>(doc, packet);
   1432       break;
   1433     case XFA_Element::Acrobat:
   1434       node = pdfium::MakeUnique<CXFA_Acrobat>(doc, packet);
   1435       break;
   1436     case XFA_Element::ValidationMessaging:
   1437       node = pdfium::MakeUnique<CXFA_ValidationMessaging>(doc, packet);
   1438       break;
   1439     case XFA_Element::Signing:
   1440       node = pdfium::MakeUnique<CXFA_Signing>(doc, packet);
   1441       break;
   1442     case XFA_Element::Script:
   1443       node = pdfium::MakeUnique<CXFA_Script>(doc, packet);
   1444       break;
   1445     case XFA_Element::AddViewerPreferences:
   1446       node = pdfium::MakeUnique<CXFA_AddViewerPreferences>(doc, packet);
   1447       break;
   1448     case XFA_Element::AlwaysEmbed:
   1449       node = pdfium::MakeUnique<CXFA_AlwaysEmbed>(doc, packet);
   1450       break;
   1451     case XFA_Element::PasswordEdit:
   1452       node = pdfium::MakeUnique<CXFA_PasswordEdit>(doc, packet);
   1453       break;
   1454     case XFA_Element::NumericEdit:
   1455       node = pdfium::MakeUnique<CXFA_NumericEdit>(doc, packet);
   1456       break;
   1457     case XFA_Element::EncryptionMethod:
   1458       node = pdfium::MakeUnique<CXFA_EncryptionMethod>(doc, packet);
   1459       break;
   1460     case XFA_Element::Change:
   1461       node = pdfium::MakeUnique<CXFA_Change>(doc, packet);
   1462       break;
   1463     case XFA_Element::PageArea:
   1464       node = pdfium::MakeUnique<CXFA_PageArea>(doc, packet);
   1465       break;
   1466     case XFA_Element::SubmitUrl:
   1467       node = pdfium::MakeUnique<CXFA_SubmitUrl>(doc, packet);
   1468       break;
   1469     case XFA_Element::Oids:
   1470       node = pdfium::MakeUnique<CXFA_Oids>(doc, packet);
   1471       break;
   1472     case XFA_Element::Signature:
   1473       node = pdfium::MakeUnique<CXFA_Signature>(doc, packet);
   1474       break;
   1475     case XFA_Element::ADBE_JSConsole:
   1476       node = pdfium::MakeUnique<CXFA_aDBE_JSConsole>(doc, packet);
   1477       break;
   1478     case XFA_Element::Caption:
   1479       node = pdfium::MakeUnique<CXFA_Caption>(doc, packet);
   1480       break;
   1481     case XFA_Element::Relevant:
   1482       node = pdfium::MakeUnique<CXFA_Relevant>(doc, packet);
   1483       break;
   1484     case XFA_Element::FlipLabel:
   1485       node = pdfium::MakeUnique<CXFA_FlipLabel>(doc, packet);
   1486       break;
   1487     case XFA_Element::ExData:
   1488       node = pdfium::MakeUnique<CXFA_ExData>(doc, packet);
   1489       break;
   1490     case XFA_Element::DayNames:
   1491       node = pdfium::MakeUnique<CXFA_DayNames>(doc, packet);
   1492       break;
   1493     case XFA_Element::SoapAction:
   1494       node = pdfium::MakeUnique<CXFA_SoapAction>(doc, packet);
   1495       break;
   1496     case XFA_Element::DefaultTypeface:
   1497       node = pdfium::MakeUnique<CXFA_DefaultTypeface>(doc, packet);
   1498       break;
   1499     case XFA_Element::Manifest:
   1500       node = pdfium::MakeUnique<CXFA_Manifest>(doc, packet);
   1501       break;
   1502     case XFA_Element::Overflow:
   1503       node = pdfium::MakeUnique<CXFA_Overflow>(doc, packet);
   1504       break;
   1505     case XFA_Element::Linear:
   1506       node = pdfium::MakeUnique<CXFA_Linear>(doc, packet);
   1507       break;
   1508     case XFA_Element::CurrencySymbol:
   1509       node = pdfium::MakeUnique<CXFA_CurrencySymbol>(doc, packet);
   1510       break;
   1511     case XFA_Element::Delete:
   1512       node = pdfium::MakeUnique<CXFA_Delete>(doc, packet);
   1513       break;
   1514     case XFA_Element::DigestMethod:
   1515       node = pdfium::MakeUnique<CXFA_DigestMethod>(doc, packet);
   1516       break;
   1517     case XFA_Element::InstanceManager:
   1518       node = pdfium::MakeUnique<CXFA_InstanceManager>(doc, packet);
   1519       break;
   1520     case XFA_Element::EquateRange:
   1521       node = pdfium::MakeUnique<CXFA_EquateRange>(doc, packet);
   1522       break;
   1523     case XFA_Element::Medium:
   1524       node = pdfium::MakeUnique<CXFA_Medium>(doc, packet);
   1525       break;
   1526     case XFA_Element::TextEdit:
   1527       node = pdfium::MakeUnique<CXFA_TextEdit>(doc, packet);
   1528       break;
   1529     case XFA_Element::TemplateCache:
   1530       node = pdfium::MakeUnique<CXFA_TemplateCache>(doc, packet);
   1531       break;
   1532     case XFA_Element::CompressObjectStream:
   1533       node = pdfium::MakeUnique<CXFA_CompressObjectStream>(doc, packet);
   1534       break;
   1535     case XFA_Element::DataValue:
   1536       node = pdfium::MakeUnique<CXFA_DataValue>(doc, packet);
   1537       break;
   1538     case XFA_Element::AccessibleContent:
   1539       node = pdfium::MakeUnique<CXFA_AccessibleContent>(doc, packet);
   1540       break;
   1541     case XFA_Element::IncludeXDPContent:
   1542       node = pdfium::MakeUnique<CXFA_IncludeXDPContent>(doc, packet);
   1543       break;
   1544     case XFA_Element::XmlConnection:
   1545       node = pdfium::MakeUnique<CXFA_XmlConnection>(doc, packet);
   1546       break;
   1547     case XFA_Element::ValidateApprovalSignatures:
   1548       node = pdfium::MakeUnique<CXFA_ValidateApprovalSignatures>(doc, packet);
   1549       break;
   1550     case XFA_Element::SignData:
   1551       node = pdfium::MakeUnique<CXFA_SignData>(doc, packet);
   1552       break;
   1553     case XFA_Element::Packets:
   1554       node = pdfium::MakeUnique<CXFA_Packets>(doc, packet);
   1555       break;
   1556     case XFA_Element::DatePattern:
   1557       node = pdfium::MakeUnique<CXFA_DatePattern>(doc, packet);
   1558       break;
   1559     case XFA_Element::DuplexOption:
   1560       node = pdfium::MakeUnique<CXFA_DuplexOption>(doc, packet);
   1561       break;
   1562     case XFA_Element::Base:
   1563       node = pdfium::MakeUnique<CXFA_Base>(doc, packet);
   1564       break;
   1565     case XFA_Element::Bind:
   1566       node = pdfium::MakeUnique<CXFA_Bind>(doc, packet);
   1567       break;
   1568     case XFA_Element::Compression:
   1569       node = pdfium::MakeUnique<CXFA_Compression>(doc, packet);
   1570       break;
   1571     case XFA_Element::User:
   1572       node = pdfium::MakeUnique<CXFA_User>(doc, packet);
   1573       break;
   1574     case XFA_Element::Rectangle:
   1575       node = pdfium::MakeUnique<CXFA_Rectangle>(doc, packet);
   1576       break;
   1577     case XFA_Element::EffectiveOutputPolicy:
   1578       node = pdfium::MakeUnique<CXFA_EffectiveOutputPolicy>(doc, packet);
   1579       break;
   1580     case XFA_Element::ADBE_JSDebugger:
   1581       node = pdfium::MakeUnique<CXFA_aDBE_JSDebugger>(doc, packet);
   1582       break;
   1583     case XFA_Element::Acrobat7:
   1584       node = pdfium::MakeUnique<CXFA_Acrobat7>(doc, packet);
   1585       break;
   1586     case XFA_Element::Interactive:
   1587       node = pdfium::MakeUnique<CXFA_Interactive>(doc, packet);
   1588       break;
   1589     case XFA_Element::Locale:
   1590       node = pdfium::MakeUnique<CXFA_Locale>(doc, packet);
   1591       break;
   1592     case XFA_Element::CurrentPage:
   1593       node = pdfium::MakeUnique<CXFA_CurrentPage>(doc, packet);
   1594       break;
   1595     case XFA_Element::Data:
   1596       node = pdfium::MakeUnique<CXFA_Data>(doc, packet);
   1597       break;
   1598     case XFA_Element::Date:
   1599       node = pdfium::MakeUnique<CXFA_Date>(doc, packet);
   1600       break;
   1601     case XFA_Element::Desc:
   1602       node = pdfium::MakeUnique<CXFA_Desc>(doc, packet);
   1603       break;
   1604     case XFA_Element::Encrypt:
   1605       node = pdfium::MakeUnique<CXFA_Encrypt>(doc, packet);
   1606       break;
   1607     case XFA_Element::Draw:
   1608       node = pdfium::MakeUnique<CXFA_Draw>(doc, packet);
   1609       break;
   1610     case XFA_Element::Encryption:
   1611       node = pdfium::MakeUnique<CXFA_Encryption>(doc, packet);
   1612       break;
   1613     case XFA_Element::MeridiemNames:
   1614       node = pdfium::MakeUnique<CXFA_MeridiemNames>(doc, packet);
   1615       break;
   1616     case XFA_Element::Messaging:
   1617       node = pdfium::MakeUnique<CXFA_Messaging>(doc, packet);
   1618       break;
   1619     case XFA_Element::Speak:
   1620       node = pdfium::MakeUnique<CXFA_Speak>(doc, packet);
   1621       break;
   1622     case XFA_Element::DataGroup:
   1623       node = pdfium::MakeUnique<CXFA_DataGroup>(doc, packet);
   1624       break;
   1625     case XFA_Element::Common:
   1626       node = pdfium::MakeUnique<CXFA_Common>(doc, packet);
   1627       break;
   1628     case XFA_Element::Sharptext:
   1629       node = pdfium::MakeUnique<CXFA_Sharptext>(doc, packet);
   1630       break;
   1631     case XFA_Element::PaginationOverride:
   1632       node = pdfium::MakeUnique<CXFA_PaginationOverride>(doc, packet);
   1633       break;
   1634     case XFA_Element::Reasons:
   1635       node = pdfium::MakeUnique<CXFA_Reasons>(doc, packet);
   1636       break;
   1637     case XFA_Element::SignatureProperties:
   1638       node = pdfium::MakeUnique<CXFA_SignatureProperties>(doc, packet);
   1639       break;
   1640     case XFA_Element::Threshold:
   1641       node = pdfium::MakeUnique<CXFA_Threshold>(doc, packet);
   1642       break;
   1643     case XFA_Element::AppearanceFilter:
   1644       node = pdfium::MakeUnique<CXFA_AppearanceFilter>(doc, packet);
   1645       break;
   1646     case XFA_Element::Fill:
   1647       node = pdfium::MakeUnique<CXFA_Fill>(doc, packet);
   1648       break;
   1649     case XFA_Element::Font:
   1650       node = pdfium::MakeUnique<CXFA_Font>(doc, packet);
   1651       break;
   1652     case XFA_Element::Form:
   1653       node = pdfium::MakeUnique<CXFA_Form>(doc, packet);
   1654       break;
   1655     case XFA_Element::MediumInfo:
   1656       node = pdfium::MakeUnique<CXFA_MediumInfo>(doc, packet);
   1657       break;
   1658     case XFA_Element::Certificate:
   1659       node = pdfium::MakeUnique<CXFA_Certificate>(doc, packet);
   1660       break;
   1661     case XFA_Element::Password:
   1662       node = pdfium::MakeUnique<CXFA_Password>(doc, packet);
   1663       break;
   1664     case XFA_Element::RunScripts:
   1665       node = pdfium::MakeUnique<CXFA_RunScripts>(doc, packet);
   1666       break;
   1667     case XFA_Element::Trace:
   1668       node = pdfium::MakeUnique<CXFA_Trace>(doc, packet);
   1669       break;
   1670     case XFA_Element::Float:
   1671       node = pdfium::MakeUnique<CXFA_Float>(doc, packet);
   1672       break;
   1673     case XFA_Element::RenderPolicy:
   1674       node = pdfium::MakeUnique<CXFA_RenderPolicy>(doc, packet);
   1675       break;
   1676     case XFA_Element::Destination:
   1677       node = pdfium::MakeUnique<CXFA_Destination>(doc, packet);
   1678       break;
   1679     case XFA_Element::Value:
   1680       node = pdfium::MakeUnique<CXFA_Value>(doc, packet);
   1681       break;
   1682     case XFA_Element::Bookend:
   1683       node = pdfium::MakeUnique<CXFA_Bookend>(doc, packet);
   1684       break;
   1685     case XFA_Element::ExObject:
   1686       node = pdfium::MakeUnique<CXFA_ExObject>(doc, packet);
   1687       break;
   1688     case XFA_Element::OpenAction:
   1689       node = pdfium::MakeUnique<CXFA_OpenAction>(doc, packet);
   1690       break;
   1691     case XFA_Element::NeverEmbed:
   1692       node = pdfium::MakeUnique<CXFA_NeverEmbed>(doc, packet);
   1693       break;
   1694     case XFA_Element::BindItems:
   1695       node = pdfium::MakeUnique<CXFA_BindItems>(doc, packet);
   1696       break;
   1697     case XFA_Element::Calculate:
   1698       node = pdfium::MakeUnique<CXFA_Calculate>(doc, packet);
   1699       break;
   1700     case XFA_Element::Print:
   1701       node = pdfium::MakeUnique<CXFA_Print>(doc, packet);
   1702       break;
   1703     case XFA_Element::Extras:
   1704       node = pdfium::MakeUnique<CXFA_Extras>(doc, packet);
   1705       break;
   1706     case XFA_Element::Proto:
   1707       node = pdfium::MakeUnique<CXFA_Proto>(doc, packet);
   1708       break;
   1709     case XFA_Element::DSigData:
   1710       node = pdfium::MakeUnique<CXFA_DSigData>(doc, packet);
   1711       break;
   1712     case XFA_Element::Creator:
   1713       node = pdfium::MakeUnique<CXFA_Creator>(doc, packet);
   1714       break;
   1715     case XFA_Element::Connect:
   1716       node = pdfium::MakeUnique<CXFA_Connect>(doc, packet);
   1717       break;
   1718     case XFA_Element::Permissions:
   1719       node = pdfium::MakeUnique<CXFA_Permissions>(doc, packet);
   1720       break;
   1721     case XFA_Element::ConnectionSet:
   1722       node = pdfium::MakeUnique<CXFA_ConnectionSet>(doc, packet);
   1723       break;
   1724     case XFA_Element::Submit:
   1725       node = pdfium::MakeUnique<CXFA_Submit>(doc, packet);
   1726       break;
   1727     case XFA_Element::Range:
   1728       node = pdfium::MakeUnique<CXFA_Range>(doc, packet);
   1729       break;
   1730     case XFA_Element::Linearized:
   1731       node = pdfium::MakeUnique<CXFA_Linearized>(doc, packet);
   1732       break;
   1733     case XFA_Element::Packet:
   1734       node = pdfium::MakeUnique<CXFA_Packet>(doc, packet);
   1735       break;
   1736     case XFA_Element::RootElement:
   1737       node = pdfium::MakeUnique<CXFA_RootElement>(doc, packet);
   1738       break;
   1739     case XFA_Element::PlaintextMetadata:
   1740       node = pdfium::MakeUnique<CXFA_PlaintextMetadata>(doc, packet);
   1741       break;
   1742     case XFA_Element::NumberSymbols:
   1743       node = pdfium::MakeUnique<CXFA_NumberSymbols>(doc, packet);
   1744       break;
   1745     case XFA_Element::PrintHighQuality:
   1746       node = pdfium::MakeUnique<CXFA_PrintHighQuality>(doc, packet);
   1747       break;
   1748     case XFA_Element::Driver:
   1749       node = pdfium::MakeUnique<CXFA_Driver>(doc, packet);
   1750       break;
   1751     case XFA_Element::IncrementalLoad:
   1752       node = pdfium::MakeUnique<CXFA_IncrementalLoad>(doc, packet);
   1753       break;
   1754     case XFA_Element::SubjectDN:
   1755       node = pdfium::MakeUnique<CXFA_SubjectDN>(doc, packet);
   1756       break;
   1757     case XFA_Element::CompressLogicalStructure:
   1758       node = pdfium::MakeUnique<CXFA_CompressLogicalStructure>(doc, packet);
   1759       break;
   1760     case XFA_Element::IncrementalMerge:
   1761       node = pdfium::MakeUnique<CXFA_IncrementalMerge>(doc, packet);
   1762       break;
   1763     case XFA_Element::Radial:
   1764       node = pdfium::MakeUnique<CXFA_Radial>(doc, packet);
   1765       break;
   1766     case XFA_Element::Variables:
   1767       node = pdfium::MakeUnique<CXFA_Variables>(doc, packet);
   1768       break;
   1769     case XFA_Element::TimePatterns:
   1770       node = pdfium::MakeUnique<CXFA_TimePatterns>(doc, packet);
   1771       break;
   1772     case XFA_Element::EffectiveInputPolicy:
   1773       node = pdfium::MakeUnique<CXFA_EffectiveInputPolicy>(doc, packet);
   1774       break;
   1775     case XFA_Element::NameAttr:
   1776       node = pdfium::MakeUnique<CXFA_NameAttr>(doc, packet);
   1777       break;
   1778     case XFA_Element::Conformance:
   1779       node = pdfium::MakeUnique<CXFA_Conformance>(doc, packet);
   1780       break;
   1781     case XFA_Element::Transform:
   1782       node = pdfium::MakeUnique<CXFA_Transform>(doc, packet);
   1783       break;
   1784     case XFA_Element::LockDocument:
   1785       node = pdfium::MakeUnique<CXFA_LockDocument>(doc, packet);
   1786       break;
   1787     case XFA_Element::BreakAfter:
   1788       node = pdfium::MakeUnique<CXFA_BreakAfter>(doc, packet);
   1789       break;
   1790     case XFA_Element::Line:
   1791       node = pdfium::MakeUnique<CXFA_Line>(doc, packet);
   1792       break;
   1793     case XFA_Element::Source:
   1794       node = pdfium::MakeUnique<CXFA_Source>(doc, packet);
   1795       break;
   1796     case XFA_Element::Occur:
   1797       node = pdfium::MakeUnique<CXFA_Occur>(doc, packet);
   1798       break;
   1799     case XFA_Element::PickTrayByPDFSize:
   1800       node = pdfium::MakeUnique<CXFA_PickTrayByPDFSize>(doc, packet);
   1801       break;
   1802     case XFA_Element::MonthNames:
   1803       node = pdfium::MakeUnique<CXFA_MonthNames>(doc, packet);
   1804       break;
   1805     case XFA_Element::Severity:
   1806       node = pdfium::MakeUnique<CXFA_Severity>(doc, packet);
   1807       break;
   1808     case XFA_Element::GroupParent:
   1809       node = pdfium::MakeUnique<CXFA_GroupParent>(doc, packet);
   1810       break;
   1811     case XFA_Element::DocumentAssembly:
   1812       node = pdfium::MakeUnique<CXFA_DocumentAssembly>(doc, packet);
   1813       break;
   1814     case XFA_Element::NumberSymbol:
   1815       node = pdfium::MakeUnique<CXFA_NumberSymbol>(doc, packet);
   1816       break;
   1817     case XFA_Element::Tagged:
   1818       node = pdfium::MakeUnique<CXFA_Tagged>(doc, packet);
   1819       break;
   1820     case XFA_Element::Items:
   1821       node = pdfium::MakeUnique<CXFA_Items>(doc, packet);
   1822       break;
   1823     default:
   1824       NOTREACHED();
   1825       return nullptr;
   1826   }
   1827   if (!node || !node->IsValidInPacket(packet))
   1828     return nullptr;
   1829   return node;
   1830 }
   1831 
   1832 // static
   1833 WideString CXFA_Node::AttributeToName(XFA_Attribute attr) {
   1834   switch (attr) {
   1835     case XFA_Attribute::H:
   1836       return L"h";
   1837     case XFA_Attribute::W:
   1838       return L"w";
   1839     case XFA_Attribute::X:
   1840       return L"x";
   1841     case XFA_Attribute::Y:
   1842       return L"y";
   1843     case XFA_Attribute::Id:
   1844       return L"id";
   1845     case XFA_Attribute::To:
   1846       return L"to";
   1847     case XFA_Attribute::LineThrough:
   1848       return L"lineThrough";
   1849     case XFA_Attribute::HAlign:
   1850       return L"hAlign";
   1851     case XFA_Attribute::Typeface:
   1852       return L"typeface";
   1853     case XFA_Attribute::BeforeTarget:
   1854       return L"beforeTarget";
   1855     case XFA_Attribute::Name:
   1856       return L"name";
   1857     case XFA_Attribute::Next:
   1858       return L"next";
   1859     case XFA_Attribute::DataRowCount:
   1860       return L"dataRowCount";
   1861     case XFA_Attribute::Break:
   1862       return L"break";
   1863     case XFA_Attribute::VScrollPolicy:
   1864       return L"vScrollPolicy";
   1865     case XFA_Attribute::FontHorizontalScale:
   1866       return L"fontHorizontalScale";
   1867     case XFA_Attribute::TextIndent:
   1868       return L"textIndent";
   1869     case XFA_Attribute::Context:
   1870       return L"context";
   1871     case XFA_Attribute::TrayOut:
   1872       return L"trayOut";
   1873     case XFA_Attribute::Cap:
   1874       return L"cap";
   1875     case XFA_Attribute::Max:
   1876       return L"max";
   1877     case XFA_Attribute::Min:
   1878       return L"min";
   1879     case XFA_Attribute::Ref:
   1880       return L"ref";
   1881     case XFA_Attribute::Rid:
   1882       return L"rid";
   1883     case XFA_Attribute::Url:
   1884       return L"url";
   1885     case XFA_Attribute::Use:
   1886       return L"use";
   1887     case XFA_Attribute::LeftInset:
   1888       return L"leftInset";
   1889     case XFA_Attribute::Widows:
   1890       return L"widows";
   1891     case XFA_Attribute::Level:
   1892       return L"level";
   1893     case XFA_Attribute::BottomInset:
   1894       return L"bottomInset";
   1895     case XFA_Attribute::OverflowTarget:
   1896       return L"overflowTarget";
   1897     case XFA_Attribute::AllowMacro:
   1898       return L"allowMacro";
   1899     case XFA_Attribute::PagePosition:
   1900       return L"pagePosition";
   1901     case XFA_Attribute::ColumnWidths:
   1902       return L"columnWidths";
   1903     case XFA_Attribute::OverflowLeader:
   1904       return L"overflowLeader";
   1905     case XFA_Attribute::Action:
   1906       return L"action";
   1907     case XFA_Attribute::NonRepudiation:
   1908       return L"nonRepudiation";
   1909     case XFA_Attribute::Rate:
   1910       return L"rate";
   1911     case XFA_Attribute::AllowRichText:
   1912       return L"allowRichText";
   1913     case XFA_Attribute::Role:
   1914       return L"role";
   1915     case XFA_Attribute::OverflowTrailer:
   1916       return L"overflowTrailer";
   1917     case XFA_Attribute::Operation:
   1918       return L"operation";
   1919     case XFA_Attribute::Timeout:
   1920       return L"timeout";
   1921     case XFA_Attribute::TopInset:
   1922       return L"topInset";
   1923     case XFA_Attribute::Access:
   1924       return L"access";
   1925     case XFA_Attribute::CommandType:
   1926       return L"commandType";
   1927     case XFA_Attribute::Format:
   1928       return L"format";
   1929     case XFA_Attribute::DataPrep:
   1930       return L"dataPrep";
   1931     case XFA_Attribute::WidgetData:
   1932       return L"widgetData";
   1933     case XFA_Attribute::Abbr:
   1934       return L"abbr";
   1935     case XFA_Attribute::MarginRight:
   1936       return L"marginRight";
   1937     case XFA_Attribute::DataDescription:
   1938       return L"dataDescription";
   1939     case XFA_Attribute::EncipherOnly:
   1940       return L"encipherOnly";
   1941     case XFA_Attribute::KerningMode:
   1942       return L"kerningMode";
   1943     case XFA_Attribute::Rotate:
   1944       return L"rotate";
   1945     case XFA_Attribute::WordCharacterCount:
   1946       return L"wordCharacterCount";
   1947     case XFA_Attribute::Type:
   1948       return L"type";
   1949     case XFA_Attribute::Reserve:
   1950       return L"reserve";
   1951     case XFA_Attribute::TextLocation:
   1952       return L"textLocation";
   1953     case XFA_Attribute::Priority:
   1954       return L"priority";
   1955     case XFA_Attribute::Underline:
   1956       return L"underline";
   1957     case XFA_Attribute::ModuleWidth:
   1958       return L"moduleWidth";
   1959     case XFA_Attribute::Hyphenate:
   1960       return L"hyphenate";
   1961     case XFA_Attribute::Listen:
   1962       return L"listen";
   1963     case XFA_Attribute::Delimiter:
   1964       return L"delimiter";
   1965     case XFA_Attribute::ContentType:
   1966       return L"contentType";
   1967     case XFA_Attribute::StartNew:
   1968       return L"startNew";
   1969     case XFA_Attribute::EofAction:
   1970       return L"eofAction";
   1971     case XFA_Attribute::AllowNeutral:
   1972       return L"allowNeutral";
   1973     case XFA_Attribute::Connection:
   1974       return L"connection";
   1975     case XFA_Attribute::BaselineShift:
   1976       return L"baselineShift";
   1977     case XFA_Attribute::OverlinePeriod:
   1978       return L"overlinePeriod";
   1979     case XFA_Attribute::FracDigits:
   1980       return L"fracDigits";
   1981     case XFA_Attribute::Orientation:
   1982       return L"orientation";
   1983     case XFA_Attribute::TimeStamp:
   1984       return L"timeStamp";
   1985     case XFA_Attribute::PrintCheckDigit:
   1986       return L"printCheckDigit";
   1987     case XFA_Attribute::MarginLeft:
   1988       return L"marginLeft";
   1989     case XFA_Attribute::Stroke:
   1990       return L"stroke";
   1991     case XFA_Attribute::ModuleHeight:
   1992       return L"moduleHeight";
   1993     case XFA_Attribute::TransferEncoding:
   1994       return L"transferEncoding";
   1995     case XFA_Attribute::Usage:
   1996       return L"usage";
   1997     case XFA_Attribute::Presence:
   1998       return L"presence";
   1999     case XFA_Attribute::RadixOffset:
   2000       return L"radixOffset";
   2001     case XFA_Attribute::Preserve:
   2002       return L"preserve";
   2003     case XFA_Attribute::AliasNode:
   2004       return L"aliasNode";
   2005     case XFA_Attribute::MultiLine:
   2006       return L"multiLine";
   2007     case XFA_Attribute::Version:
   2008       return L"version";
   2009     case XFA_Attribute::StartChar:
   2010       return L"startChar";
   2011     case XFA_Attribute::ScriptTest:
   2012       return L"scriptTest";
   2013     case XFA_Attribute::StartAngle:
   2014       return L"startAngle";
   2015     case XFA_Attribute::CursorType:
   2016       return L"cursorType";
   2017     case XFA_Attribute::DigitalSignature:
   2018       return L"digitalSignature";
   2019     case XFA_Attribute::CodeType:
   2020       return L"codeType";
   2021     case XFA_Attribute::Output:
   2022       return L"output";
   2023     case XFA_Attribute::BookendTrailer:
   2024       return L"bookendTrailer";
   2025     case XFA_Attribute::ImagingBBox:
   2026       return L"imagingBBox";
   2027     case XFA_Attribute::ExcludeInitialCap:
   2028       return L"excludeInitialCap";
   2029     case XFA_Attribute::Force:
   2030       return L"force";
   2031     case XFA_Attribute::CrlSign:
   2032       return L"crlSign";
   2033     case XFA_Attribute::Previous:
   2034       return L"previous";
   2035     case XFA_Attribute::PushCharacterCount:
   2036       return L"pushCharacterCount";
   2037     case XFA_Attribute::NullTest:
   2038       return L"nullTest";
   2039     case XFA_Attribute::RunAt:
   2040       return L"runAt";
   2041     case XFA_Attribute::SpaceBelow:
   2042       return L"spaceBelow";
   2043     case XFA_Attribute::SweepAngle:
   2044       return L"sweepAngle";
   2045     case XFA_Attribute::NumberOfCells:
   2046       return L"numberOfCells";
   2047     case XFA_Attribute::LetterSpacing:
   2048       return L"letterSpacing";
   2049     case XFA_Attribute::LockType:
   2050       return L"lockType";
   2051     case XFA_Attribute::PasswordChar:
   2052       return L"passwordChar";
   2053     case XFA_Attribute::VAlign:
   2054       return L"vAlign";
   2055     case XFA_Attribute::SourceBelow:
   2056       return L"sourceBelow";
   2057     case XFA_Attribute::Inverted:
   2058       return L"inverted";
   2059     case XFA_Attribute::Mark:
   2060       return L"mark";
   2061     case XFA_Attribute::MaxH:
   2062       return L"maxH";
   2063     case XFA_Attribute::MaxW:
   2064       return L"maxW";
   2065     case XFA_Attribute::Truncate:
   2066       return L"truncate";
   2067     case XFA_Attribute::MinH:
   2068       return L"minH";
   2069     case XFA_Attribute::MinW:
   2070       return L"minW";
   2071     case XFA_Attribute::Initial:
   2072       return L"initial";
   2073     case XFA_Attribute::Mode:
   2074       return L"mode";
   2075     case XFA_Attribute::Layout:
   2076       return L"layout";
   2077     case XFA_Attribute::Server:
   2078       return L"server";
   2079     case XFA_Attribute::EmbedPDF:
   2080       return L"embedPDF";
   2081     case XFA_Attribute::OddOrEven:
   2082       return L"oddOrEven";
   2083     case XFA_Attribute::TabDefault:
   2084       return L"tabDefault";
   2085     case XFA_Attribute::Contains:
   2086       return L"contains";
   2087     case XFA_Attribute::RightInset:
   2088       return L"rightInset";
   2089     case XFA_Attribute::MaxChars:
   2090       return L"maxChars";
   2091     case XFA_Attribute::Open:
   2092       return L"open";
   2093     case XFA_Attribute::Relation:
   2094       return L"relation";
   2095     case XFA_Attribute::WideNarrowRatio:
   2096       return L"wideNarrowRatio";
   2097     case XFA_Attribute::Relevant:
   2098       return L"relevant";
   2099     case XFA_Attribute::SignatureType:
   2100       return L"signatureType";
   2101     case XFA_Attribute::LineThroughPeriod:
   2102       return L"lineThroughPeriod";
   2103     case XFA_Attribute::Shape:
   2104       return L"shape";
   2105     case XFA_Attribute::TabStops:
   2106       return L"tabStops";
   2107     case XFA_Attribute::OutputBelow:
   2108       return L"outputBelow";
   2109     case XFA_Attribute::Short:
   2110       return L"short";
   2111     case XFA_Attribute::FontVerticalScale:
   2112       return L"fontVerticalScale";
   2113     case XFA_Attribute::Thickness:
   2114       return L"thickness";
   2115     case XFA_Attribute::CommitOn:
   2116       return L"commitOn";
   2117     case XFA_Attribute::RemainCharacterCount:
   2118       return L"remainCharacterCount";
   2119     case XFA_Attribute::KeyAgreement:
   2120       return L"keyAgreement";
   2121     case XFA_Attribute::ErrorCorrectionLevel:
   2122       return L"errorCorrectionLevel";
   2123     case XFA_Attribute::UpsMode:
   2124       return L"upsMode";
   2125     case XFA_Attribute::MergeMode:
   2126       return L"mergeMode";
   2127     case XFA_Attribute::Circular:
   2128       return L"circular";
   2129     case XFA_Attribute::PsName:
   2130       return L"psName";
   2131     case XFA_Attribute::Trailer:
   2132       return L"trailer";
   2133     case XFA_Attribute::UnicodeRange:
   2134       return L"unicodeRange";
   2135     case XFA_Attribute::ExecuteType:
   2136       return L"executeType";
   2137     case XFA_Attribute::DuplexImposition:
   2138       return L"duplexImposition";
   2139     case XFA_Attribute::TrayIn:
   2140       return L"trayIn";
   2141     case XFA_Attribute::BindingNode:
   2142       return L"bindingNode";
   2143     case XFA_Attribute::BofAction:
   2144       return L"bofAction";
   2145     case XFA_Attribute::Save:
   2146       return L"save";
   2147     case XFA_Attribute::TargetType:
   2148       return L"targetType";
   2149     case XFA_Attribute::KeyEncipherment:
   2150       return L"keyEncipherment";
   2151     case XFA_Attribute::CredentialServerPolicy:
   2152       return L"credentialServerPolicy";
   2153     case XFA_Attribute::Size:
   2154       return L"size";
   2155     case XFA_Attribute::InitialNumber:
   2156       return L"initialNumber";
   2157     case XFA_Attribute::Slope:
   2158       return L"slope";
   2159     case XFA_Attribute::CSpace:
   2160       return L"cSpace";
   2161     case XFA_Attribute::ColSpan:
   2162       return L"colSpan";
   2163     case XFA_Attribute::Binding:
   2164       return L"binding";
   2165     case XFA_Attribute::Checksum:
   2166       return L"checksum";
   2167     case XFA_Attribute::CharEncoding:
   2168       return L"charEncoding";
   2169     case XFA_Attribute::Bind:
   2170       return L"bind";
   2171     case XFA_Attribute::TextEntry:
   2172       return L"textEntry";
   2173     case XFA_Attribute::Archive:
   2174       return L"archive";
   2175     case XFA_Attribute::Uuid:
   2176       return L"uuid";
   2177     case XFA_Attribute::Posture:
   2178       return L"posture";
   2179     case XFA_Attribute::After:
   2180       return L"after";
   2181     case XFA_Attribute::Orphans:
   2182       return L"orphans";
   2183     case XFA_Attribute::QualifiedName:
   2184       return L"qualifiedName";
   2185     case XFA_Attribute::Usehref:
   2186       return L"usehref";
   2187     case XFA_Attribute::Locale:
   2188       return L"locale";
   2189     case XFA_Attribute::Weight:
   2190       return L"weight";
   2191     case XFA_Attribute::UnderlinePeriod:
   2192       return L"underlinePeriod";
   2193     case XFA_Attribute::Data:
   2194       return L"data";
   2195     case XFA_Attribute::Desc:
   2196       return L"desc";
   2197     case XFA_Attribute::Numbered:
   2198       return L"numbered";
   2199     case XFA_Attribute::DataColumnCount:
   2200       return L"dataColumnCount";
   2201     case XFA_Attribute::Overline:
   2202       return L"overline";
   2203     case XFA_Attribute::UrlPolicy:
   2204       return L"urlPolicy";
   2205     case XFA_Attribute::AnchorType:
   2206       return L"anchorType";
   2207     case XFA_Attribute::LabelRef:
   2208       return L"labelRef";
   2209     case XFA_Attribute::BookendLeader:
   2210       return L"bookendLeader";
   2211     case XFA_Attribute::MaxLength:
   2212       return L"maxLength";
   2213     case XFA_Attribute::AccessKey:
   2214       return L"accessKey";
   2215     case XFA_Attribute::CursorLocation:
   2216       return L"cursorLocation";
   2217     case XFA_Attribute::DelayedOpen:
   2218       return L"delayedOpen";
   2219     case XFA_Attribute::Target:
   2220       return L"target";
   2221     case XFA_Attribute::DataEncipherment:
   2222       return L"dataEncipherment";
   2223     case XFA_Attribute::AfterTarget:
   2224       return L"afterTarget";
   2225     case XFA_Attribute::Leader:
   2226       return L"leader";
   2227     case XFA_Attribute::Picker:
   2228       return L"picker";
   2229     case XFA_Attribute::From:
   2230       return L"from";
   2231     case XFA_Attribute::BaseProfile:
   2232       return L"baseProfile";
   2233     case XFA_Attribute::Aspect:
   2234       return L"aspect";
   2235     case XFA_Attribute::RowColumnRatio:
   2236       return L"rowColumnRatio";
   2237     case XFA_Attribute::LineHeight:
   2238       return L"lineHeight";
   2239     case XFA_Attribute::Highlight:
   2240       return L"highlight";
   2241     case XFA_Attribute::ValueRef:
   2242       return L"valueRef";
   2243     case XFA_Attribute::MaxEntries:
   2244       return L"maxEntries";
   2245     case XFA_Attribute::DataLength:
   2246       return L"dataLength";
   2247     case XFA_Attribute::Activity:
   2248       return L"activity";
   2249     case XFA_Attribute::Input:
   2250       return L"input";
   2251     case XFA_Attribute::Value:
   2252       return L"value";
   2253     case XFA_Attribute::BlankOrNotBlank:
   2254       return L"blankOrNotBlank";
   2255     case XFA_Attribute::AddRevocationInfo:
   2256       return L"addRevocationInfo";
   2257     case XFA_Attribute::GenericFamily:
   2258       return L"genericFamily";
   2259     case XFA_Attribute::Hand:
   2260       return L"hand";
   2261     case XFA_Attribute::Href:
   2262       return L"href";
   2263     case XFA_Attribute::TextEncoding:
   2264       return L"textEncoding";
   2265     case XFA_Attribute::LeadDigits:
   2266       return L"leadDigits";
   2267     case XFA_Attribute::Permissions:
   2268       return L"permissions";
   2269     case XFA_Attribute::SpaceAbove:
   2270       return L"spaceAbove";
   2271     case XFA_Attribute::CodeBase:
   2272       return L"codeBase";
   2273     case XFA_Attribute::Stock:
   2274       return L"stock";
   2275     case XFA_Attribute::IsNull:
   2276       return L"isNull";
   2277     case XFA_Attribute::RestoreState:
   2278       return L"restoreState";
   2279     case XFA_Attribute::ExcludeAllCaps:
   2280       return L"excludeAllCaps";
   2281     case XFA_Attribute::FormatTest:
   2282       return L"formatTest";
   2283     case XFA_Attribute::HScrollPolicy:
   2284       return L"hScrollPolicy";
   2285     case XFA_Attribute::Join:
   2286       return L"join";
   2287     case XFA_Attribute::KeyCertSign:
   2288       return L"keyCertSign";
   2289     case XFA_Attribute::Radius:
   2290       return L"radius";
   2291     case XFA_Attribute::SourceAbove:
   2292       return L"sourceAbove";
   2293     case XFA_Attribute::Override:
   2294       return L"override";
   2295     case XFA_Attribute::ClassId:
   2296       return L"classId";
   2297     case XFA_Attribute::Disable:
   2298       return L"disable";
   2299     case XFA_Attribute::Scope:
   2300       return L"scope";
   2301     case XFA_Attribute::Match:
   2302       return L"match";
   2303     case XFA_Attribute::Placement:
   2304       return L"placement";
   2305     case XFA_Attribute::Before:
   2306       return L"before";
   2307     case XFA_Attribute::WritingScript:
   2308       return L"writingScript";
   2309     case XFA_Attribute::EndChar:
   2310       return L"endChar";
   2311     case XFA_Attribute::Lock:
   2312       return L"lock";
   2313     case XFA_Attribute::Long:
   2314       return L"long";
   2315     case XFA_Attribute::Intact:
   2316       return L"intact";
   2317     case XFA_Attribute::XdpContent:
   2318       return L"xdpContent";
   2319     case XFA_Attribute::DecipherOnly:
   2320       return L"decipherOnly";
   2321 
   2322     default:
   2323       NOTREACHED();
   2324       break;
   2325   }
   2326   return L"";
   2327 }
   2328 
   2329 #ifndef NDEBUG
   2330 // static
   2331 WideString CXFA_Node::ElementToName(XFA_Element attr) {
   2332   switch (attr) {
   2333     case XFA_Element::Ps:
   2334       return L"ps";
   2335     case XFA_Element::To:
   2336       return L"to";
   2337     case XFA_Element::Ui:
   2338       return L"ui";
   2339     case XFA_Element::RecordSet:
   2340       return L"recordSet";
   2341     case XFA_Element::SubsetBelow:
   2342       return L"subsetBelow";
   2343     case XFA_Element::SubformSet:
   2344       return L"subformSet";
   2345     case XFA_Element::AdobeExtensionLevel:
   2346       return L"adobeExtensionLevel";
   2347     case XFA_Element::Typeface:
   2348       return L"typeface";
   2349     case XFA_Element::Break:
   2350       return L"break";
   2351     case XFA_Element::FontInfo:
   2352       return L"fontInfo";
   2353     case XFA_Element::NumberPattern:
   2354       return L"numberPattern";
   2355     case XFA_Element::DynamicRender:
   2356       return L"dynamicRender";
   2357     case XFA_Element::PrintScaling:
   2358       return L"printScaling";
   2359     case XFA_Element::CheckButton:
   2360       return L"checkButton";
   2361     case XFA_Element::DatePatterns:
   2362       return L"datePatterns";
   2363     case XFA_Element::SourceSet:
   2364       return L"sourceSet";
   2365     case XFA_Element::Amd:
   2366       return L"amd";
   2367     case XFA_Element::Arc:
   2368       return L"arc";
   2369     case XFA_Element::Day:
   2370       return L"day";
   2371     case XFA_Element::Era:
   2372       return L"era";
   2373     case XFA_Element::Jog:
   2374       return L"jog";
   2375     case XFA_Element::Log:
   2376       return L"log";
   2377     case XFA_Element::Map:
   2378       return L"map";
   2379     case XFA_Element::Mdp:
   2380       return L"mdp";
   2381     case XFA_Element::BreakBefore:
   2382       return L"breakBefore";
   2383     case XFA_Element::Oid:
   2384       return L"oid";
   2385     case XFA_Element::Pcl:
   2386       return L"pcl";
   2387     case XFA_Element::Pdf:
   2388       return L"pdf";
   2389     case XFA_Element::Ref:
   2390       return L"ref";
   2391     case XFA_Element::Uri:
   2392       return L"uri";
   2393     case XFA_Element::Xdc:
   2394       return L"xdc";
   2395     case XFA_Element::Xdp:
   2396       return L"xdp";
   2397     case XFA_Element::Xfa:
   2398       return L"xfa";
   2399     case XFA_Element::Xsl:
   2400       return L"xsl";
   2401     case XFA_Element::Zpl:
   2402       return L"zpl";
   2403     case XFA_Element::Cache:
   2404       return L"cache";
   2405     case XFA_Element::Margin:
   2406       return L"margin";
   2407     case XFA_Element::KeyUsage:
   2408       return L"keyUsage";
   2409     case XFA_Element::Exclude:
   2410       return L"exclude";
   2411     case XFA_Element::ChoiceList:
   2412       return L"choiceList";
   2413     case XFA_Element::Level:
   2414       return L"level";
   2415     case XFA_Element::LabelPrinter:
   2416       return L"labelPrinter";
   2417     case XFA_Element::CalendarSymbols:
   2418       return L"calendarSymbols";
   2419     case XFA_Element::Para:
   2420       return L"para";
   2421     case XFA_Element::Part:
   2422       return L"part";
   2423     case XFA_Element::Pdfa:
   2424       return L"pdfa";
   2425     case XFA_Element::Filter:
   2426       return L"filter";
   2427     case XFA_Element::Present:
   2428       return L"present";
   2429     case XFA_Element::Pagination:
   2430       return L"pagination";
   2431     case XFA_Element::Encoding:
   2432       return L"encoding";
   2433     case XFA_Element::Event:
   2434       return L"event";
   2435     case XFA_Element::Whitespace:
   2436       return L"whitespace";
   2437     case XFA_Element::DefaultUi:
   2438       return L"defaultUi";
   2439     case XFA_Element::DataModel:
   2440       return L"dataModel";
   2441     case XFA_Element::Barcode:
   2442       return L"barcode";
   2443     case XFA_Element::TimePattern:
   2444       return L"timePattern";
   2445     case XFA_Element::BatchOutput:
   2446       return L"batchOutput";
   2447     case XFA_Element::Enforce:
   2448       return L"enforce";
   2449     case XFA_Element::CurrencySymbols:
   2450       return L"currencySymbols";
   2451     case XFA_Element::AddSilentPrint:
   2452       return L"addSilentPrint";
   2453     case XFA_Element::Rename:
   2454       return L"rename";
   2455     case XFA_Element::Operation:
   2456       return L"operation";
   2457     case XFA_Element::Typefaces:
   2458       return L"typefaces";
   2459     case XFA_Element::SubjectDNs:
   2460       return L"subjectDNs";
   2461     case XFA_Element::Issuers:
   2462       return L"issuers";
   2463     case XFA_Element::WsdlConnection:
   2464       return L"wsdlConnection";
   2465     case XFA_Element::Debug:
   2466       return L"debug";
   2467     case XFA_Element::Delta:
   2468       return L"delta";
   2469     case XFA_Element::EraNames:
   2470       return L"eraNames";
   2471     case XFA_Element::ModifyAnnots:
   2472       return L"modifyAnnots";
   2473     case XFA_Element::StartNode:
   2474       return L"startNode";
   2475     case XFA_Element::Button:
   2476       return L"button";
   2477     case XFA_Element::Format:
   2478       return L"format";
   2479     case XFA_Element::Border:
   2480       return L"border";
   2481     case XFA_Element::Area:
   2482       return L"area";
   2483     case XFA_Element::Hyphenation:
   2484       return L"hyphenation";
   2485     case XFA_Element::Text:
   2486       return L"text";
   2487     case XFA_Element::Time:
   2488       return L"time";
   2489     case XFA_Element::Type:
   2490       return L"type";
   2491     case XFA_Element::Overprint:
   2492       return L"overprint";
   2493     case XFA_Element::Certificates:
   2494       return L"certificates";
   2495     case XFA_Element::EncryptionMethods:
   2496       return L"encryptionMethods";
   2497     case XFA_Element::SetProperty:
   2498       return L"setProperty";
   2499     case XFA_Element::PrinterName:
   2500       return L"printerName";
   2501     case XFA_Element::StartPage:
   2502       return L"startPage";
   2503     case XFA_Element::PageOffset:
   2504       return L"pageOffset";
   2505     case XFA_Element::DateTime:
   2506       return L"dateTime";
   2507     case XFA_Element::Comb:
   2508       return L"comb";
   2509     case XFA_Element::Pattern:
   2510       return L"pattern";
   2511     case XFA_Element::IfEmpty:
   2512       return L"ifEmpty";
   2513     case XFA_Element::SuppressBanner:
   2514       return L"suppressBanner";
   2515     case XFA_Element::OutputBin:
   2516       return L"outputBin";
   2517     case XFA_Element::Field:
   2518       return L"field";
   2519     case XFA_Element::Agent:
   2520       return L"agent";
   2521     case XFA_Element::OutputXSL:
   2522       return L"outputXSL";
   2523     case XFA_Element::AdjustData:
   2524       return L"adjustData";
   2525     case XFA_Element::AutoSave:
   2526       return L"autoSave";
   2527     case XFA_Element::ContentArea:
   2528       return L"contentArea";
   2529     case XFA_Element::WsdlAddress:
   2530       return L"wsdlAddress";
   2531     case XFA_Element::Solid:
   2532       return L"solid";
   2533     case XFA_Element::DateTimeSymbols:
   2534       return L"dateTimeSymbols";
   2535     case XFA_Element::EncryptionLevel:
   2536       return L"encryptionLevel";
   2537     case XFA_Element::Edge:
   2538       return L"edge";
   2539     case XFA_Element::Stipple:
   2540       return L"stipple";
   2541     case XFA_Element::Attributes:
   2542       return L"attributes";
   2543     case XFA_Element::VersionControl:
   2544       return L"versionControl";
   2545     case XFA_Element::Meridiem:
   2546       return L"meridiem";
   2547     case XFA_Element::ExclGroup:
   2548       return L"exclGroup";
   2549     case XFA_Element::ToolTip:
   2550       return L"toolTip";
   2551     case XFA_Element::Compress:
   2552       return L"compress";
   2553     case XFA_Element::Reason:
   2554       return L"reason";
   2555     case XFA_Element::Execute:
   2556       return L"execute";
   2557     case XFA_Element::ContentCopy:
   2558       return L"contentCopy";
   2559     case XFA_Element::DateTimeEdit:
   2560       return L"dateTimeEdit";
   2561     case XFA_Element::Config:
   2562       return L"config";
   2563     case XFA_Element::Image:
   2564       return L"image";
   2565     case XFA_Element::SharpxHTML:
   2566       return L"#xHTML";
   2567     case XFA_Element::NumberOfCopies:
   2568       return L"numberOfCopies";
   2569     case XFA_Element::BehaviorOverride:
   2570       return L"behaviorOverride";
   2571     case XFA_Element::TimeStamp:
   2572       return L"timeStamp";
   2573     case XFA_Element::Month:
   2574       return L"month";
   2575     case XFA_Element::ViewerPreferences:
   2576       return L"viewerPreferences";
   2577     case XFA_Element::ScriptModel:
   2578       return L"scriptModel";
   2579     case XFA_Element::Decimal:
   2580       return L"decimal";
   2581     case XFA_Element::Subform:
   2582       return L"subform";
   2583     case XFA_Element::Select:
   2584       return L"select";
   2585     case XFA_Element::Window:
   2586       return L"window";
   2587     case XFA_Element::LocaleSet:
   2588       return L"localeSet";
   2589     case XFA_Element::Handler:
   2590       return L"handler";
   2591     case XFA_Element::Presence:
   2592       return L"presence";
   2593     case XFA_Element::Record:
   2594       return L"record";
   2595     case XFA_Element::Embed:
   2596       return L"embed";
   2597     case XFA_Element::Version:
   2598       return L"version";
   2599     case XFA_Element::Command:
   2600       return L"command";
   2601     case XFA_Element::Copies:
   2602       return L"copies";
   2603     case XFA_Element::Staple:
   2604       return L"staple";
   2605     case XFA_Element::SubmitFormat:
   2606       return L"submitFormat";
   2607     case XFA_Element::Boolean:
   2608       return L"boolean";
   2609     case XFA_Element::Message:
   2610       return L"message";
   2611     case XFA_Element::Output:
   2612       return L"output";
   2613     case XFA_Element::PsMap:
   2614       return L"psMap";
   2615     case XFA_Element::ExcludeNS:
   2616       return L"excludeNS";
   2617     case XFA_Element::Assist:
   2618       return L"assist";
   2619     case XFA_Element::Picture:
   2620       return L"picture";
   2621     case XFA_Element::Traversal:
   2622       return L"traversal";
   2623     case XFA_Element::SilentPrint:
   2624       return L"silentPrint";
   2625     case XFA_Element::WebClient:
   2626       return L"webClient";
   2627     case XFA_Element::Producer:
   2628       return L"producer";
   2629     case XFA_Element::Corner:
   2630       return L"corner";
   2631     case XFA_Element::MsgId:
   2632       return L"msgId";
   2633     case XFA_Element::Color:
   2634       return L"color";
   2635     case XFA_Element::Keep:
   2636       return L"keep";
   2637     case XFA_Element::Query:
   2638       return L"query";
   2639     case XFA_Element::Insert:
   2640       return L"insert";
   2641     case XFA_Element::ImageEdit:
   2642       return L"imageEdit";
   2643     case XFA_Element::Validate:
   2644       return L"validate";
   2645     case XFA_Element::DigestMethods:
   2646       return L"digestMethods";
   2647     case XFA_Element::NumberPatterns:
   2648       return L"numberPatterns";
   2649     case XFA_Element::PageSet:
   2650       return L"pageSet";
   2651     case XFA_Element::Integer:
   2652       return L"integer";
   2653     case XFA_Element::SoapAddress:
   2654       return L"soapAddress";
   2655     case XFA_Element::Equate:
   2656       return L"equate";
   2657     case XFA_Element::FormFieldFilling:
   2658       return L"formFieldFilling";
   2659     case XFA_Element::PageRange:
   2660       return L"pageRange";
   2661     case XFA_Element::Update:
   2662       return L"update";
   2663     case XFA_Element::ConnectString:
   2664       return L"connectString";
   2665     case XFA_Element::Mode:
   2666       return L"mode";
   2667     case XFA_Element::Layout:
   2668       return L"layout";
   2669     case XFA_Element::Sharpxml:
   2670       return L"#xml";
   2671     case XFA_Element::XsdConnection:
   2672       return L"xsdConnection";
   2673     case XFA_Element::Traverse:
   2674       return L"traverse";
   2675     case XFA_Element::Encodings:
   2676       return L"encodings";
   2677     case XFA_Element::Template:
   2678       return L"template";
   2679     case XFA_Element::Acrobat:
   2680       return L"acrobat";
   2681     case XFA_Element::ValidationMessaging:
   2682       return L"validationMessaging";
   2683     case XFA_Element::Signing:
   2684       return L"signing";
   2685     case XFA_Element::Script:
   2686       return L"script";
   2687     case XFA_Element::AddViewerPreferences:
   2688       return L"addViewerPreferences";
   2689     case XFA_Element::AlwaysEmbed:
   2690       return L"alwaysEmbed";
   2691     case XFA_Element::PasswordEdit:
   2692       return L"passwordEdit";
   2693     case XFA_Element::NumericEdit:
   2694       return L"numericEdit";
   2695     case XFA_Element::EncryptionMethod:
   2696       return L"encryptionMethod";
   2697     case XFA_Element::Change:
   2698       return L"change";
   2699     case XFA_Element::PageArea:
   2700       return L"pageArea";
   2701     case XFA_Element::SubmitUrl:
   2702       return L"submitUrl";
   2703     case XFA_Element::Oids:
   2704       return L"oids";
   2705     case XFA_Element::Signature:
   2706       return L"signature";
   2707     case XFA_Element::ADBE_JSConsole:
   2708       return L"ADBE_JSConsole";
   2709     case XFA_Element::Caption:
   2710       return L"caption";
   2711     case XFA_Element::Relevant:
   2712       return L"relevant";
   2713     case XFA_Element::FlipLabel:
   2714       return L"flipLabel";
   2715     case XFA_Element::ExData:
   2716       return L"exData";
   2717     case XFA_Element::DayNames:
   2718       return L"dayNames";
   2719     case XFA_Element::SoapAction:
   2720       return L"soapAction";
   2721     case XFA_Element::DefaultTypeface:
   2722       return L"defaultTypeface";
   2723     case XFA_Element::Manifest:
   2724       return L"manifest";
   2725     case XFA_Element::Overflow:
   2726       return L"overflow";
   2727     case XFA_Element::Linear:
   2728       return L"linear";
   2729     case XFA_Element::CurrencySymbol:
   2730       return L"currencySymbol";
   2731     case XFA_Element::Delete:
   2732       return L"delete";
   2733     case XFA_Element::Deltas:
   2734       return L"deltas";
   2735     case XFA_Element::DigestMethod:
   2736       return L"digestMethod";
   2737     case XFA_Element::InstanceManager:
   2738       return L"instanceManager";
   2739     case XFA_Element::EquateRange:
   2740       return L"equateRange";
   2741     case XFA_Element::Medium:
   2742       return L"medium";
   2743     case XFA_Element::TextEdit:
   2744       return L"textEdit";
   2745     case XFA_Element::TemplateCache:
   2746       return L"templateCache";
   2747     case XFA_Element::CompressObjectStream:
   2748       return L"compressObjectStream";
   2749     case XFA_Element::DataValue:
   2750       return L"dataValue";
   2751     case XFA_Element::AccessibleContent:
   2752       return L"accessibleContent";
   2753     case XFA_Element::IncludeXDPContent:
   2754       return L"includeXDPContent";
   2755     case XFA_Element::XmlConnection:
   2756       return L"xmlConnection";
   2757     case XFA_Element::ValidateApprovalSignatures:
   2758       return L"validateApprovalSignatures";
   2759     case XFA_Element::SignData:
   2760       return L"signData";
   2761     case XFA_Element::Packets:
   2762       return L"packets";
   2763     case XFA_Element::DatePattern:
   2764       return L"datePattern";
   2765     case XFA_Element::DuplexOption:
   2766       return L"duplexOption";
   2767     case XFA_Element::Base:
   2768       return L"base";
   2769     case XFA_Element::Bind:
   2770       return L"bind";
   2771     case XFA_Element::Compression:
   2772       return L"compression";
   2773     case XFA_Element::User:
   2774       return L"user";
   2775     case XFA_Element::Rectangle:
   2776       return L"rectangle";
   2777     case XFA_Element::EffectiveOutputPolicy:
   2778       return L"effectiveOutputPolicy";
   2779     case XFA_Element::ADBE_JSDebugger:
   2780       return L"ADBE_JSDebugger";
   2781     case XFA_Element::Acrobat7:
   2782       return L"acrobat7";
   2783     case XFA_Element::Interactive:
   2784       return L"interactive";
   2785     case XFA_Element::Locale:
   2786       return L"locale";
   2787     case XFA_Element::CurrentPage:
   2788       return L"currentPage";
   2789     case XFA_Element::Data:
   2790       return L"data";
   2791     case XFA_Element::Date:
   2792       return L"date";
   2793     case XFA_Element::Desc:
   2794       return L"desc";
   2795     case XFA_Element::Encrypt:
   2796       return L"encrypt";
   2797     case XFA_Element::Draw:
   2798       return L"draw";
   2799     case XFA_Element::Encryption:
   2800       return L"encryption";
   2801     case XFA_Element::MeridiemNames:
   2802       return L"meridiemNames";
   2803     case XFA_Element::Messaging:
   2804       return L"messaging";
   2805     case XFA_Element::Speak:
   2806       return L"speak";
   2807     case XFA_Element::DataGroup:
   2808       return L"dataGroup";
   2809     case XFA_Element::Common:
   2810       return L"common";
   2811     case XFA_Element::Sharptext:
   2812       return L"#text";
   2813     case XFA_Element::PaginationOverride:
   2814       return L"paginationOverride";
   2815     case XFA_Element::Reasons:
   2816       return L"reasons";
   2817     case XFA_Element::SignatureProperties:
   2818       return L"signatureProperties";
   2819     case XFA_Element::Threshold:
   2820       return L"threshold";
   2821     case XFA_Element::AppearanceFilter:
   2822       return L"appearanceFilter";
   2823     case XFA_Element::Fill:
   2824       return L"fill";
   2825     case XFA_Element::Font:
   2826       return L"font";
   2827     case XFA_Element::Form:
   2828       return L"form";
   2829     case XFA_Element::MediumInfo:
   2830       return L"mediumInfo";
   2831     case XFA_Element::Certificate:
   2832       return L"certificate";
   2833     case XFA_Element::Password:
   2834       return L"password";
   2835     case XFA_Element::RunScripts:
   2836       return L"runScripts";
   2837     case XFA_Element::Trace:
   2838       return L"trace";
   2839     case XFA_Element::Float:
   2840       return L"float";
   2841     case XFA_Element::RenderPolicy:
   2842       return L"renderPolicy";
   2843     case XFA_Element::Destination:
   2844       return L"destination";
   2845     case XFA_Element::Value:
   2846       return L"value";
   2847     case XFA_Element::Bookend:
   2848       return L"bookend";
   2849     case XFA_Element::ExObject:
   2850       return L"exObject";
   2851     case XFA_Element::OpenAction:
   2852       return L"openAction";
   2853     case XFA_Element::NeverEmbed:
   2854       return L"neverEmbed";
   2855     case XFA_Element::BindItems:
   2856       return L"bindItems";
   2857     case XFA_Element::Calculate:
   2858       return L"calculate";
   2859     case XFA_Element::Print:
   2860       return L"print";
   2861     case XFA_Element::Extras:
   2862       return L"extras";
   2863     case XFA_Element::Proto:
   2864       return L"proto";
   2865     case XFA_Element::DSigData:
   2866       return L"dSigData";
   2867     case XFA_Element::Creator:
   2868       return L"creator";
   2869     case XFA_Element::Connect:
   2870       return L"connect";
   2871     case XFA_Element::Permissions:
   2872       return L"permissions";
   2873     case XFA_Element::ConnectionSet:
   2874       return L"connectionSet";
   2875     case XFA_Element::Submit:
   2876       return L"submit";
   2877     case XFA_Element::Range:
   2878       return L"range";
   2879     case XFA_Element::Linearized:
   2880       return L"linearized";
   2881     case XFA_Element::Packet:
   2882       return L"packet";
   2883     case XFA_Element::RootElement:
   2884       return L"rootElement";
   2885     case XFA_Element::PlaintextMetadata:
   2886       return L"plaintextMetadata";
   2887     case XFA_Element::NumberSymbols:
   2888       return L"numberSymbols";
   2889     case XFA_Element::PrintHighQuality:
   2890       return L"printHighQuality";
   2891     case XFA_Element::Driver:
   2892       return L"driver";
   2893     case XFA_Element::IncrementalLoad:
   2894       return L"incrementalLoad";
   2895     case XFA_Element::SubjectDN:
   2896       return L"subjectDN";
   2897     case XFA_Element::CompressLogicalStructure:
   2898       return L"compressLogicalStructure";
   2899     case XFA_Element::IncrementalMerge:
   2900       return L"incrementalMerge";
   2901     case XFA_Element::Radial:
   2902       return L"radial";
   2903     case XFA_Element::Variables:
   2904       return L"variables";
   2905     case XFA_Element::TimePatterns:
   2906       return L"timePatterns";
   2907     case XFA_Element::EffectiveInputPolicy:
   2908       return L"effectiveInputPolicy";
   2909     case XFA_Element::NameAttr:
   2910       return L"nameAttr";
   2911     case XFA_Element::Conformance:
   2912       return L"conformance";
   2913     case XFA_Element::Transform:
   2914       return L"transform";
   2915     case XFA_Element::LockDocument:
   2916       return L"lockDocument";
   2917     case XFA_Element::BreakAfter:
   2918       return L"breakAfter";
   2919     case XFA_Element::Line:
   2920       return L"line";
   2921     case XFA_Element::Source:
   2922       return L"source";
   2923     case XFA_Element::Occur:
   2924       return L"occur";
   2925     case XFA_Element::PickTrayByPDFSize:
   2926       return L"pickTrayByPDFSize";
   2927     case XFA_Element::MonthNames:
   2928       return L"monthNames";
   2929     case XFA_Element::Severity:
   2930       return L"severity";
   2931     case XFA_Element::GroupParent:
   2932       return L"groupParent";
   2933     case XFA_Element::DocumentAssembly:
   2934       return L"documentAssembly";
   2935     case XFA_Element::NumberSymbol:
   2936       return L"numberSymbol";
   2937     case XFA_Element::Tagged:
   2938       return L"tagged";
   2939     case XFA_Element::Items:
   2940       return L"items";
   2941 
   2942     default:
   2943       NOTREACHED();
   2944       break;
   2945   }
   2946   return L"";
   2947 }
   2948 #endif  // NDEBUG
   2949