summaryrefslogtreecommitdiff
path: root/xfa
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-11-30 20:21:00 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-11-30 20:21:00 +0000
commit5fda35f2b0a658e310f778c2dc40ef24e6d05975 (patch)
tree3daddbde21cef2a9aa3aa2827a1c34ef06ad6a85 /xfa
parent0be087619a60b8bc6e2ed2e14c54f67aa8e963e4 (diff)
downloadpdfium-5fda35f2b0a658e310f778c2dc40ef24e6d05975.tar.xz
Generate XFA node attribute information
This CL moves the attribute information out of the xfa basic data array and stores in the generated nodes. Change-Id: Id8e280324bf0f75a1da9c937c2734d161324242d Reviewed-on: https://pdfium-review.googlesource.com/19271 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'xfa')
-rw-r--r--xfa/fxfa/cxfa_widgetacc.cpp3
-rw-r--r--xfa/fxfa/fxfa_basic.h18
-rw-r--r--xfa/fxfa/parser/cxfa_accessiblecontent.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_acrobat.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_acrobat7.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_addsilentprint.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_addviewerpreferences.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_adjustdata.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_agent.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_alwaysembed.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_amd.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_appearancefilter.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_arc.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_area.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_assist.cpp19
-rw-r--r--xfa/fxfa/parser/cxfa_attributes.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_autosave.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_barcode.cpp76
-rw-r--r--xfa/fxfa/parser/cxfa_base.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_batchoutput.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_behavioroverride.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_bind.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_binditems.cpp15
-rw-r--r--xfa/fxfa/parser/cxfa_bookend.cpp21
-rw-r--r--xfa/fxfa/parser/cxfa_boolean.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_border.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_boxdata.cpp4
-rw-r--r--xfa/fxfa/parser/cxfa_break.cpp50
-rw-r--r--xfa/fxfa/parser/cxfa_breakafter.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_breakbefore.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_button.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_cache.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_calculate.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_calendarsymbols.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_caption.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_certificate.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_certificates.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_change.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_checkbutton.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_choicelist.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_color.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_comb.cpp19
-rw-r--r--xfa/fxfa/parser/cxfa_command.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_common.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_compress.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_compression.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_compressobjectstream.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_config.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_conformance.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_connect.cpp37
-rw-r--r--xfa/fxfa/parser/cxfa_connectstring.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_contentarea.cpp36
-rw-r--r--xfa/fxfa/parser/cxfa_contentcopy.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_copies.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_corner.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_creator.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_currencysymbol.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_currentpage.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_data.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_datagroup.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_datavalue.cpp23
-rw-r--r--xfa/fxfa/parser/cxfa_date.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_datepattern.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_datetime.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_datetimeedit.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_daynames.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_debug.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_decimal.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_defaulttypeface.cpp11
-rw-r--r--xfa/fxfa/parser/cxfa_defaultui.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_delete.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_desc.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_destination.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_digestmethod.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_digestmethods.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_documentassembly.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_draw.cpp64
-rw-r--r--xfa/fxfa/parser/cxfa_driver.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_dsigdata.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_duplexoption.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_dynamicrender.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_edge.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_embed.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_encoding.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_encodings.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_encrypt.cpp21
-rw-r--r--xfa/fxfa/parser/cxfa_encryption.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionlevel.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionmethod.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionmethods.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_enforce.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_equate.cpp15
-rw-r--r--xfa/fxfa/parser/cxfa_equaterange.cpp15
-rw-r--r--xfa/fxfa/parser/cxfa_event.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_exclgroup.cpp72
-rw-r--r--xfa/fxfa/parser/cxfa_exclude.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_excludens.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_exdata.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_execute.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_exobject.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_extras.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_field.cpp74
-rw-r--r--xfa/fxfa/parser/cxfa_fill.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_filldata.cpp5
-rw-r--r--xfa/fxfa/parser/cxfa_filter.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_fliplabel.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_float.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_font.cpp73
-rw-r--r--xfa/fxfa/parser/cxfa_fontinfo.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_form.cpp7
-rw-r--r--xfa/fxfa/parser/cxfa_format.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_formfieldfilling.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_groupparent.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_handler.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_hyphenation.cpp36
-rw-r--r--xfa/fxfa/parser/cxfa_ifempty.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_image.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_imageedit.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_includexdpcontent.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_incrementalload.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_incrementalmerge.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_insert.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_instancemanager.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_integer.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_interactive.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_issuers.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp21
-rw-r--r--xfa/fxfa/parser/cxfa_items.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_jog.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_keep.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_keyusage.cpp49
-rw-r--r--xfa/fxfa/parser/cxfa_labelprinter.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_layout.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_layoutpagemgr.cpp18
-rw-r--r--xfa/fxfa/parser/cxfa_level.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_line.cpp23
-rw-r--r--xfa/fxfa/parser/cxfa_linear.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_linearized.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_locale.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_localeset.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_lockdocument.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_log.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_manifest.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_map.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_margin.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_mdp.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_medium.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_mediuminfo.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_message.cpp21
-rw-r--r--xfa/fxfa/parser/cxfa_messaging.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_mode.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_modifyannots.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_monthnames.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_msgid.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_nameattr.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_neverembed.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp92
-rw-r--r--xfa/fxfa/parser/cxfa_node.h18
-rw-r--r--xfa/fxfa/parser/cxfa_node_statics.cpp1396
-rw-r--r--xfa/fxfa/parser/cxfa_numberofcopies.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_numberpattern.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_numbersymbol.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_numericedit.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_occur.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_oid.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_oids.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_openaction.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_operation.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_output.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_outputbin.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_outputxsl.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_overflow.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_overprint.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_packets.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_pagearea.cpp42
-rw-r--r--xfa/fxfa/parser/cxfa_pageoffset.cpp15
-rw-r--r--xfa/fxfa/parser/cxfa_pagerange.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_pageset.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_pagination.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_paginationoverride.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_para.cpp53
-rw-r--r--xfa/fxfa/parser/cxfa_part.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_password.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_passwordedit.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_pattern.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_pcl.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_pdf.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_pdfa.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_permissions.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_picture.cpp21
-rw-r--r--xfa/fxfa/parser/cxfa_plaintextmetadata.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_presence.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_present.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_print.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_printername.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_printhighquality.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_printscaling.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_producer.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_ps.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_query.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_radial.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_range.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_reason.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_reasons.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_record.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_recordset.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_rectangle.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_ref.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_relevant.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_rename.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_renderpolicy.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_rootelement.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_runscripts.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_script.cpp37
-rw-r--r--xfa/fxfa/parser/cxfa_scriptmodel.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_select.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_setproperty.cpp13
-rw-r--r--xfa/fxfa/parser/cxfa_severity.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_sharptext.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_sharpxhtml.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_sharpxml.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_signature.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_signatureproperties.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_signdata.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_signing.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_silentprint.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_soapaction.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_soapaddress.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_solid.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_source.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_sourceset.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_speak.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_staple.cpp11
-rw-r--r--xfa/fxfa/parser/cxfa_startnode.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_startpage.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_stipple.cpp19
-rw-r--r--xfa/fxfa/parser/cxfa_strokedata.cpp13
-rw-r--r--xfa/fxfa/parser/cxfa_subform.cpp100
-rw-r--r--xfa/fxfa/parser/cxfa_subformset.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_subjectdn.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_subjectdns.cpp20
-rw-r--r--xfa/fxfa/parser/cxfa_submit.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_submitformat.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_submiturl.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_subsetbelow.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_suppressbanner.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_tagged.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_template.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_templatecache.cpp11
-rw-r--r--xfa/fxfa/parser/cxfa_text.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_textedit.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_threshold.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_time.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_timepattern.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_timestamp.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_to.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_tooltip.cpp19
-rw-r--r--xfa/fxfa/parser/cxfa_trace.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_transform.cpp13
-rw-r--r--xfa/fxfa/parser/cxfa_traversal.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_traverse.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_type.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_typeface.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_ui.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_update.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_uri.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_user.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_validate.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_validationmessaging.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_value.cpp21
-rw-r--r--xfa/fxfa/parser/cxfa_variables.cpp17
-rw-r--r--xfa/fxfa/parser/cxfa_version.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_versioncontrol.cpp13
-rw-r--r--xfa/fxfa/parser/cxfa_viewerpreferences.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_webclient.cpp14
-rw-r--r--xfa/fxfa/parser/cxfa_whitespace.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_window.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_wsdladdress.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_wsdlconnection.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_xdc.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_xdp.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_xfa.cpp7
-rw-r--r--xfa/fxfa/parser/cxfa_xmlconnection.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_xsdconnection.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_xsl.cpp8
-rw-r--r--xfa/fxfa/parser/cxfa_zpl.cpp14
-rw-r--r--xfa/fxfa/parser/xfa_basic_data.h9
-rw-r--r--xfa/fxfa/parser/xfa_basic_data_attributes.cpp785
-rw-r--r--xfa/fxfa/parser/xfa_basic_data_element_script.cpp3
-rw-r--r--xfa/fxfa/parser/xfa_utils.cpp62
-rw-r--r--xfa/fxfa/parser/xfa_utils.h8
299 files changed, 5471 insertions, 1908 deletions
diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp
index f70b6b952c..16bde8e456 100644
--- a/xfa/fxfa/cxfa_widgetacc.cpp
+++ b/xfa/fxfa/cxfa_widgetacc.cpp
@@ -1260,7 +1260,8 @@ bool CXFA_WidgetAcc::FindSplitPos(int32_t iBlockIndex, float& fCalcHeight) {
XFA_ATTRIBUTEENUM eLayoutMode = GetNode()
->GetNodeItem(XFA_NODEITEM_Parent)
->JSNode()
- ->GetEnum(XFA_Attribute::Layout);
+ ->TryEnum(XFA_Attribute::Layout, true)
+ .value_or(XFA_ATTRIBUTEENUM_Position);
if ((eLayoutMode == XFA_ATTRIBUTEENUM_Position ||
eLayoutMode == XFA_ATTRIBUTEENUM_Tb ||
eLayoutMode == XFA_ATTRIBUTEENUM_Row ||
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index 65bd8e3b92..b8e35746d6 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -618,7 +618,6 @@ enum class XFA_Attribute : uint8_t {
Intact,
XdpContent,
DecipherOnly,
- LastAttributePlaceholder,
Unknown = 255,
};
@@ -940,7 +939,6 @@ enum class XFA_Element : int32_t {
};
enum class XFA_AttributeType : uint8_t {
- NotSure,
Enum,
CData,
Boolean,
@@ -948,15 +946,6 @@ enum class XFA_AttributeType : uint8_t {
Measure,
};
-struct XFA_ATTRIBUTEINFO {
- uint32_t uHash;
- const wchar_t* pName;
- XFA_Attribute eName;
- XFA_AttributeType eType;
- uint32_t dwPackets;
- void* pDefValue;
-};
-
struct XFA_SCRIPTHIERARCHY {
uint16_t wMethodStart;
uint16_t wMethodCount;
@@ -987,13 +976,6 @@ enum class XFA_Unit : uint8_t {
Unknown = 255,
};
-struct XFA_NOTSUREATTRIBUTE {
- XFA_Element eElement;
- XFA_Attribute attribute;
- XFA_AttributeType eType;
- void* pValue;
-};
-
typedef void (CJX_Object::*XFA_METHOD_CALLBACK)(CFXJSE_Arguments* pArguments);
struct XFA_METHODINFO {
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
index 8f8ca30abd..8c5bd8e47a 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"accessibleContent";
diff --git a/xfa/fxfa/parser/cxfa_acrobat.cpp b/xfa/fxfa/parser/cxfa_acrobat.cpp
index 8a0fcf4754..63358ad908 100644
--- a/xfa/fxfa/parser/cxfa_acrobat.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat.cpp
@@ -15,8 +15,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Acrobat7, 1, 0},
{XFA_Element::Common, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"acrobat";
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.cpp b/xfa/fxfa/parser/cxfa_acrobat7.cpp
index 6fa7a8bc10..d25e898c44 100644
--- a/xfa/fxfa/parser/cxfa_acrobat7.cpp
+++ b/xfa/fxfa/parser/cxfa_acrobat7.cpp
@@ -11,8 +11,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::DynamicRender, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"acrobat7";
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
index 797076a94b..3ce756fc7f 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"ADBE_JSConsole";
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
index bbd012341e..46a3956291 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"ADBE_JSDebugger";
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
index da9e47a902..ed48cf9c05 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"addSilentPrint";
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
index 2311dc97d6..4fb1aecb05 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"addViewerPreferences";
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp
index cbfb8f3212..d665f28e20 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.cpp
+++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"adjustData";
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
index 781f588a35..3c36ff0712 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"adobeExtensionLevel";
diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp
index 2794bae6df..622d30d817 100644
--- a/xfa/fxfa/parser/cxfa_agent.cpp
+++ b/xfa/fxfa/parser/cxfa_agent.cpp
@@ -8,9 +8,17 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"agent";
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
index 098a491968..26b3eb7013 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.cpp
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"alwaysEmbed";
diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp
index c92dd3972a..3bc0846e7b 100644
--- a/xfa/fxfa/parser/cxfa_amd.cpp
+++ b/xfa/fxfa/parser/cxfa_amd.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"amd";
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
index ef2c4149bf..46c15c08ad 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.cpp
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"appearanceFilter";
diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp
index fbcc088bb4..2451025bd1 100644
--- a/xfa/fxfa/parser/cxfa_arc.cpp
+++ b/xfa/fxfa/parser/cxfa_arc.cpp
@@ -11,11 +11,29 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
{XFA_Element::Fill, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::StartAngle, XFA_Attribute::SweepAngle,
- XFA_Attribute::Circular, XFA_Attribute::Usehref,
- XFA_Attribute::Hand, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::StartAngle, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::SweepAngle, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)360},
+ {XFA_Attribute::Circular, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Hand, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Even},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"arc";
diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp
index 23a0bbea0c..b1a8f81db0 100644
--- a/xfa/fxfa/parser/cxfa_area.cpp
+++ b/xfa/fxfa/parser/cxfa_area.cpp
@@ -11,11 +11,39 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::X, XFA_Attribute::Y, XFA_Attribute::Id,
- XFA_Attribute::Name, XFA_Attribute::Use, XFA_Attribute::Level,
- XFA_Attribute::Relevant, XFA_Attribute::ColSpan, XFA_Attribute::Usehref,
- XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Level, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"area";
diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp
index 2780e7a3a0..e6e48b0612 100644
--- a/xfa/fxfa/parser/cxfa_assist.cpp
+++ b/xfa/fxfa/parser/cxfa_assist.cpp
@@ -11,9 +11,22 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::ToolTip, 1, 0},
{XFA_Element::Speak, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Role,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Role, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"assist";
diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp
index d0bbfa6f7c..8a8e5c1e51 100644
--- a/xfa/fxfa/parser/cxfa_attributes.cpp
+++ b/xfa/fxfa/parser/cxfa_attributes.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"attributes";
diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp
index 5719b1dda8..d30225758f 100644
--- a/xfa/fxfa/parser/cxfa_autosave.cpp
+++ b/xfa/fxfa/parser/cxfa_autosave.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"autoSave";
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
index 1abbbe4edb..a6604e6c7f 100644
--- a/xfa/fxfa/parser/cxfa_barcode.cpp
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -8,28 +8,60 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::DataRowCount,
- XFA_Attribute::Use,
- XFA_Attribute::DataPrep,
- XFA_Attribute::Type,
- XFA_Attribute::TextLocation,
- XFA_Attribute::ModuleWidth,
- XFA_Attribute::PrintCheckDigit,
- XFA_Attribute::ModuleHeight,
- XFA_Attribute::StartChar,
- XFA_Attribute::Truncate,
- XFA_Attribute::WideNarrowRatio,
- XFA_Attribute::ErrorCorrectionLevel,
- XFA_Attribute::UpsMode,
- XFA_Attribute::Checksum,
- XFA_Attribute::CharEncoding,
- XFA_Attribute::Usehref,
- XFA_Attribute::DataColumnCount,
- XFA_Attribute::RowColumnRatio,
- XFA_Attribute::DataLength,
- XFA_Attribute::EndChar,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataRowCount, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataPrep, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Type, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)nullptr},
+ {XFA_Attribute::TextLocation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Below},
+ {XFA_Attribute::ModuleWidth, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.25mm"},
+ {XFA_Attribute::PrintCheckDigit, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::ModuleHeight, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"5mm"},
+ {XFA_Attribute::StartChar, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Truncate, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::WideNarrowRatio, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"3:1"},
+ {XFA_Attribute::ErrorCorrectionLevel, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::UpsMode, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_UsCarrier},
+ {XFA_Attribute::Checksum, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::CharEncoding, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"UTF-8"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataColumnCount, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::RowColumnRatio, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::DataLength, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::EndChar, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"barcode";
diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp
index c59b63b0dc..8f0b847703 100644
--- a/xfa/fxfa/parser/cxfa_base.cpp
+++ b/xfa/fxfa/parser/cxfa_base.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"base";
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp
index ee399eae89..63cab9d3d7 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.cpp
+++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp
@@ -8,9 +8,15 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Format, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Format, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"batchOutput";
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
index 8a74a8a216..abff3f75ec 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.cpp
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"behaviorOverride";
diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp
index dde162f382..aa820b72b6 100644
--- a/xfa/fxfa/parser/cxfa_bind.cpp
+++ b/xfa/fxfa/parser/cxfa_bind.cpp
@@ -10,12 +10,39 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Ref, XFA_Attribute::Use,
- XFA_Attribute::ContentType, XFA_Attribute::TransferEncoding,
- XFA_Attribute::Usehref, XFA_Attribute::Match,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ContentType, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Match, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Once},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"bind";
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index fd012035e4..dff27ab3ca 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -8,9 +8,18 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Ref, XFA_Attribute::Connection, XFA_Attribute::LabelRef,
- XFA_Attribute::ValueRef, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Connection, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::LabelRef, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::ValueRef, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"bindItems";
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
index 6c8f6b54db..a63640f469 100644
--- a/xfa/fxfa/parser/cxfa_bookend.cpp
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -8,9 +8,24 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Trailer,
- XFA_Attribute::Usehref, XFA_Attribute::Leader, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Trailer, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Leader, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"bookend";
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index 22ac1214f3..fadce7509d 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"boolean";
diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp
index be206b71de..5250001f3e 100644
--- a/xfa/fxfa/parser/cxfa_border.cpp
+++ b/xfa/fxfa/parser/cxfa_border.cpp
@@ -12,10 +12,31 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Margin, 1, 0}, {XFA_Element::Edge, 4, 0},
{XFA_Element::Corner, 4, 0}, {XFA_Element::Fill, 1, 0},
{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Break, XFA_Attribute::Use,
- XFA_Attribute::Presence, XFA_Attribute::Relevant, XFA_Attribute::Usehref,
- XFA_Attribute::Hand, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Break, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Close},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Hand, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Even},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"border";
diff --git a/xfa/fxfa/parser/cxfa_boxdata.cpp b/xfa/fxfa/parser/cxfa_boxdata.cpp
index ae172de5b1..6428247154 100644
--- a/xfa/fxfa/parser/cxfa_boxdata.cpp
+++ b/xfa/fxfa/parser/cxfa_boxdata.cpp
@@ -84,7 +84,9 @@ int32_t CXFA_BoxData::GetHand() const {
int32_t CXFA_BoxData::GetPresence() const {
if (!m_pNode)
return XFA_ATTRIBUTEENUM_Hidden;
- return m_pNode->JSNode()->GetEnum(XFA_Attribute::Presence);
+ return m_pNode->JSNode()
+ ->TryEnum(XFA_Attribute::Presence, true)
+ .value_or(XFA_ATTRIBUTEENUM_Visible);
}
int32_t CXFA_BoxData::CountEdges() const {
diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp
index f8c7ce0cf8..3f8a7fd7d6 100644
--- a/xfa/fxfa/parser/cxfa_break.cpp
+++ b/xfa/fxfa/parser/cxfa_break.cpp
@@ -10,20 +10,42 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::BeforeTarget,
- XFA_Attribute::Use,
- XFA_Attribute::OverflowTarget,
- XFA_Attribute::OverflowLeader,
- XFA_Attribute::OverflowTrailer,
- XFA_Attribute::StartNew,
- XFA_Attribute::BookendTrailer,
- XFA_Attribute::After,
- XFA_Attribute::Usehref,
- XFA_Attribute::BookendLeader,
- XFA_Attribute::AfterTarget,
- XFA_Attribute::Before,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::BeforeTarget, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::OverflowTarget, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::OverflowLeader, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::OverflowTrailer, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::StartNew, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::BookendTrailer, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::After, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::BookendLeader, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::AfterTarget, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Before, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"break";
diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp
index 711391e46c..b46c3e2818 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.cpp
+++ b/xfa/fxfa/parser/cxfa_breakafter.cpp
@@ -10,10 +10,31 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::StartNew,
- XFA_Attribute::Trailer, XFA_Attribute::TargetType, XFA_Attribute::Usehref,
- XFA_Attribute::Target, XFA_Attribute::Leader, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::StartNew, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Trailer, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::TargetType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Target, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Leader, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"breakAfter";
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp
index fbc10c7274..4322edb025 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.cpp
+++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp
@@ -10,10 +10,31 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::StartNew,
- XFA_Attribute::Trailer, XFA_Attribute::TargetType, XFA_Attribute::Usehref,
- XFA_Attribute::Target, XFA_Attribute::Leader, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::StartNew, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Trailer, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::TargetType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Target, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Leader, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"breakBefore";
diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp
index 59b1eb5937..b1fccf29e9 100644
--- a/xfa/fxfa/parser/cxfa_button.cpp
+++ b/xfa/fxfa/parser/cxfa_button.cpp
@@ -10,9 +10,23 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Highlight, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Highlight, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Inverted},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"button";
diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp
index 4d278d34ac..3cce1b18a0 100644
--- a/xfa/fxfa/parser/cxfa_cache.cpp
+++ b/xfa/fxfa/parser/cxfa_cache.cpp
@@ -11,8 +11,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::TemplateCache, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"cache";
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
index 641fa2bf1d..c9e9813c4a 100644
--- a/xfa/fxfa/parser/cxfa_calculate.cpp
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
{XFA_Element::Script, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Override, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Override, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Error},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"calculate";
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
index 6730636f25..6f7ddef38b 100644
--- a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
@@ -14,8 +14,13 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::MeridiemNames, 1, 0},
{XFA_Element::MonthNames, 2, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Gregorian},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"calendarSymbols";
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
index 195b7aacd0..a040c1f4c8 100644
--- a/xfa/fxfa/parser/cxfa_caption.cpp
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -12,10 +12,28 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Margin, 1, 0}, {XFA_Element::Para, 1, 0},
{XFA_Element::Font, 1, 0}, {XFA_Element::Value, 1, 0},
{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Reserve,
- XFA_Attribute::Presence, XFA_Attribute::Usehref, XFA_Attribute::Placement,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Reserve, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"-1un"},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Placement, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Left},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"caption";
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
index 4983b080a7..3e54069aef 100644
--- a/xfa/fxfa/parser/cxfa_certificate.cpp
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"certificate";
diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp
index d1465b4f8c..308b0859c3 100644
--- a/xfa/fxfa/parser/cxfa_certificates.cpp
+++ b/xfa/fxfa/parser/cxfa_certificates.cpp
@@ -12,11 +12,27 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::KeyUsage, 1, 0}, {XFA_Element::SubjectDNs, 1, 0},
{XFA_Element::Issuers, 1, 0}, {XFA_Element::Signing, 1, 0},
{XFA_Element::Oids, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Url,
- XFA_Attribute::Use, XFA_Attribute::CredentialServerPolicy,
- XFA_Attribute::Usehref, XFA_Attribute::UrlPolicy,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Url, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::CredentialServerPolicy, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::UrlPolicy, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"certificates";
diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp
index 491eddefe0..b3083f89dc 100644
--- a/xfa/fxfa/parser/cxfa_change.cpp
+++ b/xfa/fxfa/parser/cxfa_change.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"change";
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp
index 3684c8531b..5b321f497c 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.cpp
+++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp
@@ -12,10 +12,30 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Border, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::AllowNeutral,
- XFA_Attribute::Mark, XFA_Attribute::Shape, XFA_Attribute::Size,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::AllowNeutral, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Mark, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Default},
+ {XFA_Attribute::Shape, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Square},
+ {XFA_Attribute::Size, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"checkButton";
diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp
index a9097a1963..42062eb57c 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.cpp
+++ b/xfa/fxfa/parser/cxfa_choicelist.cpp
@@ -12,10 +12,28 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Border, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Open,
- XFA_Attribute::CommitOn, XFA_Attribute::TextEntry, XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Open, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_UserControl},
+ {XFA_Attribute::CommitOn, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Select},
+ {XFA_Attribute::TextEntry, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"choiceList";
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
index f943318a21..91defedf0a 100644
--- a/xfa/fxfa/parser/cxfa_color.cpp
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -10,9 +10,27 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::CSpace,
- XFA_Attribute::Usehref, XFA_Attribute::Value, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::CSpace, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"SRGB"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Value, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"color";
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index 6566301af1..7cffb91d56 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -8,9 +8,22 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::NumberOfCells,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::NumberOfCells, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"comb";
diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp
index 56ffabc831..82ebad29b8 100644
--- a/xfa/fxfa/parser/cxfa_command.cpp
+++ b/xfa/fxfa/parser/cxfa_command.cpp
@@ -13,9 +13,27 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Query, 1, 0},
{XFA_Element::Update, 1, 0},
{XFA_Element::Delete, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Timeout, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Timeout, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_SourceSet, (void*)30},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"command";
diff --git a/xfa/fxfa/parser/cxfa_common.cpp b/xfa/fxfa/parser/cxfa_common.cpp
index 829c00c595..f9bda6c32e 100644
--- a/xfa/fxfa/parser/cxfa_common.cpp
+++ b/xfa/fxfa/parser/cxfa_common.cpp
@@ -18,8 +18,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Data, 1, 0},
{XFA_Element::Messaging, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"common";
diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp
index 31a15dfaf2..2e06abe1ad 100644
--- a/xfa/fxfa/parser/cxfa_compress.cpp
+++ b/xfa/fxfa/parser/cxfa_compress.cpp
@@ -8,9 +8,15 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Scope, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Scope, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_ImageOnly},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"compress";
diff --git a/xfa/fxfa/parser/cxfa_compression.cpp b/xfa/fxfa/parser/cxfa_compression.cpp
index 305670b7d4..46ab7a07cf 100644
--- a/xfa/fxfa/parser/cxfa_compression.cpp
+++ b/xfa/fxfa/parser/cxfa_compression.cpp
@@ -14,8 +14,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::CompressObjectStream, 1, 0},
{XFA_Element::CompressLogicalStructure, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"compression";
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
index 92e9e4f8bc..b79f333786 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"compressLogicalStructure";
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
index 7e51772ff1..c9804240ed 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"compressObjectStream";
diff --git a/xfa/fxfa/parser/cxfa_config.cpp b/xfa/fxfa/parser/cxfa_config.cpp
index 5e02534804..3b7dd9de6e 100644
--- a/xfa/fxfa/parser/cxfa_config.cpp
+++ b/xfa/fxfa/parser/cxfa_config.cpp
@@ -12,8 +12,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Present, 1, 0},
{XFA_Element::Acrobat, 1, 0},
{XFA_Element::Trace, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"config";
diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp
index 6777473bb9..7ad8ac0221 100644
--- a/xfa/fxfa/parser/cxfa_conformance.cpp
+++ b/xfa/fxfa/parser/cxfa_conformance.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"conformance";
diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp
index 145eff6a50..9f33eb7a47 100644
--- a/xfa/fxfa/parser/cxfa_connect.cpp
+++ b/xfa/fxfa/parser/cxfa_connect.cpp
@@ -14,11 +14,38 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::User, 1, 0},
{XFA_Element::Password, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Ref,
- XFA_Attribute::Use, XFA_Attribute::Timeout, XFA_Attribute::Connection,
- XFA_Attribute::Usage, XFA_Attribute::Usehref, XFA_Attribute::DelayedOpen,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Timeout, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_SourceSet, (void*)15},
+ {XFA_Attribute::Connection, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usage, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_ExportAndImport},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DelayedOpen, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"connect";
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
index 047f459fd3..1cd29cf766 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.cpp
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"connectString";
diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp
index e1537522a7..e59405015e 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.cpp
+++ b/xfa/fxfa/parser/cxfa_contentarea.cpp
@@ -11,11 +11,37 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::H, XFA_Attribute::W, XFA_Attribute::X,
- XFA_Attribute::Y, XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Use, XFA_Attribute::Relevant, XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::H, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::W, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"contentArea";
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp
index 7a3b797dec..887073dd71 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.cpp
+++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"contentCopy";
diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp
index 2ca087eac6..9e76df3016 100644
--- a/xfa/fxfa/parser/cxfa_copies.cpp
+++ b/xfa/fxfa/parser/cxfa_copies.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"copies";
diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp
index be1751b026..199aaf8ec6 100644
--- a/xfa/fxfa/parser/cxfa_corner.cpp
+++ b/xfa/fxfa/parser/cxfa_corner.cpp
@@ -11,11 +11,35 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Stroke,
- XFA_Attribute::Presence, XFA_Attribute::Inverted, XFA_Attribute::Thickness,
- XFA_Attribute::Usehref, XFA_Attribute::Join, XFA_Attribute::Radius,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Stroke, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Solid},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::Inverted, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Thickness, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.5pt"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Join, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Square},
+ {XFA_Attribute::Radius, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"corner";
diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp
index 4913a863e6..0b96e743db 100644
--- a/xfa/fxfa/parser/cxfa_creator.cpp
+++ b/xfa/fxfa/parser/cxfa_creator.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"creator";
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
index 170aa80b0a..0ce4e10267 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Symbol},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"currencySymbol";
diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp
index 0ad8861588..fac71a9eef 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.cpp
+++ b/xfa/fxfa/parser/cxfa_currentpage.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"currentPage";
diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp
index 2e7d4c7369..1b81b85672 100644
--- a/xfa/fxfa/parser/cxfa_data.cpp
+++ b/xfa/fxfa/parser/cxfa_data.cpp
@@ -15,8 +15,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Window, 1, 0}, {XFA_Element::Record, 1, 0},
{XFA_Element::Range, 1, 0}, {XFA_Element::IncrementalLoad, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"data";
diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp
index 3a6431cd50..33fbd80c58 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.cpp
+++ b/xfa/fxfa/parser/cxfa_datagroup.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dataGroup";
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
index 542c629e49..2aa11e06c0 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.cpp
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -8,9 +8,26 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::ContentType, XFA_Attribute::Contains,
- XFA_Attribute::Value, XFA_Attribute::IsNull, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ContentType, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Contains, XFA_AttributeType::Enum, XFA_XDPPACKET_Datasets,
+ (void*)XFA_ATTRIBUTEENUM_Data},
+ {XFA_Attribute::Value, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::IsNull, XFA_AttributeType::Boolean, XFA_XDPPACKET_Datasets,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dataValue";
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
index 8ee447f1da..e58d8255e9 100644
--- a/xfa/fxfa/parser/cxfa_date.cpp
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"date";
diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp
index 17ad9fe2f7..88023a4d9a 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_datepattern.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Med},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"datePattern";
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
index 41d9bb0eca..534d916f1a 100644
--- a/xfa/fxfa/parser/cxfa_datetime.cpp
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dateTime";
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
index 55fe0f6350..2cda19f9a8 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
@@ -13,12 +13,26 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Comb, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Picker,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Picker, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Host},
+ {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dateTimeEdit";
diff --git a/xfa/fxfa/parser/cxfa_daynames.cpp b/xfa/fxfa/parser/cxfa_daynames.cpp
index 6099189964..c11df94e61 100644
--- a/xfa/fxfa/parser/cxfa_daynames.cpp
+++ b/xfa/fxfa/parser/cxfa_daynames.cpp
@@ -10,8 +10,10 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Day, 7, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Abbr,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, XFA_XDPPACKET_LocaleSet,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dayNames";
diff --git a/xfa/fxfa/parser/cxfa_debug.cpp b/xfa/fxfa/parser/cxfa_debug.cpp
index 3b68742004..b4205652e1 100644
--- a/xfa/fxfa/parser/cxfa_debug.cpp
+++ b/xfa/fxfa/parser/cxfa_debug.cpp
@@ -10,8 +10,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"debug";
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
index e9e63fa94d..38878073ec 100644
--- a/xfa/fxfa/parser/cxfa_decimal.cpp
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -8,11 +8,29 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Use, XFA_Attribute::FracDigits,
- XFA_Attribute::Usehref, XFA_Attribute::LeadDigits,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::FracDigits, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)2},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::LeadDigits, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)-1},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"decimal";
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
index 6ec981d239..df312f198d 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
@@ -8,9 +8,14 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::WritingScript, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::WritingScript, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_Asterisk},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"defaultTypeface";
diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp
index 56c1d76cba..582d395aca 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.cpp
+++ b/xfa/fxfa/parser/cxfa_defaultui.cpp
@@ -10,9 +10,20 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"defaultUi";
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
index d0f412eaad..df0b523071 100644
--- a/xfa/fxfa/parser/cxfa_delete.cpp
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"delete";
diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp
index 7f2bea6c81..2e6b6e2c44 100644
--- a/xfa/fxfa/parser/cxfa_desc.cpp
+++ b/xfa/fxfa/parser/cxfa_desc.cpp
@@ -15,9 +15,20 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Integer, 1, 0}, {XFA_Element::ExData, 1, 0},
{XFA_Element::Date, 1, 0}, {XFA_Element::Float, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"desc";
diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp
index 5787b6b902..9badfaba7a 100644
--- a/xfa/fxfa/parser/cxfa_destination.cpp
+++ b/xfa/fxfa/parser/cxfa_destination.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"destination";
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
index a651ffa584..485d384b57 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -8,9 +8,20 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"digestMethod";
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
index 3832462020..01b999bd0d 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"digestMethods";
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp
index c8b5763c27..971bf7cb9a 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.cpp
+++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"documentAssembly";
diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp
index f8c88e933c..6d2eea15f5 100644
--- a/xfa/fxfa/parser/cxfa_draw.cpp
+++ b/xfa/fxfa/parser/cxfa_draw.cpp
@@ -16,14 +16,62 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Desc, 1, 0}, {XFA_Element::Font, 1, 0},
{XFA_Element::Value, 1, 0}, {XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::H, XFA_Attribute::W, XFA_Attribute::X,
- XFA_Attribute::Y, XFA_Attribute::Id, XFA_Attribute::HAlign,
- XFA_Attribute::Name, XFA_Attribute::Use, XFA_Attribute::Rotate,
- XFA_Attribute::Presence, XFA_Attribute::VAlign, XFA_Attribute::MaxH,
- XFA_Attribute::MaxW, XFA_Attribute::MinH, XFA_Attribute::MinW,
- XFA_Attribute::Relevant, XFA_Attribute::ColSpan, XFA_Attribute::Usehref,
- XFA_Attribute::Locale, XFA_Attribute::AnchorType, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::H, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::W, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Left},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Rotate, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
+ {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Locale, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_TopLeft},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"draw";
diff --git a/xfa/fxfa/parser/cxfa_driver.cpp b/xfa/fxfa/parser/cxfa_driver.cpp
index f6689ef789..678c987c30 100644
--- a/xfa/fxfa/parser/cxfa_driver.cpp
+++ b/xfa/fxfa/parser/cxfa_driver.cpp
@@ -11,9 +11,17 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::FontInfo, 1, 0},
{XFA_Element::Xdc, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"driver";
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp
index 0dd884150a..f5e3237ad8 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.cpp
+++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Value, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dSigData";
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp
index 67d898e1d9..68d4b9131e 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.cpp
+++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"duplexOption";
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
index d2e04f8610..4fac7acc7f 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.cpp
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"dynamicRender";
diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp
index 7bfd581532..fb580d6e1a 100644
--- a/xfa/fxfa/parser/cxfa_edge.cpp
+++ b/xfa/fxfa/parser/cxfa_edge.cpp
@@ -11,10 +11,31 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Cap, XFA_Attribute::Use,
- XFA_Attribute::Stroke, XFA_Attribute::Presence, XFA_Attribute::Thickness,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Cap, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Square},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Stroke, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Solid},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::Thickness, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0.5pt"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"edge";
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
index 457d8313f8..0a37e8e072 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"effectiveInputPolicy";
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
index 8c2c4743e6..1979889874 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"effectiveOutputPolicy";
diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp
index 4f550c6df1..ab153ee1ed 100644
--- a/xfa/fxfa/parser/cxfa_embed.cpp
+++ b/xfa/fxfa/parser/cxfa_embed.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"embed";
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
index 4bde179b51..36896066c4 100644
--- a/xfa/fxfa/parser/cxfa_encoding.cpp
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -8,9 +8,20 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encoding";
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
index cc4ef04f8a..449b515101 100644
--- a/xfa/fxfa/parser/cxfa_encodings.cpp
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encodings";
diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp
index afcf8c96fd..14faf5110e 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.cpp
+++ b/xfa/fxfa/parser/cxfa_encrypt.cpp
@@ -11,9 +11,24 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Certificate, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encrypt";
diff --git a/xfa/fxfa/parser/cxfa_encryption.cpp b/xfa/fxfa/parser/cxfa_encryption.cpp
index 18bdea6358..74acb53de2 100644
--- a/xfa/fxfa/parser/cxfa_encryption.cpp
+++ b/xfa/fxfa/parser/cxfa_encryption.cpp
@@ -13,8 +13,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Encrypt, 1, 0},
{XFA_Element::Permissions, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encryption";
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
index 10242cb1b3..f3b0a66e88 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encryptionLevel";
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
index 209184c51e..1db3fcb887 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
@@ -8,9 +8,20 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encryptionMethod";
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
index 7c97b560e0..93d2663499 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"encryptionMethods";
diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp
index 4eb0d7b3d2..3abee3e73f 100644
--- a/xfa/fxfa/parser/cxfa_enforce.cpp
+++ b/xfa/fxfa/parser/cxfa_enforce.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"enforce";
diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp
index a1b4aa9afd..29a6794bbc 100644
--- a/xfa/fxfa/parser/cxfa_equate.cpp
+++ b/xfa/fxfa/parser/cxfa_equate.cpp
@@ -8,9 +8,18 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::To, XFA_Attribute::Force, XFA_Attribute::Desc,
- XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::To, XFA_AttributeType::CData, XFA_XDPPACKET_Config,
+ nullptr},
+ {XFA_Attribute::Force, XFA_AttributeType::Boolean, XFA_XDPPACKET_Config,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::From, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"equate";
diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp
index 1b3458632e..f5ee3fbfe7 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.cpp
+++ b/xfa/fxfa/parser/cxfa_equaterange.cpp
@@ -8,9 +8,18 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::To, XFA_Attribute::UnicodeRange, XFA_Attribute::Desc,
- XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::To, XFA_AttributeType::CData, XFA_XDPPACKET_Config,
+ nullptr},
+ {XFA_Attribute::UnicodeRange, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config, nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::From, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"equateRange";
diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp
index f810da7798..d63bac0640 100644
--- a/xfa/fxfa/parser/cxfa_event.cpp
+++ b/xfa/fxfa/parser/cxfa_event.cpp
@@ -15,10 +15,35 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Extras, 1, 0},
{XFA_Element::Submit, 1, XFA_PROPERTYFLAG_OneOf},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Ref,
- XFA_Attribute::Use, XFA_Attribute::Listen, XFA_Attribute::Usehref,
- XFA_Attribute::Activity, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Listen, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_RefOnly},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Activity, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Click},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"event";
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp
index c3276df0e6..ad890dd170 100644
--- a/xfa/fxfa/parser/cxfa_exclgroup.cpp
+++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp
@@ -15,18 +15,66 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Caption, 1, 0}, {XFA_Element::Bind, 1, 0},
{XFA_Element::Desc, 1, 0}, {XFA_Element::Calculate, 1, 0},
{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::H, XFA_Attribute::W,
- XFA_Attribute::X, XFA_Attribute::Y,
- XFA_Attribute::Id, XFA_Attribute::HAlign,
- XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Access, XFA_Attribute::Presence,
- XFA_Attribute::VAlign, XFA_Attribute::MaxH,
- XFA_Attribute::MaxW, XFA_Attribute::MinH,
- XFA_Attribute::MinW, XFA_Attribute::Layout,
- XFA_Attribute::Relevant, XFA_Attribute::ColSpan,
- XFA_Attribute::Usehref, XFA_Attribute::AnchorType,
- XFA_Attribute::AccessKey, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::H, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::W, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Left},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Access, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Open},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
+ {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Layout, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Position},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_TopLeft},
+ {XFA_Attribute::AccessKey, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"exclGroup";
diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp
index b6b0dcbec2..5b86c8b51d 100644
--- a/xfa/fxfa/parser/cxfa_exclude.cpp
+++ b/xfa/fxfa/parser/cxfa_exclude.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"exclude";
diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp
index d81d9ea752..89c5e2911b 100644
--- a/xfa/fxfa/parser/cxfa_excludens.cpp
+++ b/xfa/fxfa/parser/cxfa_excludens.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"excludeNS";
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
index 2792c30fe6..bbdb07c1da 100644
--- a/xfa/fxfa/parser/cxfa_exdata.cpp
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -8,12 +8,38 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Rid, XFA_Attribute::Use,
- XFA_Attribute::ContentType, XFA_Attribute::TransferEncoding,
- XFA_Attribute::Usehref, XFA_Attribute::MaxLength,
- XFA_Attribute::Href, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Rid, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ContentType, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::MaxLength, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)-1},
+ {XFA_Attribute::Href, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"exData";
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
index 824fcf7ab5..75998e7b78 100644
--- a/xfa/fxfa/parser/cxfa_execute.cpp
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -8,11 +8,28 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Connection, XFA_Attribute::RunAt,
- XFA_Attribute::ExecuteType, XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Connection, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::RunAt, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Client},
+ {XFA_Attribute::ExecuteType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Import},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"execute";
diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp
index faa768863d..b20c67eb58 100644
--- a/xfa/fxfa/parser/cxfa_exobject.cpp
+++ b/xfa/fxfa/parser/cxfa_exobject.cpp
@@ -10,10 +10,33 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::CodeType, XFA_Attribute::Archive, XFA_Attribute::Usehref,
- XFA_Attribute::CodeBase, XFA_Attribute::ClassId, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::CodeType, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Archive, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::CodeBase, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::ClassId, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"exObject";
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
index 5ef6fc33e8..5a378131bc 100644
--- a/xfa/fxfa/parser/cxfa_extras.cpp
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"extras";
diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp
index ec4e4293a6..d928b9a3bb 100644
--- a/xfa/fxfa/parser/cxfa_field.cpp
+++ b/xfa/fxfa/parser/cxfa_field.cpp
@@ -18,19 +18,67 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Font, 1, 0}, {XFA_Element::Value, 1, 0},
{XFA_Element::Calculate, 1, 0}, {XFA_Element::Extras, 1, 0},
{XFA_Element::Items, 2, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::H, XFA_Attribute::W,
- XFA_Attribute::X, XFA_Attribute::Y,
- XFA_Attribute::Id, XFA_Attribute::HAlign,
- XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Access, XFA_Attribute::Rotate,
- XFA_Attribute::Presence, XFA_Attribute::VAlign,
- XFA_Attribute::MaxH, XFA_Attribute::MaxW,
- XFA_Attribute::MinH, XFA_Attribute::MinW,
- XFA_Attribute::Relevant, XFA_Attribute::ColSpan,
- XFA_Attribute::Usehref, XFA_Attribute::Locale,
- XFA_Attribute::AnchorType, XFA_Attribute::AccessKey,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::H, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::W, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Left},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Access, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Open},
+ {XFA_Attribute::Rotate, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
+ {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Locale, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_TopLeft},
+ {XFA_Attribute::AccessKey, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"field";
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
index 6ea5c7e092..458a1a14c0 100644
--- a/xfa/fxfa/parser/cxfa_fill.cpp
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -18,9 +18,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Extras, 1, 0},
{XFA_Element::Radial, 1, XFA_PROPERTYFLAG_OneOf},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Presence,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"fill";
diff --git a/xfa/fxfa/parser/cxfa_filldata.cpp b/xfa/fxfa/parser/cxfa_filldata.cpp
index 0bbb36a891..dce743e72d 100644
--- a/xfa/fxfa/parser/cxfa_filldata.cpp
+++ b/xfa/fxfa/parser/cxfa_filldata.cpp
@@ -13,8 +13,9 @@ CXFA_FillData::CXFA_FillData(CXFA_Node* pNode) : CXFA_DataData(pNode) {}
CXFA_FillData::~CXFA_FillData() {}
bool CXFA_FillData::IsVisible() const {
- return m_pNode->JSNode()->GetEnum(XFA_Attribute::Presence) ==
- XFA_ATTRIBUTEENUM_Visible;
+ return m_pNode->JSNode()
+ ->TryEnum(XFA_Attribute::Presence, true)
+ .value_or(XFA_ATTRIBUTEENUM_Visible) == XFA_ATTRIBUTEENUM_Visible;
}
void CXFA_FillData::SetColor(FX_ARGB color) {
diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp
index 09c604d5e9..b045d75413 100644
--- a/xfa/fxfa/parser/cxfa_filter.cpp
+++ b/xfa/fxfa/parser/cxfa_filter.cpp
@@ -14,11 +14,29 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::DigestMethods, 1, 0}, {XFA_Element::Encodings, 1, 0},
{XFA_Element::Reasons, 1, 0}, {XFA_Element::AppearanceFilter, 1, 0},
{XFA_Element::LockDocument, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Use, XFA_Attribute::Version,
- XFA_Attribute::Usehref, XFA_Attribute::AddRevocationInfo,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Version, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::AddRevocationInfo, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"filter";
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp
index a959db2a9c..54a303096c 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.cpp
+++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"flipLabel";
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
index 9736ada7e9..6e7f16136f 100644
--- a/xfa/fxfa/parser/cxfa_float.cpp
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"float";
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
index aeeabe6865..f6033461f2 100644
--- a/xfa/fxfa/parser/cxfa_font.cpp
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -11,27 +11,58 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Fill, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::LineThrough,
- XFA_Attribute::Typeface,
- XFA_Attribute::FontHorizontalScale,
- XFA_Attribute::Use,
- XFA_Attribute::KerningMode,
- XFA_Attribute::Underline,
- XFA_Attribute::BaselineShift,
- XFA_Attribute::OverlinePeriod,
- XFA_Attribute::LetterSpacing,
- XFA_Attribute::LineThroughPeriod,
- XFA_Attribute::FontVerticalScale,
- XFA_Attribute::PsName,
- XFA_Attribute::Size,
- XFA_Attribute::Posture,
- XFA_Attribute::Usehref,
- XFA_Attribute::Weight,
- XFA_Attribute::UnderlinePeriod,
- XFA_Attribute::Overline,
- XFA_Attribute::GenericFamily,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::LineThrough, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Typeface, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"Courier"},
+ {XFA_Attribute::FontHorizontalScale, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"100%"},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::KerningMode, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Underline, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::BaselineShift, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::OverlinePeriod, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All},
+ {XFA_Attribute::LetterSpacing, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::LineThroughPeriod, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All},
+ {XFA_Attribute::FontVerticalScale, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"100%"},
+ {XFA_Attribute::PsName, XFA_AttributeType::CData, XFA_XDPPACKET_Config,
+ nullptr},
+ {XFA_Attribute::Size, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"},
+ {XFA_Attribute::Posture, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Normal},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Weight, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Normal},
+ {XFA_Attribute::UnderlinePeriod, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_All},
+ {XFA_Attribute::Overline, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::GenericFamily, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_Serif},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"font";
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.cpp b/xfa/fxfa/parser/cxfa_fontinfo.cpp
index 508f09a41e..fb88b24cda 100644
--- a/xfa/fxfa/parser/cxfa_fontinfo.cpp
+++ b/xfa/fxfa/parser/cxfa_fontinfo.cpp
@@ -13,8 +13,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Map, 1, 0},
{XFA_Element::Embed, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"fontInfo";
diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp
index a42291f663..e7d75e0161 100644
--- a/xfa/fxfa/parser/cxfa_form.cpp
+++ b/xfa/fxfa/parser/cxfa_form.cpp
@@ -8,8 +8,11 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Checksum,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Checksum, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form,
+ (void*)nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"form";
diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp
index 2810826282..2cc8e16cae 100644
--- a/xfa/fxfa/parser/cxfa_format.cpp
+++ b/xfa/fxfa/parser/cxfa_format.cpp
@@ -11,9 +11,20 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"format";
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
index bb76fcd6ae..3d3f4e79fc 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"formFieldFilling";
diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp
index 2987a3792e..2c2bc6bf8f 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.cpp
+++ b/xfa/fxfa/parser/cxfa_groupparent.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"groupParent";
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
index 183915aa4a..a51ae2a867 100644
--- a/xfa/fxfa/parser/cxfa_handler.cpp
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"handler";
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp
index 0a3300c456..543a6c91f2 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.cpp
+++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp
@@ -8,16 +8,32 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::WordCharacterCount,
- XFA_Attribute::Hyphenate,
- XFA_Attribute::ExcludeInitialCap,
- XFA_Attribute::PushCharacterCount,
- XFA_Attribute::RemainCharacterCount,
- XFA_Attribute::Usehref,
- XFA_Attribute::ExcludeAllCaps,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::WordCharacterCount, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)7},
+ {XFA_Attribute::Hyphenate, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::ExcludeInitialCap, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::PushCharacterCount, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)3},
+ {XFA_Attribute::RemainCharacterCount, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)3},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ExcludeAllCaps, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"hyphenation";
diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp
index 7fdbd84913..0853f39ee5 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.cpp
+++ b/xfa/fxfa/parser/cxfa_ifempty.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"ifEmpty";
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
index 9c2be0a24f..cbadb3ceb5 100644
--- a/xfa/fxfa/parser/cxfa_image.cpp
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -8,15 +8,36 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::ContentType,
- XFA_Attribute::TransferEncoding,
- XFA_Attribute::Usehref,
- XFA_Attribute::Aspect,
- XFA_Attribute::Href,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ContentType, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Base64},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Aspect, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Fit},
+ {XFA_Attribute::Href, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"image";
diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp
index f12afa260c..f1678602c1 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.cpp
+++ b/xfa/fxfa/parser/cxfa_imageedit.cpp
@@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Border, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Data, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Data, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Link},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"imageEdit";
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
index d76dd4338c..8799e23d00 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"includeXDPContent";
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp
index 3c05a8c39a..b49b79dbba 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"incrementalLoad";
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
index 1edc82a1a5..28bf30f42a 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"incrementalMerge";
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
index ee76a11e7f..5eec30b708 100644
--- a/xfa/fxfa/parser/cxfa_insert.cpp
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"insert";
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp
index ed9706897b..1386bb35e2 100644
--- a/xfa/fxfa/parser/cxfa_instancemanager.cpp
+++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp
@@ -10,8 +10,13 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Occur, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"instanceManager";
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
index 0878a33303..e2d57f689c 100644
--- a/xfa/fxfa/parser/cxfa_integer.cpp
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"integer";
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
index bb1e3a216b..22a7c361a8 100644
--- a/xfa/fxfa/parser/cxfa_interactive.cpp
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"interactive";
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
index c9f960ceff..e69ee15cbd 100644
--- a/xfa/fxfa/parser/cxfa_issuers.cpp
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"issuers";
diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
index 8fe36b0bbf..d6ed0ccf0c 100644
--- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
@@ -1191,8 +1191,9 @@ CXFA_ContentLayoutItem* CXFA_ItemLayoutProcessor::CreateContentLayoutItem(
float CXFA_ItemLayoutProcessor::FindSplitPos(float fProposedSplitPos) {
ASSERT(m_pLayoutItem);
- XFA_ATTRIBUTEENUM eLayout =
- m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Layout);
+ XFA_ATTRIBUTEENUM eLayout = m_pFormNode->JSNode()
+ ->TryEnum(XFA_Attribute::Layout, true)
+ .value_or(XFA_ATTRIBUTEENUM_Position);
bool bCalculateMargin = eLayout != XFA_ATTRIBUTEENUM_Position;
while (fProposedSplitPos > XFA_LAYOUT_FLOAT_PERCISION) {
bool bAppChange = false;
@@ -1209,8 +1210,9 @@ void CXFA_ItemLayoutProcessor::SplitLayoutItem(
CXFA_ContentLayoutItem* pSecondParent,
float fSplitPos) {
float fCurTopMargin = 0, fCurBottomMargin = 0;
- XFA_ATTRIBUTEENUM eLayout =
- m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Layout);
+ XFA_ATTRIBUTEENUM eLayout = m_pFormNode->JSNode()
+ ->TryEnum(XFA_Attribute::Layout, true)
+ .value_or(XFA_ATTRIBUTEENUM_Position);
bool bCalculateMargin = true;
if (eLayout == XFA_ATTRIBUTEENUM_Position)
bCalculateMargin = false;
@@ -1582,8 +1584,9 @@ bool CXFA_ItemLayoutProcessor::ProcessKeepNodesForBreakBefore(
}
bool XFA_ItemLayoutProcessor_IsTakingSpace(CXFA_Node* pNode) {
- XFA_ATTRIBUTEENUM ePresence =
- pNode->JSNode()->GetEnum(XFA_Attribute::Presence);
+ XFA_ATTRIBUTEENUM ePresence = pNode->JSNode()
+ ->TryEnum(XFA_Attribute::Presence, true)
+ .value_or(XFA_ATTRIBUTEENUM_Visible);
return ePresence == XFA_ATTRIBUTEENUM_Visible ||
ePresence == XFA_ATTRIBUTEENUM_Invisible;
}
@@ -1657,8 +1660,10 @@ void CXFA_ItemLayoutProcessor::DoLayoutPositionedContainer(
return;
m_pLayoutItem = CreateContentLayoutItem(m_pFormNode);
- bool bIgnoreXY = (m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Layout) !=
- XFA_ATTRIBUTEENUM_Position);
+ bool bIgnoreXY =
+ (m_pFormNode->JSNode()
+ ->TryEnum(XFA_Attribute::Layout, true)
+ .value_or(XFA_ATTRIBUTEENUM_Position) != XFA_ATTRIBUTEENUM_Position);
bool bContainerWidthAutoSize = true;
bool bContainerHeightAutoSize = true;
CFX_SizeF containerSize = CalculateContainerSpecifiedSize(
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
index 847a143be5..801e2208c4 100644
--- a/xfa/fxfa/parser/cxfa_items.cpp
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -8,10 +8,34 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Ref,
- XFA_Attribute::Use, XFA_Attribute::Presence, XFA_Attribute::Save,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::Save, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"items";
diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp
index 95dafa033c..19db20a987 100644
--- a/xfa/fxfa/parser/cxfa_jog.cpp
+++ b/xfa/fxfa/parser/cxfa_jog.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"jog";
diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp
index 313913053e..049a71faa1 100644
--- a/xfa/fxfa/parser/cxfa_keep.cpp
+++ b/xfa/fxfa/parser/cxfa_keep.cpp
@@ -10,10 +10,29 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Next, XFA_Attribute::Use,
- XFA_Attribute::Previous, XFA_Attribute::Usehref, XFA_Attribute::Intact,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Next, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Previous, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Intact, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_None},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"keep";
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
index 757dc9c5b3..40988517f5 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.cpp
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -8,20 +8,41 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::NonRepudiation,
- XFA_Attribute::EncipherOnly,
- XFA_Attribute::Type,
- XFA_Attribute::DigitalSignature,
- XFA_Attribute::CrlSign,
- XFA_Attribute::KeyAgreement,
- XFA_Attribute::KeyEncipherment,
- XFA_Attribute::Usehref,
- XFA_Attribute::DataEncipherment,
- XFA_Attribute::KeyCertSign,
- XFA_Attribute::DecipherOnly,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::NonRepudiation, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::EncipherOnly, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::DigitalSignature, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::CrlSign, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::KeyAgreement, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::KeyEncipherment, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataEncipherment, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::KeyCertSign, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::DecipherOnly, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"keyUsage";
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.cpp b/xfa/fxfa/parser/cxfa_labelprinter.cpp
index 24ab3fc438..a1a38bdd7d 100644
--- a/xfa/fxfa/parser/cxfa_labelprinter.cpp
+++ b/xfa/fxfa/parser/cxfa_labelprinter.cpp
@@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::BatchOutput, 1, 0},
{XFA_Element::FlipLabel, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Zpl},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"labelPrinter";
diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp
index b11f1cffc4..66ea2990c5 100644
--- a/xfa/fxfa/parser/cxfa_layout.cpp
+++ b/xfa/fxfa/parser/cxfa_layout.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"layout";
diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
index c717aff259..e0678c498f 100644
--- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
@@ -97,11 +97,12 @@ void SyncContainer(CXFA_FFNotify* pNotify,
uint32_t dwRelevantContainer = 0;
if (bVisible) {
XFA_ATTRIBUTEENUM eAttributeValue =
- pContainerItem->m_pFormNode->JSNode()->GetEnum(XFA_Attribute::Presence);
- if (eAttributeValue == XFA_ATTRIBUTEENUM_Visible ||
- eAttributeValue == XFA_ATTRIBUTEENUM_Unknown) {
+ pContainerItem->m_pFormNode->JSNode()
+ ->TryEnum(XFA_Attribute::Presence, true)
+ .value_or(XFA_ATTRIBUTEENUM_Visible);
+ if (eAttributeValue == XFA_ATTRIBUTEENUM_Visible)
bVisibleItem = true;
- }
+
dwRelevantContainer = GetRelevant(pContainerItem->m_pFormNode, dwRelevant);
dwStatus =
(bVisibleItem ? XFA_WidgetStatus_Visible : 0) | dwRelevantContainer;
@@ -1927,9 +1928,12 @@ void CXFA_LayoutPageMgr::SyncLayoutData() {
pChildLayoutItem = iterator.MoveToNext();
continue;
}
- bool bVisible =
- (pContentItem->m_pFormNode->JSNode()->GetEnum(
- XFA_Attribute::Presence) == XFA_ATTRIBUTEENUM_Visible);
+
+ XFA_ATTRIBUTEENUM presence =
+ pContentItem->m_pFormNode->JSNode()
+ ->TryEnum(XFA_Attribute::Presence, true)
+ .value_or(XFA_ATTRIBUTEENUM_Visible);
+ bool bVisible = presence == XFA_ATTRIBUTEENUM_Visible;
uint32_t dwRelevantChild =
GetRelevant(pContentItem->m_pFormNode, dwRelevant);
SyncContainer(pNotify, m_pLayoutProcessor, pContentItem,
diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp
index d91414cbee..bcfeb60de3 100644
--- a/xfa/fxfa/parser/cxfa_level.cpp
+++ b/xfa/fxfa/parser/cxfa_level.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"level";
diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp
index 2594f6e275..c18de5c96d 100644
--- a/xfa/fxfa/parser/cxfa_line.cpp
+++ b/xfa/fxfa/parser/cxfa_line.cpp
@@ -10,9 +10,26 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Slope,
- XFA_Attribute::Usehref, XFA_Attribute::Hand, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Slope, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Backslash},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Hand, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Even},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"line";
diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp
index 67dac9401b..999f85a8c4 100644
--- a/xfa/fxfa/parser/cxfa_linear.cpp
+++ b/xfa/fxfa/parser/cxfa_linear.cpp
@@ -11,9 +11,23 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_ToRight},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"linear";
diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp
index 4fa0a51ef0..b63a91f83a 100644
--- a/xfa/fxfa/parser/cxfa_linearized.cpp
+++ b/xfa/fxfa/parser/cxfa_linearized.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"linearized";
diff --git a/xfa/fxfa/parser/cxfa_locale.cpp b/xfa/fxfa/parser/cxfa_locale.cpp
index 3ace9f5e54..d20c0d0ed8 100644
--- a/xfa/fxfa/parser/cxfa_locale.cpp
+++ b/xfa/fxfa/parser/cxfa_locale.cpp
@@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::DateTimeSymbols, 1, 0}, {XFA_Element::NumberPatterns, 1, 0},
{XFA_Element::NumberSymbols, 1, 0}, {XFA_Element::TimePatterns, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"locale";
diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp
index 050c28321c..e499eea945 100644
--- a/xfa/fxfa/parser/cxfa_localeset.cpp
+++ b/xfa/fxfa/parser/cxfa_localeset.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"localeSet";
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp
index 82ee11012f..20f0cd4027 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.cpp
+++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"lockDocument";
diff --git a/xfa/fxfa/parser/cxfa_log.cpp b/xfa/fxfa/parser/cxfa_log.cpp
index b369a9ae7f..7193d0d9a4 100644
--- a/xfa/fxfa/parser/cxfa_log.cpp
+++ b/xfa/fxfa/parser/cxfa_log.cpp
@@ -13,8 +13,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0},
{XFA_Element::Mode, 1, 0},
{XFA_Element::Threshold, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"log";
diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp
index f038118e32..86f8cec983 100644
--- a/xfa/fxfa/parser/cxfa_manifest.cpp
+++ b/xfa/fxfa/parser/cxfa_manifest.cpp
@@ -10,9 +10,28 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Action, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Action, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Include},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"manifest";
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
index b06a5deb9e..8c26bfcd97 100644
--- a/xfa/fxfa/parser/cxfa_map.cpp
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -8,10 +8,33 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Bind, XFA_Attribute::Usehref, XFA_Attribute::Desc,
- XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Bind, XFA_AttributeType::CData, XFA_XDPPACKET_SourceSet,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::From, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"map";
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp
index 5269299bfe..80648065a4 100644
--- a/xfa/fxfa/parser/cxfa_margin.cpp
+++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -10,11 +10,28 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::LeftInset, XFA_Attribute::BottomInset,
- XFA_Attribute::TopInset, XFA_Attribute::RightInset,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::LeftInset, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::BottomInset, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::TopInset, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::RightInset, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"margin";
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
index fa41793e98..b9e5c64f5e 100644
--- a/xfa/fxfa/parser/cxfa_mdp.cpp
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -8,12 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::SignatureType,
- XFA_Attribute::Usehref,
- XFA_Attribute::Permissions,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::SignatureType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Filter},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Permissions, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)2},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"mdp";
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
index 00c8682139..a033e41d74 100644
--- a/xfa/fxfa/parser/cxfa_medium.cpp
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -8,13 +8,37 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::TrayOut,
- XFA_Attribute::Use, XFA_Attribute::Orientation,
- XFA_Attribute::ImagingBBox, XFA_Attribute::Short,
- XFA_Attribute::TrayIn, XFA_Attribute::Usehref,
- XFA_Attribute::Stock, XFA_Attribute::Long,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::TrayOut, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Orientation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Portrait},
+ {XFA_Attribute::ImagingBBox, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"none"},
+ {XFA_Attribute::Short, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::TrayIn, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Stock, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Long, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"medium";
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.cpp b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
index 69e6dd02ff..26f840f8fe 100644
--- a/xfa/fxfa/parser/cxfa_mediuminfo.cpp
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
@@ -10,8 +10,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Map, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"mediumInfo";
diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp
index 35e82355d6..512ebb1c11 100644
--- a/xfa/fxfa/parser/cxfa_message.cpp
+++ b/xfa/fxfa/parser/cxfa_message.cpp
@@ -11,9 +11,24 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::MsgId, 1, 0},
{XFA_Element::Severity, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"message";
diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp
index c37ec66a60..b0b578707f 100644
--- a/xfa/fxfa/parser/cxfa_messaging.cpp
+++ b/xfa/fxfa/parser/cxfa_messaging.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"messaging";
diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp
index 9019957c78..32fa3f791d 100644
--- a/xfa/fxfa/parser/cxfa_mode.cpp
+++ b/xfa/fxfa/parser/cxfa_mode.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"mode";
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp
index baaf5744e4..1083ed225e 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.cpp
+++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"modifyAnnots";
diff --git a/xfa/fxfa/parser/cxfa_monthnames.cpp b/xfa/fxfa/parser/cxfa_monthnames.cpp
index abd301d823..427418848a 100644
--- a/xfa/fxfa/parser/cxfa_monthnames.cpp
+++ b/xfa/fxfa/parser/cxfa_monthnames.cpp
@@ -10,8 +10,10 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Month, 12, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Abbr,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Abbr, XFA_AttributeType::Boolean, XFA_XDPPACKET_LocaleSet,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"monthNames";
diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp
index 642abb9470..0af55a6c1b 100644
--- a/xfa/fxfa/parser/cxfa_msgid.cpp
+++ b/xfa/fxfa/parser/cxfa_msgid.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"msgId";
diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp
index 4f9e832644..6756eaf3ff 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.cpp
+++ b/xfa/fxfa/parser/cxfa_nameattr.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"nameAttr";
diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp
index 32f6b13c8f..d246e32ffc 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.cpp
+++ b/xfa/fxfa/parser/cxfa_neverembed.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"neverEmbed";
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 05228734f3..4eff4b0748 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -138,34 +138,13 @@ const XFA_ATTRIBUTEENUMINFO* GetAttributeEnumByID(XFA_ATTRIBUTEENUM eName) {
return g_XFAEnumData + eName;
}
-// static
-WideString CXFA_Node::AttributeToName(XFA_Attribute attr) {
- return XFA_GetAttributeByID(attr)->pName;
-}
-
-// static
-XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) {
- if (name.IsEmpty())
- return XFA_Attribute::Unknown;
-
- auto* it = std::lower_bound(g_XFAAttributeData,
- g_XFAAttributeData + g_iXFAAttributeCount,
- FX_HashCode_GetW(name, false),
- [](const XFA_ATTRIBUTEINFO& arg, uint32_t hash) {
- return arg.uHash < hash;
- });
- if (it != g_XFAAttributeData + g_iXFAAttributeCount && name == it->pName)
- return it->eName;
- return XFA_Attribute::Unknown;
-}
-
CXFA_Node::CXFA_Node(CXFA_Document* pDoc,
uint16_t ePacket,
uint32_t validPackets,
XFA_ObjectType oType,
XFA_Element eType,
const PropertyData* properties,
- const XFA_Attribute* attributes,
+ const AttributeData* attributes,
const WideStringView& elementName)
: CXFA_Object(pDoc,
oType,
@@ -312,36 +291,35 @@ pdfium::Optional<XFA_Element> CXFA_Node::GetFirstPropertyWithFlag(
return {};
}
-bool CXFA_Node::HasAttribute(XFA_Attribute attr) const {
+const CXFA_Node::AttributeData* CXFA_Node::GetAttributeData(
+ XFA_Attribute attr) const {
if (m_Attributes == nullptr)
- return false;
+ return nullptr;
for (size_t i = 0;; ++i) {
- XFA_Attribute cur_attr = *(m_Attributes + i);
- if (cur_attr == XFA_Attribute::Unknown)
+ const AttributeData* cur_attr = &m_Attributes[i];
+ if (cur_attr->attribute == XFA_Attribute::Unknown)
break;
- if (cur_attr == attr)
- return true;
+ if (cur_attr->attribute == attr)
+ return cur_attr;
}
- return false;
+ return nullptr;
+}
+
+bool CXFA_Node::HasAttribute(XFA_Attribute attr) const {
+ return !!GetAttributeData(attr);
}
// Note: This Method assumes that i is a valid index ....
XFA_Attribute CXFA_Node::GetAttribute(size_t i) const {
if (m_Attributes == nullptr)
return XFA_Attribute::Unknown;
- return *(m_Attributes + i);
+ return m_Attributes[i].attribute;
}
XFA_AttributeType CXFA_Node::GetAttributeType(XFA_Attribute type) const {
- const XFA_ATTRIBUTEINFO* attr = XFA_GetAttributeByID(type);
- XFA_AttributeType eType = attr->eType;
- if (eType != XFA_AttributeType::NotSure)
- return eType;
-
- const XFA_NOTSUREATTRIBUTE* pNotsure =
- XFA_GetNotsureAttribute(GetElementType(), attr->eName);
- return pNotsure ? pNotsure->eType : XFA_AttributeType::CData;
+ const AttributeData* data = GetAttributeData(type);
+ return data ? data->type : XFA_AttributeType::CData;
}
CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem,
@@ -654,7 +632,9 @@ bool CXFA_Node::GetLocaleName(WideString& wsLocaleName) {
XFA_ATTRIBUTEENUM CXFA_Node::GetIntact() {
CXFA_Node* pKeep = GetFirstChildByClass(XFA_Element::Keep);
- XFA_ATTRIBUTEENUM eLayoutType = JSNode()->GetEnum(XFA_Attribute::Layout);
+ XFA_ATTRIBUTEENUM eLayoutType = JSNode()
+ ->TryEnum(XFA_Attribute::Layout, true)
+ .value_or(XFA_ATTRIBUTEENUM_Position);
if (pKeep) {
pdfium::Optional<XFA_ATTRIBUTEENUM> intact =
pKeep->JSNode()->TryEnum(XFA_Attribute::Intact, false);
@@ -710,7 +690,9 @@ XFA_ATTRIBUTEENUM CXFA_Node::GetIntact() {
return XFA_ATTRIBUTEENUM_ContentArea;
if (pParentNode->GetIntact() == XFA_ATTRIBUTEENUM_None) {
XFA_ATTRIBUTEENUM eParLayout =
- pParentNode->JSNode()->GetEnum(XFA_Attribute::Layout);
+ pParentNode->JSNode()
+ ->TryEnum(XFA_Attribute::Layout, true)
+ .value_or(XFA_ATTRIBUTEENUM_Position);
if (eParLayout == XFA_ATTRIBUTEENUM_Position ||
eParLayout == XFA_ATTRIBUTEENUM_Row ||
eParLayout == XFA_ATTRIBUTEENUM_Table) {
@@ -1118,17 +1100,8 @@ void CXFA_Node::OnRemoved(bool bNotify) {
}
void CXFA_Node::UpdateNameHash() {
- const XFA_NOTSUREATTRIBUTE* pNotsure =
- XFA_GetNotsureAttribute(GetElementType(), XFA_Attribute::Name);
- WideString wsName;
- if (!pNotsure || pNotsure->eType == XFA_AttributeType::CData) {
- wsName = JSNode()->GetCData(XFA_Attribute::Name);
- m_dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false);
- } else if (pNotsure->eType == XFA_AttributeType::Enum) {
- wsName =
- GetAttributeEnumByID(JSNode()->GetEnum(XFA_Attribute::Name))->pName;
- m_dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false);
- }
+ WideString wsName = JSNode()->GetCData(XFA_Attribute::Name);
+ m_dwNameHash = FX_HashCode_GetW(wsName.AsStringView(), false);
}
CFX_XMLNode* CXFA_Node::CreateXMLMappingNode() {
@@ -1378,19 +1351,12 @@ pdfium::Optional<XFA_ATTRIBUTEENUM> CXFA_Node::GetDefaultEnum(
pdfium::Optional<void*> CXFA_Node::GetDefaultValue(
XFA_Attribute attr,
XFA_AttributeType eType) const {
- const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(attr);
- if (!pInfo)
+ const AttributeData* data = GetAttributeData(attr);
+ if (!data)
return {};
- if (GetPacketID() && (GetPacketID() & pInfo->dwPackets) == 0)
+ if (GetPacketID() && (GetPacketID() & data->packets) == 0)
return {};
- if (pInfo->eType == eType)
- return {pInfo->pDefValue};
- if (pInfo->eType != XFA_AttributeType::NotSure)
- return {};
-
- const XFA_NOTSUREATTRIBUTE* pAttr =
- XFA_GetNotsureAttribute(GetElementType(), attr, eType);
- if (pAttr)
- return {pAttr->pValue};
+ if (data->type == eType)
+ return {data->default_value};
return {};
}
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index 7465f31106..238bb12b06 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -53,8 +53,19 @@ class CXFA_Node : public CXFA_Object {
uint8_t flags;
};
- static WideString AttributeToName(XFA_Attribute attr);
+ struct AttributeData {
+ XFA_Attribute attribute;
+ XFA_AttributeType type;
+ uint32_t packets;
+ void* default_value;
+ };
+
+#ifndef NDEBUG
+ static WideString ElementToName(XFA_Element elem);
+#endif // NDEBUG
+
static XFA_Attribute NameToAttribute(const WideStringView& name);
+ static WideString AttributeToName(XFA_Attribute attr);
static XFA_Element NameToElement(const WideString& name);
static std::unique_ptr<CXFA_Node> Create(CXFA_Document* doc,
XFA_Element element,
@@ -175,20 +186,21 @@ class CXFA_Node : public CXFA_Object {
XFA_ObjectType oType,
XFA_Element eType,
const PropertyData* properties,
- const XFA_Attribute* attributes,
+ const AttributeData* attributes,
const WideStringView& elementName);
private:
bool HasFlag(XFA_NodeFlag dwFlag) const;
CXFA_Node* Deprecated_GetPrevSibling();
const PropertyData* GetPropertyData(XFA_Element property) const;
+ const AttributeData* GetAttributeData(XFA_Attribute attr) const;
pdfium::Optional<XFA_Element> GetFirstPropertyWithFlag(uint8_t flag);
void OnRemoved(bool bNotify);
pdfium::Optional<void*> GetDefaultValue(XFA_Attribute attr,
XFA_AttributeType eType) const;
const PropertyData* m_Properties;
- const XFA_Attribute* m_Attributes;
+ const AttributeData* m_Attributes;
uint32_t m_ValidPackets;
CXFA_Node* m_pNext;
CXFA_Node* m_pChild;
diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp
index a33b320216..1d7d05892b 100644
--- a/xfa/fxfa/parser/cxfa_node_statics.cpp
+++ b/xfa/fxfa/parser/cxfa_node_statics.cpp
@@ -642,6 +642,258 @@ struct ElementNameInfo {
{0xff063802 /* items */, XFA_Element::Items},
};
+struct AttributeNameInfo {
+ uint32_t hash;
+ XFA_Attribute attribute;
+} AttributeNameInfoToEnum[] = {
+ {0x68 /* h */, XFA_Attribute::H},
+ {0x77 /* w */, XFA_Attribute::W},
+ {0x78 /* x */, XFA_Attribute::X},
+ {0x79 /* y */, XFA_Attribute::Y},
+ {0x21aed /* id */, XFA_Attribute::Id},
+ {0x25363 /* to */, XFA_Attribute::To},
+ {0xcb0ac9 /* lineThrough */, XFA_Attribute::LineThrough},
+ {0x2282c73 /* hAlign */, XFA_Attribute::HAlign},
+ {0x2c1c7f1 /* typeface */, XFA_Attribute::Typeface},
+ {0x3106c3a /* beforeTarget */, XFA_Attribute::BeforeTarget},
+ {0x31b19c1 /* name */, XFA_Attribute::Name},
+ {0x3848b3f /* next */, XFA_Attribute::Next},
+ {0x43e349b /* dataRowCount */, XFA_Attribute::DataRowCount},
+ {0x5518c25 /* break */, XFA_Attribute::Break},
+ {0x5ce6195 /* vScrollPolicy */, XFA_Attribute::VScrollPolicy},
+ {0x8c74ae9 /* fontHorizontalScale */, XFA_Attribute::FontHorizontalScale},
+ {0x8d4f1c7 /* textIndent */, XFA_Attribute::TextIndent},
+ {0x97c1c65 /* context */, XFA_Attribute::Context},
+ {0x9876578 /* trayOut */, XFA_Attribute::TrayOut},
+ {0xa2e3514 /* cap */, XFA_Attribute::Cap},
+ {0xb3543a6 /* max */, XFA_Attribute::Max},
+ {0xb356ca4 /* min */, XFA_Attribute::Min},
+ {0xbb8df5d /* ref */, XFA_Attribute::Ref},
+ {0xbb8f3df /* rid */, XFA_Attribute::Rid},
+ {0xc080cd3 /* url */, XFA_Attribute::Url},
+ {0xc0811ed /* use */, XFA_Attribute::Use},
+ {0xcfea02e /* leftInset */, XFA_Attribute::LeftInset},
+ {0x1026c59d /* widows */, XFA_Attribute::Widows},
+ {0x1059ec18 /* level */, XFA_Attribute::Level},
+ {0x1356caf8 /* bottomInset */, XFA_Attribute::BottomInset},
+ {0x13a08bdb /* overflowTarget */, XFA_Attribute::OverflowTarget},
+ {0x1414d431 /* allowMacro */, XFA_Attribute::AllowMacro},
+ {0x14a32d52 /* pagePosition */, XFA_Attribute::PagePosition},
+ {0x1517dfa1 /* columnWidths */, XFA_Attribute::ColumnWidths},
+ {0x169134a1 /* overflowLeader */, XFA_Attribute::OverflowLeader},
+ {0x1b8dce3e /* action */, XFA_Attribute::Action},
+ {0x1e459b8f /* nonRepudiation */, XFA_Attribute::NonRepudiation},
+ {0x1ec8ab2c /* rate */, XFA_Attribute::Rate},
+ {0x1ef3a64a /* allowRichText */, XFA_Attribute::AllowRichText},
+ {0x2038c9b2 /* role */, XFA_Attribute::Role},
+ {0x20914367 /* overflowTrailer */, XFA_Attribute::OverflowTrailer},
+ {0x226ca8f1 /* operation */, XFA_Attribute::Operation},
+ {0x24d85167 /* timeout */, XFA_Attribute::Timeout},
+ {0x25764436 /* topInset */, XFA_Attribute::TopInset},
+ {0x25839852 /* access */, XFA_Attribute::Access},
+ {0x268b7ec1 /* commandType */, XFA_Attribute::CommandType},
+ {0x28dee6e9 /* format */, XFA_Attribute::Format},
+ {0x28e17e91 /* dataPrep */, XFA_Attribute::DataPrep},
+ {0x292b88fe /* widgetData */, XFA_Attribute::WidgetData},
+ {0x29418bb7 /* abbr */, XFA_Attribute::Abbr},
+ {0x2a82d99c /* marginRight */, XFA_Attribute::MarginRight},
+ {0x2b5df51e /* dataDescription */, XFA_Attribute::DataDescription},
+ {0x2bb3f470 /* encipherOnly */, XFA_Attribute::EncipherOnly},
+ {0x2cd79033 /* kerningMode */, XFA_Attribute::KerningMode},
+ {0x2ee7678f /* rotate */, XFA_Attribute::Rotate},
+ {0x2f105f72 /* wordCharacterCount */, XFA_Attribute::WordCharacterCount},
+ {0x2f16a382 /* type */, XFA_Attribute::Type},
+ {0x34ae103c /* reserve */, XFA_Attribute::Reserve},
+ {0x3650557e /* textLocation */, XFA_Attribute::TextLocation},
+ {0x39cdb0a2 /* priority */, XFA_Attribute::Priority},
+ {0x3a0273a6 /* underline */, XFA_Attribute::Underline},
+ {0x3b582286 /* moduleWidth */, XFA_Attribute::ModuleWidth},
+ {0x3d123c26 /* hyphenate */, XFA_Attribute::Hyphenate},
+ {0x3e7af94f /* listen */, XFA_Attribute::Listen},
+ {0x4156ee3f /* delimiter */, XFA_Attribute::Delimiter},
+ {0x42fed1fd /* contentType */, XFA_Attribute::ContentType},
+ {0x453eaf38 /* startNew */, XFA_Attribute::StartNew},
+ {0x45a6daf8 /* eofAction */, XFA_Attribute::EofAction},
+ {0x47cfa43a /* allowNeutral */, XFA_Attribute::AllowNeutral},
+ {0x47d03490 /* connection */, XFA_Attribute::Connection},
+ {0x4873c601 /* baselineShift */, XFA_Attribute::BaselineShift},
+ {0x4b319767 /* overlinePeriod */, XFA_Attribute::OverlinePeriod},
+ {0x4b8bc840 /* fracDigits */, XFA_Attribute::FracDigits},
+ {0x4ef3d02c /* orientation */, XFA_Attribute::Orientation},
+ {0x4fdc3454 /* timeStamp */, XFA_Attribute::TimeStamp},
+ {0x52666f1c /* printCheckDigit */, XFA_Attribute::PrintCheckDigit},
+ {0x534729c9 /* marginLeft */, XFA_Attribute::MarginLeft},
+ {0x5392ea58 /* stroke */, XFA_Attribute::Stroke},
+ {0x5404d6df /* moduleHeight */, XFA_Attribute::ModuleHeight},
+ {0x54fa722c /* transferEncoding */, XFA_Attribute::TransferEncoding},
+ {0x552d9ad5 /* usage */, XFA_Attribute::Usage},
+ {0x570ce835 /* presence */, XFA_Attribute::Presence},
+ {0x5739d1ff /* radixOffset */, XFA_Attribute::RadixOffset},
+ {0x577682ac /* preserve */, XFA_Attribute::Preserve},
+ {0x58be2870 /* aliasNode */, XFA_Attribute::AliasNode},
+ {0x5a32e493 /* multiLine */, XFA_Attribute::MultiLine},
+ {0x5a50e9e6 /* version */, XFA_Attribute::Version},
+ {0x5ab23b6c /* startChar */, XFA_Attribute::StartChar},
+ {0x5b707a35 /* scriptTest */, XFA_Attribute::ScriptTest},
+ {0x5c054755 /* startAngle */, XFA_Attribute::StartAngle},
+ {0x5ec958c0 /* cursorType */, XFA_Attribute::CursorType},
+ {0x5f760b50 /* digitalSignature */, XFA_Attribute::DigitalSignature},
+ {0x60a61edd /* codeType */, XFA_Attribute::CodeType},
+ {0x60d4c8b1 /* output */, XFA_Attribute::Output},
+ {0x64110ab5 /* bookendTrailer */, XFA_Attribute::BookendTrailer},
+ {0x65e30c67 /* imagingBBox */, XFA_Attribute::ImagingBBox},
+ {0x66539c48 /* excludeInitialCap */, XFA_Attribute::ExcludeInitialCap},
+ {0x66642f8f /* force */, XFA_Attribute::Force},
+ {0x69aa2292 /* crlSign */, XFA_Attribute::CrlSign},
+ {0x6a3405dd /* previous */, XFA_Attribute::Previous},
+ {0x6a95c976 /* pushCharacterCount */, XFA_Attribute::PushCharacterCount},
+ {0x6b6ddcfb /* nullTest */, XFA_Attribute::NullTest},
+ {0x6cfa828a /* runAt */, XFA_Attribute::RunAt},
+ {0x731e0665 /* spaceBelow */, XFA_Attribute::SpaceBelow},
+ {0x74788f8b /* sweepAngle */, XFA_Attribute::SweepAngle},
+ {0x78bff531 /* numberOfCells */, XFA_Attribute::NumberOfCells},
+ {0x79543055 /* letterSpacing */, XFA_Attribute::LetterSpacing},
+ {0x79975f2b /* lockType */, XFA_Attribute::LockType},
+ {0x7a0cc471 /* passwordChar */, XFA_Attribute::PasswordChar},
+ {0x7a7cc341 /* vAlign */, XFA_Attribute::VAlign},
+ {0x7b29630a /* sourceBelow */, XFA_Attribute::SourceBelow},
+ {0x7b95e661 /* inverted */, XFA_Attribute::Inverted},
+ {0x7c2fd80b /* mark */, XFA_Attribute::Mark},
+ {0x7c2ff6ae /* maxH */, XFA_Attribute::MaxH},
+ {0x7c2ff6bd /* maxW */, XFA_Attribute::MaxW},
+ {0x7c732a66 /* truncate */, XFA_Attribute::Truncate},
+ {0x7d02356c /* minH */, XFA_Attribute::MinH},
+ {0x7d02357b /* minW */, XFA_Attribute::MinW},
+ {0x7d0b5fca /* initial */, XFA_Attribute::Initial},
+ {0x7d9fd7c5 /* mode */, XFA_Attribute::Mode},
+ {0x7e7e845e /* layout */, XFA_Attribute::Layout},
+ {0x7f6fd3d7 /* server */, XFA_Attribute::Server},
+ {0x824f21b7 /* embedPDF */, XFA_Attribute::EmbedPDF},
+ {0x8340ea66 /* oddOrEven */, XFA_Attribute::OddOrEven},
+ {0x836d4d7c /* tabDefault */, XFA_Attribute::TabDefault},
+ {0x8855805f /* contains */, XFA_Attribute::Contains},
+ {0x8a692521 /* rightInset */, XFA_Attribute::RightInset},
+ {0x8af2e657 /* maxChars */, XFA_Attribute::MaxChars},
+ {0x8b90e1f2 /* open */, XFA_Attribute::Open},
+ {0x8c99377e /* relation */, XFA_Attribute::Relation},
+ {0x8d181d61 /* wideNarrowRatio */, XFA_Attribute::WideNarrowRatio},
+ {0x8e1c2921 /* relevant */, XFA_Attribute::Relevant},
+ {0x8e29d794 /* signatureType */, XFA_Attribute::SignatureType},
+ {0x8ec6204c /* lineThroughPeriod */, XFA_Attribute::LineThroughPeriod},
+ {0x8ed182d1 /* shape */, XFA_Attribute::Shape},
+ {0x8fa01790 /* tabStops */, XFA_Attribute::TabStops},
+ {0x8fc36c0a /* outputBelow */, XFA_Attribute::OutputBelow},
+ {0x9041d4b0 /* short */, XFA_Attribute::Short},
+ {0x907c7719 /* fontVerticalScale */, XFA_Attribute::FontVerticalScale},
+ {0x94446dcc /* thickness */, XFA_Attribute::Thickness},
+ {0x957fa006 /* commitOn */, XFA_Attribute::CommitOn},
+ {0x982bd892 /* remainCharacterCount */,
+ XFA_Attribute::RemainCharacterCount},
+ {0x98fd4d81 /* keyAgreement */, XFA_Attribute::KeyAgreement},
+ {0x99800d7a /* errorCorrectionLevel */,
+ XFA_Attribute::ErrorCorrectionLevel},
+ {0x9a63da3d /* upsMode */, XFA_Attribute::UpsMode},
+ {0x9cc17d75 /* mergeMode */, XFA_Attribute::MergeMode},
+ {0x9d833d75 /* circular */, XFA_Attribute::Circular},
+ {0x9d8ee204 /* psName */, XFA_Attribute::PsName},
+ {0x9dcc3ab3 /* trailer */, XFA_Attribute::Trailer},
+ {0xa0933954 /* unicodeRange */, XFA_Attribute::UnicodeRange},
+ {0xa1b0d2f5 /* executeType */, XFA_Attribute::ExecuteType},
+ {0xa25a883d /* duplexImposition */, XFA_Attribute::DuplexImposition},
+ {0xa42ca1b7 /* trayIn */, XFA_Attribute::TrayIn},
+ {0xa433f001 /* bindingNode */, XFA_Attribute::BindingNode},
+ {0xa5340ff5 /* bofAction */, XFA_Attribute::BofAction},
+ {0xa5b410cf /* save */, XFA_Attribute::Save},
+ {0xa6118c89 /* targetType */, XFA_Attribute::TargetType},
+ {0xa66404cb /* keyEncipherment */, XFA_Attribute::KeyEncipherment},
+ {0xa6710262 /* credentialServerPolicy */,
+ XFA_Attribute::CredentialServerPolicy},
+ {0xa686975b /* size */, XFA_Attribute::Size},
+ {0xa85e74f3 /* initialNumber */, XFA_Attribute::InitialNumber},
+ {0xabef37e3 /* slope */, XFA_Attribute::Slope},
+ {0xabfa6c4f /* cSpace */, XFA_Attribute::CSpace},
+ {0xac06e2b0 /* colSpan */, XFA_Attribute::ColSpan},
+ {0xadc4c77b /* binding */, XFA_Attribute::Binding},
+ {0xaf754613 /* checksum */, XFA_Attribute::Checksum},
+ {0xb045fbc5 /* charEncoding */, XFA_Attribute::CharEncoding},
+ {0xb0e5485d /* bind */, XFA_Attribute::Bind},
+ {0xb12128b7 /* textEntry */, XFA_Attribute::TextEntry},
+ {0xb373a862 /* archive */, XFA_Attribute::Archive},
+ {0xb598a1f7 /* uuid */, XFA_Attribute::Uuid},
+ {0xb5e49bf2 /* posture */, XFA_Attribute::Posture},
+ {0xb6b44172 /* after */, XFA_Attribute::After},
+ {0xb716467b /* orphans */, XFA_Attribute::Orphans},
+ {0xbc0c4695 /* qualifiedName */, XFA_Attribute::QualifiedName},
+ {0xbc254332 /* usehref */, XFA_Attribute::Usehref},
+ {0xbc8fa350 /* locale */, XFA_Attribute::Locale},
+ {0xbd6e1d88 /* weight */, XFA_Attribute::Weight},
+ {0xbd96a0e9 /* underlinePeriod */, XFA_Attribute::UnderlinePeriod},
+ {0xbde9abda /* data */, XFA_Attribute::Data},
+ {0xbe52dfbf /* desc */, XFA_Attribute::Desc},
+ {0xbe9ba472 /* numbered */, XFA_Attribute::Numbered},
+ {0xc035c6b1 /* dataColumnCount */, XFA_Attribute::DataColumnCount},
+ {0xc0ec9fa4 /* overline */, XFA_Attribute::Overline},
+ {0xc2ba0923 /* urlPolicy */, XFA_Attribute::UrlPolicy},
+ {0xc2bd40fd /* anchorType */, XFA_Attribute::AnchorType},
+ {0xc39a88bd /* labelRef */, XFA_Attribute::LabelRef},
+ {0xc3c1442f /* bookendLeader */, XFA_Attribute::BookendLeader},
+ {0xc4547a08 /* maxLength */, XFA_Attribute::MaxLength},
+ {0xc4fed09b /* accessKey */, XFA_Attribute::AccessKey},
+ {0xc5762157 /* cursorLocation */, XFA_Attribute::CursorLocation},
+ {0xc860f30a /* delayedOpen */, XFA_Attribute::DelayedOpen},
+ {0xc8da4da7 /* target */, XFA_Attribute::Target},
+ {0xca5dc27c /* dataEncipherment */, XFA_Attribute::DataEncipherment},
+ {0xcb150479 /* afterTarget */, XFA_Attribute::AfterTarget},
+ {0xcbcaf66d /* leader */, XFA_Attribute::Leader},
+ {0xcca7897e /* picker */, XFA_Attribute::Picker},
+ {0xcd7f7b54 /* from */, XFA_Attribute::From},
+ {0xcea5e62c /* baseProfile */, XFA_Attribute::BaseProfile},
+ {0xd171b240 /* aspect */, XFA_Attribute::Aspect},
+ {0xd3c84d25 /* rowColumnRatio */, XFA_Attribute::RowColumnRatio},
+ {0xd4b01921 /* lineHeight */, XFA_Attribute::LineHeight},
+ {0xd4cc53f8 /* highlight */, XFA_Attribute::Highlight},
+ {0xd50f903a /* valueRef */, XFA_Attribute::ValueRef},
+ {0xd52482e0 /* maxEntries */, XFA_Attribute::MaxEntries},
+ {0xd57c513c /* dataLength */, XFA_Attribute::DataLength},
+ {0xd6128d8d /* activity */, XFA_Attribute::Activity},
+ {0xd6a39990 /* input */, XFA_Attribute::Input},
+ {0xd6e27f1d /* value */, XFA_Attribute::Value},
+ {0xd70798c2 /* blankOrNotBlank */, XFA_Attribute::BlankOrNotBlank},
+ {0xd861f8af /* addRevocationInfo */, XFA_Attribute::AddRevocationInfo},
+ {0xd8f982bf /* genericFamily */, XFA_Attribute::GenericFamily},
+ {0xd996fa9b /* hand */, XFA_Attribute::Hand},
+ {0xdb55fec5 /* href */, XFA_Attribute::Href},
+ {0xdc75676c /* textEncoding */, XFA_Attribute::TextEncoding},
+ {0xde7f92ba /* leadDigits */, XFA_Attribute::LeadDigits},
+ {0xe11a2cbc /* permissions */, XFA_Attribute::Permissions},
+ {0xe18b5659 /* spaceAbove */, XFA_Attribute::SpaceAbove},
+ {0xe1a26b56 /* codeBase */, XFA_Attribute::CodeBase},
+ {0xe349d044 /* stock */, XFA_Attribute::Stock},
+ {0xe372ae97 /* isNull */, XFA_Attribute::IsNull},
+ {0xe4c3a5e5 /* restoreState */, XFA_Attribute::RestoreState},
+ {0xe5c96d6a /* excludeAllCaps */, XFA_Attribute::ExcludeAllCaps},
+ {0xe64b1129 /* formatTest */, XFA_Attribute::FormatTest},
+ {0xe6f99487 /* hScrollPolicy */, XFA_Attribute::HScrollPolicy},
+ {0xe8dddf50 /* join */, XFA_Attribute::Join},
+ {0xe8f118a8 /* keyCertSign */, XFA_Attribute::KeyCertSign},
+ {0xe948b9a8 /* radius */, XFA_Attribute::Radius},
+ {0xe996b2fe /* sourceAbove */, XFA_Attribute::SourceAbove},
+ {0xea7090a0 /* override */, XFA_Attribute::Override},
+ {0xeb091003 /* classId */, XFA_Attribute::ClassId},
+ {0xeb511b54 /* disable */, XFA_Attribute::Disable},
+ {0xeda9017a /* scope */, XFA_Attribute::Scope},
+ {0xf197844d /* match */, XFA_Attribute::Match},
+ {0xf2009339 /* placement */, XFA_Attribute::Placement},
+ {0xf4ffce73 /* before */, XFA_Attribute::Before},
+ {0xf531b059 /* writingScript */, XFA_Attribute::WritingScript},
+ {0xf575ca75 /* endChar */, XFA_Attribute::EndChar},
+ {0xf6b47749 /* lock */, XFA_Attribute::Lock},
+ {0xf6b4afb0 /* long */, XFA_Attribute::Long},
+ {0xf6b59543 /* intact */, XFA_Attribute::Intact},
+ {0xf889e747 /* xdpContent */, XFA_Attribute::XdpContent},
+ {0xfea53ec6 /* decipherOnly */, XFA_Attribute::DecipherOnly},
+};
+
} // namespace
// static
@@ -656,6 +908,18 @@ XFA_Element CXFA_Node::NameToElement(const WideString& name) {
}
// static
+XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) {
+ uint32_t hash = FX_HashCode_GetW(name, false);
+ auto* elem = std::lower_bound(
+ std::begin(AttributeNameInfoToEnum), std::end(AttributeNameInfoToEnum),
+ hash,
+ [](const AttributeNameInfo& a, uint32_t hash) { return a.hash < hash; });
+ if (elem != std::end(AttributeNameInfoToEnum) && elem->hash == hash)
+ return elem->attribute;
+ return XFA_Attribute::Unknown;
+}
+
+// static
std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
XFA_Element element,
XFA_XDPPACKET packet) {
@@ -1604,3 +1868,1135 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
return nullptr;
return node;
}
+
+// static
+WideString CXFA_Node::AttributeToName(XFA_Attribute attr) {
+ switch (attr) {
+ case XFA_Attribute::H:
+ return L"h";
+ case XFA_Attribute::W:
+ return L"w";
+ case XFA_Attribute::X:
+ return L"x";
+ case XFA_Attribute::Y:
+ return L"y";
+ case XFA_Attribute::Id:
+ return L"id";
+ case XFA_Attribute::To:
+ return L"to";
+ case XFA_Attribute::LineThrough:
+ return L"lineThrough";
+ case XFA_Attribute::HAlign:
+ return L"hAlign";
+ case XFA_Attribute::Typeface:
+ return L"typeface";
+ case XFA_Attribute::BeforeTarget:
+ return L"beforeTarget";
+ case XFA_Attribute::Name:
+ return L"name";
+ case XFA_Attribute::Next:
+ return L"next";
+ case XFA_Attribute::DataRowCount:
+ return L"dataRowCount";
+ case XFA_Attribute::Break:
+ return L"break";
+ case XFA_Attribute::VScrollPolicy:
+ return L"vScrollPolicy";
+ case XFA_Attribute::FontHorizontalScale:
+ return L"fontHorizontalScale";
+ case XFA_Attribute::TextIndent:
+ return L"textIndent";
+ case XFA_Attribute::Context:
+ return L"context";
+ case XFA_Attribute::TrayOut:
+ return L"trayOut";
+ case XFA_Attribute::Cap:
+ return L"cap";
+ case XFA_Attribute::Max:
+ return L"max";
+ case XFA_Attribute::Min:
+ return L"min";
+ case XFA_Attribute::Ref:
+ return L"ref";
+ case XFA_Attribute::Rid:
+ return L"rid";
+ case XFA_Attribute::Url:
+ return L"url";
+ case XFA_Attribute::Use:
+ return L"use";
+ case XFA_Attribute::LeftInset:
+ return L"leftInset";
+ case XFA_Attribute::Widows:
+ return L"widows";
+ case XFA_Attribute::Level:
+ return L"level";
+ case XFA_Attribute::BottomInset:
+ return L"bottomInset";
+ case XFA_Attribute::OverflowTarget:
+ return L"overflowTarget";
+ case XFA_Attribute::AllowMacro:
+ return L"allowMacro";
+ case XFA_Attribute::PagePosition:
+ return L"pagePosition";
+ case XFA_Attribute::ColumnWidths:
+ return L"columnWidths";
+ case XFA_Attribute::OverflowLeader:
+ return L"overflowLeader";
+ case XFA_Attribute::Action:
+ return L"action";
+ case XFA_Attribute::NonRepudiation:
+ return L"nonRepudiation";
+ case XFA_Attribute::Rate:
+ return L"rate";
+ case XFA_Attribute::AllowRichText:
+ return L"allowRichText";
+ case XFA_Attribute::Role:
+ return L"role";
+ case XFA_Attribute::OverflowTrailer:
+ return L"overflowTrailer";
+ case XFA_Attribute::Operation:
+ return L"operation";
+ case XFA_Attribute::Timeout:
+ return L"timeout";
+ case XFA_Attribute::TopInset:
+ return L"topInset";
+ case XFA_Attribute::Access:
+ return L"access";
+ case XFA_Attribute::CommandType:
+ return L"commandType";
+ case XFA_Attribute::Format:
+ return L"format";
+ case XFA_Attribute::DataPrep:
+ return L"dataPrep";
+ case XFA_Attribute::WidgetData:
+ return L"widgetData";
+ case XFA_Attribute::Abbr:
+ return L"abbr";
+ case XFA_Attribute::MarginRight:
+ return L"marginRight";
+ case XFA_Attribute::DataDescription:
+ return L"dataDescription";
+ case XFA_Attribute::EncipherOnly:
+ return L"encipherOnly";
+ case XFA_Attribute::KerningMode:
+ return L"kerningMode";
+ case XFA_Attribute::Rotate:
+ return L"rotate";
+ case XFA_Attribute::WordCharacterCount:
+ return L"wordCharacterCount";
+ case XFA_Attribute::Type:
+ return L"type";
+ case XFA_Attribute::Reserve:
+ return L"reserve";
+ case XFA_Attribute::TextLocation:
+ return L"textLocation";
+ case XFA_Attribute::Priority:
+ return L"priority";
+ case XFA_Attribute::Underline:
+ return L"underline";
+ case XFA_Attribute::ModuleWidth:
+ return L"moduleWidth";
+ case XFA_Attribute::Hyphenate:
+ return L"hyphenate";
+ case XFA_Attribute::Listen:
+ return L"listen";
+ case XFA_Attribute::Delimiter:
+ return L"delimiter";
+ case XFA_Attribute::ContentType:
+ return L"contentType";
+ case XFA_Attribute::StartNew:
+ return L"startNew";
+ case XFA_Attribute::EofAction:
+ return L"eofAction";
+ case XFA_Attribute::AllowNeutral:
+ return L"allowNeutral";
+ case XFA_Attribute::Connection:
+ return L"connection";
+ case XFA_Attribute::BaselineShift:
+ return L"baselineShift";
+ case XFA_Attribute::OverlinePeriod:
+ return L"overlinePeriod";
+ case XFA_Attribute::FracDigits:
+ return L"fracDigits";
+ case XFA_Attribute::Orientation:
+ return L"orientation";
+ case XFA_Attribute::TimeStamp:
+ return L"timeStamp";
+ case XFA_Attribute::PrintCheckDigit:
+ return L"printCheckDigit";
+ case XFA_Attribute::MarginLeft:
+ return L"marginLeft";
+ case XFA_Attribute::Stroke:
+ return L"stroke";
+ case XFA_Attribute::ModuleHeight:
+ return L"moduleHeight";
+ case XFA_Attribute::TransferEncoding:
+ return L"transferEncoding";
+ case XFA_Attribute::Usage:
+ return L"usage";
+ case XFA_Attribute::Presence:
+ return L"presence";
+ case XFA_Attribute::RadixOffset:
+ return L"radixOffset";
+ case XFA_Attribute::Preserve:
+ return L"preserve";
+ case XFA_Attribute::AliasNode:
+ return L"aliasNode";
+ case XFA_Attribute::MultiLine:
+ return L"multiLine";
+ case XFA_Attribute::Version:
+ return L"version";
+ case XFA_Attribute::StartChar:
+ return L"startChar";
+ case XFA_Attribute::ScriptTest:
+ return L"scriptTest";
+ case XFA_Attribute::StartAngle:
+ return L"startAngle";
+ case XFA_Attribute::CursorType:
+ return L"cursorType";
+ case XFA_Attribute::DigitalSignature:
+ return L"digitalSignature";
+ case XFA_Attribute::CodeType:
+ return L"codeType";
+ case XFA_Attribute::Output:
+ return L"output";
+ case XFA_Attribute::BookendTrailer:
+ return L"bookendTrailer";
+ case XFA_Attribute::ImagingBBox:
+ return L"imagingBBox";
+ case XFA_Attribute::ExcludeInitialCap:
+ return L"excludeInitialCap";
+ case XFA_Attribute::Force:
+ return L"force";
+ case XFA_Attribute::CrlSign:
+ return L"crlSign";
+ case XFA_Attribute::Previous:
+ return L"previous";
+ case XFA_Attribute::PushCharacterCount:
+ return L"pushCharacterCount";
+ case XFA_Attribute::NullTest:
+ return L"nullTest";
+ case XFA_Attribute::RunAt:
+ return L"runAt";
+ case XFA_Attribute::SpaceBelow:
+ return L"spaceBelow";
+ case XFA_Attribute::SweepAngle:
+ return L"sweepAngle";
+ case XFA_Attribute::NumberOfCells:
+ return L"numberOfCells";
+ case XFA_Attribute::LetterSpacing:
+ return L"letterSpacing";
+ case XFA_Attribute::LockType:
+ return L"lockType";
+ case XFA_Attribute::PasswordChar:
+ return L"passwordChar";
+ case XFA_Attribute::VAlign:
+ return L"vAlign";
+ case XFA_Attribute::SourceBelow:
+ return L"sourceBelow";
+ case XFA_Attribute::Inverted:
+ return L"inverted";
+ case XFA_Attribute::Mark:
+ return L"mark";
+ case XFA_Attribute::MaxH:
+ return L"maxH";
+ case XFA_Attribute::MaxW:
+ return L"maxW";
+ case XFA_Attribute::Truncate:
+ return L"truncate";
+ case XFA_Attribute::MinH:
+ return L"minH";
+ case XFA_Attribute::MinW:
+ return L"minW";
+ case XFA_Attribute::Initial:
+ return L"initial";
+ case XFA_Attribute::Mode:
+ return L"mode";
+ case XFA_Attribute::Layout:
+ return L"layout";
+ case XFA_Attribute::Server:
+ return L"server";
+ case XFA_Attribute::EmbedPDF:
+ return L"embedPDF";
+ case XFA_Attribute::OddOrEven:
+ return L"oddOrEven";
+ case XFA_Attribute::TabDefault:
+ return L"tabDefault";
+ case XFA_Attribute::Contains:
+ return L"contains";
+ case XFA_Attribute::RightInset:
+ return L"rightInset";
+ case XFA_Attribute::MaxChars:
+ return L"maxChars";
+ case XFA_Attribute::Open:
+ return L"open";
+ case XFA_Attribute::Relation:
+ return L"relation";
+ case XFA_Attribute::WideNarrowRatio:
+ return L"wideNarrowRatio";
+ case XFA_Attribute::Relevant:
+ return L"relevant";
+ case XFA_Attribute::SignatureType:
+ return L"signatureType";
+ case XFA_Attribute::LineThroughPeriod:
+ return L"lineThroughPeriod";
+ case XFA_Attribute::Shape:
+ return L"shape";
+ case XFA_Attribute::TabStops:
+ return L"tabStops";
+ case XFA_Attribute::OutputBelow:
+ return L"outputBelow";
+ case XFA_Attribute::Short:
+ return L"short";
+ case XFA_Attribute::FontVerticalScale:
+ return L"fontVerticalScale";
+ case XFA_Attribute::Thickness:
+ return L"thickness";
+ case XFA_Attribute::CommitOn:
+ return L"commitOn";
+ case XFA_Attribute::RemainCharacterCount:
+ return L"remainCharacterCount";
+ case XFA_Attribute::KeyAgreement:
+ return L"keyAgreement";
+ case XFA_Attribute::ErrorCorrectionLevel:
+ return L"errorCorrectionLevel";
+ case XFA_Attribute::UpsMode:
+ return L"upsMode";
+ case XFA_Attribute::MergeMode:
+ return L"mergeMode";
+ case XFA_Attribute::Circular:
+ return L"circular";
+ case XFA_Attribute::PsName:
+ return L"psName";
+ case XFA_Attribute::Trailer:
+ return L"trailer";
+ case XFA_Attribute::UnicodeRange:
+ return L"unicodeRange";
+ case XFA_Attribute::ExecuteType:
+ return L"executeType";
+ case XFA_Attribute::DuplexImposition:
+ return L"duplexImposition";
+ case XFA_Attribute::TrayIn:
+ return L"trayIn";
+ case XFA_Attribute::BindingNode:
+ return L"bindingNode";
+ case XFA_Attribute::BofAction:
+ return L"bofAction";
+ case XFA_Attribute::Save:
+ return L"save";
+ case XFA_Attribute::TargetType:
+ return L"targetType";
+ case XFA_Attribute::KeyEncipherment:
+ return L"keyEncipherment";
+ case XFA_Attribute::CredentialServerPolicy:
+ return L"credentialServerPolicy";
+ case XFA_Attribute::Size:
+ return L"size";
+ case XFA_Attribute::InitialNumber:
+ return L"initialNumber";
+ case XFA_Attribute::Slope:
+ return L"slope";
+ case XFA_Attribute::CSpace:
+ return L"cSpace";
+ case XFA_Attribute::ColSpan:
+ return L"colSpan";
+ case XFA_Attribute::Binding:
+ return L"binding";
+ case XFA_Attribute::Checksum:
+ return L"checksum";
+ case XFA_Attribute::CharEncoding:
+ return L"charEncoding";
+ case XFA_Attribute::Bind:
+ return L"bind";
+ case XFA_Attribute::TextEntry:
+ return L"textEntry";
+ case XFA_Attribute::Archive:
+ return L"archive";
+ case XFA_Attribute::Uuid:
+ return L"uuid";
+ case XFA_Attribute::Posture:
+ return L"posture";
+ case XFA_Attribute::After:
+ return L"after";
+ case XFA_Attribute::Orphans:
+ return L"orphans";
+ case XFA_Attribute::QualifiedName:
+ return L"qualifiedName";
+ case XFA_Attribute::Usehref:
+ return L"usehref";
+ case XFA_Attribute::Locale:
+ return L"locale";
+ case XFA_Attribute::Weight:
+ return L"weight";
+ case XFA_Attribute::UnderlinePeriod:
+ return L"underlinePeriod";
+ case XFA_Attribute::Data:
+ return L"data";
+ case XFA_Attribute::Desc:
+ return L"desc";
+ case XFA_Attribute::Numbered:
+ return L"numbered";
+ case XFA_Attribute::DataColumnCount:
+ return L"dataColumnCount";
+ case XFA_Attribute::Overline:
+ return L"overline";
+ case XFA_Attribute::UrlPolicy:
+ return L"urlPolicy";
+ case XFA_Attribute::AnchorType:
+ return L"anchorType";
+ case XFA_Attribute::LabelRef:
+ return L"labelRef";
+ case XFA_Attribute::BookendLeader:
+ return L"bookendLeader";
+ case XFA_Attribute::MaxLength:
+ return L"maxLength";
+ case XFA_Attribute::AccessKey:
+ return L"accessKey";
+ case XFA_Attribute::CursorLocation:
+ return L"cursorLocation";
+ case XFA_Attribute::DelayedOpen:
+ return L"delayedOpen";
+ case XFA_Attribute::Target:
+ return L"target";
+ case XFA_Attribute::DataEncipherment:
+ return L"dataEncipherment";
+ case XFA_Attribute::AfterTarget:
+ return L"afterTarget";
+ case XFA_Attribute::Leader:
+ return L"leader";
+ case XFA_Attribute::Picker:
+ return L"picker";
+ case XFA_Attribute::From:
+ return L"from";
+ case XFA_Attribute::BaseProfile:
+ return L"baseProfile";
+ case XFA_Attribute::Aspect:
+ return L"aspect";
+ case XFA_Attribute::RowColumnRatio:
+ return L"rowColumnRatio";
+ case XFA_Attribute::LineHeight:
+ return L"lineHeight";
+ case XFA_Attribute::Highlight:
+ return L"highlight";
+ case XFA_Attribute::ValueRef:
+ return L"valueRef";
+ case XFA_Attribute::MaxEntries:
+ return L"maxEntries";
+ case XFA_Attribute::DataLength:
+ return L"dataLength";
+ case XFA_Attribute::Activity:
+ return L"activity";
+ case XFA_Attribute::Input:
+ return L"input";
+ case XFA_Attribute::Value:
+ return L"value";
+ case XFA_Attribute::BlankOrNotBlank:
+ return L"blankOrNotBlank";
+ case XFA_Attribute::AddRevocationInfo:
+ return L"addRevocationInfo";
+ case XFA_Attribute::GenericFamily:
+ return L"genericFamily";
+ case XFA_Attribute::Hand:
+ return L"hand";
+ case XFA_Attribute::Href:
+ return L"href";
+ case XFA_Attribute::TextEncoding:
+ return L"textEncoding";
+ case XFA_Attribute::LeadDigits:
+ return L"leadDigits";
+ case XFA_Attribute::Permissions:
+ return L"permissions";
+ case XFA_Attribute::SpaceAbove:
+ return L"spaceAbove";
+ case XFA_Attribute::CodeBase:
+ return L"codeBase";
+ case XFA_Attribute::Stock:
+ return L"stock";
+ case XFA_Attribute::IsNull:
+ return L"isNull";
+ case XFA_Attribute::RestoreState:
+ return L"restoreState";
+ case XFA_Attribute::ExcludeAllCaps:
+ return L"excludeAllCaps";
+ case XFA_Attribute::FormatTest:
+ return L"formatTest";
+ case XFA_Attribute::HScrollPolicy:
+ return L"hScrollPolicy";
+ case XFA_Attribute::Join:
+ return L"join";
+ case XFA_Attribute::KeyCertSign:
+ return L"keyCertSign";
+ case XFA_Attribute::Radius:
+ return L"radius";
+ case XFA_Attribute::SourceAbove:
+ return L"sourceAbove";
+ case XFA_Attribute::Override:
+ return L"override";
+ case XFA_Attribute::ClassId:
+ return L"classId";
+ case XFA_Attribute::Disable:
+ return L"disable";
+ case XFA_Attribute::Scope:
+ return L"scope";
+ case XFA_Attribute::Match:
+ return L"match";
+ case XFA_Attribute::Placement:
+ return L"placement";
+ case XFA_Attribute::Before:
+ return L"before";
+ case XFA_Attribute::WritingScript:
+ return L"writingScript";
+ case XFA_Attribute::EndChar:
+ return L"endChar";
+ case XFA_Attribute::Lock:
+ return L"lock";
+ case XFA_Attribute::Long:
+ return L"long";
+ case XFA_Attribute::Intact:
+ return L"intact";
+ case XFA_Attribute::XdpContent:
+ return L"xdpContent";
+ case XFA_Attribute::DecipherOnly:
+ return L"decipherOnly";
+
+ default:
+ NOTREACHED();
+ break;
+ }
+ return L"";
+}
+
+#ifndef NDEBUG
+// static
+WideString CXFA_Node::ElementToName(XFA_Element attr) {
+ switch (attr) {
+ case XFA_Element::Ps:
+ return L"ps";
+ case XFA_Element::To:
+ return L"to";
+ case XFA_Element::Ui:
+ return L"ui";
+ case XFA_Element::RecordSet:
+ return L"recordSet";
+ case XFA_Element::SubsetBelow:
+ return L"subsetBelow";
+ case XFA_Element::SubformSet:
+ return L"subformSet";
+ case XFA_Element::AdobeExtensionLevel:
+ return L"adobeExtensionLevel";
+ case XFA_Element::Typeface:
+ return L"typeface";
+ case XFA_Element::Break:
+ return L"break";
+ case XFA_Element::FontInfo:
+ return L"fontInfo";
+ case XFA_Element::NumberPattern:
+ return L"numberPattern";
+ case XFA_Element::DynamicRender:
+ return L"dynamicRender";
+ case XFA_Element::PrintScaling:
+ return L"printScaling";
+ case XFA_Element::CheckButton:
+ return L"checkButton";
+ case XFA_Element::DatePatterns:
+ return L"datePatterns";
+ case XFA_Element::SourceSet:
+ return L"sourceSet";
+ case XFA_Element::Amd:
+ return L"amd";
+ case XFA_Element::Arc:
+ return L"arc";
+ case XFA_Element::Day:
+ return L"day";
+ case XFA_Element::Era:
+ return L"era";
+ case XFA_Element::Jog:
+ return L"jog";
+ case XFA_Element::Log:
+ return L"log";
+ case XFA_Element::Map:
+ return L"map";
+ case XFA_Element::Mdp:
+ return L"mdp";
+ case XFA_Element::BreakBefore:
+ return L"breakBefore";
+ case XFA_Element::Oid:
+ return L"oid";
+ case XFA_Element::Pcl:
+ return L"pcl";
+ case XFA_Element::Pdf:
+ return L"pdf";
+ case XFA_Element::Ref:
+ return L"ref";
+ case XFA_Element::Uri:
+ return L"uri";
+ case XFA_Element::Xdc:
+ return L"xdc";
+ case XFA_Element::Xdp:
+ return L"xdp";
+ case XFA_Element::Xfa:
+ return L"xfa";
+ case XFA_Element::Xsl:
+ return L"xsl";
+ case XFA_Element::Zpl:
+ return L"zpl";
+ case XFA_Element::Cache:
+ return L"cache";
+ case XFA_Element::Margin:
+ return L"margin";
+ case XFA_Element::KeyUsage:
+ return L"keyUsage";
+ case XFA_Element::Exclude:
+ return L"exclude";
+ case XFA_Element::ChoiceList:
+ return L"choiceList";
+ case XFA_Element::Level:
+ return L"level";
+ case XFA_Element::LabelPrinter:
+ return L"labelPrinter";
+ case XFA_Element::CalendarSymbols:
+ return L"calendarSymbols";
+ case XFA_Element::Para:
+ return L"para";
+ case XFA_Element::Part:
+ return L"part";
+ case XFA_Element::Pdfa:
+ return L"pdfa";
+ case XFA_Element::Filter:
+ return L"filter";
+ case XFA_Element::Present:
+ return L"present";
+ case XFA_Element::Pagination:
+ return L"pagination";
+ case XFA_Element::Encoding:
+ return L"encoding";
+ case XFA_Element::Event:
+ return L"event";
+ case XFA_Element::Whitespace:
+ return L"whitespace";
+ case XFA_Element::DefaultUi:
+ return L"defaultUi";
+ case XFA_Element::DataModel:
+ return L"dataModel";
+ case XFA_Element::Barcode:
+ return L"barcode";
+ case XFA_Element::TimePattern:
+ return L"timePattern";
+ case XFA_Element::BatchOutput:
+ return L"batchOutput";
+ case XFA_Element::Enforce:
+ return L"enforce";
+ case XFA_Element::CurrencySymbols:
+ return L"currencySymbols";
+ case XFA_Element::AddSilentPrint:
+ return L"addSilentPrint";
+ case XFA_Element::Rename:
+ return L"rename";
+ case XFA_Element::Operation:
+ return L"operation";
+ case XFA_Element::Typefaces:
+ return L"typefaces";
+ case XFA_Element::SubjectDNs:
+ return L"subjectDNs";
+ case XFA_Element::Issuers:
+ return L"issuers";
+ case XFA_Element::SignaturePseudoModel:
+ return L"signaturePseudoModel";
+ case XFA_Element::WsdlConnection:
+ return L"wsdlConnection";
+ case XFA_Element::Debug:
+ return L"debug";
+ case XFA_Element::Delta:
+ return L"delta";
+ case XFA_Element::EraNames:
+ return L"eraNames";
+ case XFA_Element::ModifyAnnots:
+ return L"modifyAnnots";
+ case XFA_Element::StartNode:
+ return L"startNode";
+ case XFA_Element::Button:
+ return L"button";
+ case XFA_Element::Format:
+ return L"format";
+ case XFA_Element::Border:
+ return L"border";
+ case XFA_Element::Area:
+ return L"area";
+ case XFA_Element::Hyphenation:
+ return L"hyphenation";
+ case XFA_Element::Text:
+ return L"text";
+ case XFA_Element::Time:
+ return L"time";
+ case XFA_Element::Type:
+ return L"type";
+ case XFA_Element::Overprint:
+ return L"overprint";
+ case XFA_Element::Certificates:
+ return L"certificates";
+ case XFA_Element::EncryptionMethods:
+ return L"encryptionMethods";
+ case XFA_Element::SetProperty:
+ return L"setProperty";
+ case XFA_Element::PrinterName:
+ return L"printerName";
+ case XFA_Element::StartPage:
+ return L"startPage";
+ case XFA_Element::PageOffset:
+ return L"pageOffset";
+ case XFA_Element::DateTime:
+ return L"dateTime";
+ case XFA_Element::Comb:
+ return L"comb";
+ case XFA_Element::Pattern:
+ return L"pattern";
+ case XFA_Element::IfEmpty:
+ return L"ifEmpty";
+ case XFA_Element::SuppressBanner:
+ return L"suppressBanner";
+ case XFA_Element::OutputBin:
+ return L"outputBin";
+ case XFA_Element::Field:
+ return L"field";
+ case XFA_Element::Agent:
+ return L"agent";
+ case XFA_Element::OutputXSL:
+ return L"outputXSL";
+ case XFA_Element::AdjustData:
+ return L"adjustData";
+ case XFA_Element::AutoSave:
+ return L"autoSave";
+ case XFA_Element::ContentArea:
+ return L"contentArea";
+ case XFA_Element::EventPseudoModel:
+ return L"eventPseudoModel";
+ case XFA_Element::WsdlAddress:
+ return L"wsdlAddress";
+ case XFA_Element::Solid:
+ return L"solid";
+ case XFA_Element::DateTimeSymbols:
+ return L"dateTimeSymbols";
+ case XFA_Element::EncryptionLevel:
+ return L"encryptionLevel";
+ case XFA_Element::Edge:
+ return L"edge";
+ case XFA_Element::Stipple:
+ return L"stipple";
+ case XFA_Element::Attributes:
+ return L"attributes";
+ case XFA_Element::VersionControl:
+ return L"versionControl";
+ case XFA_Element::Meridiem:
+ return L"meridiem";
+ case XFA_Element::ExclGroup:
+ return L"exclGroup";
+ case XFA_Element::ToolTip:
+ return L"toolTip";
+ case XFA_Element::Compress:
+ return L"compress";
+ case XFA_Element::Reason:
+ return L"reason";
+ case XFA_Element::Execute:
+ return L"execute";
+ case XFA_Element::ContentCopy:
+ return L"contentCopy";
+ case XFA_Element::DateTimeEdit:
+ return L"dateTimeEdit";
+ case XFA_Element::Config:
+ return L"config";
+ case XFA_Element::Image:
+ return L"image";
+ case XFA_Element::SharpxHTML:
+ return L"#xHTML";
+ case XFA_Element::NumberOfCopies:
+ return L"numberOfCopies";
+ case XFA_Element::BehaviorOverride:
+ return L"behaviorOverride";
+ case XFA_Element::TimeStamp:
+ return L"timeStamp";
+ case XFA_Element::Month:
+ return L"month";
+ case XFA_Element::ViewerPreferences:
+ return L"viewerPreferences";
+ case XFA_Element::ScriptModel:
+ return L"scriptModel";
+ case XFA_Element::Decimal:
+ return L"decimal";
+ case XFA_Element::Subform:
+ return L"subform";
+ case XFA_Element::Select:
+ return L"select";
+ case XFA_Element::Window:
+ return L"window";
+ case XFA_Element::LocaleSet:
+ return L"localeSet";
+ case XFA_Element::Handler:
+ return L"handler";
+ case XFA_Element::HostPseudoModel:
+ return L"hostPseudoModel";
+ case XFA_Element::Presence:
+ return L"presence";
+ case XFA_Element::Record:
+ return L"record";
+ case XFA_Element::Embed:
+ return L"embed";
+ case XFA_Element::Version:
+ return L"version";
+ case XFA_Element::Command:
+ return L"command";
+ case XFA_Element::Copies:
+ return L"copies";
+ case XFA_Element::Staple:
+ return L"staple";
+ case XFA_Element::SubmitFormat:
+ return L"submitFormat";
+ case XFA_Element::Boolean:
+ return L"boolean";
+ case XFA_Element::Message:
+ return L"message";
+ case XFA_Element::Output:
+ return L"output";
+ case XFA_Element::PsMap:
+ return L"psMap";
+ case XFA_Element::ExcludeNS:
+ return L"excludeNS";
+ case XFA_Element::Assist:
+ return L"assist";
+ case XFA_Element::Picture:
+ return L"picture";
+ case XFA_Element::Traversal:
+ return L"traversal";
+ case XFA_Element::SilentPrint:
+ return L"silentPrint";
+ case XFA_Element::WebClient:
+ return L"webClient";
+ case XFA_Element::LayoutPseudoModel:
+ return L"layoutPseudoModel";
+ case XFA_Element::Producer:
+ return L"producer";
+ case XFA_Element::Corner:
+ return L"corner";
+ case XFA_Element::MsgId:
+ return L"msgId";
+ case XFA_Element::Color:
+ return L"color";
+ case XFA_Element::Keep:
+ return L"keep";
+ case XFA_Element::Query:
+ return L"query";
+ case XFA_Element::Insert:
+ return L"insert";
+ case XFA_Element::ImageEdit:
+ return L"imageEdit";
+ case XFA_Element::Validate:
+ return L"validate";
+ case XFA_Element::DigestMethods:
+ return L"digestMethods";
+ case XFA_Element::NumberPatterns:
+ return L"numberPatterns";
+ case XFA_Element::PageSet:
+ return L"pageSet";
+ case XFA_Element::Integer:
+ return L"integer";
+ case XFA_Element::SoapAddress:
+ return L"soapAddress";
+ case XFA_Element::Equate:
+ return L"equate";
+ case XFA_Element::FormFieldFilling:
+ return L"formFieldFilling";
+ case XFA_Element::PageRange:
+ return L"pageRange";
+ case XFA_Element::Update:
+ return L"update";
+ case XFA_Element::ConnectString:
+ return L"connectString";
+ case XFA_Element::Mode:
+ return L"mode";
+ case XFA_Element::Layout:
+ return L"layout";
+ case XFA_Element::Sharpxml:
+ return L"#xml";
+ case XFA_Element::XsdConnection:
+ return L"xsdConnection";
+ case XFA_Element::Traverse:
+ return L"traverse";
+ case XFA_Element::Encodings:
+ return L"encodings";
+ case XFA_Element::Template:
+ return L"template";
+ case XFA_Element::Acrobat:
+ return L"acrobat";
+ case XFA_Element::ValidationMessaging:
+ return L"validationMessaging";
+ case XFA_Element::Signing:
+ return L"signing";
+ case XFA_Element::DataWindow:
+ return L"dataWindow";
+ case XFA_Element::Script:
+ return L"script";
+ case XFA_Element::AddViewerPreferences:
+ return L"addViewerPreferences";
+ case XFA_Element::AlwaysEmbed:
+ return L"alwaysEmbed";
+ case XFA_Element::PasswordEdit:
+ return L"passwordEdit";
+ case XFA_Element::NumericEdit:
+ return L"numericEdit";
+ case XFA_Element::EncryptionMethod:
+ return L"encryptionMethod";
+ case XFA_Element::Change:
+ return L"change";
+ case XFA_Element::PageArea:
+ return L"pageArea";
+ case XFA_Element::SubmitUrl:
+ return L"submitUrl";
+ case XFA_Element::Oids:
+ return L"oids";
+ case XFA_Element::Signature:
+ return L"signature";
+ case XFA_Element::ADBE_JSConsole:
+ return L"ADBE_JSConsole";
+ case XFA_Element::Caption:
+ return L"caption";
+ case XFA_Element::Relevant:
+ return L"relevant";
+ case XFA_Element::FlipLabel:
+ return L"flipLabel";
+ case XFA_Element::ExData:
+ return L"exData";
+ case XFA_Element::DayNames:
+ return L"dayNames";
+ case XFA_Element::SoapAction:
+ return L"soapAction";
+ case XFA_Element::DefaultTypeface:
+ return L"defaultTypeface";
+ case XFA_Element::Manifest:
+ return L"manifest";
+ case XFA_Element::Overflow:
+ return L"overflow";
+ case XFA_Element::Linear:
+ return L"linear";
+ case XFA_Element::CurrencySymbol:
+ return L"currencySymbol";
+ case XFA_Element::Delete:
+ return L"delete";
+ case XFA_Element::Deltas:
+ return L"deltas";
+ case XFA_Element::DigestMethod:
+ return L"digestMethod";
+ case XFA_Element::InstanceManager:
+ return L"instanceManager";
+ case XFA_Element::EquateRange:
+ return L"equateRange";
+ case XFA_Element::Medium:
+ return L"medium";
+ case XFA_Element::TextEdit:
+ return L"textEdit";
+ case XFA_Element::TemplateCache:
+ return L"templateCache";
+ case XFA_Element::CompressObjectStream:
+ return L"compressObjectStream";
+ case XFA_Element::DataValue:
+ return L"dataValue";
+ case XFA_Element::AccessibleContent:
+ return L"accessibleContent";
+ case XFA_Element::IncludeXDPContent:
+ return L"includeXDPContent";
+ case XFA_Element::XmlConnection:
+ return L"xmlConnection";
+ case XFA_Element::ValidateApprovalSignatures:
+ return L"validateApprovalSignatures";
+ case XFA_Element::SignData:
+ return L"signData";
+ case XFA_Element::Packets:
+ return L"packets";
+ case XFA_Element::DatePattern:
+ return L"datePattern";
+ case XFA_Element::DuplexOption:
+ return L"duplexOption";
+ case XFA_Element::Base:
+ return L"base";
+ case XFA_Element::Bind:
+ return L"bind";
+ case XFA_Element::Compression:
+ return L"compression";
+ case XFA_Element::User:
+ return L"user";
+ case XFA_Element::Rectangle:
+ return L"rectangle";
+ case XFA_Element::EffectiveOutputPolicy:
+ return L"effectiveOutputPolicy";
+ case XFA_Element::ADBE_JSDebugger:
+ return L"ADBE_JSDebugger";
+ case XFA_Element::Acrobat7:
+ return L"acrobat7";
+ case XFA_Element::Interactive:
+ return L"interactive";
+ case XFA_Element::Locale:
+ return L"locale";
+ case XFA_Element::CurrentPage:
+ return L"currentPage";
+ case XFA_Element::Data:
+ return L"data";
+ case XFA_Element::Date:
+ return L"date";
+ case XFA_Element::Desc:
+ return L"desc";
+ case XFA_Element::Encrypt:
+ return L"encrypt";
+ case XFA_Element::Draw:
+ return L"draw";
+ case XFA_Element::Encryption:
+ return L"encryption";
+ case XFA_Element::MeridiemNames:
+ return L"meridiemNames";
+ case XFA_Element::Messaging:
+ return L"messaging";
+ case XFA_Element::Speak:
+ return L"speak";
+ case XFA_Element::DataGroup:
+ return L"dataGroup";
+ case XFA_Element::Common:
+ return L"common";
+ case XFA_Element::Sharptext:
+ return L"#text";
+ case XFA_Element::PaginationOverride:
+ return L"paginationOverride";
+ case XFA_Element::Reasons:
+ return L"reasons";
+ case XFA_Element::SignatureProperties:
+ return L"signatureProperties";
+ case XFA_Element::Threshold:
+ return L"threshold";
+ case XFA_Element::AppearanceFilter:
+ return L"appearanceFilter";
+ case XFA_Element::Fill:
+ return L"fill";
+ case XFA_Element::Font:
+ return L"font";
+ case XFA_Element::Form:
+ return L"form";
+ case XFA_Element::MediumInfo:
+ return L"mediumInfo";
+ case XFA_Element::Certificate:
+ return L"certificate";
+ case XFA_Element::Password:
+ return L"password";
+ case XFA_Element::RunScripts:
+ return L"runScripts";
+ case XFA_Element::Trace:
+ return L"trace";
+ case XFA_Element::Float:
+ return L"float";
+ case XFA_Element::RenderPolicy:
+ return L"renderPolicy";
+ case XFA_Element::LogPseudoModel:
+ return L"logPseudoModel";
+ case XFA_Element::Destination:
+ return L"destination";
+ case XFA_Element::Value:
+ return L"value";
+ case XFA_Element::Bookend:
+ return L"bookend";
+ case XFA_Element::ExObject:
+ return L"exObject";
+ case XFA_Element::OpenAction:
+ return L"openAction";
+ case XFA_Element::NeverEmbed:
+ return L"neverEmbed";
+ case XFA_Element::BindItems:
+ return L"bindItems";
+ case XFA_Element::Calculate:
+ return L"calculate";
+ case XFA_Element::Print:
+ return L"print";
+ case XFA_Element::Extras:
+ return L"extras";
+ case XFA_Element::Proto:
+ return L"proto";
+ case XFA_Element::DSigData:
+ return L"dSigData";
+ case XFA_Element::Creator:
+ return L"creator";
+ case XFA_Element::Connect:
+ return L"connect";
+ case XFA_Element::Permissions:
+ return L"permissions";
+ case XFA_Element::ConnectionSet:
+ return L"connectionSet";
+ case XFA_Element::Submit:
+ return L"submit";
+ case XFA_Element::Range:
+ return L"range";
+ case XFA_Element::Linearized:
+ return L"linearized";
+ case XFA_Element::Packet:
+ return L"packet";
+ case XFA_Element::RootElement:
+ return L"rootElement";
+ case XFA_Element::PlaintextMetadata:
+ return L"plaintextMetadata";
+ case XFA_Element::NumberSymbols:
+ return L"numberSymbols";
+ case XFA_Element::PrintHighQuality:
+ return L"printHighQuality";
+ case XFA_Element::Driver:
+ return L"driver";
+ case XFA_Element::IncrementalLoad:
+ return L"incrementalLoad";
+ case XFA_Element::SubjectDN:
+ return L"subjectDN";
+ case XFA_Element::CompressLogicalStructure:
+ return L"compressLogicalStructure";
+ case XFA_Element::IncrementalMerge:
+ return L"incrementalMerge";
+ case XFA_Element::Radial:
+ return L"radial";
+ case XFA_Element::Variables:
+ return L"variables";
+ case XFA_Element::TimePatterns:
+ return L"timePatterns";
+ case XFA_Element::EffectiveInputPolicy:
+ return L"effectiveInputPolicy";
+ case XFA_Element::NameAttr:
+ return L"nameAttr";
+ case XFA_Element::Conformance:
+ return L"conformance";
+ case XFA_Element::Transform:
+ return L"transform";
+ case XFA_Element::LockDocument:
+ return L"lockDocument";
+ case XFA_Element::BreakAfter:
+ return L"breakAfter";
+ case XFA_Element::Line:
+ return L"line";
+ case XFA_Element::List:
+ return L"list";
+ case XFA_Element::Source:
+ return L"source";
+ case XFA_Element::Occur:
+ return L"occur";
+ case XFA_Element::PickTrayByPDFSize:
+ return L"pickTrayByPDFSize";
+ case XFA_Element::MonthNames:
+ return L"monthNames";
+ case XFA_Element::Severity:
+ return L"severity";
+ case XFA_Element::GroupParent:
+ return L"groupParent";
+ case XFA_Element::DocumentAssembly:
+ return L"documentAssembly";
+ case XFA_Element::NumberSymbol:
+ return L"numberSymbol";
+ case XFA_Element::Tagged:
+ return L"tagged";
+ case XFA_Element::Items:
+ return L"items";
+
+ default:
+ NOTREACHED();
+ break;
+ }
+ return L"";
+}
+#endif // NDEBUG
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
index 6970fcc25e..e0196539a3 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.cpp
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"numberOfCopies";
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp
index 71097405ae..9896723587 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.cpp
+++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Numeric},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"numberPattern";
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
index 064206c82a..46a437f9ef 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.cpp
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Decimal},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"numberSymbol";
diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp
index 4f605f321f..2c9f8787c9 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.cpp
+++ b/xfa/fxfa/parser/cxfa_numericedit.cpp
@@ -13,9 +13,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Comb, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::HScrollPolicy, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"numericEdit";
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp
index 3f0675624c..01ad10eaf7 100644
--- a/xfa/fxfa/parser/cxfa_occur.cpp
+++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -10,10 +10,27 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Max, XFA_Attribute::Min,
- XFA_Attribute::Use, XFA_Attribute::Initial, XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Max, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)1},
+ {XFA_Attribute::Min, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Initial, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"occur";
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
index e46f701918..96bb3f962d 100644
--- a/xfa/fxfa/parser/cxfa_oid.cpp
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"oid";
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
index 842171b64f..45b9d7b7c8 100644
--- a/xfa/fxfa/parser/cxfa_oids.cpp
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"oids";
diff --git a/xfa/fxfa/parser/cxfa_openaction.cpp b/xfa/fxfa/parser/cxfa_openaction.cpp
index b2db5093d5..daffa2cac4 100644
--- a/xfa/fxfa/parser/cxfa_openaction.cpp
+++ b/xfa/fxfa/parser/cxfa_openaction.cpp
@@ -11,8 +11,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Destination, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"openAction";
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
index f58d2ceb6a..81062a32eb 100644
--- a/xfa/fxfa/parser/cxfa_operation.cpp
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -8,10 +8,29 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Output, XFA_Attribute::Usehref, XFA_Attribute::Input,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Output, XFA_AttributeType::CData,
+ XFA_XDPPACKET_ConnectionSet, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Input, XFA_AttributeType::CData,
+ XFA_XDPPACKET_ConnectionSet, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"operation";
diff --git a/xfa/fxfa/parser/cxfa_output.cpp b/xfa/fxfa/parser/cxfa_output.cpp
index 13173ea57a..38f3847b45 100644
--- a/xfa/fxfa/parser/cxfa_output.cpp
+++ b/xfa/fxfa/parser/cxfa_output.cpp
@@ -12,8 +12,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0},
{XFA_Element::Uri, 1, 0},
{XFA_Element::Type, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"output";
diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp
index 61cb1a7b5a..9be45fbe0a 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.cpp
+++ b/xfa/fxfa/parser/cxfa_outputbin.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"outputBin";
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.cpp b/xfa/fxfa/parser/cxfa_outputxsl.cpp
index 598c931f7d..c3155c10dc 100644
--- a/xfa/fxfa/parser/cxfa_outputxsl.cpp
+++ b/xfa/fxfa/parser/cxfa_outputxsl.cpp
@@ -10,8 +10,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"outputXSL";
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
index 86912fafd1..22d704e4be 100644
--- a/xfa/fxfa/parser/cxfa_overflow.cpp
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -8,10 +8,26 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Trailer,
- XFA_Attribute::Usehref, XFA_Attribute::Target, XFA_Attribute::Leader,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Trailer, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Target, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Leader, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"overflow";
diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp
index cfcba66703..e7a4133ffb 100644
--- a/xfa/fxfa/parser/cxfa_overprint.cpp
+++ b/xfa/fxfa/parser/cxfa_overprint.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"overprint";
diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp
index 313e2a3543..94de39d1ff 100644
--- a/xfa/fxfa/parser/cxfa_packets.cpp
+++ b/xfa/fxfa/parser/cxfa_packets.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"packets";
diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp
index 17489f6f26..a133b178be 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.cpp
+++ b/xfa/fxfa/parser/cxfa_pagearea.cpp
@@ -13,17 +13,37 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Medium, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Occur, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::PagePosition,
- XFA_Attribute::OddOrEven,
- XFA_Attribute::Relevant,
- XFA_Attribute::InitialNumber,
- XFA_Attribute::Usehref,
- XFA_Attribute::Numbered,
- XFA_Attribute::BlankOrNotBlank,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::PagePosition, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any},
+ {XFA_Attribute::OddOrEven, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::InitialNumber, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Numbered, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::BlankOrNotBlank, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Any},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pageArea";
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp
index 0d2445849d..090c1e59b6 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp
@@ -8,9 +8,18 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::X, XFA_Attribute::Y, XFA_Attribute::Desc,
- XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pageOffset";
diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp
index 10004eb43c..635d19587b 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.cpp
+++ b/xfa/fxfa/parser/cxfa_pagerange.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pageRange";
diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp
index 914060da58..e76b7b5f66 100644
--- a/xfa/fxfa/parser/cxfa_pageset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageset.cpp
@@ -11,11 +11,33 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Occur, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Use, XFA_Attribute::Relation,
- XFA_Attribute::Relevant, XFA_Attribute::DuplexImposition,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Relation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_OrderedOccurrence},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::DuplexImposition, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_LongEdge},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pageSet";
diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp
index 0290479ab4..a2f3628b35 100644
--- a/xfa/fxfa/parser/cxfa_pagination.cpp
+++ b/xfa/fxfa/parser/cxfa_pagination.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pagination";
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
index 69fb357667..2b06a55bb7 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.cpp
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"paginationOverride";
diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp
index 43d63b6e06..89b040df99 100644
--- a/xfa/fxfa/parser/cxfa_para.cpp
+++ b/xfa/fxfa/parser/cxfa_para.cpp
@@ -11,16 +11,49 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Hyphenation, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::HAlign,
- XFA_Attribute::TextIndent, XFA_Attribute::Use,
- XFA_Attribute::Widows, XFA_Attribute::MarginRight,
- XFA_Attribute::MarginLeft, XFA_Attribute::RadixOffset,
- XFA_Attribute::Preserve, XFA_Attribute::SpaceBelow,
- XFA_Attribute::VAlign, XFA_Attribute::TabDefault,
- XFA_Attribute::TabStops, XFA_Attribute::Orphans,
- XFA_Attribute::Usehref, XFA_Attribute::LineHeight,
- XFA_Attribute::SpaceAbove, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Left},
+ {XFA_Attribute::TextIndent, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Widows, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::MarginRight, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MarginLeft, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::RadixOffset, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Preserve, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::SpaceBelow, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
+ {XFA_Attribute::TabDefault, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::TabStops, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Orphans, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::LineHeight, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0pt"},
+ {XFA_Attribute::SpaceAbove, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"para";
diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp
index 917b46891d..8a97a52bc7 100644
--- a/xfa/fxfa/parser/cxfa_part.cpp
+++ b/xfa/fxfa/parser/cxfa_part.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"part";
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
index 2f4573b76e..f54002b78b 100644
--- a/xfa/fxfa/parser/cxfa_password.cpp
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"password";
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp
index 96b040cbd3..245d0184f8 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.cpp
+++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp
@@ -12,12 +12,25 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Border, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::PasswordChar,
- XFA_Attribute::Usehref,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::PasswordChar, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"*"},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"passwordEdit";
diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp
index b9740d14c0..9ee2c70d79 100644
--- a/xfa/fxfa/parser/cxfa_pattern.cpp
+++ b/xfa/fxfa/parser/cxfa_pattern.cpp
@@ -11,9 +11,23 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_CrossHatch},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pattern";
diff --git a/xfa/fxfa/parser/cxfa_pcl.cpp b/xfa/fxfa/parser/cxfa_pcl.cpp
index 13ca508a9b..5ae0336362 100644
--- a/xfa/fxfa/parser/cxfa_pcl.cpp
+++ b/xfa/fxfa/parser/cxfa_pcl.cpp
@@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::PageOffset, 1, 0}, {XFA_Element::OutputBin, 1, 0},
{XFA_Element::Staple, 1, 0}, {XFA_Element::MediumInfo, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pcl";
diff --git a/xfa/fxfa/parser/cxfa_pdf.cpp b/xfa/fxfa/parser/cxfa_pdf.cpp
index 957867e448..6b9419321b 100644
--- a/xfa/fxfa/parser/cxfa_pdf.cpp
+++ b/xfa/fxfa/parser/cxfa_pdf.cpp
@@ -29,9 +29,17 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Linearized, 1, 0},
{XFA_Element::Tagged, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pdf";
diff --git a/xfa/fxfa/parser/cxfa_pdfa.cpp b/xfa/fxfa/parser/cxfa_pdfa.cpp
index 76b624980f..fd7be6b8f6 100644
--- a/xfa/fxfa/parser/cxfa_pdfa.cpp
+++ b/xfa/fxfa/parser/cxfa_pdfa.cpp
@@ -14,8 +14,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::IncludeXDPContent, 1, 0},
{XFA_Element::Conformance, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pdfa";
diff --git a/xfa/fxfa/parser/cxfa_permissions.cpp b/xfa/fxfa/parser/cxfa_permissions.cpp
index 29620127f5..33bb76c325 100644
--- a/xfa/fxfa/parser/cxfa_permissions.cpp
+++ b/xfa/fxfa/parser/cxfa_permissions.cpp
@@ -19,8 +19,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::PrintHighQuality, 1, 0},
{XFA_Element::DocumentAssembly, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"permissions";
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
index 3a82e108ad..57de8d5089 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"pickTrayByPDFSize";
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
index 2f5def6c5a..4d2260208c 100644
--- a/xfa/fxfa/parser/cxfa_picture.cpp
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -8,9 +8,24 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"picture";
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
index 52a038eaaf..2b39226329 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"plaintextMetadata";
diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp
index 352c8f0793..6fead44918 100644
--- a/xfa/fxfa/parser/cxfa_presence.cpp
+++ b/xfa/fxfa/parser/cxfa_presence.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"presence";
diff --git a/xfa/fxfa/parser/cxfa_present.cpp b/xfa/fxfa/parser/cxfa_present.cpp
index 939789af00..97a6a83c75 100644
--- a/xfa/fxfa/parser/cxfa_present.cpp
+++ b/xfa/fxfa/parser/cxfa_present.cpp
@@ -24,8 +24,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Destination, 1, 0},
{XFA_Element::IncrementalMerge, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"present";
diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp
index 42dcb2fb41..7c71b7d15b 100644
--- a/xfa/fxfa/parser/cxfa_print.cpp
+++ b/xfa/fxfa/parser/cxfa_print.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"print";
diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp
index 711591c461..6d582194ce 100644
--- a/xfa/fxfa/parser/cxfa_printername.cpp
+++ b/xfa/fxfa/parser/cxfa_printername.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"printerName";
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp
index 6a443a9b2a..55c58e93c8 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.cpp
+++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"printHighQuality";
diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp
index c73a40adeb..5f046c5dca 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.cpp
+++ b/xfa/fxfa/parser/cxfa_printscaling.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"printScaling";
diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp
index b1829bd551..bc60a1344b 100644
--- a/xfa/fxfa/parser/cxfa_producer.cpp
+++ b/xfa/fxfa/parser/cxfa_producer.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"producer";
diff --git a/xfa/fxfa/parser/cxfa_ps.cpp b/xfa/fxfa/parser/cxfa_ps.cpp
index 36bc37705b..0c656fbc19 100644
--- a/xfa/fxfa/parser/cxfa_ps.cpp
+++ b/xfa/fxfa/parser/cxfa_ps.cpp
@@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::OutputBin, 1, 0}, {XFA_Element::Compress, 1, 0},
{XFA_Element::Staple, 1, 0}, {XFA_Element::MediumInfo, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"ps";
diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp
index 34d2c0a141..d871d2bff1 100644
--- a/xfa/fxfa/parser/cxfa_query.cpp
+++ b/xfa/fxfa/parser/cxfa_query.cpp
@@ -11,9 +11,27 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::RecordSet, 1, 0},
{XFA_Element::Select, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::CommandType, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::CommandType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_Unknown},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"query";
diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp
index d080c35693..98ac05c960 100644
--- a/xfa/fxfa/parser/cxfa_radial.cpp
+++ b/xfa/fxfa/parser/cxfa_radial.cpp
@@ -11,9 +11,23 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_ToEdge},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"radial";
diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp
index ec3269394d..56d02e8e84 100644
--- a/xfa/fxfa/parser/cxfa_range.cpp
+++ b/xfa/fxfa/parser/cxfa_range.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"range";
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
index a7b4b52c4f..533b2dd4ba 100644
--- a/xfa/fxfa/parser/cxfa_reason.cpp
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"reason";
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
index df964d49d1..f578cc16f3 100644
--- a/xfa/fxfa/parser/cxfa_reasons.cpp
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"reasons";
diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp
index 90877e80e5..e2445d0771 100644
--- a/xfa/fxfa/parser/cxfa_record.cpp
+++ b/xfa/fxfa/parser/cxfa_record.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"record";
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
index e7ae76679d..22a0e85e09 100644
--- a/xfa/fxfa/parser/cxfa_recordset.cpp
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -8,13 +8,38 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name,
- XFA_Attribute::Max, XFA_Attribute::Use,
- XFA_Attribute::EofAction, XFA_Attribute::CursorType,
- XFA_Attribute::LockType, XFA_Attribute::BofAction,
- XFA_Attribute::Usehref, XFA_Attribute::CursorLocation,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Max, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)0},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::EofAction, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
+ (void*)XFA_ATTRIBUTEENUM_MoveLast},
+ {XFA_Attribute::CursorType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_ForwardOnly},
+ {XFA_Attribute::LockType, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
+ (void*)XFA_ATTRIBUTEENUM_ReadOnly},
+ {XFA_Attribute::BofAction, XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
+ (void*)XFA_ATTRIBUTEENUM_MoveFirst},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::CursorLocation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_Client},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"recordSet";
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index cd3b584a75..25e4449af3 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 4, 0},
{XFA_Element::Corner, 4, 0},
{XFA_Element::Fill, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
- XFA_Attribute::Hand, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Hand, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Even},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"rectangle";
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
index cbc3ff9f83..138979e228 100644
--- a/xfa/fxfa/parser/cxfa_ref.cpp
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -8,9 +8,20 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"ref";
diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp
index a4209bc3d8..91e219e3a0 100644
--- a/xfa/fxfa/parser/cxfa_relevant.cpp
+++ b/xfa/fxfa/parser/cxfa_relevant.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"relevant";
diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp
index 406315e86a..7c74f06622 100644
--- a/xfa/fxfa/parser/cxfa_rename.cpp
+++ b/xfa/fxfa/parser/cxfa_rename.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"rename";
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
index 85eb4b171f..a974f0399e 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.cpp
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"renderPolicy";
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
index 3cd5614e9b..0ace007cf1 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.cpp
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"rootElement";
diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp
index 120dbc8120..0b90ceb771 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.cpp
+++ b/xfa/fxfa/parser/cxfa_runscripts.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"runScripts";
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp
index c34e09433c..b85ef4b1f0 100644
--- a/xfa/fxfa/parser/cxfa_script.cpp
+++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -13,11 +13,38 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::CurrentPage, 1, 0},
{XFA_Element::RunScripts, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::ContentType, XFA_Attribute::RunAt, XFA_Attribute::Binding,
- XFA_Attribute::Usehref, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ContentType, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::RunAt, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Client},
+ {XFA_Attribute::Binding, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"script";
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
index bed2e1d6e2..0790169075 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.cpp
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"scriptModel";
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
index 52835eff7a..90c7fd221a 100644
--- a/xfa/fxfa/parser/cxfa_select.cpp
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"select";
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
index 4826ae4e74..6b68bfa9a1 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.cpp
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -8,9 +8,16 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Ref, XFA_Attribute::Connection, XFA_Attribute::Target,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Connection, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Target, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"setProperty";
diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp
index 0b7d365b86..8d1b83da18 100644
--- a/xfa/fxfa/parser/cxfa_severity.cpp
+++ b/xfa/fxfa/parser/cxfa_severity.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"severity";
diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp
index 52128a59af..6580c7dd9d 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.cpp
+++ b/xfa/fxfa/parser/cxfa_sharptext.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Value, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"#text";
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
index e3f514e699..21c51a4b6a 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Value, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"#xHTML";
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp
index dbda7cbb72..3b102bef06 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.cpp
+++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Value, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"#xml";
diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp
index 0dca3bcead..03b4423f52 100644
--- a/xfa/fxfa/parser/cxfa_signature.cpp
+++ b/xfa/fxfa/parser/cxfa_signature.cpp
@@ -12,9 +12,23 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Margin, 1, 0}, {XFA_Element::Filter, 1, 0},
{XFA_Element::Border, 1, 0}, {XFA_Element::Manifest, 1, 0},
{XFA_Element::Extras, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_PDF1_3},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"signature";
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
index 2f9623b370..318bc89a5f 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -8,8 +8,16 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Use, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"signatureProperties";
diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp
index a9cb38df05..364c6c2759 100644
--- a/xfa/fxfa/parser/cxfa_signdata.cpp
+++ b/xfa/fxfa/parser/cxfa_signdata.cpp
@@ -11,10 +11,29 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Filter, 1, 0},
{XFA_Element::Manifest, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Ref, XFA_Attribute::Use,
- XFA_Attribute::Operation, XFA_Attribute::Usehref, XFA_Attribute::Target,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Operation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Sign},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Target, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"signData";
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
index a1ec88bcd9..9ff5ab1600 100644
--- a/xfa/fxfa/parser/cxfa_signing.cpp
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"signing";
diff --git a/xfa/fxfa/parser/cxfa_silentprint.cpp b/xfa/fxfa/parser/cxfa_silentprint.cpp
index 5e48a94bbe..6f421597c5 100644
--- a/xfa/fxfa/parser/cxfa_silentprint.cpp
+++ b/xfa/fxfa/parser/cxfa_silentprint.cpp
@@ -12,8 +12,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::AddSilentPrint, 1, 0},
{XFA_Element::PrinterName, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"silentPrint";
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
index c5716debb0..55284dd28b 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"soapAction";
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
index 2e4750fe68..d88f74513c 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"soapAddress";
diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp
index 8c5c051d17..8395794d97 100644
--- a/xfa/fxfa/parser/cxfa_solid.cpp
+++ b/xfa/fxfa/parser/cxfa_solid.cpp
@@ -10,9 +10,20 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"solid";
diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp
index 994213c5ad..5887948361 100644
--- a/xfa/fxfa/parser/cxfa_source.cpp
+++ b/xfa/fxfa/parser/cxfa_source.cpp
@@ -10,9 +10,25 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Connect, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"source";
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
index 6757aaabc6..0b61fd8b4b 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.cpp
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"sourceSet";
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
index 789a9fdc0c..4ff0314055 100644
--- a/xfa/fxfa/parser/cxfa_speak.cpp
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -8,10 +8,27 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Rid, XFA_Attribute::Use,
- XFA_Attribute::Priority, XFA_Attribute::Usehref, XFA_Attribute::Disable,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Rid, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Priority, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Custom},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Disable, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"speak";
diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp
index 86e1ce3073..a2cf69592a 100644
--- a/xfa/fxfa/parser/cxfa_staple.cpp
+++ b/xfa/fxfa/parser/cxfa_staple.cpp
@@ -8,9 +8,14 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Mode, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Mode, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+ (void*)XFA_ATTRIBUTEENUM_UsePrinterSetting},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"staple";
diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp
index 736456005b..71d5183cf6 100644
--- a/xfa/fxfa/parser/cxfa_startnode.cpp
+++ b/xfa/fxfa/parser/cxfa_startnode.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"startNode";
diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp
index 48d5debbb3..60655267a4 100644
--- a/xfa/fxfa/parser/cxfa_startpage.cpp
+++ b/xfa/fxfa/parser/cxfa_startpage.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"startPage";
diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp
index 0567f5a153..9988a22022 100644
--- a/xfa/fxfa/parser/cxfa_stipple.cpp
+++ b/xfa/fxfa/parser/cxfa_stipple.cpp
@@ -11,9 +11,22 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Rate,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Rate, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)50},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"stipple";
diff --git a/xfa/fxfa/parser/cxfa_strokedata.cpp b/xfa/fxfa/parser/cxfa_strokedata.cpp
index 0845719c9e..061b89e8ef 100644
--- a/xfa/fxfa/parser/cxfa_strokedata.cpp
+++ b/xfa/fxfa/parser/cxfa_strokedata.cpp
@@ -11,9 +11,13 @@
#include "xfa/fxfa/parser/xfa_utils.h"
bool CXFA_StrokeData::IsVisible() const {
- return m_pNode ? m_pNode->JSNode()->GetEnum(XFA_Attribute::Presence) ==
- XFA_ATTRIBUTEENUM_Visible
- : false;
+ if (!m_pNode)
+ return false;
+
+ XFA_ATTRIBUTEENUM presence = m_pNode->JSNode()
+ ->TryEnum(XFA_Attribute::Presence, true)
+ .value_or(XFA_ATTRIBUTEENUM_Visible);
+ return presence == XFA_ATTRIBUTEENUM_Visible;
}
XFA_ATTRIBUTEENUM CXFA_StrokeData::GetCapType() const {
@@ -83,7 +87,8 @@ bool CXFA_StrokeData::IsInverted() const {
float CXFA_StrokeData::GetRadius() const {
return m_pNode ? m_pNode->JSNode()
- ->GetMeasure(XFA_Attribute::Radius)
+ ->TryMeasure(XFA_Attribute::Radius, true)
+ .value_or(CXFA_Measurement(0, XFA_Unit::In))
.ToUnit(XFA_Unit::Pt)
: 0;
}
diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp
index e297437d99..1e62f17764 100644
--- a/xfa/fxfa/parser/cxfa_subform.cpp
+++ b/xfa/fxfa/parser/cxfa_subform.cpp
@@ -18,33 +18,79 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Bookend, 1, 0}, {XFA_Element::Calculate, 1, 0},
{XFA_Element::Extras, 1, 0}, {XFA_Element::Variables, 1, 0},
{XFA_Element::Occur, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::H,
- XFA_Attribute::W,
- XFA_Attribute::X,
- XFA_Attribute::Y,
- XFA_Attribute::Id,
- XFA_Attribute::HAlign,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::AllowMacro,
- XFA_Attribute::ColumnWidths,
- XFA_Attribute::Access,
- XFA_Attribute::Presence,
- XFA_Attribute::VAlign,
- XFA_Attribute::MaxH,
- XFA_Attribute::MaxW,
- XFA_Attribute::MinH,
- XFA_Attribute::MinW,
- XFA_Attribute::Layout,
- XFA_Attribute::Relevant,
- XFA_Attribute::MergeMode,
- XFA_Attribute::ColSpan,
- XFA_Attribute::Usehref,
- XFA_Attribute::Locale,
- XFA_Attribute::AnchorType,
- XFA_Attribute::RestoreState,
- XFA_Attribute::Scope,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::H, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::W, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::X, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Y, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)L"0in"},
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Left},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::AllowMacro, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::ColumnWidths, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Access, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Open},
+ {XFA_Attribute::Presence, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Visible},
+ {XFA_Attribute::VAlign, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
+ {XFA_Attribute::MaxH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MaxW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinH, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::MinW, XFA_AttributeType::Measure,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
+ {XFA_Attribute::Layout, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Position},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::MergeMode, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_ConsumeData},
+ {XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Locale, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::AnchorType, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_TopLeft},
+ {XFA_Attribute::RestoreState, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Manual},
+ {XFA_Attribute::Scope, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Name},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"subform";
diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp
index a72549f8a8..4d6d8aac81 100644
--- a/xfa/fxfa/parser/cxfa_subformset.cpp
+++ b/xfa/fxfa/parser/cxfa_subformset.cpp
@@ -13,10 +13,30 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Desc, 1, 0}, {XFA_Element::Bookend, 1, 0},
{XFA_Element::Extras, 1, 0}, {XFA_Element::Occur, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Relation, XFA_Attribute::Relevant, XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Relation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Ordered},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"subformSet";
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
index 3541c7b7c6..989fd9e96e 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -8,9 +8,27 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Delimiter, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Delimiter, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"subjectDN";
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
index fd551d30b7..d2c370aa66 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -8,9 +8,23 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"subjectDNs";
diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp
index 7d3dbe9946..65ba8f58bc 100644
--- a/xfa/fxfa/parser/cxfa_submit.cpp
+++ b/xfa/fxfa/parser/cxfa_submit.cpp
@@ -10,12 +10,31 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Encrypt, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Format, XFA_Attribute::EmbedPDF,
- XFA_Attribute::Usehref, XFA_Attribute::Target,
- XFA_Attribute::TextEncoding, XFA_Attribute::XdpContent,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Format, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Xdp},
+ {XFA_Attribute::EmbedPDF, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Target, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::TextEncoding, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::XdpContent, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"submit";
diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp
index 1d2962f49e..6c38479611 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.cpp
+++ b/xfa/fxfa/parser/cxfa_submitformat.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"submitFormat";
diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp
index 6ee7009b72..ccbffeea04 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.cpp
+++ b/xfa/fxfa/parser/cxfa_submiturl.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"submitUrl";
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
index 5116cae9f9..8150992538 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.cpp
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"subsetBelow";
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
index 5d428956b7..f101351945 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.cpp
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"suppressBanner";
diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp
index 180f1a7313..2612f10970 100644
--- a/xfa/fxfa/parser/cxfa_tagged.cpp
+++ b/xfa/fxfa/parser/cxfa_tagged.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"tagged";
diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp
index 286ecce58e..d7c5aae01a 100644
--- a/xfa/fxfa/parser/cxfa_template.cpp
+++ b/xfa/fxfa/parser/cxfa_template.cpp
@@ -13,9 +13,15 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::StartPage, 1, 0}, {XFA_Element::Relevant, 1, 0},
{XFA_Element::Base, 1, 0}, {XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::BaseProfile, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::BaseProfile, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Full},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"template";
diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp
index f07f486c11..1dfa833d45 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.cpp
+++ b/xfa/fxfa/parser/cxfa_templatecache.cpp
@@ -8,9 +8,14 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::MaxEntries, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::MaxEntries, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Config, (void*)5},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"templateCache";
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
index be0d95b775..ab297f08c0 100644
--- a/xfa/fxfa/parser/cxfa_text.cpp
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -8,10 +8,29 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Rid,
- XFA_Attribute::Use, XFA_Attribute::MaxChars, XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Rid, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::MaxChars, XFA_AttributeType::Integer,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"text";
diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp
index 7dd7468539..db9a8a72ce 100644
--- a/xfa/fxfa/parser/cxfa_textedit.cpp
+++ b/xfa/fxfa/parser/cxfa_textedit.cpp
@@ -13,14 +13,30 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
{XFA_Element::Comb, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
- XFA_Attribute::VScrollPolicy,
- XFA_Attribute::Use,
- XFA_Attribute::AllowRichText,
- XFA_Attribute::MultiLine,
- XFA_Attribute::Usehref,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::VScrollPolicy, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::AllowRichText, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::MultiLine, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::HScrollPolicy, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Auto},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"textEdit";
diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp
index fabebe5cc1..09ac30f83d 100644
--- a/xfa/fxfa/parser/cxfa_threshold.cpp
+++ b/xfa/fxfa/parser/cxfa_threshold.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"threshold";
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
index 0917e22c27..e10c15ae0c 100644
--- a/xfa/fxfa/parser/cxfa_time.cpp
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"time";
diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp
index 7eb5ac5780..6baea236bb 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.cpp
+++ b/xfa/fxfa/parser/cxfa_timepattern.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Med},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"timePattern";
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
index 52a9fa4621..891e3440d4 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.cpp
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
- XFA_Attribute::Server, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Type, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Optional},
+ {XFA_Attribute::Server, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"timeStamp";
diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp
index f6a0b7ec87..1acd195182 100644
--- a/xfa/fxfa/parser/cxfa_to.cpp
+++ b/xfa/fxfa/parser/cxfa_to.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"to";
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
index ee58344d84..54f36a7541 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.cpp
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -8,9 +8,22 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Rid, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Rid, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"toolTip";
diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp
index 8342dc6af6..54a7993f10 100644
--- a/xfa/fxfa/parser/cxfa_trace.cpp
+++ b/xfa/fxfa/parser/cxfa_trace.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"trace";
diff --git a/xfa/fxfa/parser/cxfa_transform.cpp b/xfa/fxfa/parser/cxfa_transform.cpp
index 34bcf019ab..24428d057a 100644
--- a/xfa/fxfa/parser/cxfa_transform.cpp
+++ b/xfa/fxfa/parser/cxfa_transform.cpp
@@ -13,9 +13,16 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::IfEmpty, 1, 0}, {XFA_Element::Presence, 1, 0},
{XFA_Element::Picture, 1, 0}, {XFA_Element::NameAttr, 1, 0},
{XFA_Element::GroupParent, 1, 0}, {XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Ref, XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"transform";
diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp
index 4dcedffe09..852853aef9 100644
--- a/xfa/fxfa/parser/cxfa_traversal.cpp
+++ b/xfa/fxfa/parser/cxfa_traversal.cpp
@@ -10,9 +10,20 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"traversal";
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
index 96b6b5c339..cd6fd6b65e 100644
--- a/xfa/fxfa/parser/cxfa_traverse.cpp
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -11,9 +11,27 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Ref, XFA_Attribute::Use,
- XFA_Attribute::Operation, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Ref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Operation, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Next},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"traverse";
diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp
index 625888271f..9844c12def 100644
--- a/xfa/fxfa/parser/cxfa_type.cpp
+++ b/xfa/fxfa/parser/cxfa_type.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"type";
diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp
index b4e002b7c2..bb866eb9d0 100644
--- a/xfa/fxfa/parser/cxfa_typeface.cpp
+++ b/xfa/fxfa/parser/cxfa_typeface.cpp
@@ -8,8 +8,13 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"typeface";
diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp
index 275d7ed821..f061f20770 100644
--- a/xfa/fxfa/parser/cxfa_ui.cpp
+++ b/xfa/fxfa/parser/cxfa_ui.cpp
@@ -24,9 +24,20 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::ExObject, 1, XFA_PROPERTYFLAG_OneOf},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"ui";
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
index d668809e1e..4b49258c76 100644
--- a/xfa/fxfa/parser/cxfa_update.cpp
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"update";
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
index 9d825ead53..a0ee552890 100644
--- a/xfa/fxfa/parser/cxfa_uri.cpp
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -8,10 +8,29 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"uri";
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
index 6954bec523..47ef478244 100644
--- a/xfa/fxfa/parser/cxfa_user.cpp
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"user";
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp
index aaee8f1d52..a70605de27 100644
--- a/xfa/fxfa/parser/cxfa_validate.cpp
+++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -13,12 +13,33 @@ const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
{XFA_Element::Script, 1, 0},
{XFA_Element::Extras, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::ScriptTest, XFA_Attribute::NullTest,
- XFA_Attribute::Usehref, XFA_Attribute::Desc,
- XFA_Attribute::FormatTest, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::ScriptTest, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Error},
+ {XFA_Attribute::NullTest, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Disabled},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::FormatTest, XFA_AttributeType::Enum,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
+ (void*)XFA_ATTRIBUTEENUM_Warning},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"validate";
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
index 9bf9fdd80f..8026b5d1f5 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"validateApprovalSignatures";
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
index 85371e2413..ba6e0babe0 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.cpp
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"validationMessaging";
diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp
index 020507f333..791dd52e58 100644
--- a/xfa/fxfa/parser/cxfa_value.cpp
+++ b/xfa/fxfa/parser/cxfa_value.cpp
@@ -23,9 +23,24 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Float, 1, XFA_PROPERTYFLAG_OneOf},
{XFA_Element::Line, 1, XFA_PROPERTYFLAG_OneOf},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Relevant,
- XFA_Attribute::Usehref, XFA_Attribute::Override, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Relevant, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Override, XFA_AttributeType::Boolean,
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"value";
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
index d52b517420..8625437060 100644
--- a/xfa/fxfa/parser/cxfa_variables.cpp
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -8,9 +8,20 @@
namespace {
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"variables";
diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp
index dc3b820d68..003eb6aaf7 100644
--- a/xfa/fxfa/parser/cxfa_version.cpp
+++ b/xfa/fxfa/parser/cxfa_version.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"version";
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
index b14eb3c119..90a9caa6e3 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.cpp
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
@@ -8,9 +8,16 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::SourceBelow, XFA_Attribute::OutputBelow,
- XFA_Attribute::SourceAbove, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::SourceBelow, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+ (void*)XFA_ATTRIBUTEENUM_Update},
+ {XFA_Attribute::OutputBelow, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+ (void*)XFA_ATTRIBUTEENUM_Warn},
+ {XFA_Attribute::SourceAbove, XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
+ (void*)XFA_ATTRIBUTEENUM_Warn},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"versionControl";
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
index afee927006..57ab3b7018 100644
--- a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
@@ -19,8 +19,12 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::ADBE_JSDebugger, 1, 0},
{XFA_Element::PickTrayByPDFSize, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"viewerPreferences";
diff --git a/xfa/fxfa/parser/cxfa_webclient.cpp b/xfa/fxfa/parser/cxfa_webclient.cpp
index 319d1437b2..bc2010e38a 100644
--- a/xfa/fxfa/parser/cxfa_webclient.cpp
+++ b/xfa/fxfa/parser/cxfa_webclient.cpp
@@ -11,9 +11,17 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::FontInfo, 1, 0},
{XFA_Element::Xdc, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"webClient";
diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp
index de4e25bfe9..0d1d9251bb 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.cpp
+++ b/xfa/fxfa/parser/cxfa_whitespace.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"whitespace";
diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp
index 14612108e7..23e32f328b 100644
--- a/xfa/fxfa/parser/cxfa_window.cpp
+++ b/xfa/fxfa/parser/cxfa_window.cpp
@@ -8,8 +8,12 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"window";
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
index 6e5a55e7b9..6b5d11aa37 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -8,9 +8,25 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
- XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Id, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Use, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Usehref, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"wsdlAddress";
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
index a828f6080e..dd3f54d5ea 100644
--- a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
@@ -16,9 +16,15 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::EffectiveOutputPolicy, 1, 0},
{XFA_Element::EffectiveInputPolicy, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::DataDescription,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataDescription, XFA_AttributeType::CData,
+ XFA_XDPPACKET_ConnectionSet, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"wsdlConnection";
diff --git a/xfa/fxfa/parser/cxfa_xdc.cpp b/xfa/fxfa/parser/cxfa_xdc.cpp
index cd1a31d685..ca7dca13b1 100644
--- a/xfa/fxfa/parser/cxfa_xdc.cpp
+++ b/xfa/fxfa/parser/cxfa_xdc.cpp
@@ -11,8 +11,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
{XFA_Element::Xsl, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"xdc";
diff --git a/xfa/fxfa/parser/cxfa_xdp.cpp b/xfa/fxfa/parser/cxfa_xdp.cpp
index 4e06c1cf98..9e6a43086c 100644
--- a/xfa/fxfa/parser/cxfa_xdp.cpp
+++ b/xfa/fxfa/parser/cxfa_xdp.cpp
@@ -10,8 +10,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Packets, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"xdp";
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
index 2e125de462..c3dc43e1c7 100644
--- a/xfa/fxfa/parser/cxfa_xfa.cpp
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -8,8 +8,11 @@
namespace {
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::TimeStamp, XFA_Attribute::Uuid, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::TimeStamp, XFA_AttributeType::CData, XFA_XDPPACKET_XDP,
+ nullptr},
+ {XFA_Attribute::Uuid, XFA_AttributeType::CData, XFA_XDPPACKET_XDP, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"xfa";
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
index e41f83795b..56376cf20e 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
@@ -10,9 +10,15 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::DataDescription,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataDescription, XFA_AttributeType::CData,
+ XFA_XDPPACKET_ConnectionSet, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"xmlConnection";
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
index 30c1e113fb..08c662a732 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
@@ -12,9 +12,15 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::Uri, 1, 0},
{XFA_Element::RootElement, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
- XFA_Attribute::DataDescription,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::DataDescription, XFA_AttributeType::CData,
+ XFA_XDPPACKET_ConnectionSet, nullptr},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"xsdConnection";
diff --git a/xfa/fxfa/parser/cxfa_xsl.cpp b/xfa/fxfa/parser/cxfa_xsl.cpp
index b12b71a0c4..e3fda71fd2 100644
--- a/xfa/fxfa/parser/cxfa_xsl.cpp
+++ b/xfa/fxfa/parser/cxfa_xsl.cpp
@@ -11,8 +11,12 @@ namespace {
const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
{XFA_Element::Debug, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"xsl";
diff --git a/xfa/fxfa/parser/cxfa_zpl.cpp b/xfa/fxfa/parser/cxfa_zpl.cpp
index df6ffefd39..cdd4f17856 100644
--- a/xfa/fxfa/parser/cxfa_zpl.cpp
+++ b/xfa/fxfa/parser/cxfa_zpl.cpp
@@ -14,9 +14,17 @@ const CXFA_Node::PropertyData kPropertyData[] = {
{XFA_Element::BatchOutput, 1, 0},
{XFA_Element::FlipLabel, 1, 0},
{XFA_Element::Unknown, 0, 0}};
-const XFA_Attribute kAttributeData[] = {
- XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
- XFA_Attribute::Unknown};
+const CXFA_Node::AttributeData kAttributeData[] = {
+ {XFA_Attribute::Name, XFA_AttributeType::CData,
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
+ XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
+ XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
+ nullptr},
+ {XFA_Attribute::Desc, XFA_AttributeType::CData,
+ XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
+ {XFA_Attribute::Lock, XFA_AttributeType::Integer, XFA_XDPPACKET_Config,
+ (void*)0},
+ {XFA_Attribute::Unknown, XFA_AttributeType::Integer, 0, nullptr}};
constexpr wchar_t kName[] = L"zpl";
diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h
index 3c8b710e80..b5833ff379 100644
--- a/xfa/fxfa/parser/xfa_basic_data.h
+++ b/xfa/fxfa/parser/xfa_basic_data.h
@@ -17,18 +17,9 @@ extern const int32_t g_iXFAPacketCount;
extern const XFA_ATTRIBUTEENUMINFO g_XFAEnumData[];
extern const int32_t g_iXFAEnumCount;
-extern const XFA_ATTRIBUTEINFO g_XFAAttributeData[];
-extern const int32_t g_iXFAAttributeCount;
-
-extern const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[];
-extern const int32_t g_iXFANotsureCount;
-
extern const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[];
extern const int32_t g_iScriptIndexCount;
-extern const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[];
-extern const int32_t g_iXFANotsureCount;
-
extern const XFA_METHODINFO g_SomMethodData[];
extern const int32_t g_iSomMethodCount;
diff --git a/xfa/fxfa/parser/xfa_basic_data_attributes.cpp b/xfa/fxfa/parser/xfa_basic_data_attributes.cpp
deleted file mode 100644
index 961475a997..0000000000
--- a/xfa/fxfa/parser/xfa_basic_data_attributes.cpp
+++ /dev/null
@@ -1,785 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fxfa/parser/xfa_basic_data.h"
-
-#include "xfa/fxfa/fxfa_basic.h"
-#include "xfa/fxfa/parser/cxfa_measurement.h"
-
-const XFA_ATTRIBUTEINFO g_XFAAttributeData[] = {
- {0x68, L"h", XFA_Attribute::H, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x77, L"w", XFA_Attribute::W, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x78, L"x", XFA_Attribute::X, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x79, L"y", XFA_Attribute::Y, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x21aed, L"id", XFA_Attribute::Id, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
- nullptr},
- {0x25363, L"to", XFA_Attribute::To, XFA_AttributeType::CData,
- XFA_XDPPACKET_Config, nullptr},
- {0xcb0ac9, L"lineThrough", XFA_Attribute::LineThrough,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x2282c73, L"hAlign", XFA_Attribute::HAlign, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Left},
- {0x2c1c7f1, L"typeface", XFA_Attribute::Typeface, XFA_AttributeType::CData,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"Courier"},
- {0x3106c3a, L"beforeTarget", XFA_Attribute::BeforeTarget,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x31b19c1, L"name", XFA_Attribute::Name, XFA_AttributeType::NotSure,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets | XFA_XDPPACKET_Form |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
- nullptr},
- {0x3848b3f, L"next", XFA_Attribute::Next, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_None},
- {0x43e349b, L"dataRowCount", XFA_Attribute::DataRowCount,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x5518c25, L"break", XFA_Attribute::Break, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Close},
- {0x5ce6195, L"vScrollPolicy", XFA_Attribute::VScrollPolicy,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0x8c74ae9, L"fontHorizontalScale", XFA_Attribute::FontHorizontalScale,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"100%"},
- {0x8d4f1c7, L"textIndent", XFA_Attribute::TextIndent,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x97c1c65, L"context", XFA_Attribute::Context, XFA_AttributeType::Integer,
- XFA_XDPPACKET_UNKNOWN, (void*)0},
- {0x9876578, L"trayOut", XFA_Attribute::TrayOut, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0xa2e3514, L"cap", XFA_Attribute::Cap, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Square},
- {0xb3543a6, L"max", XFA_Attribute::Max, XFA_AttributeType::NotSure,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xb356ca4, L"min", XFA_Attribute::Min, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
- {0xbb8df5d, L"ref", XFA_Attribute::Ref, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_Template |
- XFA_XDPPACKET_Form,
- nullptr},
- {0xbb8f3df, L"rid", XFA_Attribute::Rid, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xc080cd3, L"url", XFA_Attribute::Url, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xc0811ed, L"use", XFA_Attribute::Use, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
- nullptr},
- {0xcfea02e, L"leftInset", XFA_Attribute::LeftInset,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x1026c59d, L"widows", XFA_Attribute::Widows, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
- {0x1059ec18, L"level", XFA_Attribute::Level, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Config, (void*)0},
- {0x1356caf8, L"bottomInset", XFA_Attribute::BottomInset,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x13a08bdb, L"overflowTarget", XFA_Attribute::OverflowTarget,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x1414d431, L"allowMacro", XFA_Attribute::AllowMacro,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x14a32d52, L"pagePosition", XFA_Attribute::PagePosition,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Any},
- {0x1517dfa1, L"columnWidths", XFA_Attribute::ColumnWidths,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x169134a1, L"overflowLeader", XFA_Attribute::OverflowLeader,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x1b8dce3e, L"action", XFA_Attribute::Action, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Include},
- {0x1e459b8f, L"nonRepudiation", XFA_Attribute::NonRepudiation,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x1ec8ab2c, L"rate", XFA_Attribute::Rate, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)50},
- {0x1ef3a64a, L"allowRichText", XFA_Attribute::AllowRichText,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x2038c9b2, L"role", XFA_Attribute::Role, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x20914367, L"overflowTrailer", XFA_Attribute::OverflowTrailer,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x226ca8f1, L"operation", XFA_Attribute::Operation,
- XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x24d85167, L"timeout", XFA_Attribute::Timeout, XFA_AttributeType::NotSure,
- XFA_XDPPACKET_SourceSet, nullptr},
- {0x25764436, L"topInset", XFA_Attribute::TopInset,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x25839852, L"access", XFA_Attribute::Access, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Open},
- {0x268b7ec1, L"commandType", XFA_Attribute::CommandType,
- XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
- (void*)XFA_ATTRIBUTEENUM_Unknown},
- {0x28dee6e9, L"format", XFA_Attribute::Format, XFA_AttributeType::NotSure,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x28e17e91, L"dataPrep", XFA_Attribute::DataPrep, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_None},
- {0x292b88fe, L"widgetData", XFA_Attribute::WidgetData,
- XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0},
- {0x29418bb7, L"abbr", XFA_Attribute::Abbr, XFA_AttributeType::Boolean,
- XFA_XDPPACKET_LocaleSet, (void*)0},
- {0x2a82d99c, L"marginRight", XFA_Attribute::MarginRight,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x2b5df51e, L"dataDescription", XFA_Attribute::DataDescription,
- XFA_AttributeType::CData, XFA_XDPPACKET_ConnectionSet, nullptr},
- {0x2bb3f470, L"encipherOnly", XFA_Attribute::EncipherOnly,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x2cd79033, L"kerningMode", XFA_Attribute::KerningMode,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_None},
- {0x2ee7678f, L"rotate", XFA_Attribute::Rotate, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
- {0x2f105f72, L"wordCharacterCount", XFA_Attribute::WordCharacterCount,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)7},
- {0x2f16a382, L"type", XFA_Attribute::Type, XFA_AttributeType::NotSure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x34ae103c, L"reserve", XFA_Attribute::Reserve, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"-1"},
- {0x3650557e, L"textLocation", XFA_Attribute::TextLocation,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Below},
- {0x39cdb0a2, L"priority", XFA_Attribute::Priority, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Custom},
- {0x3a0273a6, L"underline", XFA_Attribute::Underline,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x3b582286, L"moduleWidth", XFA_Attribute::ModuleWidth,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0.25mm"},
- {0x3d123c26, L"hyphenate", XFA_Attribute::Hyphenate,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x3e7af94f, L"listen", XFA_Attribute::Listen, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_RefOnly},
- {0x4156ee3f, L"delimiter", XFA_Attribute::Delimiter,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x42fed1fd, L"contentType", XFA_Attribute::ContentType,
- XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
- XFA_XDPPACKET_Form,
- nullptr},
- {0x453eaf38, L"startNew", XFA_Attribute::StartNew,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x45a6daf8, L"eofAction", XFA_Attribute::EofAction,
- XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
- (void*)XFA_ATTRIBUTEENUM_MoveLast},
- {0x47cfa43a, L"allowNeutral", XFA_Attribute::AllowNeutral,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x47d03490, L"connection", XFA_Attribute::Connection,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x4873c601, L"baselineShift", XFA_Attribute::BaselineShift,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x4b319767, L"overlinePeriod", XFA_Attribute::OverlinePeriod,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_All},
- {0x4b8bc840, L"fracDigits", XFA_Attribute::FracDigits,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)2},
- {0x4ef3d02c, L"orientation", XFA_Attribute::Orientation,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Portrait},
- {0x4fdc3454, L"timeStamp", XFA_Attribute::TimeStamp,
- XFA_AttributeType::CData, XFA_XDPPACKET_XDP, nullptr},
- {0x52666f1c, L"printCheckDigit", XFA_Attribute::PrintCheckDigit,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x534729c9, L"marginLeft", XFA_Attribute::MarginLeft,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x5392ea58, L"stroke", XFA_Attribute::Stroke, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Solid},
- {0x5404d6df, L"moduleHeight", XFA_Attribute::ModuleHeight,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"5mm"},
- {0x54fa722c, L"transferEncoding", XFA_Attribute::TransferEncoding,
- XFA_AttributeType::NotSure,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x552d9ad5, L"usage", XFA_Attribute::Usage, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_ExportAndImport},
- {0x570ce835, L"presence", XFA_Attribute::Presence, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Visible},
- {0x5739d1ff, L"radixOffset", XFA_Attribute::RadixOffset,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x577682ac, L"preserve", XFA_Attribute::Preserve, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x58be2870, L"aliasNode", XFA_Attribute::AliasNode,
- XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0},
- {0x5a32e493, L"multiLine", XFA_Attribute::MultiLine,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x5a50e9e6, L"version", XFA_Attribute::Version, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x5ab23b6c, L"startChar", XFA_Attribute::StartChar,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x5b707a35, L"scriptTest", XFA_Attribute::ScriptTest,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Error},
- {0x5c054755, L"startAngle", XFA_Attribute::StartAngle,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x5ec958c0, L"cursorType", XFA_Attribute::CursorType,
- XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
- (void*)XFA_ATTRIBUTEENUM_ForwardOnly},
- {0x5f760b50, L"digitalSignature", XFA_Attribute::DigitalSignature,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x60a61edd, L"codeType", XFA_Attribute::CodeType, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x60d4c8b1, L"output", XFA_Attribute::Output, XFA_AttributeType::CData,
- XFA_XDPPACKET_ConnectionSet, nullptr},
- {0x64110ab5, L"bookendTrailer", XFA_Attribute::BookendTrailer,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x65e30c67, L"imagingBBox", XFA_Attribute::ImagingBBox,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"none"},
- {0x66539c48, L"excludeInitialCap", XFA_Attribute::ExcludeInitialCap,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x66642f8f, L"force", XFA_Attribute::Force, XFA_AttributeType::Boolean,
- XFA_XDPPACKET_Config, nullptr},
- {0x69aa2292, L"crlSign", XFA_Attribute::CrlSign, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x6a3405dd, L"previous", XFA_Attribute::Previous, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_None},
- {0x6a95c976, L"pushCharacterCount", XFA_Attribute::PushCharacterCount,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)3},
- {0x6b6ddcfb, L"nullTest", XFA_Attribute::NullTest, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Disabled},
- {0x6cfa828a, L"runAt", XFA_Attribute::RunAt, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Client},
- {0x731e0665, L"spaceBelow", XFA_Attribute::SpaceBelow,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x74788f8b, L"sweepAngle", XFA_Attribute::SweepAngle,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)360},
- {0x78bff531, L"numberOfCells", XFA_Attribute::NumberOfCells,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x79543055, L"letterSpacing", XFA_Attribute::LetterSpacing,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x79975f2b, L"lockType", XFA_Attribute::LockType, XFA_AttributeType::Enum,
- XFA_XDPPACKET_SourceSet, (void*)XFA_ATTRIBUTEENUM_ReadOnly},
- {0x7a0cc471, L"passwordChar", XFA_Attribute::PasswordChar,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"*"},
- {0x7a7cc341, L"vAlign", XFA_Attribute::VAlign, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Top},
- {0x7b29630a, L"sourceBelow", XFA_Attribute::SourceBelow,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
- (void*)XFA_ATTRIBUTEENUM_Update},
- {0x7b95e661, L"inverted", XFA_Attribute::Inverted,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x7c2fd80b, L"mark", XFA_Attribute::Mark, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Default},
- {0x7c2ff6ae, L"maxH", XFA_Attribute::MaxH, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x7c2ff6bd, L"maxW", XFA_Attribute::MaxW, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x7c732a66, L"truncate", XFA_Attribute::Truncate,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x7d02356c, L"minH", XFA_Attribute::MinH, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x7d02357b, L"minW", XFA_Attribute::MinW, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x7d0b5fca, L"initial", XFA_Attribute::Initial, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
- {0x7d9fd7c5, L"mode", XFA_Attribute::Mode, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Config, (void*)XFA_ATTRIBUTEENUM_UsePrinterSetting},
- {0x7e7e845e, L"layout", XFA_Attribute::Layout, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Position},
- {0x7f6fd3d7, L"server", XFA_Attribute::Server, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x824f21b7, L"embedPDF", XFA_Attribute::EmbedPDF,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x8340ea66, L"oddOrEven", XFA_Attribute::OddOrEven,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Any},
- {0x836d4d7c, L"tabDefault", XFA_Attribute::TabDefault,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x8855805f, L"contains", XFA_Attribute::Contains, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Datasets, (void*)XFA_ATTRIBUTEENUM_Data},
- {0x8a692521, L"rightInset", XFA_Attribute::RightInset,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0x8af2e657, L"maxChars", XFA_Attribute::MaxChars,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x8b90e1f2, L"open", XFA_Attribute::Open, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_UserControl},
- {0x8c99377e, L"relation", XFA_Attribute::Relation,
- XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x8d181d61, L"wideNarrowRatio", XFA_Attribute::WideNarrowRatio,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"3:1"},
- {0x8e1c2921, L"relevant", XFA_Attribute::Relevant, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x8e29d794, L"signatureType", XFA_Attribute::SignatureType,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Filter},
- {0x8ec6204c, L"lineThroughPeriod", XFA_Attribute::LineThroughPeriod,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_All},
- {0x8ed182d1, L"shape", XFA_Attribute::Shape, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Square},
- {0x8fa01790, L"tabStops", XFA_Attribute::TabStops, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0x8fc36c0a, L"outputBelow", XFA_Attribute::OutputBelow,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
- (void*)XFA_ATTRIBUTEENUM_Warn},
- {0x9041d4b0, L"short", XFA_Attribute::Short, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0x907c7719, L"fontVerticalScale", XFA_Attribute::FontVerticalScale,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"100%"},
- {0x94446dcc, L"thickness", XFA_Attribute::Thickness,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0.5pt"},
- {0x957fa006, L"commitOn", XFA_Attribute::CommitOn, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Select},
- {0x982bd892, L"remainCharacterCount", XFA_Attribute::RemainCharacterCount,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)3},
- {0x98fd4d81, L"keyAgreement", XFA_Attribute::KeyAgreement,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x99800d7a, L"errorCorrectionLevel", XFA_Attribute::ErrorCorrectionLevel,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0x9a63da3d, L"upsMode", XFA_Attribute::UpsMode, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_UsCarrier},
- {0x9cc17d75, L"mergeMode", XFA_Attribute::MergeMode,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_ConsumeData},
- {0x9d833d75, L"circular", XFA_Attribute::Circular,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0x9d8ee204, L"psName", XFA_Attribute::PsName, XFA_AttributeType::CData,
- XFA_XDPPACKET_Config, nullptr},
- {0x9dcc3ab3, L"trailer", XFA_Attribute::Trailer, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xa0933954, L"unicodeRange", XFA_Attribute::UnicodeRange,
- XFA_AttributeType::CData, XFA_XDPPACKET_Config, nullptr},
- {0xa1b0d2f5, L"executeType", XFA_Attribute::ExecuteType,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Import},
- {0xa25a883d, L"duplexImposition", XFA_Attribute::DuplexImposition,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_LongEdge},
- {0xa42ca1b7, L"trayIn", XFA_Attribute::TrayIn, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0xa433f001, L"bindingNode", XFA_Attribute::BindingNode,
- XFA_AttributeType::Integer, XFA_XDPPACKET_UNKNOWN, (void*)0},
- {0xa5340ff5, L"bofAction", XFA_Attribute::BofAction,
- XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
- (void*)XFA_ATTRIBUTEENUM_MoveFirst},
- {0xa5b410cf, L"save", XFA_Attribute::Save, XFA_AttributeType::Boolean,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
- {0xa6118c89, L"targetType", XFA_Attribute::TargetType,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0xa66404cb, L"keyEncipherment", XFA_Attribute::KeyEncipherment,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xa6710262, L"credentialServerPolicy",
- XFA_Attribute::CredentialServerPolicy, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {0xa686975b, L"size", XFA_Attribute::Size, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"10pt"},
- {0xa85e74f3, L"initialNumber", XFA_Attribute::InitialNumber,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)1},
- {0xabef37e3, L"slope", XFA_Attribute::Slope, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Backslash},
- {0xabfa6c4f, L"cSpace", XFA_Attribute::CSpace, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"SRGB"},
- {0xac06e2b0, L"colSpan", XFA_Attribute::ColSpan, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)1},
- {0xadc4c77b, L"binding", XFA_Attribute::Binding, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xaf754613, L"checksum", XFA_Attribute::Checksum,
- XFA_AttributeType::NotSure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form | XFA_XDPPACKET_Form, nullptr},
- {0xb045fbc5, L"charEncoding", XFA_Attribute::CharEncoding,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"UTF-8"},
- {0xb0e5485d, L"bind", XFA_Attribute::Bind, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet, nullptr},
- {0xb12128b7, L"textEntry", XFA_Attribute::TextEntry,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0xb373a862, L"archive", XFA_Attribute::Archive, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xb598a1f7, L"uuid", XFA_Attribute::Uuid, XFA_AttributeType::CData,
- XFA_XDPPACKET_XDP, nullptr},
- {0xb5e49bf2, L"posture", XFA_Attribute::Posture, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Normal},
- {0xb6b44172, L"after", XFA_Attribute::After, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0xb716467b, L"orphans", XFA_Attribute::Orphans, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
- {0xbc0c4695, L"qualifiedName", XFA_Attribute::QualifiedName,
- XFA_AttributeType::CData, XFA_XDPPACKET_UNKNOWN, nullptr},
- {0xbc254332, L"usehref", XFA_Attribute::Usehref, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
- nullptr},
- {0xbc8fa350, L"locale", XFA_Attribute::Locale, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xbd6e1d88, L"weight", XFA_Attribute::Weight, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Normal},
- {0xbd96a0e9, L"underlinePeriod", XFA_Attribute::UnderlinePeriod,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_All},
- {0xbde9abda, L"data", XFA_Attribute::Data, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Link},
- {0xbe52dfbf, L"desc", XFA_Attribute::Desc, XFA_AttributeType::CData,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, nullptr},
- {0xbe9ba472, L"numbered", XFA_Attribute::Numbered,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)1},
- {0xc035c6b1, L"dataColumnCount", XFA_Attribute::DataColumnCount,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xc0ec9fa4, L"overline", XFA_Attribute::Overline,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0xc2ba0923, L"urlPolicy", XFA_Attribute::UrlPolicy,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xc2bd40fd, L"anchorType", XFA_Attribute::AnchorType,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_TopLeft},
- {0xc39a88bd, L"labelRef", XFA_Attribute::LabelRef, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xc3c1442f, L"bookendLeader", XFA_Attribute::BookendLeader,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xc4547a08, L"maxLength", XFA_Attribute::MaxLength,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)-1},
- {0xc4fed09b, L"accessKey", XFA_Attribute::AccessKey,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xc5762157, L"cursorLocation", XFA_Attribute::CursorLocation,
- XFA_AttributeType::Enum, XFA_XDPPACKET_SourceSet,
- (void*)XFA_ATTRIBUTEENUM_Client},
- {0xc860f30a, L"delayedOpen", XFA_Attribute::DelayedOpen,
- XFA_AttributeType::CData, XFA_XDPPACKET_SourceSet, nullptr},
- {0xc8da4da7, L"target", XFA_Attribute::Target, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xca5dc27c, L"dataEncipherment", XFA_Attribute::DataEncipherment,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xcb150479, L"afterTarget", XFA_Attribute::AfterTarget,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xcbcaf66d, L"leader", XFA_Attribute::Leader, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xcca7897e, L"picker", XFA_Attribute::Picker, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Host},
- {0xcd7f7b54, L"from", XFA_Attribute::From, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config, nullptr},
- {0xcea5e62c, L"baseProfile", XFA_Attribute::BaseProfile,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Full},
- {0xd171b240, L"aspect", XFA_Attribute::Aspect, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)XFA_ATTRIBUTEENUM_Fit},
- {0xd3c84d25, L"rowColumnRatio", XFA_Attribute::RowColumnRatio,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xd4b01921, L"lineHeight", XFA_Attribute::LineHeight,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0pt"},
- {0xd4cc53f8, L"highlight", XFA_Attribute::Highlight,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Inverted},
- {0xd50f903a, L"valueRef", XFA_Attribute::ValueRef, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xd52482e0, L"maxEntries", XFA_Attribute::MaxEntries,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Config, (void*)5},
- {0xd57c513c, L"dataLength", XFA_Attribute::DataLength,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xd6128d8d, L"activity", XFA_Attribute::Activity, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Click},
- {0xd6a39990, L"input", XFA_Attribute::Input, XFA_AttributeType::CData,
- XFA_XDPPACKET_ConnectionSet, nullptr},
- {0xd6e27f1d, L"value", XFA_Attribute::Value, XFA_AttributeType::CData,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Datasets |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_Form,
- nullptr},
- {0xd70798c2, L"blankOrNotBlank", XFA_Attribute::BlankOrNotBlank,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Any},
- {0xd861f8af, L"addRevocationInfo", XFA_Attribute::AddRevocationInfo,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xd8f982bf, L"genericFamily", XFA_Attribute::GenericFamily,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
- (void*)XFA_ATTRIBUTEENUM_Serif},
- {0xd996fa9b, L"hand", XFA_Attribute::Hand, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Even},
- {0xdb55fec5, L"href", XFA_Attribute::Href, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xdc75676c, L"textEncoding", XFA_Attribute::TextEncoding,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xde7f92ba, L"leadDigits", XFA_Attribute::LeadDigits,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)-1},
- {0xe11a2cbc, L"permissions", XFA_Attribute::Permissions,
- XFA_AttributeType::Integer, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)2},
- {0xe18b5659, L"spaceAbove", XFA_Attribute::SpaceAbove,
- XFA_AttributeType::Measure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)L"0in"},
- {0xe1a26b56, L"codeBase", XFA_Attribute::CodeBase, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xe349d044, L"stock", XFA_Attribute::Stock, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xe372ae97, L"isNull", XFA_Attribute::IsNull, XFA_AttributeType::Boolean,
- XFA_XDPPACKET_Datasets, (void*)0},
- {0xe4c3a5e5, L"restoreState", XFA_Attribute::RestoreState,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Manual},
- {0xe5c96d6a, L"excludeAllCaps", XFA_Attribute::ExcludeAllCaps,
- XFA_AttributeType::Boolean, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)0},
- {0xe64b1129, L"formatTest", XFA_Attribute::FormatTest,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Warning},
- {0xe6f99487, L"hScrollPolicy", XFA_Attribute::HScrollPolicy,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0xe8dddf50, L"join", XFA_Attribute::Join, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Square},
- {0xe8f118a8, L"keyCertSign", XFA_Attribute::KeyCertSign,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xe948b9a8, L"radius", XFA_Attribute::Radius, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0xe996b2fe, L"sourceAbove", XFA_Attribute::SourceAbove,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
- (void*)XFA_ATTRIBUTEENUM_Warn},
- {0xea7090a0, L"override", XFA_Attribute::Override,
- XFA_AttributeType::NotSure, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xeb091003, L"classId", XFA_Attribute::ClassId, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xeb511b54, L"disable", XFA_Attribute::Disable, XFA_AttributeType::Boolean,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)0},
- {0xeda9017a, L"scope", XFA_Attribute::Scope, XFA_AttributeType::NotSure,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xf197844d, L"match", XFA_Attribute::Match, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Once},
- {0xf2009339, L"placement", XFA_Attribute::Placement,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Left},
- {0xf4ffce73, L"before", XFA_Attribute::Before, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_Auto},
- {0xf531b059, L"writingScript", XFA_Attribute::WritingScript,
- XFA_AttributeType::Enum, XFA_XDPPACKET_Config,
- (void*)XFA_ATTRIBUTEENUM_Asterisk},
- {0xf575ca75, L"endChar", XFA_Attribute::EndChar, XFA_AttributeType::CData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, nullptr},
- {0xf6b47749, L"lock", XFA_Attribute::Lock, XFA_AttributeType::Integer,
- XFA_XDPPACKET_Config, (void*)0},
- {0xf6b4afb0, L"long", XFA_Attribute::Long, XFA_AttributeType::Measure,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, (void*)L"0in"},
- {0xf6b59543, L"intact", XFA_Attribute::Intact, XFA_AttributeType::Enum,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- (void*)XFA_ATTRIBUTEENUM_None},
- {0xf889e747, L"xdpContent", XFA_Attribute::XdpContent,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
- {0xfea53ec6, L"decipherOnly", XFA_Attribute::DecipherOnly,
- XFA_AttributeType::CData, XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- nullptr},
-};
-const int32_t g_iXFAAttributeCount =
- sizeof(g_XFAAttributeData) / sizeof(XFA_ATTRIBUTEINFO);
-static_assert(g_iXFAAttributeCount ==
- static_cast<int32_t>(XFA_Attribute::LastAttributePlaceholder),
- "Attribute count mismatch");
-
-const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[] = {
- {XFA_Element::SubformSet, XFA_Attribute::Relation, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Ordered},
- {XFA_Element::NumberPattern, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Numeric},
- {XFA_Element::KeyUsage, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::LabelPrinter, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Zpl},
- {XFA_Element::CalendarSymbols, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Gregorian},
- {XFA_Element::Barcode, XFA_Attribute::Type, XFA_AttributeType::CData,
- nullptr},
- {XFA_Element::Barcode, XFA_Attribute::Checksum, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_None},
- {XFA_Element::TimePattern, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Med},
- {XFA_Element::BatchOutput, XFA_Attribute::Format, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_None},
- {XFA_Element::SubjectDNs, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Issuers, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::EncryptionMethods, XFA_Attribute::Type,
- XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Pattern, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_CrossHatch},
- {XFA_Element::Compress, XFA_Attribute::Scope, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_ImageOnly},
- {XFA_Element::Image, XFA_Attribute::TransferEncoding,
- XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Base64},
- {XFA_Element::TimeStamp, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Subform, XFA_Attribute::Scope, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Name},
- {XFA_Element::Handler, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Record, XFA_Attribute::Max, XFA_AttributeType::Integer,
- (void*)0},
- {XFA_Element::Command, XFA_Attribute::Timeout, XFA_AttributeType::Integer,
- (void*)30},
- {XFA_Element::DigestMethods, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::PageSet, XFA_Attribute::Relation, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_OrderedOccurrence},
- {XFA_Element::Equate, XFA_Attribute::From, XFA_AttributeType::CData,
- nullptr},
- {XFA_Element::Equate, XFA_Attribute::To, XFA_AttributeType::CData, nullptr},
- {XFA_Element::Traverse, XFA_Attribute::Operation, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Next},
- {XFA_Element::Encodings, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Signing, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Oids, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Signature, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_PDF1_3},
- {XFA_Element::ExData, XFA_Attribute::TransferEncoding,
- XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_None},
- {XFA_Element::Linear, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_ToRight},
- {XFA_Element::CurrencySymbol, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Symbol},
- {XFA_Element::EquateRange, XFA_Attribute::From, XFA_AttributeType::CData,
- nullptr},
- {XFA_Element::EquateRange, XFA_Attribute::To, XFA_AttributeType::CData,
- nullptr},
- {XFA_Element::SignData, XFA_Attribute::Operation, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Sign},
- {XFA_Element::DatePattern, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Med},
- {XFA_Element::Bind, XFA_Attribute::TransferEncoding,
- XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_None},
- {XFA_Element::Reasons, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::AppearanceFilter, XFA_Attribute::Type,
- XFA_AttributeType::Enum, (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Form, XFA_Attribute::Checksum, XFA_AttributeType::CData,
- nullptr},
- {XFA_Element::Value, XFA_Attribute::Override, XFA_AttributeType::Boolean,
- (void*)0},
- {XFA_Element::Calculate, XFA_Attribute::Override, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Error},
- {XFA_Element::Connect, XFA_Attribute::Timeout, XFA_AttributeType::Integer,
- (void*)15},
- {XFA_Element::Submit, XFA_Attribute::Format, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Xdp},
- {XFA_Element::Radial, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_ToEdge},
- {XFA_Element::LockDocument, XFA_Attribute::Type, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Optional},
- {XFA_Element::Occur, XFA_Attribute::Max, XFA_AttributeType::Integer,
- (void*)1},
- {XFA_Element::NumberSymbol, XFA_Attribute::Name, XFA_AttributeType::Enum,
- (void*)XFA_ATTRIBUTEENUM_Decimal},
-};
-const int32_t g_iXFANotsureCount =
- sizeof(g_XFANotsureAttributes) / sizeof(XFA_NOTSUREATTRIBUTE);
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index 2cf6d82084..112db1efb5 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -3574,5 +3574,4 @@ const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = {
(XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Som_DefaultValue,
XFA_Attribute::Unknown, XFA_ScriptType::Basic},
};
-const int32_t g_iSomAttributeCount =
- sizeof(g_SomAttributeData) / sizeof(XFA_ATTRIBUTEINFO);
+const int32_t g_iSomAttributeCount = FX_ArraySize(g_SomAttributeData);
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp
index 2f5b479166..9dc34407bd 100644
--- a/xfa/fxfa/parser/xfa_utils.cpp
+++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -186,68 +186,6 @@ const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
return nullptr;
}
-const XFA_NOTSUREATTRIBUTE* XFA_GetNotsureAttribute(XFA_Element eElement,
- XFA_Attribute eAttribute,
- XFA_AttributeType eType) {
- int32_t iStart = 0, iEnd = g_iXFANotsureCount - 1;
- do {
- int32_t iMid = (iStart + iEnd) / 2;
- const XFA_NOTSUREATTRIBUTE* pAttr = g_XFANotsureAttributes + iMid;
- if (eElement == pAttr->eElement) {
- if (pAttr->attribute == eAttribute) {
- if (eType == XFA_AttributeType::NotSure || eType == pAttr->eType)
- return pAttr;
- return nullptr;
- }
- int32_t iBefore = iMid - 1;
- if (iBefore >= 0) {
- pAttr = g_XFANotsureAttributes + iBefore;
- while (eElement == pAttr->eElement) {
- if (pAttr->attribute == eAttribute) {
- if (eType == XFA_AttributeType::NotSure || eType == pAttr->eType)
- return pAttr;
- return nullptr;
- }
- iBefore--;
- if (iBefore < 0)
- break;
-
- pAttr = g_XFANotsureAttributes + iBefore;
- }
- }
-
- int32_t iAfter = iMid + 1;
- if (iAfter <= g_iXFANotsureCount - 1) {
- pAttr = g_XFANotsureAttributes + iAfter;
- while (eElement == pAttr->eElement) {
- if (pAttr->attribute == eAttribute) {
- if (eType == XFA_AttributeType::NotSure || eType == pAttr->eType)
- return pAttr;
- return nullptr;
- }
- iAfter++;
- if (iAfter > g_iXFANotsureCount - 1)
- break;
-
- pAttr = g_XFANotsureAttributes + iAfter;
- }
- }
- return nullptr;
- }
-
- if (eElement < pAttr->eElement)
- iEnd = iMid - 1;
- else
- iStart = iMid + 1;
- } while (iStart <= iEnd);
- return nullptr;
-}
-
-const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_Attribute eName) {
- ASSERT(static_cast<uint8_t>(eName) < g_iXFAAttributeCount);
- return g_XFAAttributeData + static_cast<uint8_t>(eName);
-}
-
const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByName(
const WideStringView& wsName) {
if (wsName.IsEmpty())
diff --git a/xfa/fxfa/parser/xfa_utils.h b/xfa/fxfa/parser/xfa_utils.h
index 7a7eb1546c..40e7d7440b 100644
--- a/xfa/fxfa/parser/xfa_utils.h
+++ b/xfa/fxfa/parser/xfa_utils.h
@@ -38,18 +38,10 @@ void XFA_DataExporter_RegenerateFormFile(
const char* pChecksum = nullptr,
bool bSaveXML = false);
-const XFA_NOTSUREATTRIBUTE* XFA_GetNotsureAttribute(
- XFA_Element eElement,
- XFA_Attribute eAttribute,
- XFA_AttributeType eType = XFA_AttributeType::NotSure);
-
const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
XFA_Element eElement,
const WideStringView& wsAttributeName);
-const XFA_Attribute* XFA_GetElementAttributes(XFA_Element eElement,
- int32_t& iCount);
-const XFA_ATTRIBUTEINFO* XFA_GetAttributeByID(XFA_Attribute eName);
const XFA_ATTRIBUTEENUMINFO* XFA_GetAttributeEnumByName(
const WideStringView& wsName);
const XFA_PACKETINFO* XFA_GetPacketByIndex(XFA_PacketType ePacket);