summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-11-27 18:10:47 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-11-27 18:10:47 +0000
commitf473672fd6305fe97c749bde3b92e3c9c90e88d0 (patch)
treefe1ec0af4f66a801c7a08fd762e61b065b89d4ec /xfa/fxfa/parser
parent3636a854af15219fd679ed54207abcdad3283b9b (diff)
downloadpdfium-f473672fd6305fe97c749bde3b92e3c9c90e88d0.tar.xz
Generate XFA node classes
This CL adds concrete classes for each of the XFA Node types. Change-Id: Ieac8e2fcd5d13c61daa27fc63e3d80abb7aa7a29 Reviewed-on: https://pdfium-review.googlesource.com/18271 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r--xfa/fxfa/parser/cxfa_accessiblecontent.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_accessiblecontent.h18
-rw-r--r--xfa/fxfa/parser/cxfa_acrobat.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_acrobat.h18
-rw-r--r--xfa/fxfa/parser/cxfa_acrobat7.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_acrobat7.h18
-rw-r--r--xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_adbe_jsconsole.h18
-rw-r--r--xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_adbe_jsdebugger.h18
-rw-r--r--xfa/fxfa/parser/cxfa_addsilentprint.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_addsilentprint.h18
-rw-r--r--xfa/fxfa/parser/cxfa_addviewerpreferences.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_addviewerpreferences.h18
-rw-r--r--xfa/fxfa/parser/cxfa_adjustdata.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_adjustdata.h18
-rw-r--r--xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_adobeextensionlevel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_agent.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_agent.h18
-rw-r--r--xfa/fxfa/parser/cxfa_alwaysembed.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_alwaysembed.h18
-rw-r--r--xfa/fxfa/parser/cxfa_amd.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_amd.h18
-rw-r--r--xfa/fxfa/parser/cxfa_appearancefilter.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_appearancefilter.h18
-rw-r--r--xfa/fxfa/parser/cxfa_arc.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_arc.h18
-rw-r--r--xfa/fxfa/parser/cxfa_area.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_area.h18
-rw-r--r--xfa/fxfa/parser/cxfa_assist.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_assist.h18
-rw-r--r--xfa/fxfa/parser/cxfa_attributes.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_attributes.h18
-rw-r--r--xfa/fxfa/parser/cxfa_autosave.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_autosave.h18
-rw-r--r--xfa/fxfa/parser/cxfa_barcode.cpp48
-rw-r--r--xfa/fxfa/parser/cxfa_barcode.h18
-rw-r--r--xfa/fxfa/parser/cxfa_base.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_base.h18
-rw-r--r--xfa/fxfa/parser/cxfa_batchoutput.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_batchoutput.h18
-rw-r--r--xfa/fxfa/parser/cxfa_behavioroverride.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_behavioroverride.h18
-rw-r--r--xfa/fxfa/parser/cxfa_bind.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_bind.h18
-rw-r--r--xfa/fxfa/parser/cxfa_binditems.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_binditems.h18
-rw-r--r--xfa/fxfa/parser/cxfa_bookend.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_bookend.h18
-rw-r--r--xfa/fxfa/parser/cxfa_boolean.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_boolean.h18
-rw-r--r--xfa/fxfa/parser/cxfa_border.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_border.h18
-rw-r--r--xfa/fxfa/parser/cxfa_break.cpp42
-rw-r--r--xfa/fxfa/parser/cxfa_break.h18
-rw-r--r--xfa/fxfa/parser/cxfa_breakafter.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_breakafter.h18
-rw-r--r--xfa/fxfa/parser/cxfa_breakbefore.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_breakbefore.h18
-rw-r--r--xfa/fxfa/parser/cxfa_button.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_button.h18
-rw-r--r--xfa/fxfa/parser/cxfa_cache.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_cache.h18
-rw-r--r--xfa/fxfa/parser/cxfa_calculate.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_calculate.h18
-rw-r--r--xfa/fxfa/parser/cxfa_calendarsymbols.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_calendarsymbols.h18
-rw-r--r--xfa/fxfa/parser/cxfa_caption.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_caption.h18
-rw-r--r--xfa/fxfa/parser/cxfa_certificate.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_certificate.h18
-rw-r--r--xfa/fxfa/parser/cxfa_certificates.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_certificates.h18
-rw-r--r--xfa/fxfa/parser/cxfa_change.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_change.h18
-rw-r--r--xfa/fxfa/parser/cxfa_checkbutton.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_checkbutton.h18
-rw-r--r--xfa/fxfa/parser/cxfa_choicelist.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_choicelist.h18
-rw-r--r--xfa/fxfa/parser/cxfa_color.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_color.h18
-rw-r--r--xfa/fxfa/parser/cxfa_comb.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_comb.h18
-rw-r--r--xfa/fxfa/parser/cxfa_command.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_command.h18
-rw-r--r--xfa/fxfa/parser/cxfa_common.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_common.h18
-rw-r--r--xfa/fxfa/parser/cxfa_compress.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_compress.h18
-rw-r--r--xfa/fxfa/parser/cxfa_compression.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_compression.h18
-rw-r--r--xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_compresslogicalstructure.h18
-rw-r--r--xfa/fxfa/parser/cxfa_compressobjectstream.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_compressobjectstream.h18
-rw-r--r--xfa/fxfa/parser/cxfa_config.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_config.h18
-rw-r--r--xfa/fxfa/parser/cxfa_conformance.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_conformance.h18
-rw-r--r--xfa/fxfa/parser/cxfa_connect.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_connect.h18
-rw-r--r--xfa/fxfa/parser/cxfa_connectionset.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_connectionset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_connectstring.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_connectstring.h18
-rw-r--r--xfa/fxfa/parser/cxfa_contentarea.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_contentarea.h18
-rw-r--r--xfa/fxfa/parser/cxfa_contentcopy.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_contentcopy.h18
-rw-r--r--xfa/fxfa/parser/cxfa_copies.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_copies.h18
-rw-r--r--xfa/fxfa/parser/cxfa_corner.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_corner.h18
-rw-r--r--xfa/fxfa/parser/cxfa_creator.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_creator.h18
-rw-r--r--xfa/fxfa/parser/cxfa_currencysymbol.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_currencysymbol.h18
-rw-r--r--xfa/fxfa/parser/cxfa_currencysymbols.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_currencysymbols.h18
-rw-r--r--xfa/fxfa/parser/cxfa_currentpage.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_currentpage.h18
-rw-r--r--xfa/fxfa/parser/cxfa_data.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_data.h18
-rw-r--r--xfa/fxfa/parser/cxfa_dataexporter.cpp22
-rw-r--r--xfa/fxfa/parser/cxfa_datagroup.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_datagroup.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datamodel.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_datamodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datavalue.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_datavalue.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datawindow.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_datawindow.h18
-rw-r--r--xfa/fxfa/parser/cxfa_date.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_date.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datepattern.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_datepattern.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datepatterns.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_datepatterns.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datetime.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_datetime.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datetimeedit.cpp37
-rw-r--r--xfa/fxfa/parser/cxfa_datetimeedit.h18
-rw-r--r--xfa/fxfa/parser/cxfa_datetimesymbols.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_datetimesymbols.h18
-rw-r--r--xfa/fxfa/parser/cxfa_day.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_day.h18
-rw-r--r--xfa/fxfa/parser/cxfa_daynames.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_daynames.h18
-rw-r--r--xfa/fxfa/parser/cxfa_debug.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_debug.h18
-rw-r--r--xfa/fxfa/parser/cxfa_decimal.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_decimal.h18
-rw-r--r--xfa/fxfa/parser/cxfa_defaulttypeface.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_defaulttypeface.h18
-rw-r--r--xfa/fxfa/parser/cxfa_defaultui.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_defaultui.h18
-rw-r--r--xfa/fxfa/parser/cxfa_delete.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_delete.h18
-rw-r--r--xfa/fxfa/parser/cxfa_delta.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_delta.h18
-rw-r--r--xfa/fxfa/parser/cxfa_deltas.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_deltas.h18
-rw-r--r--xfa/fxfa/parser/cxfa_desc.cpp36
-rw-r--r--xfa/fxfa/parser/cxfa_desc.h18
-rw-r--r--xfa/fxfa/parser/cxfa_destination.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_destination.h18
-rw-r--r--xfa/fxfa/parser/cxfa_digestmethod.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_digestmethod.h18
-rw-r--r--xfa/fxfa/parser/cxfa_digestmethods.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_digestmethods.h18
-rw-r--r--xfa/fxfa/parser/cxfa_document.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_documentassembly.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_documentassembly.h18
-rw-r--r--xfa/fxfa/parser/cxfa_draw.cpp42
-rw-r--r--xfa/fxfa/parser/cxfa_draw.h18
-rw-r--r--xfa/fxfa/parser/cxfa_driver.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_driver.h18
-rw-r--r--xfa/fxfa/parser/cxfa_dsigdata.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_dsigdata.h18
-rw-r--r--xfa/fxfa/parser/cxfa_duplexoption.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_duplexoption.h18
-rw-r--r--xfa/fxfa/parser/cxfa_dynamicrender.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_dynamicrender.h18
-rw-r--r--xfa/fxfa/parser/cxfa_edge.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_edge.h18
-rw-r--r--xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_effectiveinputpolicy.h18
-rw-r--r--xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h18
-rw-r--r--xfa/fxfa/parser/cxfa_embed.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_embed.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encoding.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_encoding.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encodings.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_encodings.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encrypt.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_encrypt.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encryption.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_encryption.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionlevel.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionlevel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionmethod.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionmethod.h18
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionmethods.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_encryptionmethods.h18
-rw-r--r--xfa/fxfa/parser/cxfa_enforce.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_enforce.h18
-rw-r--r--xfa/fxfa/parser/cxfa_equate.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_equate.h18
-rw-r--r--xfa/fxfa/parser/cxfa_equaterange.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_equaterange.h18
-rw-r--r--xfa/fxfa/parser/cxfa_era.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_era.h18
-rw-r--r--xfa/fxfa/parser/cxfa_eranames.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_eranames.h18
-rw-r--r--xfa/fxfa/parser/cxfa_event.cpp37
-rw-r--r--xfa/fxfa/parser/cxfa_event.h18
-rw-r--r--xfa/fxfa/parser/cxfa_eventpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_eventpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_exclgroup.cpp45
-rw-r--r--xfa/fxfa/parser/cxfa_exclgroup.h18
-rw-r--r--xfa/fxfa/parser/cxfa_exclude.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_exclude.h18
-rw-r--r--xfa/fxfa/parser/cxfa_excludens.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_excludens.h18
-rw-r--r--xfa/fxfa/parser/cxfa_exdata.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_exdata.h18
-rw-r--r--xfa/fxfa/parser/cxfa_execute.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_execute.h18
-rw-r--r--xfa/fxfa/parser/cxfa_exobject.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_exobject.h18
-rw-r--r--xfa/fxfa/parser/cxfa_extras.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_extras.h18
-rw-r--r--xfa/fxfa/parser/cxfa_field.cpp49
-rw-r--r--xfa/fxfa/parser/cxfa_field.h18
-rw-r--r--xfa/fxfa/parser/cxfa_fill.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_fill.h18
-rw-r--r--xfa/fxfa/parser/cxfa_filter.cpp37
-rw-r--r--xfa/fxfa/parser/cxfa_filter.h18
-rw-r--r--xfa/fxfa/parser/cxfa_fliplabel.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_fliplabel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_float.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_float.h18
-rw-r--r--xfa/fxfa/parser/cxfa_font.cpp51
-rw-r--r--xfa/fxfa/parser/cxfa_font.h18
-rw-r--r--xfa/fxfa/parser/cxfa_fontinfo.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_fontinfo.h18
-rw-r--r--xfa/fxfa/parser/cxfa_form.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_form.h18
-rw-r--r--xfa/fxfa/parser/cxfa_format.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_format.h18
-rw-r--r--xfa/fxfa/parser/cxfa_formfieldfilling.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_formfieldfilling.h18
-rw-r--r--xfa/fxfa/parser/cxfa_groupparent.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_groupparent.h18
-rw-r--r--xfa/fxfa/parser/cxfa_handler.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_handler.h18
-rw-r--r--xfa/fxfa/parser/cxfa_hostpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_hostpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_hyphenation.cpp36
-rw-r--r--xfa/fxfa/parser/cxfa_hyphenation.h18
-rw-r--r--xfa/fxfa/parser/cxfa_ifempty.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_ifempty.h18
-rw-r--r--xfa/fxfa/parser/cxfa_image.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_image.h18
-rw-r--r--xfa/fxfa/parser/cxfa_imageedit.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_imageedit.h18
-rw-r--r--xfa/fxfa/parser/cxfa_includexdpcontent.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_includexdpcontent.h18
-rw-r--r--xfa/fxfa/parser/cxfa_incrementalload.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_incrementalload.h18
-rw-r--r--xfa/fxfa/parser/cxfa_incrementalmerge.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_incrementalmerge.h18
-rw-r--r--xfa/fxfa/parser/cxfa_insert.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_insert.h18
-rw-r--r--xfa/fxfa/parser/cxfa_instancemanager.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_instancemanager.h18
-rw-r--r--xfa/fxfa/parser/cxfa_integer.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_integer.h18
-rw-r--r--xfa/fxfa/parser/cxfa_interactive.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_interactive.h18
-rw-r--r--xfa/fxfa/parser/cxfa_issuers.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_issuers.h18
-rw-r--r--xfa/fxfa/parser/cxfa_items.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_items.h18
-rw-r--r--xfa/fxfa/parser/cxfa_jog.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_jog.h18
-rw-r--r--xfa/fxfa/parser/cxfa_keep.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_keep.h18
-rw-r--r--xfa/fxfa/parser/cxfa_keyusage.cpp40
-rw-r--r--xfa/fxfa/parser/cxfa_keyusage.h18
-rw-r--r--xfa/fxfa/parser/cxfa_labelprinter.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_labelprinter.h18
-rw-r--r--xfa/fxfa/parser/cxfa_layout.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_layout.h18
-rw-r--r--xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_layoutpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_level.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_level.h18
-rw-r--r--xfa/fxfa/parser/cxfa_line.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_line.h18
-rw-r--r--xfa/fxfa/parser/cxfa_linear.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_linear.h18
-rw-r--r--xfa/fxfa/parser/cxfa_linearized.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_linearized.h18
-rw-r--r--xfa/fxfa/parser/cxfa_list.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_list.h18
-rw-r--r--xfa/fxfa/parser/cxfa_locale.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_locale.h18
-rw-r--r--xfa/fxfa/parser/cxfa_localeset.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_localeset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_lockdocument.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_lockdocument.h18
-rw-r--r--xfa/fxfa/parser/cxfa_log.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_log.h18
-rw-r--r--xfa/fxfa/parser/cxfa_logpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_logpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_manifest.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_manifest.h18
-rw-r--r--xfa/fxfa/parser/cxfa_map.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_map.h18
-rw-r--r--xfa/fxfa/parser/cxfa_margin.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_margin.h18
-rw-r--r--xfa/fxfa/parser/cxfa_mdp.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_mdp.h18
-rw-r--r--xfa/fxfa/parser/cxfa_medium.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_medium.h18
-rw-r--r--xfa/fxfa/parser/cxfa_mediuminfo.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_mediuminfo.h18
-rw-r--r--xfa/fxfa/parser/cxfa_meridiem.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_meridiem.h18
-rw-r--r--xfa/fxfa/parser/cxfa_meridiemnames.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_meridiemnames.h18
-rw-r--r--xfa/fxfa/parser/cxfa_message.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_message.h18
-rw-r--r--xfa/fxfa/parser/cxfa_messaging.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_messaging.h18
-rw-r--r--xfa/fxfa/parser/cxfa_mode.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_mode.h18
-rw-r--r--xfa/fxfa/parser/cxfa_modifyannots.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_modifyannots.h18
-rw-r--r--xfa/fxfa/parser/cxfa_month.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_month.h18
-rw-r--r--xfa/fxfa/parser/cxfa_monthnames.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_monthnames.h18
-rw-r--r--xfa/fxfa/parser/cxfa_msgid.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_msgid.h18
-rw-r--r--xfa/fxfa/parser/cxfa_nameattr.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_nameattr.h18
-rw-r--r--xfa/fxfa/parser/cxfa_neverembed.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_neverembed.h18
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp220
-rw-r--r--xfa/fxfa/parser/cxfa_node.h33
-rw-r--r--xfa/fxfa/parser/cxfa_node_statics.cpp1606
-rw-r--r--xfa/fxfa/parser/cxfa_nodehelper.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_numberofcopies.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_numberofcopies.h18
-rw-r--r--xfa/fxfa/parser/cxfa_numberpattern.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_numberpattern.h18
-rw-r--r--xfa/fxfa/parser/cxfa_numberpatterns.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_numberpatterns.h18
-rw-r--r--xfa/fxfa/parser/cxfa_numbersymbol.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_numbersymbol.h18
-rw-r--r--xfa/fxfa/parser/cxfa_numbersymbols.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_numbersymbols.h18
-rw-r--r--xfa/fxfa/parser/cxfa_numericedit.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_numericedit.h18
-rw-r--r--xfa/fxfa/parser/cxfa_occur.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_occur.h18
-rw-r--r--xfa/fxfa/parser/cxfa_oid.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_oid.h18
-rw-r--r--xfa/fxfa/parser/cxfa_oids.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_oids.h18
-rw-r--r--xfa/fxfa/parser/cxfa_openaction.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_openaction.h18
-rw-r--r--xfa/fxfa/parser/cxfa_operation.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_operation.h18
-rw-r--r--xfa/fxfa/parser/cxfa_output.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_output.h18
-rw-r--r--xfa/fxfa/parser/cxfa_outputbin.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_outputbin.h18
-rw-r--r--xfa/fxfa/parser/cxfa_outputxsl.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_outputxsl.h18
-rw-r--r--xfa/fxfa/parser/cxfa_overflow.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_overflow.h18
-rw-r--r--xfa/fxfa/parser/cxfa_overprint.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_overprint.h18
-rw-r--r--xfa/fxfa/parser/cxfa_packet.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_packet.h18
-rw-r--r--xfa/fxfa/parser/cxfa_packets.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_packets.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pagearea.cpp42
-rw-r--r--xfa/fxfa/parser/cxfa_pagearea.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pageoffset.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_pageoffset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pagerange.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_pagerange.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pageset.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_pageset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pagination.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_pagination.h18
-rw-r--r--xfa/fxfa/parser/cxfa_paginationoverride.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_paginationoverride.h18
-rw-r--r--xfa/fxfa/parser/cxfa_para.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_para.h18
-rw-r--r--xfa/fxfa/parser/cxfa_part.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_part.h18
-rw-r--r--xfa/fxfa/parser/cxfa_password.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_password.h18
-rw-r--r--xfa/fxfa/parser/cxfa_passwordedit.cpp36
-rw-r--r--xfa/fxfa/parser/cxfa_passwordedit.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pattern.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_pattern.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pcl.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_pcl.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pdf.cpp50
-rw-r--r--xfa/fxfa/parser/cxfa_pdf.h18
-rw-r--r--xfa/fxfa/parser/cxfa_pdfa.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_pdfa.h18
-rw-r--r--xfa/fxfa/parser/cxfa_permissions.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_permissions.h18
-rw-r--r--xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_picktraybypdfsize.h18
-rw-r--r--xfa/fxfa/parser/cxfa_picture.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_picture.h18
-rw-r--r--xfa/fxfa/parser/cxfa_plaintextmetadata.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_plaintextmetadata.h18
-rw-r--r--xfa/fxfa/parser/cxfa_presence.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_presence.h18
-rw-r--r--xfa/fxfa/parser/cxfa_present.cpp44
-rw-r--r--xfa/fxfa/parser/cxfa_present.h18
-rw-r--r--xfa/fxfa/parser/cxfa_print.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_print.h18
-rw-r--r--xfa/fxfa/parser/cxfa_printername.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_printername.h18
-rw-r--r--xfa/fxfa/parser/cxfa_printhighquality.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_printhighquality.h18
-rw-r--r--xfa/fxfa/parser/cxfa_printscaling.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_printscaling.h18
-rw-r--r--xfa/fxfa/parser/cxfa_producer.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_producer.h18
-rw-r--r--xfa/fxfa/parser/cxfa_proto.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_proto.h18
-rw-r--r--xfa/fxfa/parser/cxfa_ps.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_ps.h18
-rw-r--r--xfa/fxfa/parser/cxfa_psmap.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_psmap.h18
-rw-r--r--xfa/fxfa/parser/cxfa_query.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_query.h18
-rw-r--r--xfa/fxfa/parser/cxfa_radial.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_radial.h18
-rw-r--r--xfa/fxfa/parser/cxfa_range.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_range.h18
-rw-r--r--xfa/fxfa/parser/cxfa_reason.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_reason.h18
-rw-r--r--xfa/fxfa/parser/cxfa_reasons.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_reasons.h18
-rw-r--r--xfa/fxfa/parser/cxfa_record.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_record.h18
-rw-r--r--xfa/fxfa/parser/cxfa_recordset.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_recordset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_rectangle.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_rectangle.h18
-rw-r--r--xfa/fxfa/parser/cxfa_ref.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_ref.h18
-rw-r--r--xfa/fxfa/parser/cxfa_relevant.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_relevant.h18
-rw-r--r--xfa/fxfa/parser/cxfa_rename.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_rename.h18
-rw-r--r--xfa/fxfa/parser/cxfa_renderpolicy.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_renderpolicy.h18
-rw-r--r--xfa/fxfa/parser/cxfa_rootelement.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_rootelement.h18
-rw-r--r--xfa/fxfa/parser/cxfa_runscripts.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_runscripts.h18
-rw-r--r--xfa/fxfa/parser/cxfa_script.cpp37
-rw-r--r--xfa/fxfa/parser/cxfa_script.h18
-rw-r--r--xfa/fxfa/parser/cxfa_scriptmodel.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_scriptmodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_select.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_select.h18
-rw-r--r--xfa/fxfa/parser/cxfa_setproperty.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_setproperty.h18
-rw-r--r--xfa/fxfa/parser/cxfa_severity.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_severity.h18
-rw-r--r--xfa/fxfa/parser/cxfa_sharptext.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_sharptext.h18
-rw-r--r--xfa/fxfa/parser/cxfa_sharpxhtml.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_sharpxhtml.h18
-rw-r--r--xfa/fxfa/parser/cxfa_sharpxml.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_sharpxml.h18
-rw-r--r--xfa/fxfa/parser/cxfa_signature.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_signature.h18
-rw-r--r--xfa/fxfa/parser/cxfa_signatureproperties.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_signatureproperties.h18
-rw-r--r--xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_signaturepseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_signdata.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_signdata.h18
-rw-r--r--xfa/fxfa/parser/cxfa_signing.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_signing.h18
-rw-r--r--xfa/fxfa/parser/cxfa_silentprint.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_silentprint.h18
-rw-r--r--xfa/fxfa/parser/cxfa_simple_parser.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_soapaction.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_soapaction.h18
-rw-r--r--xfa/fxfa/parser/cxfa_soapaddress.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_soapaddress.h18
-rw-r--r--xfa/fxfa/parser/cxfa_solid.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_solid.h18
-rw-r--r--xfa/fxfa/parser/cxfa_source.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_source.h18
-rw-r--r--xfa/fxfa/parser/cxfa_sourceset.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_sourceset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_speak.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_speak.h18
-rw-r--r--xfa/fxfa/parser/cxfa_staple.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_staple.h18
-rw-r--r--xfa/fxfa/parser/cxfa_startnode.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_startnode.h18
-rw-r--r--xfa/fxfa/parser/cxfa_startpage.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_startpage.h18
-rw-r--r--xfa/fxfa/parser/cxfa_stipple.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_stipple.h18
-rw-r--r--xfa/fxfa/parser/cxfa_subform.cpp63
-rw-r--r--xfa/fxfa/parser/cxfa_subform.h18
-rw-r--r--xfa/fxfa/parser/cxfa_subformset.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_subformset.h18
-rw-r--r--xfa/fxfa/parser/cxfa_subjectdn.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_subjectdn.h18
-rw-r--r--xfa/fxfa/parser/cxfa_subjectdns.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_subjectdns.h18
-rw-r--r--xfa/fxfa/parser/cxfa_submit.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_submit.h18
-rw-r--r--xfa/fxfa/parser/cxfa_submitformat.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_submitformat.h18
-rw-r--r--xfa/fxfa/parser/cxfa_submiturl.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_submiturl.h18
-rw-r--r--xfa/fxfa/parser/cxfa_subsetbelow.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_subsetbelow.h18
-rw-r--r--xfa/fxfa/parser/cxfa_suppressbanner.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_suppressbanner.h18
-rw-r--r--xfa/fxfa/parser/cxfa_tagged.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_tagged.h18
-rw-r--r--xfa/fxfa/parser/cxfa_template.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_template.h18
-rw-r--r--xfa/fxfa/parser/cxfa_templatecache.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_templatecache.h18
-rw-r--r--xfa/fxfa/parser/cxfa_text.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_text.h18
-rw-r--r--xfa/fxfa/parser/cxfa_textedit.cpp39
-rw-r--r--xfa/fxfa/parser/cxfa_textedit.h18
-rw-r--r--xfa/fxfa/parser/cxfa_threshold.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_threshold.h18
-rw-r--r--xfa/fxfa/parser/cxfa_time.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_time.h18
-rw-r--r--xfa/fxfa/parser/cxfa_timepattern.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_timepattern.h18
-rw-r--r--xfa/fxfa/parser/cxfa_timepatterns.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_timepatterns.h18
-rw-r--r--xfa/fxfa/parser/cxfa_timestamp.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_timestamp.h18
-rw-r--r--xfa/fxfa/parser/cxfa_to.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_to.h18
-rw-r--r--xfa/fxfa/parser/cxfa_tooltip.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_tooltip.h18
-rw-r--r--xfa/fxfa/parser/cxfa_trace.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_trace.h18
-rw-r--r--xfa/fxfa/parser/cxfa_transform.cpp34
-rw-r--r--xfa/fxfa/parser/cxfa_transform.h18
-rw-r--r--xfa/fxfa/parser/cxfa_traversal.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_traversal.h18
-rw-r--r--xfa/fxfa/parser/cxfa_traverse.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_traverse.h18
-rw-r--r--xfa/fxfa/parser/cxfa_type.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_type.h18
-rw-r--r--xfa/fxfa/parser/cxfa_typeface.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_typeface.h18
-rw-r--r--xfa/fxfa/parser/cxfa_typefaces.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_typefaces.h18
-rw-r--r--xfa/fxfa/parser/cxfa_ui.cpp45
-rw-r--r--xfa/fxfa/parser/cxfa_ui.h18
-rw-r--r--xfa/fxfa/parser/cxfa_update.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_update.h18
-rw-r--r--xfa/fxfa/parser/cxfa_uri.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_uri.h18
-rw-r--r--xfa/fxfa/parser/cxfa_user.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_user.h18
-rw-r--r--xfa/fxfa/parser/cxfa_validate.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_validate.h18
-rw-r--r--xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_validateapprovalsignatures.h18
-rw-r--r--xfa/fxfa/parser/cxfa_validationmessaging.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_validationmessaging.h18
-rw-r--r--xfa/fxfa/parser/cxfa_value.cpp44
-rw-r--r--xfa/fxfa/parser/cxfa_value.h18
-rw-r--r--xfa/fxfa/parser/cxfa_variables.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_variables.h18
-rw-r--r--xfa/fxfa/parser/cxfa_version.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_version.h18
-rw-r--r--xfa/fxfa/parser/cxfa_versioncontrol.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_versioncontrol.h18
-rw-r--r--xfa/fxfa/parser/cxfa_viewerpreferences.cpp40
-rw-r--r--xfa/fxfa/parser/cxfa_viewerpreferences.h18
-rw-r--r--xfa/fxfa/parser/cxfa_webclient.cpp32
-rw-r--r--xfa/fxfa/parser/cxfa_webclient.h18
-rw-r--r--xfa/fxfa/parser/cxfa_whitespace.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_whitespace.h18
-rw-r--r--xfa/fxfa/parser/cxfa_widgetdata.cpp7
-rw-r--r--xfa/fxfa/parser/cxfa_window.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_window.h18
-rw-r--r--xfa/fxfa/parser/cxfa_wsdladdress.cpp29
-rw-r--r--xfa/fxfa/parser/cxfa_wsdladdress.h18
-rw-r--r--xfa/fxfa/parser/cxfa_wsdlconnection.cpp38
-rw-r--r--xfa/fxfa/parser/cxfa_wsdlconnection.h18
-rw-r--r--xfa/fxfa/parser/cxfa_xdc.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_xdc.h18
-rw-r--r--xfa/fxfa/parser/cxfa_xdp.cpp30
-rw-r--r--xfa/fxfa/parser/cxfa_xdp.h18
-rw-r--r--xfa/fxfa/parser/cxfa_xfa.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_xfa.h18
-rw-r--r--xfa/fxfa/parser/cxfa_xmlconnection.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_xmlconnection.h18
-rw-r--r--xfa/fxfa/parser/cxfa_xsdconnection.cpp33
-rw-r--r--xfa/fxfa/parser/cxfa_xsdconnection.h18
-rw-r--r--xfa/fxfa/parser/cxfa_xsl.cpp31
-rw-r--r--xfa/fxfa/parser/cxfa_xsl.h18
-rw-r--r--xfa/fxfa/parser/cxfa_zpl.cpp35
-rw-r--r--xfa/fxfa/parser/cxfa_zpl.h18
-rw-r--r--xfa/fxfa/parser/xfa_basic_data.cpp674
-rw-r--r--xfa/fxfa/parser/xfa_basic_data.h11
-rw-r--r--xfa/fxfa/parser/xfa_basic_data_element_attributes.cpp1188
-rw-r--r--xfa/fxfa/parser/xfa_basic_data_element_properties.cpp487
-rw-r--r--xfa/fxfa/parser/xfa_utils.cpp66
-rw-r--r--xfa/fxfa/parser/xfa_utils.h7
636 files changed, 16978 insertions, 2548 deletions
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.cpp b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
new file mode 100644
index 0000000000..8f8ca30abd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_accessiblecontent.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"accessibleContent";
+
+} // namespace
+
+CXFA_AccessibleContent::CXFA_AccessibleContent(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::AccessibleContent,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AccessibleContent::~CXFA_AccessibleContent() {}
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.h b/xfa/fxfa/parser/cxfa_accessiblecontent.h
new file mode 100644
index 0000000000..75e7f38f11
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ACCESSIBLECONTENT_H_
+#define XFA_FXFA_PARSER_CXFA_ACCESSIBLECONTENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AccessibleContent : public CXFA_Node {
+ public:
+ CXFA_AccessibleContent(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AccessibleContent() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ACCESSIBLECONTENT_H_
diff --git a/xfa/fxfa/parser/cxfa_acrobat.cpp b/xfa/fxfa/parser/cxfa_acrobat.cpp
new file mode 100644
index 0000000000..8a0fcf4754
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_acrobat.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_acrobat.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::AutoSave, 1, 0},
+ {XFA_Element::Validate, 1, 0},
+ {XFA_Element::ValidateApprovalSignatures, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"acrobat";
+
+} // namespace
+
+CXFA_Acrobat::CXFA_Acrobat(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Acrobat,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Acrobat::~CXFA_Acrobat() {}
diff --git a/xfa/fxfa/parser/cxfa_acrobat.h b/xfa/fxfa/parser/cxfa_acrobat.h
new file mode 100644
index 0000000000..a7f85ebc41
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_acrobat.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ACROBAT_H_
+#define XFA_FXFA_PARSER_CXFA_ACROBAT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Acrobat : public CXFA_Node {
+ public:
+ CXFA_Acrobat(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Acrobat() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ACROBAT_H_
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.cpp b/xfa/fxfa/parser/cxfa_acrobat7.cpp
new file mode 100644
index 0000000000..6fa7a8bc10
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_acrobat7.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_acrobat7.h"
+
+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};
+
+constexpr wchar_t kName[] = L"acrobat7";
+
+} // namespace
+
+CXFA_Acrobat7::CXFA_Acrobat7(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Acrobat7,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Acrobat7::~CXFA_Acrobat7() {}
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.h b/xfa/fxfa/parser/cxfa_acrobat7.h
new file mode 100644
index 0000000000..e9ef61b8ba
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_acrobat7.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ACROBAT7_H_
+#define XFA_FXFA_PARSER_CXFA_ACROBAT7_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Acrobat7 : public CXFA_Node {
+ public:
+ CXFA_Acrobat7(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Acrobat7() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ACROBAT7_H_
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
new file mode 100644
index 0000000000..797076a94b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_adbe_jsconsole.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"ADBE_JSConsole";
+
+} // namespace
+
+CXFA_aDBE_JSConsole::CXFA_aDBE_JSConsole(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::ADBE_JSConsole,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_aDBE_JSConsole::~CXFA_aDBE_JSConsole() {}
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.h b/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
new file mode 100644
index 0000000000..40369f4c97
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ADBE_JSCONSOLE_H_
+#define XFA_FXFA_PARSER_CXFA_ADBE_JSCONSOLE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_aDBE_JSConsole : public CXFA_Node {
+ public:
+ CXFA_aDBE_JSConsole(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_aDBE_JSConsole() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ADBE_JSCONSOLE_H_
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
new file mode 100644
index 0000000000..bbd012341e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_adbe_jsdebugger.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"ADBE_JSDebugger";
+
+} // namespace
+
+CXFA_aDBE_JSDebugger::CXFA_aDBE_JSDebugger(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::ADBE_JSDebugger,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_aDBE_JSDebugger::~CXFA_aDBE_JSDebugger() {}
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
new file mode 100644
index 0000000000..0c2f122672
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ADBE_JSDEBUGGER_H_
+#define XFA_FXFA_PARSER_CXFA_ADBE_JSDEBUGGER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_aDBE_JSDebugger : public CXFA_Node {
+ public:
+ CXFA_aDBE_JSDebugger(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_aDBE_JSDebugger() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ADBE_JSDEBUGGER_H_
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.cpp b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
new file mode 100644
index 0000000000..da9e47a902
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_addsilentprint.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"addSilentPrint";
+
+} // namespace
+
+CXFA_AddSilentPrint::CXFA_AddSilentPrint(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::AddSilentPrint,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AddSilentPrint::~CXFA_AddSilentPrint() {}
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.h b/xfa/fxfa/parser/cxfa_addsilentprint.h
new file mode 100644
index 0000000000..844a0c1f20
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ADDSILENTPRINT_H_
+#define XFA_FXFA_PARSER_CXFA_ADDSILENTPRINT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AddSilentPrint : public CXFA_Node {
+ public:
+ CXFA_AddSilentPrint(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AddSilentPrint() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ADDSILENTPRINT_H_
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
new file mode 100644
index 0000000000..2311dc97d6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_addviewerpreferences.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"addViewerPreferences";
+
+} // namespace
+
+CXFA_AddViewerPreferences::CXFA_AddViewerPreferences(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::AddViewerPreferences,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AddViewerPreferences::~CXFA_AddViewerPreferences() {}
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.h b/xfa/fxfa/parser/cxfa_addviewerpreferences.h
new file mode 100644
index 0000000000..92d3f81784
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ADDVIEWERPREFERENCES_H_
+#define XFA_FXFA_PARSER_CXFA_ADDVIEWERPREFERENCES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AddViewerPreferences : public CXFA_Node {
+ public:
+ CXFA_AddViewerPreferences(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AddViewerPreferences() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ADDVIEWERPREFERENCES_H_
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.cpp b/xfa/fxfa/parser/cxfa_adjustdata.cpp
new file mode 100644
index 0000000000..cbfb8f3212
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adjustdata.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_adjustdata.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"adjustData";
+
+} // namespace
+
+CXFA_AdjustData::CXFA_AdjustData(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::AdjustData,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AdjustData::~CXFA_AdjustData() {}
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.h b/xfa/fxfa/parser/cxfa_adjustdata.h
new file mode 100644
index 0000000000..59aced8532
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adjustdata.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ADJUSTDATA_H_
+#define XFA_FXFA_PARSER_CXFA_ADJUSTDATA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AdjustData : public CXFA_Node {
+ public:
+ CXFA_AdjustData(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AdjustData() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ADJUSTDATA_H_
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
new file mode 100644
index 0000000000..781f588a35
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_adobeextensionlevel.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"adobeExtensionLevel";
+
+} // namespace
+
+CXFA_AdobeExtensionLevel::CXFA_AdobeExtensionLevel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::AdobeExtensionLevel,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AdobeExtensionLevel::~CXFA_AdobeExtensionLevel() {}
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.h b/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
new file mode 100644
index 0000000000..0fe4184b78
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ADOBEEXTENSIONLEVEL_H_
+#define XFA_FXFA_PARSER_CXFA_ADOBEEXTENSIONLEVEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AdobeExtensionLevel : public CXFA_Node {
+ public:
+ CXFA_AdobeExtensionLevel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AdobeExtensionLevel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ADOBEEXTENSIONLEVEL_H_
diff --git a/xfa/fxfa/parser/cxfa_agent.cpp b/xfa/fxfa/parser/cxfa_agent.cpp
new file mode 100644
index 0000000000..2794bae6df
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_agent.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_agent.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Name, XFA_Attribute::Desc, XFA_Attribute::Lock,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"agent";
+
+} // namespace
+
+CXFA_Agent::CXFA_Agent(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Agent,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Agent::~CXFA_Agent() {}
diff --git a/xfa/fxfa/parser/cxfa_agent.h b/xfa/fxfa/parser/cxfa_agent.h
new file mode 100644
index 0000000000..a7b244b83d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_agent.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_AGENT_H_
+#define XFA_FXFA_PARSER_CXFA_AGENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Agent : public CXFA_Node {
+ public:
+ CXFA_Agent(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Agent() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_AGENT_H_
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.cpp b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
new file mode 100644
index 0000000000..098a491968
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_alwaysembed.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"alwaysEmbed";
+
+} // namespace
+
+CXFA_AlwaysEmbed::CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::AlwaysEmbed,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AlwaysEmbed::~CXFA_AlwaysEmbed() {}
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.h b/xfa/fxfa/parser/cxfa_alwaysembed.h
new file mode 100644
index 0000000000..865f2a0e6b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ALWAYSEMBED_H_
+#define XFA_FXFA_PARSER_CXFA_ALWAYSEMBED_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AlwaysEmbed : public CXFA_Node {
+ public:
+ CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AlwaysEmbed() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ALWAYSEMBED_H_
diff --git a/xfa/fxfa/parser/cxfa_amd.cpp b/xfa/fxfa/parser/cxfa_amd.cpp
new file mode 100644
index 0000000000..c92dd3972a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_amd.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_amd.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"amd";
+
+} // namespace
+
+CXFA_Amd::CXFA_Amd(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Amd,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Amd::~CXFA_Amd() {}
diff --git a/xfa/fxfa/parser/cxfa_amd.h b/xfa/fxfa/parser/cxfa_amd.h
new file mode 100644
index 0000000000..bf5ece80a8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_amd.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_AMD_H_
+#define XFA_FXFA_PARSER_CXFA_AMD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Amd : public CXFA_Node {
+ public:
+ CXFA_Amd(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Amd() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_AMD_H_
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.cpp b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
new file mode 100644
index 0000000000..ef2c4149bf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_appearancefilter.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"appearanceFilter";
+
+} // namespace
+
+CXFA_AppearanceFilter::CXFA_AppearanceFilter(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeC,
+ XFA_Element::AppearanceFilter,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AppearanceFilter::~CXFA_AppearanceFilter() {}
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.h b/xfa/fxfa/parser/cxfa_appearancefilter.h
new file mode 100644
index 0000000000..e495809c0e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_APPEARANCEFILTER_H_
+#define XFA_FXFA_PARSER_CXFA_APPEARANCEFILTER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AppearanceFilter : public CXFA_Node {
+ public:
+ CXFA_AppearanceFilter(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AppearanceFilter() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_APPEARANCEFILTER_H_
diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp
new file mode 100644
index 0000000000..fbcc088bb4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_arc.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_arc.h"
+
+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};
+
+constexpr wchar_t kName[] = L"arc";
+
+} // namespace
+
+CXFA_Arc::CXFA_Arc(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Arc,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Arc::~CXFA_Arc() {}
diff --git a/xfa/fxfa/parser/cxfa_arc.h b/xfa/fxfa/parser/cxfa_arc.h
new file mode 100644
index 0000000000..6127784396
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_arc.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ARC_H_
+#define XFA_FXFA_PARSER_CXFA_ARC_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Arc : public CXFA_Node {
+ public:
+ CXFA_Arc(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Arc() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ARC_H_
diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp
new file mode 100644
index 0000000000..23a0bbea0c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_area.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_area.h"
+
+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};
+
+constexpr wchar_t kName[] = L"area";
+
+} // namespace
+
+CXFA_Area::CXFA_Area(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::Area,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Area::~CXFA_Area() {}
diff --git a/xfa/fxfa/parser/cxfa_area.h b/xfa/fxfa/parser/cxfa_area.h
new file mode 100644
index 0000000000..c1875800f2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_area.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_AREA_H_
+#define XFA_FXFA_PARSER_CXFA_AREA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Area : public CXFA_Node {
+ public:
+ CXFA_Area(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Area() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_AREA_H_
diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp
new file mode 100644
index 0000000000..2780e7a3a0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_assist.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_assist.h"
+
+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};
+
+constexpr wchar_t kName[] = L"assist";
+
+} // namespace
+
+CXFA_Assist::CXFA_Assist(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Assist,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Assist::~CXFA_Assist() {}
diff --git a/xfa/fxfa/parser/cxfa_assist.h b/xfa/fxfa/parser/cxfa_assist.h
new file mode 100644
index 0000000000..642a501f8e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_assist.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ASSIST_H_
+#define XFA_FXFA_PARSER_CXFA_ASSIST_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Assist : public CXFA_Node {
+ public:
+ CXFA_Assist(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Assist() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ASSIST_H_
diff --git a/xfa/fxfa/parser/cxfa_attributes.cpp b/xfa/fxfa/parser/cxfa_attributes.cpp
new file mode 100644
index 0000000000..d0bbfa6f7c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_attributes.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_attributes.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"attributes";
+
+} // namespace
+
+CXFA_Attributes::CXFA_Attributes(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Attributes,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Attributes::~CXFA_Attributes() {}
diff --git a/xfa/fxfa/parser/cxfa_attributes.h b/xfa/fxfa/parser/cxfa_attributes.h
new file mode 100644
index 0000000000..8441d75e81
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_attributes.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ATTRIBUTES_H_
+#define XFA_FXFA_PARSER_CXFA_ATTRIBUTES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Attributes : public CXFA_Node {
+ public:
+ CXFA_Attributes(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Attributes() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ATTRIBUTES_H_
diff --git a/xfa/fxfa/parser/cxfa_autosave.cpp b/xfa/fxfa/parser/cxfa_autosave.cpp
new file mode 100644
index 0000000000..5719b1dda8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_autosave.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_autosave.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"autoSave";
+
+} // namespace
+
+CXFA_AutoSave::CXFA_AutoSave(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::AutoSave,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_AutoSave::~CXFA_AutoSave() {}
diff --git a/xfa/fxfa/parser/cxfa_autosave.h b/xfa/fxfa/parser/cxfa_autosave.h
new file mode 100644
index 0000000000..208917f1c7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_autosave.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_AUTOSAVE_H_
+#define XFA_FXFA_PARSER_CXFA_AUTOSAVE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_AutoSave : public CXFA_Node {
+ public:
+ CXFA_AutoSave(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_AutoSave() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_AUTOSAVE_H_
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
new file mode 100644
index 0000000000..1abbbe4edb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -0,0 +1,48 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_barcode.h"
+
+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};
+
+constexpr wchar_t kName[] = L"barcode";
+
+} // namespace
+
+CXFA_Barcode::CXFA_Barcode(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Barcode,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Barcode::~CXFA_Barcode() {}
diff --git a/xfa/fxfa/parser/cxfa_barcode.h b/xfa/fxfa/parser/cxfa_barcode.h
new file mode 100644
index 0000000000..78a27f3563
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_barcode.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BARCODE_H_
+#define XFA_FXFA_PARSER_CXFA_BARCODE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Barcode : public CXFA_Node {
+ public:
+ CXFA_Barcode(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Barcode() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BARCODE_H_
diff --git a/xfa/fxfa/parser/cxfa_base.cpp b/xfa/fxfa/parser/cxfa_base.cpp
new file mode 100644
index 0000000000..c59b63b0dc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_base.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_base.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"base";
+
+} // namespace
+
+CXFA_Base::CXFA_Base(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Base,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Base::~CXFA_Base() {}
diff --git a/xfa/fxfa/parser/cxfa_base.h b/xfa/fxfa/parser/cxfa_base.h
new file mode 100644
index 0000000000..e92bd7979e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_base.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BASE_H_
+#define XFA_FXFA_PARSER_CXFA_BASE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Base : public CXFA_Node {
+ public:
+ CXFA_Base(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Base() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BASE_H_
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.cpp b/xfa/fxfa/parser/cxfa_batchoutput.cpp
new file mode 100644
index 0000000000..ee399eae89
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_batchoutput.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_batchoutput.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Format, XFA_Attribute::Desc, XFA_Attribute::Lock,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"batchOutput";
+
+} // namespace
+
+CXFA_BatchOutput::CXFA_BatchOutput(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::BatchOutput,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_BatchOutput::~CXFA_BatchOutput() {}
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.h b/xfa/fxfa/parser/cxfa_batchoutput.h
new file mode 100644
index 0000000000..f06332a9c8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_batchoutput.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BATCHOUTPUT_H_
+#define XFA_FXFA_PARSER_CXFA_BATCHOUTPUT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_BatchOutput : public CXFA_Node {
+ public:
+ CXFA_BatchOutput(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_BatchOutput() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BATCHOUTPUT_H_
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.cpp b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
new file mode 100644
index 0000000000..8a74a8a216
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_behavioroverride.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"behaviorOverride";
+
+} // namespace
+
+CXFA_BehaviorOverride::CXFA_BehaviorOverride(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::BehaviorOverride,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_BehaviorOverride::~CXFA_BehaviorOverride() {}
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.h b/xfa/fxfa/parser/cxfa_behavioroverride.h
new file mode 100644
index 0000000000..fa9f54a5f6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BEHAVIOROVERRIDE_H_
+#define XFA_FXFA_PARSER_CXFA_BEHAVIOROVERRIDE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_BehaviorOverride : public CXFA_Node {
+ public:
+ CXFA_BehaviorOverride(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_BehaviorOverride() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BEHAVIOROVERRIDE_H_
diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp
new file mode 100644
index 0000000000..dde162f382
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_bind.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_bind.h"
+
+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};
+
+constexpr wchar_t kName[] = L"bind";
+
+} // namespace
+
+CXFA_Bind::CXFA_Bind(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Bind,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Bind::~CXFA_Bind() {}
diff --git a/xfa/fxfa/parser/cxfa_bind.h b/xfa/fxfa/parser/cxfa_bind.h
new file mode 100644
index 0000000000..961adc734e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_bind.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BIND_H_
+#define XFA_FXFA_PARSER_CXFA_BIND_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Bind : public CXFA_Node {
+ public:
+ CXFA_Bind(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Bind() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BIND_H_
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
new file mode 100644
index 0000000000..fd012035e4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_binditems.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Ref, XFA_Attribute::Connection, XFA_Attribute::LabelRef,
+ XFA_Attribute::ValueRef, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"bindItems";
+
+} // namespace
+
+CXFA_BindItems::CXFA_BindItems(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::BindItems,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_BindItems::~CXFA_BindItems() {}
diff --git a/xfa/fxfa/parser/cxfa_binditems.h b/xfa/fxfa/parser/cxfa_binditems.h
new file mode 100644
index 0000000000..4c31be182e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_binditems.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BINDITEMS_H_
+#define XFA_FXFA_PARSER_CXFA_BINDITEMS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_BindItems : public CXFA_Node {
+ public:
+ CXFA_BindItems(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_BindItems() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BINDITEMS_H_
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
new file mode 100644
index 0000000000..6c8f6b54db
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_bookend.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Trailer,
+ XFA_Attribute::Usehref, XFA_Attribute::Leader, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"bookend";
+
+} // namespace
+
+CXFA_Bookend::CXFA_Bookend(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Bookend,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Bookend::~CXFA_Bookend() {}
diff --git a/xfa/fxfa/parser/cxfa_bookend.h b/xfa/fxfa/parser/cxfa_bookend.h
new file mode 100644
index 0000000000..51308e0930
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_bookend.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BOOKEND_H_
+#define XFA_FXFA_PARSER_CXFA_BOOKEND_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Bookend : public CXFA_Node {
+ public:
+ CXFA_Bookend(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Bookend() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BOOKEND_H_
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
new file mode 100644
index 0000000000..22ac1214f3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_boolean.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"boolean";
+
+} // namespace
+
+CXFA_Boolean::CXFA_Boolean(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Boolean,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Boolean::~CXFA_Boolean() {}
diff --git a/xfa/fxfa/parser/cxfa_boolean.h b/xfa/fxfa/parser/cxfa_boolean.h
new file mode 100644
index 0000000000..a43d870831
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_boolean.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BOOLEAN_H_
+#define XFA_FXFA_PARSER_CXFA_BOOLEAN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Boolean : public CXFA_Node {
+ public:
+ CXFA_Boolean(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Boolean() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BOOLEAN_H_
diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp
new file mode 100644
index 0000000000..be206b71de
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_border.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_border.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"border";
+
+} // namespace
+
+CXFA_Border::CXFA_Border(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Border,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Border::~CXFA_Border() {}
diff --git a/xfa/fxfa/parser/cxfa_border.h b/xfa/fxfa/parser/cxfa_border.h
new file mode 100644
index 0000000000..050dd16f0c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_border.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BORDER_H_
+#define XFA_FXFA_PARSER_CXFA_BORDER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Border : public CXFA_Node {
+ public:
+ CXFA_Border(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Border() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BORDER_H_
diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp
new file mode 100644
index 0000000000..f8c7ce0cf8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_break.cpp
@@ -0,0 +1,42 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_break.h"
+
+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};
+
+constexpr wchar_t kName[] = L"break";
+
+} // namespace
+
+CXFA_Break::CXFA_Break(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Break,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Break::~CXFA_Break() {}
diff --git a/xfa/fxfa/parser/cxfa_break.h b/xfa/fxfa/parser/cxfa_break.h
new file mode 100644
index 0000000000..25aa8c1733
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_break.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BREAK_H_
+#define XFA_FXFA_PARSER_CXFA_BREAK_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Break : public CXFA_Node {
+ public:
+ CXFA_Break(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Break() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BREAK_H_
diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp
new file mode 100644
index 0000000000..711391e46c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_breakafter.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_breakafter.h"
+
+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};
+
+constexpr wchar_t kName[] = L"breakAfter";
+
+} // namespace
+
+CXFA_BreakAfter::CXFA_BreakAfter(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::BreakAfter,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_BreakAfter::~CXFA_BreakAfter() {}
diff --git a/xfa/fxfa/parser/cxfa_breakafter.h b/xfa/fxfa/parser/cxfa_breakafter.h
new file mode 100644
index 0000000000..242bf9f8bb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_breakafter.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BREAKAFTER_H_
+#define XFA_FXFA_PARSER_CXFA_BREAKAFTER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_BreakAfter : public CXFA_Node {
+ public:
+ CXFA_BreakAfter(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_BreakAfter() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BREAKAFTER_H_
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp
new file mode 100644
index 0000000000..fbc10c7274
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_breakbefore.h"
+
+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};
+
+constexpr wchar_t kName[] = L"breakBefore";
+
+} // namespace
+
+CXFA_BreakBefore::CXFA_BreakBefore(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::BreakBefore,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_BreakBefore::~CXFA_BreakBefore() {}
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.h b/xfa/fxfa/parser/cxfa_breakbefore.h
new file mode 100644
index 0000000000..76078f061c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_breakbefore.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BREAKBEFORE_H_
+#define XFA_FXFA_PARSER_CXFA_BREAKBEFORE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_BreakBefore : public CXFA_Node {
+ public:
+ CXFA_BreakBefore(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_BreakBefore() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BREAKBEFORE_H_
diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp
new file mode 100644
index 0000000000..59b1eb5937
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_button.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_button.h"
+
+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};
+
+constexpr wchar_t kName[] = L"button";
+
+} // namespace
+
+CXFA_Button::CXFA_Button(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Button,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Button::~CXFA_Button() {}
diff --git a/xfa/fxfa/parser/cxfa_button.h b/xfa/fxfa/parser/cxfa_button.h
new file mode 100644
index 0000000000..dbf9102690
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_button.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_BUTTON_H_
+#define XFA_FXFA_PARSER_CXFA_BUTTON_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Button : public CXFA_Node {
+ public:
+ CXFA_Button(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Button() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_BUTTON_H_
diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp
new file mode 100644
index 0000000000..4d278d34ac
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_cache.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_cache.h"
+
+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};
+
+constexpr wchar_t kName[] = L"cache";
+
+} // namespace
+
+CXFA_Cache::CXFA_Cache(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Cache,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Cache::~CXFA_Cache() {}
diff --git a/xfa/fxfa/parser/cxfa_cache.h b/xfa/fxfa/parser/cxfa_cache.h
new file mode 100644
index 0000000000..2e4ca124e4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_cache.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CACHE_H_
+#define XFA_FXFA_PARSER_CXFA_CACHE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Cache : public CXFA_Node {
+ public:
+ CXFA_Cache(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Cache() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CACHE_H_
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
new file mode 100644
index 0000000000..641fa2bf1d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_calculate.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"calculate";
+
+} // namespace
+
+CXFA_Calculate::CXFA_Calculate(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Calculate,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Calculate::~CXFA_Calculate() {}
diff --git a/xfa/fxfa/parser/cxfa_calculate.h b/xfa/fxfa/parser/cxfa_calculate.h
new file mode 100644
index 0000000000..9853c23890
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_calculate.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CALCULATE_H_
+#define XFA_FXFA_PARSER_CXFA_CALCULATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Calculate : public CXFA_Node {
+ public:
+ CXFA_Calculate(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Calculate() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CALCULATE_H_
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.cpp b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
new file mode 100644
index 0000000000..6730636f25
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_calendarsymbols.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::EraNames, 1, 0},
+ {XFA_Element::DayNames, 2, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"calendarSymbols";
+
+} // namespace
+
+CXFA_CalendarSymbols::CXFA_CalendarSymbols(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::CalendarSymbols,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_CalendarSymbols::~CXFA_CalendarSymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.h b/xfa/fxfa/parser/cxfa_calendarsymbols.h
new file mode 100644
index 0000000000..c12bdb0a97
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CALENDARSYMBOLS_H_
+#define XFA_FXFA_PARSER_CXFA_CALENDARSYMBOLS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CalendarSymbols : public CXFA_Node {
+ public:
+ CXFA_CalendarSymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CalendarSymbols() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CALENDARSYMBOLS_H_
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
new file mode 100644
index 0000000000..195b7aacd0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_caption.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"caption";
+
+} // namespace
+
+CXFA_Caption::CXFA_Caption(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Caption,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Caption::~CXFA_Caption() {}
diff --git a/xfa/fxfa/parser/cxfa_caption.h b/xfa/fxfa/parser/cxfa_caption.h
new file mode 100644
index 0000000000..3b3b8b59cd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_caption.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CAPTION_H_
+#define XFA_FXFA_PARSER_CXFA_CAPTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Caption : public CXFA_Node {
+ public:
+ CXFA_Caption(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Caption() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CAPTION_H_
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
new file mode 100644
index 0000000000..4983b080a7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_certificate.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"certificate";
+
+} // namespace
+
+CXFA_Certificate::CXFA_Certificate(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Certificate,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Certificate::~CXFA_Certificate() {}
diff --git a/xfa/fxfa/parser/cxfa_certificate.h b/xfa/fxfa/parser/cxfa_certificate.h
new file mode 100644
index 0000000000..7e0ffbebc1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_certificate.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CERTIFICATE_H_
+#define XFA_FXFA_PARSER_CXFA_CERTIFICATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Certificate : public CXFA_Node {
+ public:
+ CXFA_Certificate(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Certificate() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CERTIFICATE_H_
diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp
new file mode 100644
index 0000000000..d1465b4f8c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_certificates.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_certificates.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"certificates";
+
+} // namespace
+
+CXFA_Certificates::CXFA_Certificates(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Certificates,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Certificates::~CXFA_Certificates() {}
diff --git a/xfa/fxfa/parser/cxfa_certificates.h b/xfa/fxfa/parser/cxfa_certificates.h
new file mode 100644
index 0000000000..dc262393a4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_certificates.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CERTIFICATES_H_
+#define XFA_FXFA_PARSER_CXFA_CERTIFICATES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Certificates : public CXFA_Node {
+ public:
+ CXFA_Certificates(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Certificates() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CERTIFICATES_H_
diff --git a/xfa/fxfa/parser/cxfa_change.cpp b/xfa/fxfa/parser/cxfa_change.cpp
new file mode 100644
index 0000000000..491eddefe0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_change.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_change.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"change";
+
+} // namespace
+
+CXFA_Change::CXFA_Change(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Change,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Change::~CXFA_Change() {}
diff --git a/xfa/fxfa/parser/cxfa_change.h b/xfa/fxfa/parser/cxfa_change.h
new file mode 100644
index 0000000000..a332e85dbf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_change.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CHANGE_H_
+#define XFA_FXFA_PARSER_CXFA_CHANGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Change : public CXFA_Node {
+ public:
+ CXFA_Change(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Change() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CHANGE_H_
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp
new file mode 100644
index 0000000000..3684c8531b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_checkbutton.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"checkButton";
+
+} // namespace
+
+CXFA_CheckButton::CXFA_CheckButton(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::CheckButton,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_CheckButton::~CXFA_CheckButton() {}
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.h b/xfa/fxfa/parser/cxfa_checkbutton.h
new file mode 100644
index 0000000000..d81de78e51
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_checkbutton.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CHECKBUTTON_H_
+#define XFA_FXFA_PARSER_CXFA_CHECKBUTTON_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CheckButton : public CXFA_Node {
+ public:
+ CXFA_CheckButton(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CheckButton() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CHECKBUTTON_H_
diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp
new file mode 100644
index 0000000000..a9097a1963
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_choicelist.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_choicelist.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"choiceList";
+
+} // namespace
+
+CXFA_ChoiceList::CXFA_ChoiceList(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::ChoiceList,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_ChoiceList::~CXFA_ChoiceList() {}
diff --git a/xfa/fxfa/parser/cxfa_choicelist.h b/xfa/fxfa/parser/cxfa_choicelist.h
new file mode 100644
index 0000000000..8d96070aba
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_choicelist.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CHOICELIST_H_
+#define XFA_FXFA_PARSER_CXFA_CHOICELIST_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ChoiceList : public CXFA_Node {
+ public:
+ CXFA_ChoiceList(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ChoiceList() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CHOICELIST_H_
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
new file mode 100644
index 0000000000..f943318a21
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_color.h"
+
+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};
+
+constexpr wchar_t kName[] = L"color";
+
+} // namespace
+
+CXFA_Color::CXFA_Color(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Color,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Color::~CXFA_Color() {}
diff --git a/xfa/fxfa/parser/cxfa_color.h b/xfa/fxfa/parser/cxfa_color.h
new file mode 100644
index 0000000000..88b2e3bf98
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_color.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COLOR_H_
+#define XFA_FXFA_PARSER_CXFA_COLOR_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Color : public CXFA_Node {
+ public:
+ CXFA_Color(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Color() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COLOR_H_
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
new file mode 100644
index 0000000000..6566301af1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_comb.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::NumberOfCells,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"comb";
+
+} // namespace
+
+CXFA_Comb::CXFA_Comb(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Comb,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Comb::~CXFA_Comb() {}
diff --git a/xfa/fxfa/parser/cxfa_comb.h b/xfa/fxfa/parser/cxfa_comb.h
new file mode 100644
index 0000000000..f08bbdd03c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_comb.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMB_H_
+#define XFA_FXFA_PARSER_CXFA_COMB_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Comb : public CXFA_Node {
+ public:
+ CXFA_Comb(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Comb() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMB_H_
diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp
new file mode 100644
index 0000000000..56ffabc831
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_command.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_command.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Query, 1, 0},
+ {XFA_Element::Insert, 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};
+
+constexpr wchar_t kName[] = L"command";
+
+} // namespace
+
+CXFA_Command::CXFA_Command(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::Node,
+ XFA_Element::Command,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Command::~CXFA_Command() {}
diff --git a/xfa/fxfa/parser/cxfa_command.h b/xfa/fxfa/parser/cxfa_command.h
new file mode 100644
index 0000000000..a5942673bf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_command.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMMAND_H_
+#define XFA_FXFA_PARSER_CXFA_COMMAND_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Command : public CXFA_Node {
+ public:
+ CXFA_Command(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Command() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMMAND_H_
diff --git a/xfa/fxfa/parser/cxfa_common.cpp b/xfa/fxfa/parser/cxfa_common.cpp
new file mode 100644
index 0000000000..829c00c595
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_common.cpp
@@ -0,0 +1,38 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_common.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::SuppressBanner, 1, 0},
+ {XFA_Element::VersionControl, 1, 0},
+ {XFA_Element::LocaleSet, 1, 0},
+ {XFA_Element::Template, 1, 0},
+ {XFA_Element::ValidationMessaging, 1, 0},
+ {XFA_Element::Locale, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"common";
+
+} // namespace
+
+CXFA_Common::CXFA_Common(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Common,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Common::~CXFA_Common() {}
diff --git a/xfa/fxfa/parser/cxfa_common.h b/xfa/fxfa/parser/cxfa_common.h
new file mode 100644
index 0000000000..51c3398709
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_common.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMMON_H_
+#define XFA_FXFA_PARSER_CXFA_COMMON_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Common : public CXFA_Node {
+ public:
+ CXFA_Common(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Common() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMMON_H_
diff --git a/xfa/fxfa/parser/cxfa_compress.cpp b/xfa/fxfa/parser/cxfa_compress.cpp
new file mode 100644
index 0000000000..31a15dfaf2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compress.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_compress.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Scope, XFA_Attribute::Lock,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"compress";
+
+} // namespace
+
+CXFA_Compress::CXFA_Compress(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Compress,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Compress::~CXFA_Compress() {}
diff --git a/xfa/fxfa/parser/cxfa_compress.h b/xfa/fxfa/parser/cxfa_compress.h
new file mode 100644
index 0000000000..6a0243fa51
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compress.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMPRESS_H_
+#define XFA_FXFA_PARSER_CXFA_COMPRESS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Compress : public CXFA_Node {
+ public:
+ CXFA_Compress(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Compress() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMPRESS_H_
diff --git a/xfa/fxfa/parser/cxfa_compression.cpp b/xfa/fxfa/parser/cxfa_compression.cpp
new file mode 100644
index 0000000000..305670b7d4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compression.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_compression.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Level, 1, 0},
+ {XFA_Element::Type, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"compression";
+
+} // namespace
+
+CXFA_Compression::CXFA_Compression(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Compression,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Compression::~CXFA_Compression() {}
diff --git a/xfa/fxfa/parser/cxfa_compression.h b/xfa/fxfa/parser/cxfa_compression.h
new file mode 100644
index 0000000000..03b6f07357
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compression.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMPRESSION_H_
+#define XFA_FXFA_PARSER_CXFA_COMPRESSION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Compression : public CXFA_Node {
+ public:
+ CXFA_Compression(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Compression() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMPRESSION_H_
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
new file mode 100644
index 0000000000..92e9e4f8bc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_compresslogicalstructure.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"compressLogicalStructure";
+
+} // namespace
+
+CXFA_CompressLogicalStructure::CXFA_CompressLogicalStructure(
+ CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::CompressLogicalStructure,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_CompressLogicalStructure::~CXFA_CompressLogicalStructure() {}
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.h b/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
new file mode 100644
index 0000000000..01f9df7487
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMPRESSLOGICALSTRUCTURE_H_
+#define XFA_FXFA_PARSER_CXFA_COMPRESSLOGICALSTRUCTURE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CompressLogicalStructure : public CXFA_Node {
+ public:
+ CXFA_CompressLogicalStructure(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CompressLogicalStructure() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMPRESSLOGICALSTRUCTURE_H_
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.cpp b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
new file mode 100644
index 0000000000..7e51772ff1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_compressobjectstream.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"compressObjectStream";
+
+} // namespace
+
+CXFA_CompressObjectStream::CXFA_CompressObjectStream(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::CompressObjectStream,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_CompressObjectStream::~CXFA_CompressObjectStream() {}
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.h b/xfa/fxfa/parser/cxfa_compressobjectstream.h
new file mode 100644
index 0000000000..2a72521d1d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COMPRESSOBJECTSTREAM_H_
+#define XFA_FXFA_PARSER_CXFA_COMPRESSOBJECTSTREAM_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CompressObjectStream : public CXFA_Node {
+ public:
+ CXFA_CompressObjectStream(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CompressObjectStream() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COMPRESSOBJECTSTREAM_H_
diff --git a/xfa/fxfa/parser/cxfa_config.cpp b/xfa/fxfa/parser/cxfa_config.cpp
new file mode 100644
index 0000000000..5e02534804
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_config.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_config.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"config";
+
+} // namespace
+
+CXFA_Config::CXFA_Config(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ModelNode,
+ XFA_Element::Config,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Config::~CXFA_Config() {}
diff --git a/xfa/fxfa/parser/cxfa_config.h b/xfa/fxfa/parser/cxfa_config.h
new file mode 100644
index 0000000000..e995380fdf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_config.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONFIG_H_
+#define XFA_FXFA_PARSER_CXFA_CONFIG_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Config : public CXFA_Node {
+ public:
+ CXFA_Config(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Config() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONFIG_H_
diff --git a/xfa/fxfa/parser/cxfa_conformance.cpp b/xfa/fxfa/parser/cxfa_conformance.cpp
new file mode 100644
index 0000000000..6777473bb9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_conformance.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_conformance.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"conformance";
+
+} // namespace
+
+CXFA_Conformance::CXFA_Conformance(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Conformance,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Conformance::~CXFA_Conformance() {}
diff --git a/xfa/fxfa/parser/cxfa_conformance.h b/xfa/fxfa/parser/cxfa_conformance.h
new file mode 100644
index 0000000000..bb0b7657a3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_conformance.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONFORMANCE_H_
+#define XFA_FXFA_PARSER_CXFA_CONFORMANCE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Conformance : public CXFA_Node {
+ public:
+ CXFA_Conformance(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Conformance() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONFORMANCE_H_
diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp
new file mode 100644
index 0000000000..145eff6a50
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_connect.cpp
@@ -0,0 +1,38 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_connect.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Picture, 1, 0},
+ {XFA_Element::ConnectString, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"connect";
+
+} // namespace
+
+CXFA_Connect::CXFA_Connect(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Connect,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Connect::~CXFA_Connect() {}
diff --git a/xfa/fxfa/parser/cxfa_connect.h b/xfa/fxfa/parser/cxfa_connect.h
new file mode 100644
index 0000000000..a052c9cdba
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_connect.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONNECT_H_
+#define XFA_FXFA_PARSER_CXFA_CONNECT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Connect : public CXFA_Node {
+ public:
+ CXFA_Connect(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Connect() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONNECT_H_
diff --git a/xfa/fxfa/parser/cxfa_connectionset.cpp b/xfa/fxfa/parser/cxfa_connectionset.cpp
new file mode 100644
index 0000000000..9f0d1a4b0a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_connectionset.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_connectionset.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"connectionSet";
+
+} // namespace
+
+CXFA_ConnectionSet::CXFA_ConnectionSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::ModelNode,
+ XFA_Element::ConnectionSet,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_ConnectionSet::~CXFA_ConnectionSet() {}
diff --git a/xfa/fxfa/parser/cxfa_connectionset.h b/xfa/fxfa/parser/cxfa_connectionset.h
new file mode 100644
index 0000000000..cf36cda7d9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_connectionset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONNECTIONSET_H_
+#define XFA_FXFA_PARSER_CXFA_CONNECTIONSET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ConnectionSet : public CXFA_Node {
+ public:
+ CXFA_ConnectionSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ConnectionSet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONNECTIONSET_H_
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
new file mode 100644
index 0000000000..047f459fd3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_connectstring.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"connectString";
+
+} // namespace
+
+CXFA_ConnectString::CXFA_ConnectString(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::ConnectString,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ConnectString::~CXFA_ConnectString() {}
diff --git a/xfa/fxfa/parser/cxfa_connectstring.h b/xfa/fxfa/parser/cxfa_connectstring.h
new file mode 100644
index 0000000000..f60d93751e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_connectstring.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONNECTSTRING_H_
+#define XFA_FXFA_PARSER_CXFA_CONNECTSTRING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ConnectString : public CXFA_Node {
+ public:
+ CXFA_ConnectString(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ConnectString() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONNECTSTRING_H_
diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp
new file mode 100644
index 0000000000..e1537522a7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_contentarea.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_contentarea.h"
+
+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};
+
+constexpr wchar_t kName[] = L"contentArea";
+
+} // namespace
+
+CXFA_ContentArea::CXFA_ContentArea(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::ContentArea,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_ContentArea::~CXFA_ContentArea() {}
diff --git a/xfa/fxfa/parser/cxfa_contentarea.h b/xfa/fxfa/parser/cxfa_contentarea.h
new file mode 100644
index 0000000000..49776813bb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_contentarea.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONTENTAREA_H_
+#define XFA_FXFA_PARSER_CXFA_CONTENTAREA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ContentArea : public CXFA_Node {
+ public:
+ CXFA_ContentArea(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ContentArea() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONTENTAREA_H_
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.cpp b/xfa/fxfa/parser/cxfa_contentcopy.cpp
new file mode 100644
index 0000000000..7a3b797dec
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_contentcopy.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_contentcopy.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"contentCopy";
+
+} // namespace
+
+CXFA_ContentCopy::CXFA_ContentCopy(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::ContentCopy,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ContentCopy::~CXFA_ContentCopy() {}
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.h b/xfa/fxfa/parser/cxfa_contentcopy.h
new file mode 100644
index 0000000000..d7a3e15528
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_contentcopy.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CONTENTCOPY_H_
+#define XFA_FXFA_PARSER_CXFA_CONTENTCOPY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ContentCopy : public CXFA_Node {
+ public:
+ CXFA_ContentCopy(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ContentCopy() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CONTENTCOPY_H_
diff --git a/xfa/fxfa/parser/cxfa_copies.cpp b/xfa/fxfa/parser/cxfa_copies.cpp
new file mode 100644
index 0000000000..2ca087eac6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_copies.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_copies.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"copies";
+
+} // namespace
+
+CXFA_Copies::CXFA_Copies(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Copies,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Copies::~CXFA_Copies() {}
diff --git a/xfa/fxfa/parser/cxfa_copies.h b/xfa/fxfa/parser/cxfa_copies.h
new file mode 100644
index 0000000000..00128e38a0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_copies.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_COPIES_H_
+#define XFA_FXFA_PARSER_CXFA_COPIES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Copies : public CXFA_Node {
+ public:
+ CXFA_Copies(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Copies() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_COPIES_H_
diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp
new file mode 100644
index 0000000000..be1751b026
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_corner.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_corner.h"
+
+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};
+
+constexpr wchar_t kName[] = L"corner";
+
+} // namespace
+
+CXFA_Corner::CXFA_Corner(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Corner,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Corner::~CXFA_Corner() {}
diff --git a/xfa/fxfa/parser/cxfa_corner.h b/xfa/fxfa/parser/cxfa_corner.h
new file mode 100644
index 0000000000..44b40a0a85
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_corner.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CORNER_H_
+#define XFA_FXFA_PARSER_CXFA_CORNER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Corner : public CXFA_Node {
+ public:
+ CXFA_Corner(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Corner() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CORNER_H_
diff --git a/xfa/fxfa/parser/cxfa_creator.cpp b/xfa/fxfa/parser/cxfa_creator.cpp
new file mode 100644
index 0000000000..4913a863e6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_creator.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_creator.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"creator";
+
+} // namespace
+
+CXFA_Creator::CXFA_Creator(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Creator,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Creator::~CXFA_Creator() {}
diff --git a/xfa/fxfa/parser/cxfa_creator.h b/xfa/fxfa/parser/cxfa_creator.h
new file mode 100644
index 0000000000..d9c9238640
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_creator.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CREATOR_H_
+#define XFA_FXFA_PARSER_CXFA_CREATOR_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Creator : public CXFA_Node {
+ public:
+ CXFA_Creator(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Creator() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CREATOR_H_
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.cpp b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
new file mode 100644
index 0000000000..170aa80b0a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_currencysymbol.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"currencySymbol";
+
+} // namespace
+
+CXFA_CurrencySymbol::CXFA_CurrencySymbol(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::CurrencySymbol,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_CurrencySymbol::~CXFA_CurrencySymbol() {}
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.h b/xfa/fxfa/parser/cxfa_currencysymbol.h
new file mode 100644
index 0000000000..6cdb024738
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CURRENCYSYMBOL_H_
+#define XFA_FXFA_PARSER_CXFA_CURRENCYSYMBOL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CurrencySymbol : public CXFA_Node {
+ public:
+ CXFA_CurrencySymbol(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CurrencySymbol() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CURRENCYSYMBOL_H_
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.cpp b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
new file mode 100644
index 0000000000..24d81968a0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_currencysymbols.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::CurrencySymbol, 3, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"currencySymbols";
+
+} // namespace
+
+CXFA_CurrencySymbols::CXFA_CurrencySymbols(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::CurrencySymbols,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_CurrencySymbols::~CXFA_CurrencySymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.h b/xfa/fxfa/parser/cxfa_currencysymbols.h
new file mode 100644
index 0000000000..764f877eb2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CURRENCYSYMBOLS_H_
+#define XFA_FXFA_PARSER_CXFA_CURRENCYSYMBOLS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CurrencySymbols : public CXFA_Node {
+ public:
+ CXFA_CurrencySymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CurrencySymbols() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CURRENCYSYMBOLS_H_
diff --git a/xfa/fxfa/parser/cxfa_currentpage.cpp b/xfa/fxfa/parser/cxfa_currentpage.cpp
new file mode 100644
index 0000000000..0ad8861588
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_currentpage.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_currentpage.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"currentPage";
+
+} // namespace
+
+CXFA_CurrentPage::CXFA_CurrentPage(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::CurrentPage,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_CurrentPage::~CXFA_CurrentPage() {}
diff --git a/xfa/fxfa/parser/cxfa_currentpage.h b/xfa/fxfa/parser/cxfa_currentpage.h
new file mode 100644
index 0000000000..55e4b544eb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_currentpage.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_CURRENTPAGE_H_
+#define XFA_FXFA_PARSER_CXFA_CURRENTPAGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_CurrentPage : public CXFA_Node {
+ public:
+ CXFA_CurrentPage(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_CurrentPage() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_CURRENTPAGE_H_
diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp
new file mode 100644
index 0000000000..2e7d4c7369
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_data.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_data.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Uri, 1, 0}, {XFA_Element::Xsl, 1, 0},
+ {XFA_Element::StartNode, 1, 0}, {XFA_Element::OutputXSL, 1, 0},
+ {XFA_Element::AdjustData, 1, 0}, {XFA_Element::Attributes, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"data";
+
+} // namespace
+
+CXFA_Data::CXFA_Data(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Data,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Data::~CXFA_Data() {}
diff --git a/xfa/fxfa/parser/cxfa_data.h b/xfa/fxfa/parser/cxfa_data.h
new file mode 100644
index 0000000000..a294ac62eb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_data.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATA_H_
+#define XFA_FXFA_PARSER_CXFA_DATA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Data : public CXFA_Node {
+ public:
+ CXFA_Data(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Data() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATA_H_
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp
index e8a37719fe..f28649fffa 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp
@@ -170,11 +170,12 @@ void RegenerateFormFile_Changed(CXFA_Node* pNode,
CFX_WideTextBuf& buf,
bool bSaveXML) {
WideString wsAttrs;
- int32_t iAttrs = 0;
- const XFA_Attribute* pAttrs =
- XFA_GetElementAttributes(pNode->GetElementType(), iAttrs);
- while (iAttrs--) {
- const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(pAttrs[iAttrs]);
+ for (size_t i = 0;; ++i) {
+ XFA_Attribute attr = pNode->GetAttribute(i);
+ if (attr == XFA_Attribute::Unknown)
+ break;
+
+ const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(attr);
if (pAttr->eName == XFA_Attribute::Name ||
(AttributeSaveInDataModel(pNode, pAttr->eName) && !bSaveXML)) {
continue;
@@ -355,11 +356,12 @@ void RegenerateFormFile_Container(
SaveAttribute(pNode, XFA_Attribute::Name, L"name", true, wsOutput);
WideString wsAttrs;
- int32_t iAttrs = 0;
- const XFA_Attribute* pAttrs =
- XFA_GetElementAttributes(pNode->GetElementType(), iAttrs);
- while (iAttrs--) {
- const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(pAttrs[iAttrs]);
+ for (size_t i = 0;; ++i) {
+ XFA_Attribute attr = pNode->GetAttribute(i);
+ if (attr == XFA_Attribute::Unknown)
+ break;
+
+ const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(attr);
if (pAttr->eName == XFA_Attribute::Name)
continue;
diff --git a/xfa/fxfa/parser/cxfa_datagroup.cpp b/xfa/fxfa/parser/cxfa_datagroup.cpp
new file mode 100644
index 0000000000..3a6431cd50
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datagroup.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datagroup.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"dataGroup";
+
+} // namespace
+
+CXFA_DataGroup::CXFA_DataGroup(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Datasets,
+ XFA_ObjectType::Node,
+ XFA_Element::DataGroup,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DataGroup::~CXFA_DataGroup() {}
diff --git a/xfa/fxfa/parser/cxfa_datagroup.h b/xfa/fxfa/parser/cxfa_datagroup.h
new file mode 100644
index 0000000000..6bc432d4df
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datagroup.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATAGROUP_H_
+#define XFA_FXFA_PARSER_CXFA_DATAGROUP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DataGroup : public CXFA_Node {
+ public:
+ CXFA_DataGroup(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DataGroup() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATAGROUP_H_
diff --git a/xfa/fxfa/parser/cxfa_datamodel.cpp b/xfa/fxfa/parser/cxfa_datamodel.cpp
new file mode 100644
index 0000000000..c1001157c0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datamodel.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datamodel.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"dataModel";
+
+} // namespace
+
+CXFA_DataModel::CXFA_DataModel(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Datasets,
+ XFA_ObjectType::ModelNode,
+ XFA_Element::DataModel,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_DataModel::~CXFA_DataModel() {}
diff --git a/xfa/fxfa/parser/cxfa_datamodel.h b/xfa/fxfa/parser/cxfa_datamodel.h
new file mode 100644
index 0000000000..6769d72f19
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datamodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATAMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_DATAMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DataModel : public CXFA_Node {
+ public:
+ CXFA_DataModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DataModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATAMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
new file mode 100644
index 0000000000..542c629e49
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datavalue.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Name, XFA_Attribute::ContentType, XFA_Attribute::Contains,
+ XFA_Attribute::Value, XFA_Attribute::IsNull, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"dataValue";
+
+} // namespace
+
+CXFA_DataValue::CXFA_DataValue(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Datasets,
+ XFA_ObjectType::Node,
+ XFA_Element::DataValue,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DataValue::~CXFA_DataValue() {}
diff --git a/xfa/fxfa/parser/cxfa_datavalue.h b/xfa/fxfa/parser/cxfa_datavalue.h
new file mode 100644
index 0000000000..7d11f85cf0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datavalue.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATAVALUE_H_
+#define XFA_FXFA_PARSER_CXFA_DATAVALUE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DataValue : public CXFA_Node {
+ public:
+ CXFA_DataValue(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DataValue() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATAVALUE_H_
diff --git a/xfa/fxfa/parser/cxfa_datawindow.cpp b/xfa/fxfa/parser/cxfa_datawindow.cpp
new file mode 100644
index 0000000000..556bab47c7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datawindow.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datawindow.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"dataWindow";
+
+} // namespace
+
+CXFA_DataWindow::CXFA_DataWindow(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Datasets,
+ XFA_ObjectType::Object,
+ XFA_Element::DataWindow,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_DataWindow::~CXFA_DataWindow() {}
diff --git a/xfa/fxfa/parser/cxfa_datawindow.h b/xfa/fxfa/parser/cxfa_datawindow.h
new file mode 100644
index 0000000000..3cafa947a5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datawindow.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATAWINDOW_H_
+#define XFA_FXFA_PARSER_CXFA_DATAWINDOW_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DataWindow : public CXFA_Node {
+ public:
+ CXFA_DataWindow(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DataWindow() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATAWINDOW_H_
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
new file mode 100644
index 0000000000..8ee447f1da
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_date.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"date";
+
+} // namespace
+
+CXFA_Date::CXFA_Date(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Date,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Date::~CXFA_Date() {}
diff --git a/xfa/fxfa/parser/cxfa_date.h b/xfa/fxfa/parser/cxfa_date.h
new file mode 100644
index 0000000000..abe47db40d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_date.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATE_H_
+#define XFA_FXFA_PARSER_CXFA_DATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Date : public CXFA_Node {
+ public:
+ CXFA_Date(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Date() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATE_H_
diff --git a/xfa/fxfa/parser/cxfa_datepattern.cpp b/xfa/fxfa/parser/cxfa_datepattern.cpp
new file mode 100644
index 0000000000..17ad9fe2f7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datepattern.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datepattern.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"datePattern";
+
+} // namespace
+
+CXFA_DatePattern::CXFA_DatePattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::DatePattern,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DatePattern::~CXFA_DatePattern() {}
diff --git a/xfa/fxfa/parser/cxfa_datepattern.h b/xfa/fxfa/parser/cxfa_datepattern.h
new file mode 100644
index 0000000000..b54a78f5fa
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datepattern.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATEPATTERN_H_
+#define XFA_FXFA_PARSER_CXFA_DATEPATTERN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DatePattern : public CXFA_Node {
+ public:
+ CXFA_DatePattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DatePattern() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATEPATTERN_H_
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.cpp b/xfa/fxfa/parser/cxfa_datepatterns.cpp
new file mode 100644
index 0000000000..bf9ce612d1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datepatterns.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datepatterns.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::DatePattern, 4, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"datePatterns";
+
+} // namespace
+
+CXFA_DatePatterns::CXFA_DatePatterns(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::DatePatterns,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_DatePatterns::~CXFA_DatePatterns() {}
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.h b/xfa/fxfa/parser/cxfa_datepatterns.h
new file mode 100644
index 0000000000..a6ca4930cb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datepatterns.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATEPATTERNS_H_
+#define XFA_FXFA_PARSER_CXFA_DATEPATTERNS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DatePatterns : public CXFA_Node {
+ public:
+ CXFA_DatePatterns(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DatePatterns() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATEPATTERNS_H_
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
new file mode 100644
index 0000000000..41d9bb0eca
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datetime.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"dateTime";
+
+} // namespace
+
+CXFA_DateTime::CXFA_DateTime(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::DateTime,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DateTime::~CXFA_DateTime() {}
diff --git a/xfa/fxfa/parser/cxfa_datetime.h b/xfa/fxfa/parser/cxfa_datetime.h
new file mode 100644
index 0000000000..6033ee3c7e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datetime.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATETIME_H_
+#define XFA_FXFA_PARSER_CXFA_DATETIME_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DateTime : public CXFA_Node {
+ public:
+ CXFA_DateTime(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DateTime() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATETIME_H_
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
new file mode 100644
index 0000000000..55fe0f6350
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
@@ -0,0 +1,37 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datetimeedit.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
+ {XFA_Element::Border, 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};
+
+constexpr wchar_t kName[] = L"dateTimeEdit";
+
+} // namespace
+
+CXFA_DateTimeEdit::CXFA_DateTimeEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::DateTimeEdit,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_DateTimeEdit::~CXFA_DateTimeEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.h b/xfa/fxfa/parser/cxfa_datetimeedit.h
new file mode 100644
index 0000000000..19463af3b4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATETIMEEDIT_H_
+#define XFA_FXFA_PARSER_CXFA_DATETIMEEDIT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DateTimeEdit : public CXFA_Node {
+ public:
+ CXFA_DateTimeEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DateTimeEdit() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATETIMEEDIT_H_
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.cpp b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
new file mode 100644
index 0000000000..981b13ee5d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_datetimesymbols.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"dateTimeSymbols";
+
+} // namespace
+
+CXFA_DateTimeSymbols::CXFA_DateTimeSymbols(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::DateTimeSymbols,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_DateTimeSymbols::~CXFA_DateTimeSymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.h b/xfa/fxfa/parser/cxfa_datetimesymbols.h
new file mode 100644
index 0000000000..b83712365f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DATETIMESYMBOLS_H_
+#define XFA_FXFA_PARSER_CXFA_DATETIMESYMBOLS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DateTimeSymbols : public CXFA_Node {
+ public:
+ CXFA_DateTimeSymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DateTimeSymbols() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DATETIMESYMBOLS_H_
diff --git a/xfa/fxfa/parser/cxfa_day.cpp b/xfa/fxfa/parser/cxfa_day.cpp
new file mode 100644
index 0000000000..0d36dbb389
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_day.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_day.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"day";
+
+} // namespace
+
+CXFA_Day::CXFA_Day(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Day,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Day::~CXFA_Day() {}
diff --git a/xfa/fxfa/parser/cxfa_day.h b/xfa/fxfa/parser/cxfa_day.h
new file mode 100644
index 0000000000..5cf30ea3ad
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_day.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DAY_H_
+#define XFA_FXFA_PARSER_CXFA_DAY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Day : public CXFA_Node {
+ public:
+ CXFA_Day(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Day() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DAY_H_
diff --git a/xfa/fxfa/parser/cxfa_daynames.cpp b/xfa/fxfa/parser/cxfa_daynames.cpp
new file mode 100644
index 0000000000..6099189964
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_daynames.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_daynames.h"
+
+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};
+
+constexpr wchar_t kName[] = L"dayNames";
+
+} // namespace
+
+CXFA_DayNames::CXFA_DayNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::DayNames,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_DayNames::~CXFA_DayNames() {}
diff --git a/xfa/fxfa/parser/cxfa_daynames.h b/xfa/fxfa/parser/cxfa_daynames.h
new file mode 100644
index 0000000000..87659080ca
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_daynames.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DAYNAMES_H_
+#define XFA_FXFA_PARSER_CXFA_DAYNAMES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DayNames : public CXFA_Node {
+ public:
+ CXFA_DayNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DayNames() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DAYNAMES_H_
diff --git a/xfa/fxfa/parser/cxfa_debug.cpp b/xfa/fxfa/parser/cxfa_debug.cpp
new file mode 100644
index 0000000000..3b68742004
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_debug.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_debug.h"
+
+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};
+
+constexpr wchar_t kName[] = L"debug";
+
+} // namespace
+
+CXFA_Debug::CXFA_Debug(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Debug,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Debug::~CXFA_Debug() {}
diff --git a/xfa/fxfa/parser/cxfa_debug.h b/xfa/fxfa/parser/cxfa_debug.h
new file mode 100644
index 0000000000..e42ab9fb9b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_debug.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DEBUG_H_
+#define XFA_FXFA_PARSER_CXFA_DEBUG_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Debug : public CXFA_Node {
+ public:
+ CXFA_Debug(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Debug() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DEBUG_H_
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
new file mode 100644
index 0000000000..e9e63fa94d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_decimal.h"
+
+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};
+
+constexpr wchar_t kName[] = L"decimal";
+
+} // namespace
+
+CXFA_Decimal::CXFA_Decimal(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Decimal,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Decimal::~CXFA_Decimal() {}
diff --git a/xfa/fxfa/parser/cxfa_decimal.h b/xfa/fxfa/parser/cxfa_decimal.h
new file mode 100644
index 0000000000..bb19933ee2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_decimal.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DECIMAL_H_
+#define XFA_FXFA_PARSER_CXFA_DECIMAL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Decimal : public CXFA_Node {
+ public:
+ CXFA_Decimal(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Decimal() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DECIMAL_H_
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.cpp b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
new file mode 100644
index 0000000000..6ec981d239
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_defaulttypeface.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::WritingScript, XFA_Attribute::Lock,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"defaultTypeface";
+
+} // namespace
+
+CXFA_DefaultTypeface::CXFA_DefaultTypeface(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::DefaultTypeface,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DefaultTypeface::~CXFA_DefaultTypeface() {}
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.h b/xfa/fxfa/parser/cxfa_defaulttypeface.h
new file mode 100644
index 0000000000..31ea0d4da8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DEFAULTTYPEFACE_H_
+#define XFA_FXFA_PARSER_CXFA_DEFAULTTYPEFACE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DefaultTypeface : public CXFA_Node {
+ public:
+ CXFA_DefaultTypeface(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DefaultTypeface() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DEFAULTTYPEFACE_H_
diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp
new file mode 100644
index 0000000000..56c1d76cba
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_defaultui.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_defaultui.h"
+
+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};
+
+constexpr wchar_t kName[] = L"defaultUi";
+
+} // namespace
+
+CXFA_DefaultUi::CXFA_DefaultUi(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::DefaultUi,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_DefaultUi::~CXFA_DefaultUi() {}
diff --git a/xfa/fxfa/parser/cxfa_defaultui.h b/xfa/fxfa/parser/cxfa_defaultui.h
new file mode 100644
index 0000000000..27dc9618e1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_defaultui.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DEFAULTUI_H_
+#define XFA_FXFA_PARSER_CXFA_DEFAULTUI_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DefaultUi : public CXFA_Node {
+ public:
+ CXFA_DefaultUi(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DefaultUi() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DEFAULTUI_H_
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
new file mode 100644
index 0000000000..d0f412eaad
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_delete.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"delete";
+
+} // namespace
+
+CXFA_Delete::CXFA_Delete(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::Delete,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Delete::~CXFA_Delete() {}
diff --git a/xfa/fxfa/parser/cxfa_delete.h b/xfa/fxfa/parser/cxfa_delete.h
new file mode 100644
index 0000000000..f39d2e6e05
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_delete.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DELETE_H_
+#define XFA_FXFA_PARSER_CXFA_DELETE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Delete : public CXFA_Node {
+ public:
+ CXFA_Delete(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Delete() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DELETE_H_
diff --git a/xfa/fxfa/parser/cxfa_delta.cpp b/xfa/fxfa/parser/cxfa_delta.cpp
new file mode 100644
index 0000000000..c5da9c3875
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_delta.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_delta.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"delta";
+
+} // namespace
+
+CXFA_Delta::CXFA_Delta(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Form,
+ XFA_ObjectType::Object,
+ XFA_Element::Delta,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Delta::~CXFA_Delta() {}
diff --git a/xfa/fxfa/parser/cxfa_delta.h b/xfa/fxfa/parser/cxfa_delta.h
new file mode 100644
index 0000000000..249ffb95fd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_delta.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DELTA_H_
+#define XFA_FXFA_PARSER_CXFA_DELTA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Delta : public CXFA_Node {
+ public:
+ CXFA_Delta(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Delta() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DELTA_H_
diff --git a/xfa/fxfa/parser/cxfa_deltas.cpp b/xfa/fxfa/parser/cxfa_deltas.cpp
new file mode 100644
index 0000000000..89ef3a5895
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_deltas.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_deltas.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"deltas";
+
+} // namespace
+
+CXFA_Deltas::CXFA_Deltas(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Form,
+ XFA_ObjectType::Object,
+ XFA_Element::Deltas,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Deltas::~CXFA_Deltas() {}
diff --git a/xfa/fxfa/parser/cxfa_deltas.h b/xfa/fxfa/parser/cxfa_deltas.h
new file mode 100644
index 0000000000..a996cd5eb5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_deltas.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DELTAS_H_
+#define XFA_FXFA_PARSER_CXFA_DELTAS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Deltas : public CXFA_Node {
+ public:
+ CXFA_Deltas(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Deltas() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DELTAS_H_
diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp
new file mode 100644
index 0000000000..7f2bea6c81
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_desc.cpp
@@ -0,0 +1,36 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_desc.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Text, 1, 0}, {XFA_Element::Time, 1, 0},
+ {XFA_Element::DateTime, 1, 0}, {XFA_Element::Image, 1, 0},
+ {XFA_Element::Decimal, 1, 0}, {XFA_Element::Boolean, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"desc";
+
+} // namespace
+
+CXFA_Desc::CXFA_Desc(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Desc,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Desc::~CXFA_Desc() {}
diff --git a/xfa/fxfa/parser/cxfa_desc.h b/xfa/fxfa/parser/cxfa_desc.h
new file mode 100644
index 0000000000..0ccd3b4a56
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_desc.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DESC_H_
+#define XFA_FXFA_PARSER_CXFA_DESC_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Desc : public CXFA_Node {
+ public:
+ CXFA_Desc(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Desc() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DESC_H_
diff --git a/xfa/fxfa/parser/cxfa_destination.cpp b/xfa/fxfa/parser/cxfa_destination.cpp
new file mode 100644
index 0000000000..5787b6b902
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_destination.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_destination.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"destination";
+
+} // namespace
+
+CXFA_Destination::CXFA_Destination(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Destination,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Destination::~CXFA_Destination() {}
diff --git a/xfa/fxfa/parser/cxfa_destination.h b/xfa/fxfa/parser/cxfa_destination.h
new file mode 100644
index 0000000000..80513c0891
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_destination.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DESTINATION_H_
+#define XFA_FXFA_PARSER_CXFA_DESTINATION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Destination : public CXFA_Node {
+ public:
+ CXFA_Destination(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Destination() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DESTINATION_H_
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
new file mode 100644
index 0000000000..a651ffa584
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_digestmethod.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
+ XFA_Attribute::Usehref,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"digestMethod";
+
+} // namespace
+
+CXFA_DigestMethod::CXFA_DigestMethod(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeC,
+ XFA_Element::DigestMethod,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DigestMethod::~CXFA_DigestMethod() {}
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.h b/xfa/fxfa/parser/cxfa_digestmethod.h
new file mode 100644
index 0000000000..c0d15ed2f0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_digestmethod.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DIGESTMETHOD_H_
+#define XFA_FXFA_PARSER_CXFA_DIGESTMETHOD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DigestMethod : public CXFA_Node {
+ public:
+ CXFA_DigestMethod(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DigestMethod() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DIGESTMETHOD_H_
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
new file mode 100644
index 0000000000..3832462020
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_digestmethods.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"digestMethods";
+
+} // namespace
+
+CXFA_DigestMethods::CXFA_DigestMethods(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::DigestMethods,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DigestMethods::~CXFA_DigestMethods() {}
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.h b/xfa/fxfa/parser/cxfa_digestmethods.h
new file mode 100644
index 0000000000..79780072c7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_digestmethods.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DIGESTMETHODS_H_
+#define XFA_FXFA_PARSER_CXFA_DIGESTMETHODS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DigestMethods : public CXFA_Node {
+ public:
+ CXFA_DigestMethods(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DigestMethods() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DIGESTMETHODS_H_
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index bdb8d9a0e5..3fc5c39643 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -219,15 +219,14 @@ CXFA_Node* CXFA_Document::CreateNode(uint32_t dwPacket, XFA_Element eElement) {
CXFA_Node* CXFA_Document::CreateNode(const XFA_PACKETINFO* pPacket,
XFA_Element eElement) {
- if (!pPacket)
+ if (!pPacket || eElement == XFA_Element::Unknown)
return nullptr;
- const XFA_ELEMENTINFO* pElement = XFA_GetElementByID(eElement);
- if (!pElement || !(pElement->dwPackets & pPacket->eName))
+ std::unique_ptr<CXFA_Node> pNode =
+ CXFA_Node::Create(this, eElement, pPacket->eName);
+ if (!pNode)
return nullptr;
- std::unique_ptr<CXFA_Node> pNode =
- CXFA_Node::Create(this, pPacket->eName, pElement);
// TODO(dsinclair): AddPrugeNode should take ownership of the pointer.
AddPurgeNode(pNode.get());
return pNode.release();
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.cpp b/xfa/fxfa/parser/cxfa_documentassembly.cpp
new file mode 100644
index 0000000000..c8b5763c27
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_documentassembly.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_documentassembly.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"documentAssembly";
+
+} // namespace
+
+CXFA_DocumentAssembly::CXFA_DocumentAssembly(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::DocumentAssembly,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DocumentAssembly::~CXFA_DocumentAssembly() {}
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.h b/xfa/fxfa/parser/cxfa_documentassembly.h
new file mode 100644
index 0000000000..b7b82e8549
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_documentassembly.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DOCUMENTASSEMBLY_H_
+#define XFA_FXFA_PARSER_CXFA_DOCUMENTASSEMBLY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DocumentAssembly : public CXFA_Node {
+ public:
+ CXFA_DocumentAssembly(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DocumentAssembly() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DOCUMENTASSEMBLY_H_
diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp
new file mode 100644
index 0000000000..f8c88e933c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_draw.cpp
@@ -0,0 +1,42 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_draw.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Ui, 1, 0}, {XFA_Element::Margin, 1, 0},
+ {XFA_Element::Para, 1, 0}, {XFA_Element::Border, 1, 0},
+ {XFA_Element::Assist, 1, 0}, {XFA_Element::Traversal, 1, 0},
+ {XFA_Element::Keep, 1, 0}, {XFA_Element::Caption, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"draw";
+
+} // namespace
+
+CXFA_Draw::CXFA_Draw(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::Draw,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Draw::~CXFA_Draw() {}
diff --git a/xfa/fxfa/parser/cxfa_draw.h b/xfa/fxfa/parser/cxfa_draw.h
new file mode 100644
index 0000000000..9ca22b6289
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_draw.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DRAW_H_
+#define XFA_FXFA_PARSER_CXFA_DRAW_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Draw : public CXFA_Node {
+ public:
+ CXFA_Draw(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Draw() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DRAW_H_
diff --git a/xfa/fxfa/parser/cxfa_driver.cpp b/xfa/fxfa/parser/cxfa_driver.cpp
new file mode 100644
index 0000000000..f6689ef789
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_driver.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_driver.h"
+
+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};
+
+constexpr wchar_t kName[] = L"driver";
+
+} // namespace
+
+CXFA_Driver::CXFA_Driver(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Driver,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Driver::~CXFA_Driver() {}
diff --git a/xfa/fxfa/parser/cxfa_driver.h b/xfa/fxfa/parser/cxfa_driver.h
new file mode 100644
index 0000000000..781a69bed5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_driver.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DRIVER_H_
+#define XFA_FXFA_PARSER_CXFA_DRIVER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Driver : public CXFA_Node {
+ public:
+ CXFA_Driver(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Driver() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DRIVER_H_
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.cpp b/xfa/fxfa/parser/cxfa_dsigdata.cpp
new file mode 100644
index 0000000000..0dd884150a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_dsigdata.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_dsigdata.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"dSigData";
+
+} // namespace
+
+CXFA_DSigData::CXFA_DSigData(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::DSigData,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DSigData::~CXFA_DSigData() {}
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.h b/xfa/fxfa/parser/cxfa_dsigdata.h
new file mode 100644
index 0000000000..00b61e33a0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_dsigdata.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DSIGDATA_H_
+#define XFA_FXFA_PARSER_CXFA_DSIGDATA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DSigData : public CXFA_Node {
+ public:
+ CXFA_DSigData(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DSigData() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DSIGDATA_H_
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.cpp b/xfa/fxfa/parser/cxfa_duplexoption.cpp
new file mode 100644
index 0000000000..67d898e1d9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_duplexoption.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_duplexoption.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"duplexOption";
+
+} // namespace
+
+CXFA_DuplexOption::CXFA_DuplexOption(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::DuplexOption,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DuplexOption::~CXFA_DuplexOption() {}
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.h b/xfa/fxfa/parser/cxfa_duplexoption.h
new file mode 100644
index 0000000000..a9f8f17ec6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_duplexoption.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DUPLEXOPTION_H_
+#define XFA_FXFA_PARSER_CXFA_DUPLEXOPTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DuplexOption : public CXFA_Node {
+ public:
+ CXFA_DuplexOption(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DuplexOption() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DUPLEXOPTION_H_
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.cpp b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
new file mode 100644
index 0000000000..d2e04f8610
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_dynamicrender.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"dynamicRender";
+
+} // namespace
+
+CXFA_DynamicRender::CXFA_DynamicRender(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::DynamicRender,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_DynamicRender::~CXFA_DynamicRender() {}
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.h b/xfa/fxfa/parser/cxfa_dynamicrender.h
new file mode 100644
index 0000000000..1856957471
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_DYNAMICRENDER_H_
+#define XFA_FXFA_PARSER_CXFA_DYNAMICRENDER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_DynamicRender : public CXFA_Node {
+ public:
+ CXFA_DynamicRender(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_DynamicRender() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_DYNAMICRENDER_H_
diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp
new file mode 100644
index 0000000000..7bfd581532
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_edge.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_edge.h"
+
+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};
+
+constexpr wchar_t kName[] = L"edge";
+
+} // namespace
+
+CXFA_Edge::CXFA_Edge(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Edge,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Edge::~CXFA_Edge() {}
diff --git a/xfa/fxfa/parser/cxfa_edge.h b/xfa/fxfa/parser/cxfa_edge.h
new file mode 100644
index 0000000000..fa02e06c32
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_edge.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EDGE_H_
+#define XFA_FXFA_PARSER_CXFA_EDGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Edge : public CXFA_Node {
+ public:
+ CXFA_Edge(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Edge() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EDGE_H_
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
new file mode 100644
index 0000000000..457d8313f8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_effectiveinputpolicy.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"effectiveInputPolicy";
+
+} // namespace
+
+CXFA_EffectiveInputPolicy::CXFA_EffectiveInputPolicy(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::Node,
+ XFA_Element::EffectiveInputPolicy,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_EffectiveInputPolicy::~CXFA_EffectiveInputPolicy() {}
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
new file mode 100644
index 0000000000..a88ae98b3e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EFFECTIVEINPUTPOLICY_H_
+#define XFA_FXFA_PARSER_CXFA_EFFECTIVEINPUTPOLICY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EffectiveInputPolicy : public CXFA_Node {
+ public:
+ CXFA_EffectiveInputPolicy(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EffectiveInputPolicy() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EFFECTIVEINPUTPOLICY_H_
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
new file mode 100644
index 0000000000..8c2c4743e6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"effectiveOutputPolicy";
+
+} // namespace
+
+CXFA_EffectiveOutputPolicy::CXFA_EffectiveOutputPolicy(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::Node,
+ XFA_Element::EffectiveOutputPolicy,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_EffectiveOutputPolicy::~CXFA_EffectiveOutputPolicy() {}
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
new file mode 100644
index 0000000000..10c852771e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EFFECTIVEOUTPUTPOLICY_H_
+#define XFA_FXFA_PARSER_CXFA_EFFECTIVEOUTPUTPOLICY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EffectiveOutputPolicy : public CXFA_Node {
+ public:
+ CXFA_EffectiveOutputPolicy(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EffectiveOutputPolicy() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EFFECTIVEOUTPUTPOLICY_H_
diff --git a/xfa/fxfa/parser/cxfa_embed.cpp b/xfa/fxfa/parser/cxfa_embed.cpp
new file mode 100644
index 0000000000..4f550c6df1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_embed.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_embed.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"embed";
+
+} // namespace
+
+CXFA_Embed::CXFA_Embed(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Embed,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Embed::~CXFA_Embed() {}
diff --git a/xfa/fxfa/parser/cxfa_embed.h b/xfa/fxfa/parser/cxfa_embed.h
new file mode 100644
index 0000000000..4aa746b8ac
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_embed.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EMBED_H_
+#define XFA_FXFA_PARSER_CXFA_EMBED_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Embed : public CXFA_Node {
+ public:
+ CXFA_Embed(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Embed() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EMBED_H_
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
new file mode 100644
index 0000000000..4bde179b51
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encoding.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
+ XFA_Attribute::Usehref,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"encoding";
+
+} // namespace
+
+CXFA_Encoding::CXFA_Encoding(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeC,
+ XFA_Element::Encoding,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Encoding::~CXFA_Encoding() {}
diff --git a/xfa/fxfa/parser/cxfa_encoding.h b/xfa/fxfa/parser/cxfa_encoding.h
new file mode 100644
index 0000000000..4e520e5d37
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encoding.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCODING_H_
+#define XFA_FXFA_PARSER_CXFA_ENCODING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Encoding : public CXFA_Node {
+ public:
+ CXFA_Encoding(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Encoding() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCODING_H_
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
new file mode 100644
index 0000000000..cc4ef04f8a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encodings.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"encodings";
+
+} // namespace
+
+CXFA_Encodings::CXFA_Encodings(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Encodings,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Encodings::~CXFA_Encodings() {}
diff --git a/xfa/fxfa/parser/cxfa_encodings.h b/xfa/fxfa/parser/cxfa_encodings.h
new file mode 100644
index 0000000000..19d51d2989
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encodings.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCODINGS_H_
+#define XFA_FXFA_PARSER_CXFA_ENCODINGS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Encodings : public CXFA_Node {
+ public:
+ CXFA_Encodings(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Encodings() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCODINGS_H_
diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp
new file mode 100644
index 0000000000..afcf8c96fd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encrypt.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encrypt.h"
+
+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};
+
+constexpr wchar_t kName[] = L"encrypt";
+
+} // namespace
+
+CXFA_Encrypt::CXFA_Encrypt(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Encrypt,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Encrypt::~CXFA_Encrypt() {}
diff --git a/xfa/fxfa/parser/cxfa_encrypt.h b/xfa/fxfa/parser/cxfa_encrypt.h
new file mode 100644
index 0000000000..13d4e57bdc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encrypt.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCRYPT_H_
+#define XFA_FXFA_PARSER_CXFA_ENCRYPT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Encrypt : public CXFA_Node {
+ public:
+ CXFA_Encrypt(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Encrypt() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCRYPT_H_
diff --git a/xfa/fxfa/parser/cxfa_encryption.cpp b/xfa/fxfa/parser/cxfa_encryption.cpp
new file mode 100644
index 0000000000..18bdea6358
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryption.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encryption.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::EncryptionLevel, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"encryption";
+
+} // namespace
+
+CXFA_Encryption::CXFA_Encryption(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Encryption,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Encryption::~CXFA_Encryption() {}
diff --git a/xfa/fxfa/parser/cxfa_encryption.h b/xfa/fxfa/parser/cxfa_encryption.h
new file mode 100644
index 0000000000..32c96d7da8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryption.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCRYPTION_H_
+#define XFA_FXFA_PARSER_CXFA_ENCRYPTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Encryption : public CXFA_Node {
+ public:
+ CXFA_Encryption(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Encryption() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCRYPTION_H_
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.cpp b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
new file mode 100644
index 0000000000..10242cb1b3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encryptionlevel.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"encryptionLevel";
+
+} // namespace
+
+CXFA_EncryptionLevel::CXFA_EncryptionLevel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::EncryptionLevel,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_EncryptionLevel::~CXFA_EncryptionLevel() {}
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.h b/xfa/fxfa/parser/cxfa_encryptionlevel.h
new file mode 100644
index 0000000000..872bd3f784
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCRYPTIONLEVEL_H_
+#define XFA_FXFA_PARSER_CXFA_ENCRYPTIONLEVEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EncryptionLevel : public CXFA_Node {
+ public:
+ CXFA_EncryptionLevel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EncryptionLevel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCRYPTIONLEVEL_H_
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.cpp b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
new file mode 100644
index 0000000000..209184c51e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encryptionmethod.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
+ XFA_Attribute::Usehref,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"encryptionMethod";
+
+} // namespace
+
+CXFA_EncryptionMethod::CXFA_EncryptionMethod(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeC,
+ XFA_Element::EncryptionMethod,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_EncryptionMethod::~CXFA_EncryptionMethod() {}
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.h b/xfa/fxfa/parser/cxfa_encryptionmethod.h
new file mode 100644
index 0000000000..99e29333d2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCRYPTIONMETHOD_H_
+#define XFA_FXFA_PARSER_CXFA_ENCRYPTIONMETHOD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EncryptionMethod : public CXFA_Node {
+ public:
+ CXFA_EncryptionMethod(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EncryptionMethod() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCRYPTIONMETHOD_H_
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.cpp b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
new file mode 100644
index 0000000000..7c97b560e0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_encryptionmethods.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"encryptionMethods";
+
+} // namespace
+
+CXFA_EncryptionMethods::CXFA_EncryptionMethods(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::EncryptionMethods,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_EncryptionMethods::~CXFA_EncryptionMethods() {}
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.h b/xfa/fxfa/parser/cxfa_encryptionmethods.h
new file mode 100644
index 0000000000..e09c845968
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENCRYPTIONMETHODS_H_
+#define XFA_FXFA_PARSER_CXFA_ENCRYPTIONMETHODS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EncryptionMethods : public CXFA_Node {
+ public:
+ CXFA_EncryptionMethods(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EncryptionMethods() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENCRYPTIONMETHODS_H_
diff --git a/xfa/fxfa/parser/cxfa_enforce.cpp b/xfa/fxfa/parser/cxfa_enforce.cpp
new file mode 100644
index 0000000000..4eb0d7b3d2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_enforce.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_enforce.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"enforce";
+
+} // namespace
+
+CXFA_Enforce::CXFA_Enforce(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Enforce,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Enforce::~CXFA_Enforce() {}
diff --git a/xfa/fxfa/parser/cxfa_enforce.h b/xfa/fxfa/parser/cxfa_enforce.h
new file mode 100644
index 0000000000..8c863ba430
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_enforce.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ENFORCE_H_
+#define XFA_FXFA_PARSER_CXFA_ENFORCE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Enforce : public CXFA_Node {
+ public:
+ CXFA_Enforce(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Enforce() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ENFORCE_H_
diff --git a/xfa/fxfa/parser/cxfa_equate.cpp b/xfa/fxfa/parser/cxfa_equate.cpp
new file mode 100644
index 0000000000..a1b4aa9afd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_equate.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_equate.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::To, XFA_Attribute::Force, XFA_Attribute::Desc,
+ XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"equate";
+
+} // namespace
+
+CXFA_Equate::CXFA_Equate(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Equate,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Equate::~CXFA_Equate() {}
diff --git a/xfa/fxfa/parser/cxfa_equate.h b/xfa/fxfa/parser/cxfa_equate.h
new file mode 100644
index 0000000000..4939eadda1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_equate.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EQUATE_H_
+#define XFA_FXFA_PARSER_CXFA_EQUATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Equate : public CXFA_Node {
+ public:
+ CXFA_Equate(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Equate() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EQUATE_H_
diff --git a/xfa/fxfa/parser/cxfa_equaterange.cpp b/xfa/fxfa/parser/cxfa_equaterange.cpp
new file mode 100644
index 0000000000..1b3458632e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_equaterange.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_equaterange.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::To, XFA_Attribute::UnicodeRange, XFA_Attribute::Desc,
+ XFA_Attribute::From, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"equateRange";
+
+} // namespace
+
+CXFA_EquateRange::CXFA_EquateRange(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::EquateRange,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_EquateRange::~CXFA_EquateRange() {}
diff --git a/xfa/fxfa/parser/cxfa_equaterange.h b/xfa/fxfa/parser/cxfa_equaterange.h
new file mode 100644
index 0000000000..9ff047a448
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_equaterange.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EQUATERANGE_H_
+#define XFA_FXFA_PARSER_CXFA_EQUATERANGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EquateRange : public CXFA_Node {
+ public:
+ CXFA_EquateRange(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EquateRange() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EQUATERANGE_H_
diff --git a/xfa/fxfa/parser/cxfa_era.cpp b/xfa/fxfa/parser/cxfa_era.cpp
new file mode 100644
index 0000000000..6ddc1dafa7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_era.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_era.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"era";
+
+} // namespace
+
+CXFA_Era::CXFA_Era(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Era,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Era::~CXFA_Era() {}
diff --git a/xfa/fxfa/parser/cxfa_era.h b/xfa/fxfa/parser/cxfa_era.h
new file mode 100644
index 0000000000..ece3b2cc54
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_era.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ERA_H_
+#define XFA_FXFA_PARSER_CXFA_ERA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Era : public CXFA_Node {
+ public:
+ CXFA_Era(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Era() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ERA_H_
diff --git a/xfa/fxfa/parser/cxfa_eranames.cpp b/xfa/fxfa/parser/cxfa_eranames.cpp
new file mode 100644
index 0000000000..358b7b08d9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_eranames.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_eranames.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Era, 2, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"eraNames";
+
+} // namespace
+
+CXFA_EraNames::CXFA_EraNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::EraNames,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_EraNames::~CXFA_EraNames() {}
diff --git a/xfa/fxfa/parser/cxfa_eranames.h b/xfa/fxfa/parser/cxfa_eranames.h
new file mode 100644
index 0000000000..128e68d3bc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_eranames.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ERANAMES_H_
+#define XFA_FXFA_PARSER_CXFA_ERANAMES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EraNames : public CXFA_Node {
+ public:
+ CXFA_EraNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EraNames() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ERANAMES_H_
diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp
new file mode 100644
index 0000000000..f810da7798
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_event.cpp
@@ -0,0 +1,37 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_event.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Execute, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Script, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::SignData, 1, XFA_PROPERTYFLAG_OneOf},
+ {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};
+
+constexpr wchar_t kName[] = L"event";
+
+} // namespace
+
+CXFA_Event::CXFA_Event(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Event,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Event::~CXFA_Event() {}
diff --git a/xfa/fxfa/parser/cxfa_event.h b/xfa/fxfa/parser/cxfa_event.h
new file mode 100644
index 0000000000..5ff362d4fc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_event.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EVENT_H_
+#define XFA_FXFA_PARSER_CXFA_EVENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Event : public CXFA_Node {
+ public:
+ CXFA_Event(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Event() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EVENT_H_
diff --git a/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp b/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp
new file mode 100644
index 0000000000..75128f6098
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_eventpseudomodel.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"eventPseudoModel";
+
+} // namespace
+
+CXFA_EventPseudoModel::CXFA_EventPseudoModel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::Object,
+ XFA_Element::EventPseudoModel,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_EventPseudoModel::~CXFA_EventPseudoModel() {}
diff --git a/xfa/fxfa/parser/cxfa_eventpseudomodel.h b/xfa/fxfa/parser/cxfa_eventpseudomodel.h
new file mode 100644
index 0000000000..3546e6d2bc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_eventpseudomodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EVENTPSEUDOMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_EVENTPSEUDOMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_EventPseudoModel : public CXFA_Node {
+ public:
+ CXFA_EventPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_EventPseudoModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EVENTPSEUDOMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp
new file mode 100644
index 0000000000..c3276df0e6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp
@@ -0,0 +1,45 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_exclgroup.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Margin, 1, 0}, {XFA_Element::Para, 1, 0},
+ {XFA_Element::Border, 1, 0}, {XFA_Element::Assist, 1, 0},
+ {XFA_Element::Traversal, 1, 0}, {XFA_Element::Validate, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"exclGroup";
+
+} // namespace
+
+CXFA_ExclGroup::CXFA_ExclGroup(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::ExclGroup,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_ExclGroup::~CXFA_ExclGroup() {}
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.h b/xfa/fxfa/parser/cxfa_exclgroup.h
new file mode 100644
index 0000000000..62aeb84960
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exclgroup.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXCLGROUP_H_
+#define XFA_FXFA_PARSER_CXFA_EXCLGROUP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ExclGroup : public CXFA_Node {
+ public:
+ CXFA_ExclGroup(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ExclGroup() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXCLGROUP_H_
diff --git a/xfa/fxfa/parser/cxfa_exclude.cpp b/xfa/fxfa/parser/cxfa_exclude.cpp
new file mode 100644
index 0000000000..b6b0dcbec2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exclude.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_exclude.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"exclude";
+
+} // namespace
+
+CXFA_Exclude::CXFA_Exclude(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Exclude,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Exclude::~CXFA_Exclude() {}
diff --git a/xfa/fxfa/parser/cxfa_exclude.h b/xfa/fxfa/parser/cxfa_exclude.h
new file mode 100644
index 0000000000..fc8eada523
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exclude.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXCLUDE_H_
+#define XFA_FXFA_PARSER_CXFA_EXCLUDE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Exclude : public CXFA_Node {
+ public:
+ CXFA_Exclude(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Exclude() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXCLUDE_H_
diff --git a/xfa/fxfa/parser/cxfa_excludens.cpp b/xfa/fxfa/parser/cxfa_excludens.cpp
new file mode 100644
index 0000000000..d81d9ea752
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_excludens.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_excludens.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"excludeNS";
+
+} // namespace
+
+CXFA_ExcludeNS::CXFA_ExcludeNS(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::ExcludeNS,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ExcludeNS::~CXFA_ExcludeNS() {}
diff --git a/xfa/fxfa/parser/cxfa_excludens.h b/xfa/fxfa/parser/cxfa_excludens.h
new file mode 100644
index 0000000000..b70654e63e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_excludens.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXCLUDENS_H_
+#define XFA_FXFA_PARSER_CXFA_EXCLUDENS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ExcludeNS : public CXFA_Node {
+ public:
+ CXFA_ExcludeNS(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ExcludeNS() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXCLUDENS_H_
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
new file mode 100644
index 0000000000..2792c30fe6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_exdata.h"
+
+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};
+
+constexpr wchar_t kName[] = L"exData";
+
+} // namespace
+
+CXFA_ExData::CXFA_ExData(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::ExData,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ExData::~CXFA_ExData() {}
diff --git a/xfa/fxfa/parser/cxfa_exdata.h b/xfa/fxfa/parser/cxfa_exdata.h
new file mode 100644
index 0000000000..264c31b223
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exdata.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXDATA_H_
+#define XFA_FXFA_PARSER_CXFA_EXDATA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ExData : public CXFA_Node {
+ public:
+ CXFA_ExData(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ExData() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXDATA_H_
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
new file mode 100644
index 0000000000..824fcf7ab5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_execute.h"
+
+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};
+
+constexpr wchar_t kName[] = L"execute";
+
+} // namespace
+
+CXFA_Execute::CXFA_Execute(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Execute,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Execute::~CXFA_Execute() {}
diff --git a/xfa/fxfa/parser/cxfa_execute.h b/xfa/fxfa/parser/cxfa_execute.h
new file mode 100644
index 0000000000..aa7daf4423
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_execute.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXECUTE_H_
+#define XFA_FXFA_PARSER_CXFA_EXECUTE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Execute : public CXFA_Node {
+ public:
+ CXFA_Execute(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Execute() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXECUTE_H_
diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp
new file mode 100644
index 0000000000..faa768863d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exobject.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_exobject.h"
+
+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};
+
+constexpr wchar_t kName[] = L"exObject";
+
+} // namespace
+
+CXFA_ExObject::CXFA_ExObject(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::ExObject,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_ExObject::~CXFA_ExObject() {}
diff --git a/xfa/fxfa/parser/cxfa_exobject.h b/xfa/fxfa/parser/cxfa_exobject.h
new file mode 100644
index 0000000000..8424553538
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_exobject.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXOBJECT_H_
+#define XFA_FXFA_PARSER_CXFA_EXOBJECT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ExObject : public CXFA_Node {
+ public:
+ CXFA_ExObject(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ExObject() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXOBJECT_H_
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
new file mode 100644
index 0000000000..5ef6fc33e8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_extras.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"extras";
+
+} // namespace
+
+CXFA_Extras::CXFA_Extras(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Extras,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Extras::~CXFA_Extras() {}
diff --git a/xfa/fxfa/parser/cxfa_extras.h b/xfa/fxfa/parser/cxfa_extras.h
new file mode 100644
index 0000000000..8be1239a77
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_extras.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_EXTRAS_H_
+#define XFA_FXFA_PARSER_CXFA_EXTRAS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Extras : public CXFA_Node {
+ public:
+ CXFA_Extras(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Extras() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_EXTRAS_H_
diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp
new file mode 100644
index 0000000000..ec4e4293a6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_field.cpp
@@ -0,0 +1,49 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_field.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Ui, 1, 0}, {XFA_Element::Margin, 1, 0},
+ {XFA_Element::Para, 1, 0}, {XFA_Element::Format, 1, 0},
+ {XFA_Element::Border, 1, 0}, {XFA_Element::Assist, 1, 0},
+ {XFA_Element::Traversal, 1, 0}, {XFA_Element::Keep, 1, 0},
+ {XFA_Element::Validate, 1, 0}, {XFA_Element::Caption, 1, 0},
+ {XFA_Element::Bind, 1, 0}, {XFA_Element::Desc, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"field";
+
+} // namespace
+
+CXFA_Field::CXFA_Field(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::Field,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Field::~CXFA_Field() {}
diff --git a/xfa/fxfa/parser/cxfa_field.h b/xfa/fxfa/parser/cxfa_field.h
new file mode 100644
index 0000000000..d662a4c424
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_field.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FIELD_H_
+#define XFA_FXFA_PARSER_CXFA_FIELD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Field : public CXFA_Node {
+ public:
+ CXFA_Field(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Field() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FIELD_H_
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
new file mode 100644
index 0000000000..6ea5c7e092
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -0,0 +1,39 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_fill.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Pattern, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Solid, 1,
+ XFA_PROPERTYFLAG_OneOf | XFA_PROPERTYFLAG_DefaultOneOf},
+ {XFA_Element::Stipple, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Color, 1, 0},
+ {XFA_Element::Linear, 1, XFA_PROPERTYFLAG_OneOf},
+ {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};
+
+constexpr wchar_t kName[] = L"fill";
+
+} // namespace
+
+CXFA_Fill::CXFA_Fill(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Fill,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Fill::~CXFA_Fill() {}
diff --git a/xfa/fxfa/parser/cxfa_fill.h b/xfa/fxfa/parser/cxfa_fill.h
new file mode 100644
index 0000000000..681b44de84
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_fill.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FILL_H_
+#define XFA_FXFA_PARSER_CXFA_FILL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Fill : public CXFA_Node {
+ public:
+ CXFA_Fill(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Fill() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FILL_H_
diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp
new file mode 100644
index 0000000000..09c604d5e9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_filter.cpp
@@ -0,0 +1,37 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_filter.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Mdp, 1, 0}, {XFA_Element::Certificates, 1, 0},
+ {XFA_Element::TimeStamp, 1, 0}, {XFA_Element::Handler, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"filter";
+
+} // namespace
+
+CXFA_Filter::CXFA_Filter(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Filter,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Filter::~CXFA_Filter() {}
diff --git a/xfa/fxfa/parser/cxfa_filter.h b/xfa/fxfa/parser/cxfa_filter.h
new file mode 100644
index 0000000000..4b636f821b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_filter.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FILTER_H_
+#define XFA_FXFA_PARSER_CXFA_FILTER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Filter : public CXFA_Node {
+ public:
+ CXFA_Filter(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Filter() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FILTER_H_
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.cpp b/xfa/fxfa/parser/cxfa_fliplabel.cpp
new file mode 100644
index 0000000000..a959db2a9c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_fliplabel.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_fliplabel.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"flipLabel";
+
+} // namespace
+
+CXFA_FlipLabel::CXFA_FlipLabel(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::FlipLabel,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_FlipLabel::~CXFA_FlipLabel() {}
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.h b/xfa/fxfa/parser/cxfa_fliplabel.h
new file mode 100644
index 0000000000..49657694ef
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_fliplabel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FLIPLABEL_H_
+#define XFA_FXFA_PARSER_CXFA_FLIPLABEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_FlipLabel : public CXFA_Node {
+ public:
+ CXFA_FlipLabel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_FlipLabel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FLIPLABEL_H_
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
new file mode 100644
index 0000000000..9736ada7e9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_float.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"float";
+
+} // namespace
+
+CXFA_Float::CXFA_Float(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Float,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Float::~CXFA_Float() {}
diff --git a/xfa/fxfa/parser/cxfa_float.h b/xfa/fxfa/parser/cxfa_float.h
new file mode 100644
index 0000000000..02f3f79a47
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_float.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FLOAT_H_
+#define XFA_FXFA_PARSER_CXFA_FLOAT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Float : public CXFA_Node {
+ public:
+ CXFA_Float(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Float() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FLOAT_H_
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
new file mode 100644
index 0000000000..aeeabe6865
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -0,0 +1,51 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_font.h"
+
+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};
+
+constexpr wchar_t kName[] = L"font";
+
+} // namespace
+
+CXFA_Font::CXFA_Font(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Font,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Font::~CXFA_Font() {}
diff --git a/xfa/fxfa/parser/cxfa_font.h b/xfa/fxfa/parser/cxfa_font.h
new file mode 100644
index 0000000000..f43610fc93
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_font.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FONT_H_
+#define XFA_FXFA_PARSER_CXFA_FONT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Font : public CXFA_Node {
+ public:
+ CXFA_Font(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Font() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FONT_H_
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.cpp b/xfa/fxfa/parser/cxfa_fontinfo.cpp
new file mode 100644
index 0000000000..508f09a41e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_fontinfo.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_fontinfo.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::SubsetBelow, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"fontInfo";
+
+} // namespace
+
+CXFA_FontInfo::CXFA_FontInfo(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::FontInfo,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_FontInfo::~CXFA_FontInfo() {}
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.h b/xfa/fxfa/parser/cxfa_fontinfo.h
new file mode 100644
index 0000000000..7e84c07bcd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_fontinfo.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FONTINFO_H_
+#define XFA_FXFA_PARSER_CXFA_FONTINFO_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_FontInfo : public CXFA_Node {
+ public:
+ CXFA_FontInfo(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_FontInfo() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FONTINFO_H_
diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp
new file mode 100644
index 0000000000..a42291f663
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_form.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_form.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Checksum,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"form";
+
+} // namespace
+
+CXFA_Form::CXFA_Form(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Form,
+ XFA_ObjectType::ModelNode,
+ XFA_Element::Form,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Form::~CXFA_Form() {}
diff --git a/xfa/fxfa/parser/cxfa_form.h b/xfa/fxfa/parser/cxfa_form.h
new file mode 100644
index 0000000000..e0600a1c06
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_form.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FORM_H_
+#define XFA_FXFA_PARSER_CXFA_FORM_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Form : public CXFA_Node {
+ public:
+ CXFA_Form(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Form() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FORM_H_
diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp
new file mode 100644
index 0000000000..2810826282
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_format.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_format.h"
+
+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};
+
+constexpr wchar_t kName[] = L"format";
+
+} // namespace
+
+CXFA_Format::CXFA_Format(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Format,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Format::~CXFA_Format() {}
diff --git a/xfa/fxfa/parser/cxfa_format.h b/xfa/fxfa/parser/cxfa_format.h
new file mode 100644
index 0000000000..2de5ab30c5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_format.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FORMAT_H_
+#define XFA_FXFA_PARSER_CXFA_FORMAT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Format : public CXFA_Node {
+ public:
+ CXFA_Format(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Format() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FORMAT_H_
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.cpp b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
new file mode 100644
index 0000000000..bb76fcd6ae
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_formfieldfilling.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"formFieldFilling";
+
+} // namespace
+
+CXFA_FormFieldFilling::CXFA_FormFieldFilling(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::FormFieldFilling,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_FormFieldFilling::~CXFA_FormFieldFilling() {}
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.h b/xfa/fxfa/parser/cxfa_formfieldfilling.h
new file mode 100644
index 0000000000..65d4301a8e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_FORMFIELDFILLING_H_
+#define XFA_FXFA_PARSER_CXFA_FORMFIELDFILLING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_FormFieldFilling : public CXFA_Node {
+ public:
+ CXFA_FormFieldFilling(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_FormFieldFilling() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_FORMFIELDFILLING_H_
diff --git a/xfa/fxfa/parser/cxfa_groupparent.cpp b/xfa/fxfa/parser/cxfa_groupparent.cpp
new file mode 100644
index 0000000000..2987a3792e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_groupparent.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_groupparent.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"groupParent";
+
+} // namespace
+
+CXFA_GroupParent::CXFA_GroupParent(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::GroupParent,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_GroupParent::~CXFA_GroupParent() {}
diff --git a/xfa/fxfa/parser/cxfa_groupparent.h b/xfa/fxfa/parser/cxfa_groupparent.h
new file mode 100644
index 0000000000..b56b78b2d4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_groupparent.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_GROUPPARENT_H_
+#define XFA_FXFA_PARSER_CXFA_GROUPPARENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_GroupParent : public CXFA_Node {
+ public:
+ CXFA_GroupParent(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_GroupParent() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_GROUPPARENT_H_
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
new file mode 100644
index 0000000000..183915aa4a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_handler.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"handler";
+
+} // namespace
+
+CXFA_Handler::CXFA_Handler(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Handler,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Handler::~CXFA_Handler() {}
diff --git a/xfa/fxfa/parser/cxfa_handler.h b/xfa/fxfa/parser/cxfa_handler.h
new file mode 100644
index 0000000000..6f18daf9cf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_handler.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_HANDLER_H_
+#define XFA_FXFA_PARSER_CXFA_HANDLER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Handler : public CXFA_Node {
+ public:
+ CXFA_Handler(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Handler() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_HANDLER_H_
diff --git a/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp b/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp
new file mode 100644
index 0000000000..6276bb99fc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_hostpseudomodel.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"hostPseudoModel";
+
+} // namespace
+
+CXFA_HostPseudoModel::CXFA_HostPseudoModel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::Object,
+ XFA_Element::HostPseudoModel,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_HostPseudoModel::~CXFA_HostPseudoModel() {}
diff --git a/xfa/fxfa/parser/cxfa_hostpseudomodel.h b/xfa/fxfa/parser/cxfa_hostpseudomodel.h
new file mode 100644
index 0000000000..ba7b2271dd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_hostpseudomodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_HOSTPSEUDOMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_HOSTPSEUDOMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_HostPseudoModel : public CXFA_Node {
+ public:
+ CXFA_HostPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_HostPseudoModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_HOSTPSEUDOMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.cpp b/xfa/fxfa/parser/cxfa_hyphenation.cpp
new file mode 100644
index 0000000000..0a3300c456
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_hyphenation.cpp
@@ -0,0 +1,36 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_hyphenation.h"
+
+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};
+
+constexpr wchar_t kName[] = L"hyphenation";
+
+} // namespace
+
+CXFA_Hyphenation::CXFA_Hyphenation(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Hyphenation,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Hyphenation::~CXFA_Hyphenation() {}
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.h b/xfa/fxfa/parser/cxfa_hyphenation.h
new file mode 100644
index 0000000000..f364c125e3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_hyphenation.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_HYPHENATION_H_
+#define XFA_FXFA_PARSER_CXFA_HYPHENATION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Hyphenation : public CXFA_Node {
+ public:
+ CXFA_Hyphenation(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Hyphenation() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_HYPHENATION_H_
diff --git a/xfa/fxfa/parser/cxfa_ifempty.cpp b/xfa/fxfa/parser/cxfa_ifempty.cpp
new file mode 100644
index 0000000000..7fdbd84913
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ifempty.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_ifempty.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"ifEmpty";
+
+} // namespace
+
+CXFA_IfEmpty::CXFA_IfEmpty(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::IfEmpty,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_IfEmpty::~CXFA_IfEmpty() {}
diff --git a/xfa/fxfa/parser/cxfa_ifempty.h b/xfa/fxfa/parser/cxfa_ifempty.h
new file mode 100644
index 0000000000..ed9860c7d2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ifempty.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_IFEMPTY_H_
+#define XFA_FXFA_PARSER_CXFA_IFEMPTY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_IfEmpty : public CXFA_Node {
+ public:
+ CXFA_IfEmpty(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_IfEmpty() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_IFEMPTY_H_
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
new file mode 100644
index 0000000000..9c2be0a24f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_image.h"
+
+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};
+
+constexpr wchar_t kName[] = L"image";
+
+} // namespace
+
+CXFA_Image::CXFA_Image(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Image,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Image::~CXFA_Image() {}
diff --git a/xfa/fxfa/parser/cxfa_image.h b/xfa/fxfa/parser/cxfa_image.h
new file mode 100644
index 0000000000..41d4b67dd1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_image.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_IMAGE_H_
+#define XFA_FXFA_PARSER_CXFA_IMAGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Image : public CXFA_Node {
+ public:
+ CXFA_Image(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Image() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_IMAGE_H_
diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp
new file mode 100644
index 0000000000..f12afa260c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_imageedit.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_imageedit.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"imageEdit";
+
+} // namespace
+
+CXFA_ImageEdit::CXFA_ImageEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::ImageEdit,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_ImageEdit::~CXFA_ImageEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_imageedit.h b/xfa/fxfa/parser/cxfa_imageedit.h
new file mode 100644
index 0000000000..616efe79ed
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_imageedit.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_IMAGEEDIT_H_
+#define XFA_FXFA_PARSER_CXFA_IMAGEEDIT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ImageEdit : public CXFA_Node {
+ public:
+ CXFA_ImageEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ImageEdit() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_IMAGEEDIT_H_
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.cpp b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
new file mode 100644
index 0000000000..d76dd4338c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_includexdpcontent.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"includeXDPContent";
+
+} // namespace
+
+CXFA_IncludeXDPContent::CXFA_IncludeXDPContent(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::IncludeXDPContent,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_IncludeXDPContent::~CXFA_IncludeXDPContent() {}
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.h b/xfa/fxfa/parser/cxfa_includexdpcontent.h
new file mode 100644
index 0000000000..564dbba0f6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INCLUDEXDPCONTENT_H_
+#define XFA_FXFA_PARSER_CXFA_INCLUDEXDPCONTENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_IncludeXDPContent : public CXFA_Node {
+ public:
+ CXFA_IncludeXDPContent(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_IncludeXDPContent() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INCLUDEXDPCONTENT_H_
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.cpp b/xfa/fxfa/parser/cxfa_incrementalload.cpp
new file mode 100644
index 0000000000..3c05a8c39a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_incrementalload.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_incrementalload.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"incrementalLoad";
+
+} // namespace
+
+CXFA_IncrementalLoad::CXFA_IncrementalLoad(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::IncrementalLoad,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_IncrementalLoad::~CXFA_IncrementalLoad() {}
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.h b/xfa/fxfa/parser/cxfa_incrementalload.h
new file mode 100644
index 0000000000..d04884920e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_incrementalload.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INCREMENTALLOAD_H_
+#define XFA_FXFA_PARSER_CXFA_INCREMENTALLOAD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_IncrementalLoad : public CXFA_Node {
+ public:
+ CXFA_IncrementalLoad(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_IncrementalLoad() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INCREMENTALLOAD_H_
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.cpp b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
new file mode 100644
index 0000000000..1edc82a1a5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_incrementalmerge.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"incrementalMerge";
+
+} // namespace
+
+CXFA_IncrementalMerge::CXFA_IncrementalMerge(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::IncrementalMerge,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_IncrementalMerge::~CXFA_IncrementalMerge() {}
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.h b/xfa/fxfa/parser/cxfa_incrementalmerge.h
new file mode 100644
index 0000000000..ae1bab1970
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INCREMENTALMERGE_H_
+#define XFA_FXFA_PARSER_CXFA_INCREMENTALMERGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_IncrementalMerge : public CXFA_Node {
+ public:
+ CXFA_IncrementalMerge(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_IncrementalMerge() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INCREMENTALMERGE_H_
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
new file mode 100644
index 0000000000..ee76a11e7f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_insert.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"insert";
+
+} // namespace
+
+CXFA_Insert::CXFA_Insert(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::Insert,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Insert::~CXFA_Insert() {}
diff --git a/xfa/fxfa/parser/cxfa_insert.h b/xfa/fxfa/parser/cxfa_insert.h
new file mode 100644
index 0000000000..b3d807f284
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_insert.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INSERT_H_
+#define XFA_FXFA_PARSER_CXFA_INSERT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Insert : public CXFA_Node {
+ public:
+ CXFA_Insert(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Insert() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INSERT_H_
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp
new file mode 100644
index 0000000000..ed9706897b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_instancemanager.h"
+
+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};
+
+constexpr wchar_t kName[] = L"instanceManager";
+
+} // namespace
+
+CXFA_InstanceManager::CXFA_InstanceManager(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Form,
+ XFA_ObjectType::Node,
+ XFA_Element::InstanceManager,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_InstanceManager::~CXFA_InstanceManager() {}
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.h b/xfa/fxfa/parser/cxfa_instancemanager.h
new file mode 100644
index 0000000000..1fbe0a8b70
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_instancemanager.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INSTANCEMANAGER_H_
+#define XFA_FXFA_PARSER_CXFA_INSTANCEMANAGER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_InstanceManager : public CXFA_Node {
+ public:
+ CXFA_InstanceManager(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_InstanceManager() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INSTANCEMANAGER_H_
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
new file mode 100644
index 0000000000..0878a33303
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_integer.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"integer";
+
+} // namespace
+
+CXFA_Integer::CXFA_Integer(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Integer,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Integer::~CXFA_Integer() {}
diff --git a/xfa/fxfa/parser/cxfa_integer.h b/xfa/fxfa/parser/cxfa_integer.h
new file mode 100644
index 0000000000..2f412b82de
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_integer.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INTEGER_H_
+#define XFA_FXFA_PARSER_CXFA_INTEGER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Integer : public CXFA_Node {
+ public:
+ CXFA_Integer(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Integer() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INTEGER_H_
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
new file mode 100644
index 0000000000..bb1e3a216b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_interactive.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"interactive";
+
+} // namespace
+
+CXFA_Interactive::CXFA_Interactive(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Interactive,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Interactive::~CXFA_Interactive() {}
diff --git a/xfa/fxfa/parser/cxfa_interactive.h b/xfa/fxfa/parser/cxfa_interactive.h
new file mode 100644
index 0000000000..64f9d313d4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_interactive.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_INTERACTIVE_H_
+#define XFA_FXFA_PARSER_CXFA_INTERACTIVE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Interactive : public CXFA_Node {
+ public:
+ CXFA_Interactive(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Interactive() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_INTERACTIVE_H_
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
new file mode 100644
index 0000000000..c9f960ceff
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_issuers.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"issuers";
+
+} // namespace
+
+CXFA_Issuers::CXFA_Issuers(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Issuers,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Issuers::~CXFA_Issuers() {}
diff --git a/xfa/fxfa/parser/cxfa_issuers.h b/xfa/fxfa/parser/cxfa_issuers.h
new file mode 100644
index 0000000000..d131bbb27a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_issuers.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ISSUERS_H_
+#define XFA_FXFA_PARSER_CXFA_ISSUERS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Issuers : public CXFA_Node {
+ public:
+ CXFA_Issuers(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Issuers() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ISSUERS_H_
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
new file mode 100644
index 0000000000..847a143be5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_items.h"
+
+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};
+
+constexpr wchar_t kName[] = L"items";
+
+} // namespace
+
+CXFA_Items::CXFA_Items(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Items,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Items::~CXFA_Items() {}
diff --git a/xfa/fxfa/parser/cxfa_items.h b/xfa/fxfa/parser/cxfa_items.h
new file mode 100644
index 0000000000..e480167c47
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_items.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ITEMS_H_
+#define XFA_FXFA_PARSER_CXFA_ITEMS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Items : public CXFA_Node {
+ public:
+ CXFA_Items(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Items() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ITEMS_H_
diff --git a/xfa/fxfa/parser/cxfa_jog.cpp b/xfa/fxfa/parser/cxfa_jog.cpp
new file mode 100644
index 0000000000..95dafa033c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_jog.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_jog.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"jog";
+
+} // namespace
+
+CXFA_Jog::CXFA_Jog(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Jog,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Jog::~CXFA_Jog() {}
diff --git a/xfa/fxfa/parser/cxfa_jog.h b/xfa/fxfa/parser/cxfa_jog.h
new file mode 100644
index 0000000000..d7b2d71c75
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_jog.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_JOG_H_
+#define XFA_FXFA_PARSER_CXFA_JOG_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Jog : public CXFA_Node {
+ public:
+ CXFA_Jog(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Jog() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_JOG_H_
diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp
new file mode 100644
index 0000000000..313913053e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_keep.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_keep.h"
+
+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};
+
+constexpr wchar_t kName[] = L"keep";
+
+} // namespace
+
+CXFA_Keep::CXFA_Keep(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Keep,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Keep::~CXFA_Keep() {}
diff --git a/xfa/fxfa/parser/cxfa_keep.h b/xfa/fxfa/parser/cxfa_keep.h
new file mode 100644
index 0000000000..9e6339817a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_keep.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_KEEP_H_
+#define XFA_FXFA_PARSER_CXFA_KEEP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Keep : public CXFA_Node {
+ public:
+ CXFA_Keep(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Keep() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_KEEP_H_
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
new file mode 100644
index 0000000000..757dc9c5b3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -0,0 +1,40 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_keyusage.h"
+
+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};
+
+constexpr wchar_t kName[] = L"keyUsage";
+
+} // namespace
+
+CXFA_KeyUsage::CXFA_KeyUsage(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::KeyUsage,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_KeyUsage::~CXFA_KeyUsage() {}
diff --git a/xfa/fxfa/parser/cxfa_keyusage.h b/xfa/fxfa/parser/cxfa_keyusage.h
new file mode 100644
index 0000000000..e12de37f15
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_keyusage.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_KEYUSAGE_H_
+#define XFA_FXFA_PARSER_CXFA_KEYUSAGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_KeyUsage : public CXFA_Node {
+ public:
+ CXFA_KeyUsage(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_KeyUsage() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_KEYUSAGE_H_
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.cpp b/xfa/fxfa/parser/cxfa_labelprinter.cpp
new file mode 100644
index 0000000000..24ab3fc438
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_labelprinter.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_labelprinter.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::FontInfo, 1, 0},
+ {XFA_Element::Xdc, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"labelPrinter";
+
+} // namespace
+
+CXFA_LabelPrinter::CXFA_LabelPrinter(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::LabelPrinter,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_LabelPrinter::~CXFA_LabelPrinter() {}
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.h b/xfa/fxfa/parser/cxfa_labelprinter.h
new file mode 100644
index 0000000000..75283114b6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_labelprinter.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LABELPRINTER_H_
+#define XFA_FXFA_PARSER_CXFA_LABELPRINTER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_LabelPrinter : public CXFA_Node {
+ public:
+ CXFA_LabelPrinter(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_LabelPrinter() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LABELPRINTER_H_
diff --git a/xfa/fxfa/parser/cxfa_layout.cpp b/xfa/fxfa/parser/cxfa_layout.cpp
new file mode 100644
index 0000000000..b11f1cffc4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_layout.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_layout.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"layout";
+
+} // namespace
+
+CXFA_Layout::CXFA_Layout(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Layout,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Layout::~CXFA_Layout() {}
diff --git a/xfa/fxfa/parser/cxfa_layout.h b/xfa/fxfa/parser/cxfa_layout.h
new file mode 100644
index 0000000000..64ba8de1d2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_layout.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LAYOUT_H_
+#define XFA_FXFA_PARSER_CXFA_LAYOUT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Layout : public CXFA_Node {
+ public:
+ CXFA_Layout(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Layout() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LAYOUT_H_
diff --git a/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp b/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp
new file mode 100644
index 0000000000..df9583108a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_layoutpseudomodel.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"layoutPseudoModel";
+
+} // namespace
+
+CXFA_LayoutPseudoModel::CXFA_LayoutPseudoModel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::Object,
+ XFA_Element::LayoutPseudoModel,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_LayoutPseudoModel::~CXFA_LayoutPseudoModel() {}
diff --git a/xfa/fxfa/parser/cxfa_layoutpseudomodel.h b/xfa/fxfa/parser/cxfa_layoutpseudomodel.h
new file mode 100644
index 0000000000..8bd46ece15
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_layoutpseudomodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LAYOUTPSEUDOMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_LAYOUTPSEUDOMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_LayoutPseudoModel : public CXFA_Node {
+ public:
+ CXFA_LayoutPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_LayoutPseudoModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LAYOUTPSEUDOMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_level.cpp b/xfa/fxfa/parser/cxfa_level.cpp
new file mode 100644
index 0000000000..d91414cbee
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_level.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_level.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"level";
+
+} // namespace
+
+CXFA_Level::CXFA_Level(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Level,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Level::~CXFA_Level() {}
diff --git a/xfa/fxfa/parser/cxfa_level.h b/xfa/fxfa/parser/cxfa_level.h
new file mode 100644
index 0000000000..512b1b98c7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_level.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LEVEL_H_
+#define XFA_FXFA_PARSER_CXFA_LEVEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Level : public CXFA_Node {
+ public:
+ CXFA_Level(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Level() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LEVEL_H_
diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp
new file mode 100644
index 0000000000..2594f6e275
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_line.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_line.h"
+
+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};
+
+constexpr wchar_t kName[] = L"line";
+
+} // namespace
+
+CXFA_Line::CXFA_Line(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Line,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Line::~CXFA_Line() {}
diff --git a/xfa/fxfa/parser/cxfa_line.h b/xfa/fxfa/parser/cxfa_line.h
new file mode 100644
index 0000000000..c575c5ee2b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_line.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LINE_H_
+#define XFA_FXFA_PARSER_CXFA_LINE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Line : public CXFA_Node {
+ public:
+ CXFA_Line(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Line() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LINE_H_
diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp
new file mode 100644
index 0000000000..67dac9401b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_linear.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_linear.h"
+
+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};
+
+constexpr wchar_t kName[] = L"linear";
+
+} // namespace
+
+CXFA_Linear::CXFA_Linear(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Linear,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Linear::~CXFA_Linear() {}
diff --git a/xfa/fxfa/parser/cxfa_linear.h b/xfa/fxfa/parser/cxfa_linear.h
new file mode 100644
index 0000000000..e3572b0079
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_linear.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LINEAR_H_
+#define XFA_FXFA_PARSER_CXFA_LINEAR_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Linear : public CXFA_Node {
+ public:
+ CXFA_Linear(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Linear() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LINEAR_H_
diff --git a/xfa/fxfa/parser/cxfa_linearized.cpp b/xfa/fxfa/parser/cxfa_linearized.cpp
new file mode 100644
index 0000000000..4fa0a51ef0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_linearized.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_linearized.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"linearized";
+
+} // namespace
+
+CXFA_Linearized::CXFA_Linearized(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Linearized,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Linearized::~CXFA_Linearized() {}
diff --git a/xfa/fxfa/parser/cxfa_linearized.h b/xfa/fxfa/parser/cxfa_linearized.h
new file mode 100644
index 0000000000..59f41fe3c6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_linearized.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LINEARIZED_H_
+#define XFA_FXFA_PARSER_CXFA_LINEARIZED_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Linearized : public CXFA_Node {
+ public:
+ CXFA_Linearized(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Linearized() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LINEARIZED_H_
diff --git a/xfa/fxfa/parser/cxfa_list.cpp b/xfa/fxfa/parser/cxfa_list.cpp
new file mode 100644
index 0000000000..9c15b578c3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_list.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_list.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"list";
+
+} // namespace
+
+CXFA_List::CXFA_List(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::List,
+ XFA_Element::List,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_List::~CXFA_List() {}
diff --git a/xfa/fxfa/parser/cxfa_list.h b/xfa/fxfa/parser/cxfa_list.h
new file mode 100644
index 0000000000..8c54a983d1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_list.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LIST_H_
+#define XFA_FXFA_PARSER_CXFA_LIST_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_List : public CXFA_Node {
+ public:
+ CXFA_List(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_List() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LIST_H_
diff --git a/xfa/fxfa/parser/cxfa_locale.cpp b/xfa/fxfa/parser/cxfa_locale.cpp
new file mode 100644
index 0000000000..3ace9f5e54
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_locale.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_locale.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::DatePatterns, 1, 0}, {XFA_Element::CalendarSymbols, 1, 0},
+ {XFA_Element::CurrencySymbols, 1, 0}, {XFA_Element::Typefaces, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"locale";
+
+} // namespace
+
+CXFA_Locale::CXFA_Locale(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet),
+ XFA_ObjectType::Node,
+ XFA_Element::Locale,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Locale::~CXFA_Locale() {}
diff --git a/xfa/fxfa/parser/cxfa_locale.h b/xfa/fxfa/parser/cxfa_locale.h
new file mode 100644
index 0000000000..4071d3354e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_locale.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LOCALE_H_
+#define XFA_FXFA_PARSER_CXFA_LOCALE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Locale : public CXFA_Node {
+ public:
+ CXFA_Locale(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Locale() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LOCALE_H_
diff --git a/xfa/fxfa/parser/cxfa_localeset.cpp b/xfa/fxfa/parser/cxfa_localeset.cpp
new file mode 100644
index 0000000000..050c28321c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_localeset.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_localeset.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"localeSet";
+
+} // namespace
+
+CXFA_LocaleSet::CXFA_LocaleSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet),
+ XFA_ObjectType::ModelNode,
+ XFA_Element::LocaleSet,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_LocaleSet::~CXFA_LocaleSet() {}
diff --git a/xfa/fxfa/parser/cxfa_localeset.h b/xfa/fxfa/parser/cxfa_localeset.h
new file mode 100644
index 0000000000..3a392cdf5f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_localeset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LOCALESET_H_
+#define XFA_FXFA_PARSER_CXFA_LOCALESET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_LocaleSet : public CXFA_Node {
+ public:
+ CXFA_LocaleSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_LocaleSet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LOCALESET_H_
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.cpp b/xfa/fxfa/parser/cxfa_lockdocument.cpp
new file mode 100644
index 0000000000..82ee11012f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_lockdocument.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_lockdocument.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"lockDocument";
+
+} // namespace
+
+CXFA_LockDocument::CXFA_LockDocument(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::LockDocument,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_LockDocument::~CXFA_LockDocument() {}
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.h b/xfa/fxfa/parser/cxfa_lockdocument.h
new file mode 100644
index 0000000000..c5321c8980
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_lockdocument.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LOCKDOCUMENT_H_
+#define XFA_FXFA_PARSER_CXFA_LOCKDOCUMENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_LockDocument : public CXFA_Node {
+ public:
+ CXFA_LockDocument(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_LockDocument() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LOCKDOCUMENT_H_
diff --git a/xfa/fxfa/parser/cxfa_log.cpp b/xfa/fxfa/parser/cxfa_log.cpp
new file mode 100644
index 0000000000..b369a9ae7f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_log.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_log.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::To, 1, 0},
+ {XFA_Element::Uri, 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};
+
+constexpr wchar_t kName[] = L"log";
+
+} // namespace
+
+CXFA_Log::CXFA_Log(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Log,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Log::~CXFA_Log() {}
diff --git a/xfa/fxfa/parser/cxfa_log.h b/xfa/fxfa/parser/cxfa_log.h
new file mode 100644
index 0000000000..2add392979
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_log.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LOG_H_
+#define XFA_FXFA_PARSER_CXFA_LOG_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Log : public CXFA_Node {
+ public:
+ CXFA_Log(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Log() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LOG_H_
diff --git a/xfa/fxfa/parser/cxfa_logpseudomodel.cpp b/xfa/fxfa/parser/cxfa_logpseudomodel.cpp
new file mode 100644
index 0000000000..ed883762e2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_logpseudomodel.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_logpseudomodel.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"logPseudoModel";
+
+} // namespace
+
+CXFA_LogPseudoModel::CXFA_LogPseudoModel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::Object,
+ XFA_Element::LogPseudoModel,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_LogPseudoModel::~CXFA_LogPseudoModel() {}
diff --git a/xfa/fxfa/parser/cxfa_logpseudomodel.h b/xfa/fxfa/parser/cxfa_logpseudomodel.h
new file mode 100644
index 0000000000..3b1b0e1189
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_logpseudomodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_LOGPSEUDOMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_LOGPSEUDOMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_LogPseudoModel : public CXFA_Node {
+ public:
+ CXFA_LogPseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_LogPseudoModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_LOGPSEUDOMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp
new file mode 100644
index 0000000000..f038118e32
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_manifest.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_manifest.h"
+
+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};
+
+constexpr wchar_t kName[] = L"manifest";
+
+} // namespace
+
+CXFA_Manifest::CXFA_Manifest(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Manifest,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Manifest::~CXFA_Manifest() {}
diff --git a/xfa/fxfa/parser/cxfa_manifest.h b/xfa/fxfa/parser/cxfa_manifest.h
new file mode 100644
index 0000000000..603df54dbf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_manifest.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MANIFEST_H_
+#define XFA_FXFA_PARSER_CXFA_MANIFEST_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Manifest : public CXFA_Node {
+ public:
+ CXFA_Manifest(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Manifest() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MANIFEST_H_
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
new file mode 100644
index 0000000000..b06a5deb9e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_map.h"
+
+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};
+
+constexpr wchar_t kName[] = L"map";
+
+} // namespace
+
+CXFA_Map::CXFA_Map(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_SourceSet),
+ XFA_ObjectType::Node,
+ XFA_Element::Map,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Map::~CXFA_Map() {}
diff --git a/xfa/fxfa/parser/cxfa_map.h b/xfa/fxfa/parser/cxfa_map.h
new file mode 100644
index 0000000000..b4535c24f9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_map.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MAP_H_
+#define XFA_FXFA_PARSER_CXFA_MAP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Map : public CXFA_Node {
+ public:
+ CXFA_Map(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Map() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MAP_H_
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp
new file mode 100644
index 0000000000..5269299bfe
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_margin.h"
+
+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};
+
+constexpr wchar_t kName[] = L"margin";
+
+} // namespace
+
+CXFA_Margin::CXFA_Margin(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Margin,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Margin::~CXFA_Margin() {}
diff --git a/xfa/fxfa/parser/cxfa_margin.h b/xfa/fxfa/parser/cxfa_margin.h
new file mode 100644
index 0000000000..9883e67047
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_margin.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MARGIN_H_
+#define XFA_FXFA_PARSER_CXFA_MARGIN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Margin : public CXFA_Node {
+ public:
+ CXFA_Margin(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Margin() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MARGIN_H_
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
new file mode 100644
index 0000000000..fa41793e98
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_mdp.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id,
+ XFA_Attribute::Use,
+ XFA_Attribute::SignatureType,
+ XFA_Attribute::Usehref,
+ XFA_Attribute::Permissions,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"mdp";
+
+} // namespace
+
+CXFA_Mdp::CXFA_Mdp(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Mdp,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Mdp::~CXFA_Mdp() {}
diff --git a/xfa/fxfa/parser/cxfa_mdp.h b/xfa/fxfa/parser/cxfa_mdp.h
new file mode 100644
index 0000000000..a802b1607f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_mdp.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MDP_H_
+#define XFA_FXFA_PARSER_CXFA_MDP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Mdp : public CXFA_Node {
+ public:
+ CXFA_Mdp(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Mdp() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MDP_H_
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
new file mode 100644
index 0000000000..00c8682139
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_medium.h"
+
+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};
+
+constexpr wchar_t kName[] = L"medium";
+
+} // namespace
+
+CXFA_Medium::CXFA_Medium(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Medium,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Medium::~CXFA_Medium() {}
diff --git a/xfa/fxfa/parser/cxfa_medium.h b/xfa/fxfa/parser/cxfa_medium.h
new file mode 100644
index 0000000000..4b5b5401cf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_medium.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MEDIUM_H_
+#define XFA_FXFA_PARSER_CXFA_MEDIUM_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Medium : public CXFA_Node {
+ public:
+ CXFA_Medium(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Medium() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MEDIUM_H_
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.cpp b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
new file mode 100644
index 0000000000..69e6dd02ff
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_mediuminfo.h"
+
+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};
+
+constexpr wchar_t kName[] = L"mediumInfo";
+
+} // namespace
+
+CXFA_MediumInfo::CXFA_MediumInfo(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::MediumInfo,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_MediumInfo::~CXFA_MediumInfo() {}
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.h b/xfa/fxfa/parser/cxfa_mediuminfo.h
new file mode 100644
index 0000000000..11d72b3978
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MEDIUMINFO_H_
+#define XFA_FXFA_PARSER_CXFA_MEDIUMINFO_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_MediumInfo : public CXFA_Node {
+ public:
+ CXFA_MediumInfo(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_MediumInfo() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MEDIUMINFO_H_
diff --git a/xfa/fxfa/parser/cxfa_meridiem.cpp b/xfa/fxfa/parser/cxfa_meridiem.cpp
new file mode 100644
index 0000000000..89227f631e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_meridiem.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_meridiem.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"meridiem";
+
+} // namespace
+
+CXFA_Meridiem::CXFA_Meridiem(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Meridiem,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Meridiem::~CXFA_Meridiem() {}
diff --git a/xfa/fxfa/parser/cxfa_meridiem.h b/xfa/fxfa/parser/cxfa_meridiem.h
new file mode 100644
index 0000000000..0c3935cd94
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_meridiem.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MERIDIEM_H_
+#define XFA_FXFA_PARSER_CXFA_MERIDIEM_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Meridiem : public CXFA_Node {
+ public:
+ CXFA_Meridiem(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Meridiem() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MERIDIEM_H_
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.cpp b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
new file mode 100644
index 0000000000..aad222a8f5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_meridiemnames.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Meridiem, 2, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"meridiemNames";
+
+} // namespace
+
+CXFA_MeridiemNames::CXFA_MeridiemNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::MeridiemNames,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_MeridiemNames::~CXFA_MeridiemNames() {}
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.h b/xfa/fxfa/parser/cxfa_meridiemnames.h
new file mode 100644
index 0000000000..d98761f113
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MERIDIEMNAMES_H_
+#define XFA_FXFA_PARSER_CXFA_MERIDIEMNAMES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_MeridiemNames : public CXFA_Node {
+ public:
+ CXFA_MeridiemNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_MeridiemNames() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MERIDIEMNAMES_H_
diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp
new file mode 100644
index 0000000000..35e82355d6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_message.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_message.h"
+
+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};
+
+constexpr wchar_t kName[] = L"message";
+
+} // namespace
+
+CXFA_Message::CXFA_Message(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Message,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Message::~CXFA_Message() {}
diff --git a/xfa/fxfa/parser/cxfa_message.h b/xfa/fxfa/parser/cxfa_message.h
new file mode 100644
index 0000000000..00ab899c12
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_message.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MESSAGE_H_
+#define XFA_FXFA_PARSER_CXFA_MESSAGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Message : public CXFA_Node {
+ public:
+ CXFA_Message(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Message() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MESSAGE_H_
diff --git a/xfa/fxfa/parser/cxfa_messaging.cpp b/xfa/fxfa/parser/cxfa_messaging.cpp
new file mode 100644
index 0000000000..c37ec66a60
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_messaging.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_messaging.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"messaging";
+
+} // namespace
+
+CXFA_Messaging::CXFA_Messaging(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Messaging,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Messaging::~CXFA_Messaging() {}
diff --git a/xfa/fxfa/parser/cxfa_messaging.h b/xfa/fxfa/parser/cxfa_messaging.h
new file mode 100644
index 0000000000..266c345303
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_messaging.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MESSAGING_H_
+#define XFA_FXFA_PARSER_CXFA_MESSAGING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Messaging : public CXFA_Node {
+ public:
+ CXFA_Messaging(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Messaging() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MESSAGING_H_
diff --git a/xfa/fxfa/parser/cxfa_mode.cpp b/xfa/fxfa/parser/cxfa_mode.cpp
new file mode 100644
index 0000000000..9019957c78
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_mode.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_mode.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"mode";
+
+} // namespace
+
+CXFA_Mode::CXFA_Mode(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Mode,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Mode::~CXFA_Mode() {}
diff --git a/xfa/fxfa/parser/cxfa_mode.h b/xfa/fxfa/parser/cxfa_mode.h
new file mode 100644
index 0000000000..3385061a5a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_mode.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MODE_H_
+#define XFA_FXFA_PARSER_CXFA_MODE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Mode : public CXFA_Node {
+ public:
+ CXFA_Mode(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Mode() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MODE_H_
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.cpp b/xfa/fxfa/parser/cxfa_modifyannots.cpp
new file mode 100644
index 0000000000..baaf5744e4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_modifyannots.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_modifyannots.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"modifyAnnots";
+
+} // namespace
+
+CXFA_ModifyAnnots::CXFA_ModifyAnnots(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::ModifyAnnots,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ModifyAnnots::~CXFA_ModifyAnnots() {}
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.h b/xfa/fxfa/parser/cxfa_modifyannots.h
new file mode 100644
index 0000000000..601a7a3f1e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_modifyannots.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MODIFYANNOTS_H_
+#define XFA_FXFA_PARSER_CXFA_MODIFYANNOTS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ModifyAnnots : public CXFA_Node {
+ public:
+ CXFA_ModifyAnnots(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ModifyAnnots() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MODIFYANNOTS_H_
diff --git a/xfa/fxfa/parser/cxfa_month.cpp b/xfa/fxfa/parser/cxfa_month.cpp
new file mode 100644
index 0000000000..94b9dc0c47
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_month.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_month.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"month";
+
+} // namespace
+
+CXFA_Month::CXFA_Month(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Month,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Month::~CXFA_Month() {}
diff --git a/xfa/fxfa/parser/cxfa_month.h b/xfa/fxfa/parser/cxfa_month.h
new file mode 100644
index 0000000000..1936612a6d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_month.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MONTH_H_
+#define XFA_FXFA_PARSER_CXFA_MONTH_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Month : public CXFA_Node {
+ public:
+ CXFA_Month(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Month() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MONTH_H_
diff --git a/xfa/fxfa/parser/cxfa_monthnames.cpp b/xfa/fxfa/parser/cxfa_monthnames.cpp
new file mode 100644
index 0000000000..abd301d823
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_monthnames.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_monthnames.h"
+
+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};
+
+constexpr wchar_t kName[] = L"monthNames";
+
+} // namespace
+
+CXFA_MonthNames::CXFA_MonthNames(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::MonthNames,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_MonthNames::~CXFA_MonthNames() {}
diff --git a/xfa/fxfa/parser/cxfa_monthnames.h b/xfa/fxfa/parser/cxfa_monthnames.h
new file mode 100644
index 0000000000..9b221d6cb3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_monthnames.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MONTHNAMES_H_
+#define XFA_FXFA_PARSER_CXFA_MONTHNAMES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_MonthNames : public CXFA_Node {
+ public:
+ CXFA_MonthNames(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_MonthNames() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MONTHNAMES_H_
diff --git a/xfa/fxfa/parser/cxfa_msgid.cpp b/xfa/fxfa/parser/cxfa_msgid.cpp
new file mode 100644
index 0000000000..642abb9470
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_msgid.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_msgid.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"msgId";
+
+} // namespace
+
+CXFA_MsgId::CXFA_MsgId(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::MsgId,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_MsgId::~CXFA_MsgId() {}
diff --git a/xfa/fxfa/parser/cxfa_msgid.h b/xfa/fxfa/parser/cxfa_msgid.h
new file mode 100644
index 0000000000..c8d30d6772
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_msgid.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_MSGID_H_
+#define XFA_FXFA_PARSER_CXFA_MSGID_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_MsgId : public CXFA_Node {
+ public:
+ CXFA_MsgId(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_MsgId() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_MSGID_H_
diff --git a/xfa/fxfa/parser/cxfa_nameattr.cpp b/xfa/fxfa/parser/cxfa_nameattr.cpp
new file mode 100644
index 0000000000..4f9e832644
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_nameattr.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_nameattr.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"nameAttr";
+
+} // namespace
+
+CXFA_NameAttr::CXFA_NameAttr(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::NameAttr,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_NameAttr::~CXFA_NameAttr() {}
diff --git a/xfa/fxfa/parser/cxfa_nameattr.h b/xfa/fxfa/parser/cxfa_nameattr.h
new file mode 100644
index 0000000000..bcd02327d6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_nameattr.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NAMEATTR_H_
+#define XFA_FXFA_PARSER_CXFA_NAMEATTR_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NameAttr : public CXFA_Node {
+ public:
+ CXFA_NameAttr(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NameAttr() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NAMEATTR_H_
diff --git a/xfa/fxfa/parser/cxfa_neverembed.cpp b/xfa/fxfa/parser/cxfa_neverembed.cpp
new file mode 100644
index 0000000000..32f6b13c8f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_neverembed.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_neverembed.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"neverEmbed";
+
+} // namespace
+
+CXFA_NeverEmbed::CXFA_NeverEmbed(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::NeverEmbed,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_NeverEmbed::~CXFA_NeverEmbed() {}
diff --git a/xfa/fxfa/parser/cxfa_neverembed.h b/xfa/fxfa/parser/cxfa_neverembed.h
new file mode 100644
index 0000000000..8be160f00a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_neverembed.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NEVEREMBED_H_
+#define XFA_FXFA_PARSER_CXFA_NEVEREMBED_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NeverEmbed : public CXFA_Node {
+ public:
+ CXFA_NeverEmbed(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NeverEmbed() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NEVEREMBED_H_
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index a947374814..ccbf31048d 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -138,24 +138,22 @@ const XFA_ATTRIBUTEENUMINFO* GetAttributeEnumByID(XFA_ATTRIBUTEENUM eName) {
return g_XFAEnumData + eName;
}
-// static
-std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
- XFA_XDPPACKET packet,
- const XFA_ELEMENTINFO* pElement) {
- return std::unique_ptr<CXFA_Node>(new CXFA_Node(
- doc, packet, pElement->eObjectType, pElement->eName, pElement->pName));
-}
-
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 WideStringView& elementName)
: CXFA_Object(pDoc,
oType,
eType,
elementName,
pdfium::MakeUnique<CJX_Node>(this)),
+ m_Properties(properties),
+ m_Attributes(attributes),
+ m_ValidPackets(validPackets),
m_pNext(nullptr),
m_pChild(nullptr),
m_pLastChild(nullptr),
@@ -245,6 +243,75 @@ CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem) const {
return nullptr;
}
+bool CXFA_Node::IsValidInPacket(XFA_XDPPACKET packet) const {
+ return !!(m_ValidPackets & packet);
+}
+
+const CXFA_Node::PropertyData* CXFA_Node::GetPropertyData(
+ XFA_Element property) const {
+ if (m_Properties == nullptr)
+ return nullptr;
+
+ for (size_t i = 0;; ++i) {
+ const PropertyData* data = m_Properties + i;
+ if (data->property == XFA_Element::Unknown)
+ break;
+ if (data->property == property)
+ return data;
+ }
+ return nullptr;
+}
+
+bool CXFA_Node::HasProperty(XFA_Element property) const {
+ return !!GetPropertyData(property);
+}
+
+bool CXFA_Node::HasPropertyFlags(XFA_Element property, uint8_t flags) const {
+ const PropertyData* data = GetPropertyData(property);
+ return data && !!(data->flags & flags);
+}
+
+uint8_t CXFA_Node::PropertyOccuranceCount(XFA_Element property) const {
+ const PropertyData* data = GetPropertyData(property);
+ return data ? data->occurance_count : 0;
+}
+
+pdfium::Optional<XFA_Element> CXFA_Node::GetFirstPropertyWithFlag(
+ uint8_t flag) {
+ if (m_Properties == nullptr)
+ return {};
+
+ for (size_t i = 0;; ++i) {
+ const PropertyData* data = m_Properties + i;
+ if (data->property == XFA_Element::Unknown)
+ break;
+ if (data->flags & flag)
+ return {data->property};
+ }
+ return {};
+}
+
+bool CXFA_Node::HasAttribute(XFA_Attribute attr) const {
+ if (m_Attributes == nullptr)
+ return false;
+
+ for (size_t i = 0;; ++i) {
+ XFA_Attribute cur_attr = *(m_Attributes + i);
+ if (cur_attr == XFA_Attribute::Unknown)
+ break;
+ if (cur_attr == attr)
+ return true;
+ }
+ return false;
+}
+
+// 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);
+}
+
CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem,
XFA_ObjectType eType) const {
CXFA_Node* pNode = nullptr;
@@ -283,62 +350,64 @@ CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem,
std::vector<CXFA_Node*> CXFA_Node::GetNodeList(uint32_t dwTypeFilter,
XFA_Element eTypeFilter) {
- std::vector<CXFA_Node*> nodes;
if (eTypeFilter != XFA_Element::Unknown) {
+ std::vector<CXFA_Node*> nodes;
for (CXFA_Node* pChild = m_pChild; pChild; pChild = pChild->m_pNext) {
if (pChild->GetElementType() == eTypeFilter)
nodes.push_back(pChild);
}
- } else if (dwTypeFilter ==
- (XFA_NODEFILTER_Children | XFA_NODEFILTER_Properties)) {
+ return nodes;
+ }
+
+ if (dwTypeFilter == (XFA_NODEFILTER_Children | XFA_NODEFILTER_Properties)) {
+ std::vector<CXFA_Node*> nodes;
for (CXFA_Node* pChild = m_pChild; pChild; pChild = pChild->m_pNext)
nodes.push_back(pChild);
- } else if (dwTypeFilter != 0) {
- bool bFilterChildren = !!(dwTypeFilter & XFA_NODEFILTER_Children);
- bool bFilterProperties = !!(dwTypeFilter & XFA_NODEFILTER_Properties);
- bool bFilterOneOfProperties =
- !!(dwTypeFilter & XFA_NODEFILTER_OneOfProperty);
- CXFA_Node* pChild = m_pChild;
- while (pChild) {
- const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement(
- GetElementType(), pChild->GetElementType(), XFA_XDPPACKET_UNKNOWN);
- if (pProperty) {
- if (bFilterProperties) {
- nodes.push_back(pChild);
- } else if (bFilterOneOfProperties &&
- (pProperty->uFlags & XFA_PROPERTYFLAG_OneOf)) {
- nodes.push_back(pChild);
- } else if (bFilterChildren &&
- (pChild->GetElementType() == XFA_Element::Variables ||
- pChild->GetElementType() == XFA_Element::PageSet)) {
- nodes.push_back(pChild);
- }
- } else if (bFilterChildren) {
+ return nodes;
+ }
+
+ if (dwTypeFilter == 0)
+ return std::vector<CXFA_Node*>();
+
+ bool bFilterChildren = !!(dwTypeFilter & XFA_NODEFILTER_Children);
+ bool bFilterProperties = !!(dwTypeFilter & XFA_NODEFILTER_Properties);
+ bool bFilterOneOfProperties = !!(dwTypeFilter & XFA_NODEFILTER_OneOfProperty);
+ std::vector<CXFA_Node*> nodes;
+ for (CXFA_Node* pChild = m_pChild; pChild; pChild = pChild->m_pNext) {
+ if (!HasProperty(pChild->GetElementType())) {
+ if (bFilterProperties) {
+ nodes.push_back(pChild);
+ } else if (bFilterOneOfProperties &&
+ HasPropertyFlags(pChild->GetElementType(),
+ XFA_PROPERTYFLAG_OneOf)) {
+ nodes.push_back(pChild);
+ } else if (bFilterChildren &&
+ (pChild->GetElementType() == XFA_Element::Variables ||
+ pChild->GetElementType() == XFA_Element::PageSet)) {
nodes.push_back(pChild);
}
- pChild = pChild->m_pNext;
- }
- if (bFilterOneOfProperties && nodes.empty()) {
- int32_t iProperties = 0;
- const XFA_PROPERTY* pProperty =
- XFA_GetElementProperties(GetElementType(), iProperties);
- if (!pProperty || iProperties < 1)
- return nodes;
- for (int32_t i = 0; i < iProperties; i++) {
- if (pProperty[i].uFlags & XFA_PROPERTYFLAG_DefaultOneOf) {
- const XFA_PACKETINFO* pPacket = XFA_GetPacketByID(GetPacketID());
- CXFA_Node* pNewNode =
- m_pDocument->CreateNode(pPacket, pProperty[i].eName);
- if (!pNewNode)
- break;
- InsertChild(pNewNode, nullptr);
- pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
- nodes.push_back(pNewNode);
- break;
- }
- }
+ } else if (bFilterChildren) {
+ nodes.push_back(pChild);
}
}
+
+ if (!bFilterOneOfProperties || !nodes.empty())
+ return nodes;
+ if (m_Properties == nullptr)
+ return nodes;
+
+ pdfium::Optional<XFA_Element> property =
+ GetFirstPropertyWithFlag(XFA_PROPERTYFLAG_DefaultOneOf);
+ if (!property)
+ return nodes;
+
+ const XFA_PACKETINFO* pPacket = XFA_GetPacketByID(GetPacketID());
+ CXFA_Node* pNewNode = m_pDocument->CreateNode(pPacket, *property);
+ if (pNewNode) {
+ InsertChild(pNewNode, nullptr);
+ pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
+ nodes.push_back(pNewNode);
+ }
return nodes;
}
@@ -671,19 +740,14 @@ CXFA_Node* CXFA_Node::GetModelNode() {
}
int32_t CXFA_Node::CountChildren(XFA_Element eType, bool bOnlyChild) {
- CXFA_Node* pNode = m_pChild;
int32_t iCount = 0;
- for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
- if (pNode->GetElementType() == eType || eType == XFA_Element::Unknown) {
- if (bOnlyChild) {
- const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement(
- GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN);
- if (pProperty) {
- continue;
- }
- }
- iCount++;
- }
+ for (CXFA_Node* pNode = m_pChild; pNode;
+ pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
+ if (pNode->GetElementType() != eType && eType != XFA_Element::Unknown)
+ continue;
+ if (bOnlyChild && HasProperty(pNode->GetElementType()))
+ continue;
+ ++iCount;
}
return iCount;
}
@@ -692,22 +756,18 @@ CXFA_Node* CXFA_Node::GetChild(int32_t index,
XFA_Element eType,
bool bOnlyChild) {
ASSERT(index > -1);
- CXFA_Node* pNode = m_pChild;
+
int32_t iCount = 0;
- for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
- if (pNode->GetElementType() == eType || eType == XFA_Element::Unknown) {
- if (bOnlyChild) {
- const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement(
- GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN);
- if (pProperty) {
- continue;
- }
- }
- iCount++;
- if (iCount > index) {
- return pNode;
- }
- }
+ for (CXFA_Node* pNode = m_pChild; pNode;
+ pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
+ if (pNode->GetElementType() != eType && eType != XFA_Element::Unknown)
+ continue;
+ if (bOnlyChild && HasProperty(pNode->GetElementType()))
+ continue;
+ if (iCount == index)
+ return pNode;
+
+ ++iCount;
}
return nullptr;
}
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index dc4710a9c6..7b7086ecb5 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -9,6 +9,7 @@
#include <map>
#include <memory>
+#include <utility>
#include <vector>
#include "core/fxcrt/fx_string.h"
@@ -46,12 +47,28 @@ const XFA_ATTRIBUTEENUMINFO* GetAttributeEnumByID(XFA_ATTRIBUTEENUM eName);
class CXFA_Node : public CXFA_Object {
public:
+ struct PropertyData {
+ XFA_Element property;
+ uint8_t occurance_count;
+ uint8_t flags;
+ };
+
+ static XFA_Element NameToElement(const WideString& name);
static std::unique_ptr<CXFA_Node> Create(CXFA_Document* doc,
- XFA_XDPPACKET packet,
- const XFA_ELEMENTINFO* pElement);
+ XFA_Element element,
+ XFA_XDPPACKET packet);
~CXFA_Node() override;
+ bool IsValidInPacket(XFA_XDPPACKET packet) const;
+
+ bool HasProperty(XFA_Element property) const;
+ bool HasPropertyFlags(XFA_Element property, uint8_t flags) const;
+ uint8_t PropertyOccuranceCount(XFA_Element property) const;
+
+ bool HasAttribute(XFA_Attribute attr) const;
+ XFA_Attribute GetAttribute(size_t i) const;
+
uint32_t GetPacketID() const { return m_ePacket; }
void SetFlag(uint32_t dwFlag, bool bNotify);
@@ -148,18 +165,26 @@ class CXFA_Node : public CXFA_Object {
pdfium::Optional<WideString> GetDefaultCData(XFA_Attribute attr) const;
pdfium::Optional<XFA_ATTRIBUTEENUM> GetDefaultEnum(XFA_Attribute attr) const;
- private:
+ protected:
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 WideStringView& elementName);
+ private:
bool HasFlag(XFA_NodeFlag dwFlag) const;
CXFA_Node* Deprecated_GetPrevSibling();
-
+ const PropertyData* GetPropertyData(XFA_Element property) const;
+ pdfium::Optional<XFA_Element> GetFirstPropertyWithFlag(uint8_t flag);
void OnRemoved(bool bNotify);
+ const PropertyData* m_Properties;
+ const XFA_Attribute* m_Attributes;
+ uint32_t m_ValidPackets;
CXFA_Node* m_pNext;
CXFA_Node* m_pChild;
CXFA_Node* m_pLastChild;
diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp
new file mode 100644
index 0000000000..d0e65c8f62
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_node_statics.cpp
@@ -0,0 +1,1606 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include <memory>
+
+#include "third_party/base/ptr_util.h"
+#include "xfa/fxfa/parser/cxfa_accessiblecontent.h"
+#include "xfa/fxfa/parser/cxfa_acrobat.h"
+#include "xfa/fxfa/parser/cxfa_acrobat7.h"
+#include "xfa/fxfa/parser/cxfa_adbe_jsconsole.h"
+#include "xfa/fxfa/parser/cxfa_adbe_jsdebugger.h"
+#include "xfa/fxfa/parser/cxfa_addsilentprint.h"
+#include "xfa/fxfa/parser/cxfa_addviewerpreferences.h"
+#include "xfa/fxfa/parser/cxfa_adjustdata.h"
+#include "xfa/fxfa/parser/cxfa_adobeextensionlevel.h"
+#include "xfa/fxfa/parser/cxfa_agent.h"
+#include "xfa/fxfa/parser/cxfa_alwaysembed.h"
+#include "xfa/fxfa/parser/cxfa_amd.h"
+#include "xfa/fxfa/parser/cxfa_appearancefilter.h"
+#include "xfa/fxfa/parser/cxfa_arc.h"
+#include "xfa/fxfa/parser/cxfa_area.h"
+#include "xfa/fxfa/parser/cxfa_assist.h"
+#include "xfa/fxfa/parser/cxfa_attributes.h"
+#include "xfa/fxfa/parser/cxfa_autosave.h"
+#include "xfa/fxfa/parser/cxfa_barcode.h"
+#include "xfa/fxfa/parser/cxfa_base.h"
+#include "xfa/fxfa/parser/cxfa_batchoutput.h"
+#include "xfa/fxfa/parser/cxfa_behavioroverride.h"
+#include "xfa/fxfa/parser/cxfa_bind.h"
+#include "xfa/fxfa/parser/cxfa_binditems.h"
+#include "xfa/fxfa/parser/cxfa_bookend.h"
+#include "xfa/fxfa/parser/cxfa_boolean.h"
+#include "xfa/fxfa/parser/cxfa_border.h"
+#include "xfa/fxfa/parser/cxfa_break.h"
+#include "xfa/fxfa/parser/cxfa_breakafter.h"
+#include "xfa/fxfa/parser/cxfa_breakbefore.h"
+#include "xfa/fxfa/parser/cxfa_button.h"
+#include "xfa/fxfa/parser/cxfa_cache.h"
+#include "xfa/fxfa/parser/cxfa_calculate.h"
+#include "xfa/fxfa/parser/cxfa_calendarsymbols.h"
+#include "xfa/fxfa/parser/cxfa_caption.h"
+#include "xfa/fxfa/parser/cxfa_certificate.h"
+#include "xfa/fxfa/parser/cxfa_certificates.h"
+#include "xfa/fxfa/parser/cxfa_change.h"
+#include "xfa/fxfa/parser/cxfa_checkbutton.h"
+#include "xfa/fxfa/parser/cxfa_choicelist.h"
+#include "xfa/fxfa/parser/cxfa_color.h"
+#include "xfa/fxfa/parser/cxfa_comb.h"
+#include "xfa/fxfa/parser/cxfa_command.h"
+#include "xfa/fxfa/parser/cxfa_common.h"
+#include "xfa/fxfa/parser/cxfa_compress.h"
+#include "xfa/fxfa/parser/cxfa_compression.h"
+#include "xfa/fxfa/parser/cxfa_compresslogicalstructure.h"
+#include "xfa/fxfa/parser/cxfa_compressobjectstream.h"
+#include "xfa/fxfa/parser/cxfa_config.h"
+#include "xfa/fxfa/parser/cxfa_conformance.h"
+#include "xfa/fxfa/parser/cxfa_connect.h"
+#include "xfa/fxfa/parser/cxfa_connectionset.h"
+#include "xfa/fxfa/parser/cxfa_connectstring.h"
+#include "xfa/fxfa/parser/cxfa_contentarea.h"
+#include "xfa/fxfa/parser/cxfa_contentcopy.h"
+#include "xfa/fxfa/parser/cxfa_copies.h"
+#include "xfa/fxfa/parser/cxfa_corner.h"
+#include "xfa/fxfa/parser/cxfa_creator.h"
+#include "xfa/fxfa/parser/cxfa_currencysymbol.h"
+#include "xfa/fxfa/parser/cxfa_currencysymbols.h"
+#include "xfa/fxfa/parser/cxfa_currentpage.h"
+#include "xfa/fxfa/parser/cxfa_data.h"
+#include "xfa/fxfa/parser/cxfa_datagroup.h"
+#include "xfa/fxfa/parser/cxfa_datamodel.h"
+#include "xfa/fxfa/parser/cxfa_datavalue.h"
+#include "xfa/fxfa/parser/cxfa_datawindow.h"
+#include "xfa/fxfa/parser/cxfa_date.h"
+#include "xfa/fxfa/parser/cxfa_datepattern.h"
+#include "xfa/fxfa/parser/cxfa_datepatterns.h"
+#include "xfa/fxfa/parser/cxfa_datetime.h"
+#include "xfa/fxfa/parser/cxfa_datetimeedit.h"
+#include "xfa/fxfa/parser/cxfa_datetimesymbols.h"
+#include "xfa/fxfa/parser/cxfa_day.h"
+#include "xfa/fxfa/parser/cxfa_daynames.h"
+#include "xfa/fxfa/parser/cxfa_debug.h"
+#include "xfa/fxfa/parser/cxfa_decimal.h"
+#include "xfa/fxfa/parser/cxfa_defaulttypeface.h"
+#include "xfa/fxfa/parser/cxfa_defaultui.h"
+#include "xfa/fxfa/parser/cxfa_delete.h"
+#include "xfa/fxfa/parser/cxfa_delta.h"
+#include "xfa/fxfa/parser/cxfa_deltas.h"
+#include "xfa/fxfa/parser/cxfa_desc.h"
+#include "xfa/fxfa/parser/cxfa_destination.h"
+#include "xfa/fxfa/parser/cxfa_digestmethod.h"
+#include "xfa/fxfa/parser/cxfa_digestmethods.h"
+#include "xfa/fxfa/parser/cxfa_documentassembly.h"
+#include "xfa/fxfa/parser/cxfa_draw.h"
+#include "xfa/fxfa/parser/cxfa_driver.h"
+#include "xfa/fxfa/parser/cxfa_dsigdata.h"
+#include "xfa/fxfa/parser/cxfa_duplexoption.h"
+#include "xfa/fxfa/parser/cxfa_dynamicrender.h"
+#include "xfa/fxfa/parser/cxfa_edge.h"
+#include "xfa/fxfa/parser/cxfa_effectiveinputpolicy.h"
+#include "xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h"
+#include "xfa/fxfa/parser/cxfa_embed.h"
+#include "xfa/fxfa/parser/cxfa_encoding.h"
+#include "xfa/fxfa/parser/cxfa_encodings.h"
+#include "xfa/fxfa/parser/cxfa_encrypt.h"
+#include "xfa/fxfa/parser/cxfa_encryption.h"
+#include "xfa/fxfa/parser/cxfa_encryptionlevel.h"
+#include "xfa/fxfa/parser/cxfa_encryptionmethod.h"
+#include "xfa/fxfa/parser/cxfa_encryptionmethods.h"
+#include "xfa/fxfa/parser/cxfa_enforce.h"
+#include "xfa/fxfa/parser/cxfa_equate.h"
+#include "xfa/fxfa/parser/cxfa_equaterange.h"
+#include "xfa/fxfa/parser/cxfa_era.h"
+#include "xfa/fxfa/parser/cxfa_eranames.h"
+#include "xfa/fxfa/parser/cxfa_event.h"
+#include "xfa/fxfa/parser/cxfa_eventpseudomodel.h"
+#include "xfa/fxfa/parser/cxfa_exclgroup.h"
+#include "xfa/fxfa/parser/cxfa_exclude.h"
+#include "xfa/fxfa/parser/cxfa_excludens.h"
+#include "xfa/fxfa/parser/cxfa_exdata.h"
+#include "xfa/fxfa/parser/cxfa_execute.h"
+#include "xfa/fxfa/parser/cxfa_exobject.h"
+#include "xfa/fxfa/parser/cxfa_extras.h"
+#include "xfa/fxfa/parser/cxfa_field.h"
+#include "xfa/fxfa/parser/cxfa_fill.h"
+#include "xfa/fxfa/parser/cxfa_filter.h"
+#include "xfa/fxfa/parser/cxfa_fliplabel.h"
+#include "xfa/fxfa/parser/cxfa_float.h"
+#include "xfa/fxfa/parser/cxfa_font.h"
+#include "xfa/fxfa/parser/cxfa_fontinfo.h"
+#include "xfa/fxfa/parser/cxfa_form.h"
+#include "xfa/fxfa/parser/cxfa_format.h"
+#include "xfa/fxfa/parser/cxfa_formfieldfilling.h"
+#include "xfa/fxfa/parser/cxfa_groupparent.h"
+#include "xfa/fxfa/parser/cxfa_handler.h"
+#include "xfa/fxfa/parser/cxfa_hostpseudomodel.h"
+#include "xfa/fxfa/parser/cxfa_hyphenation.h"
+#include "xfa/fxfa/parser/cxfa_ifempty.h"
+#include "xfa/fxfa/parser/cxfa_image.h"
+#include "xfa/fxfa/parser/cxfa_imageedit.h"
+#include "xfa/fxfa/parser/cxfa_includexdpcontent.h"
+#include "xfa/fxfa/parser/cxfa_incrementalload.h"
+#include "xfa/fxfa/parser/cxfa_incrementalmerge.h"
+#include "xfa/fxfa/parser/cxfa_insert.h"
+#include "xfa/fxfa/parser/cxfa_instancemanager.h"
+#include "xfa/fxfa/parser/cxfa_integer.h"
+#include "xfa/fxfa/parser/cxfa_interactive.h"
+#include "xfa/fxfa/parser/cxfa_issuers.h"
+#include "xfa/fxfa/parser/cxfa_items.h"
+#include "xfa/fxfa/parser/cxfa_jog.h"
+#include "xfa/fxfa/parser/cxfa_keep.h"
+#include "xfa/fxfa/parser/cxfa_keyusage.h"
+#include "xfa/fxfa/parser/cxfa_labelprinter.h"
+#include "xfa/fxfa/parser/cxfa_layout.h"
+#include "xfa/fxfa/parser/cxfa_layoutpseudomodel.h"
+#include "xfa/fxfa/parser/cxfa_level.h"
+#include "xfa/fxfa/parser/cxfa_line.h"
+#include "xfa/fxfa/parser/cxfa_linear.h"
+#include "xfa/fxfa/parser/cxfa_linearized.h"
+#include "xfa/fxfa/parser/cxfa_list.h"
+#include "xfa/fxfa/parser/cxfa_locale.h"
+#include "xfa/fxfa/parser/cxfa_localeset.h"
+#include "xfa/fxfa/parser/cxfa_lockdocument.h"
+#include "xfa/fxfa/parser/cxfa_log.h"
+#include "xfa/fxfa/parser/cxfa_logpseudomodel.h"
+#include "xfa/fxfa/parser/cxfa_manifest.h"
+#include "xfa/fxfa/parser/cxfa_map.h"
+#include "xfa/fxfa/parser/cxfa_margin.h"
+#include "xfa/fxfa/parser/cxfa_mdp.h"
+#include "xfa/fxfa/parser/cxfa_medium.h"
+#include "xfa/fxfa/parser/cxfa_mediuminfo.h"
+#include "xfa/fxfa/parser/cxfa_meridiem.h"
+#include "xfa/fxfa/parser/cxfa_meridiemnames.h"
+#include "xfa/fxfa/parser/cxfa_message.h"
+#include "xfa/fxfa/parser/cxfa_messaging.h"
+#include "xfa/fxfa/parser/cxfa_mode.h"
+#include "xfa/fxfa/parser/cxfa_modifyannots.h"
+#include "xfa/fxfa/parser/cxfa_month.h"
+#include "xfa/fxfa/parser/cxfa_monthnames.h"
+#include "xfa/fxfa/parser/cxfa_msgid.h"
+#include "xfa/fxfa/parser/cxfa_nameattr.h"
+#include "xfa/fxfa/parser/cxfa_neverembed.h"
+#include "xfa/fxfa/parser/cxfa_node.h"
+#include "xfa/fxfa/parser/cxfa_numberofcopies.h"
+#include "xfa/fxfa/parser/cxfa_numberpattern.h"
+#include "xfa/fxfa/parser/cxfa_numberpatterns.h"
+#include "xfa/fxfa/parser/cxfa_numbersymbol.h"
+#include "xfa/fxfa/parser/cxfa_numbersymbols.h"
+#include "xfa/fxfa/parser/cxfa_numericedit.h"
+#include "xfa/fxfa/parser/cxfa_occur.h"
+#include "xfa/fxfa/parser/cxfa_oid.h"
+#include "xfa/fxfa/parser/cxfa_oids.h"
+#include "xfa/fxfa/parser/cxfa_openaction.h"
+#include "xfa/fxfa/parser/cxfa_operation.h"
+#include "xfa/fxfa/parser/cxfa_output.h"
+#include "xfa/fxfa/parser/cxfa_outputbin.h"
+#include "xfa/fxfa/parser/cxfa_outputxsl.h"
+#include "xfa/fxfa/parser/cxfa_overflow.h"
+#include "xfa/fxfa/parser/cxfa_overprint.h"
+#include "xfa/fxfa/parser/cxfa_packet.h"
+#include "xfa/fxfa/parser/cxfa_packets.h"
+#include "xfa/fxfa/parser/cxfa_pagearea.h"
+#include "xfa/fxfa/parser/cxfa_pageoffset.h"
+#include "xfa/fxfa/parser/cxfa_pagerange.h"
+#include "xfa/fxfa/parser/cxfa_pageset.h"
+#include "xfa/fxfa/parser/cxfa_pagination.h"
+#include "xfa/fxfa/parser/cxfa_paginationoverride.h"
+#include "xfa/fxfa/parser/cxfa_para.h"
+#include "xfa/fxfa/parser/cxfa_part.h"
+#include "xfa/fxfa/parser/cxfa_password.h"
+#include "xfa/fxfa/parser/cxfa_passwordedit.h"
+#include "xfa/fxfa/parser/cxfa_pattern.h"
+#include "xfa/fxfa/parser/cxfa_pcl.h"
+#include "xfa/fxfa/parser/cxfa_pdf.h"
+#include "xfa/fxfa/parser/cxfa_pdfa.h"
+#include "xfa/fxfa/parser/cxfa_permissions.h"
+#include "xfa/fxfa/parser/cxfa_picktraybypdfsize.h"
+#include "xfa/fxfa/parser/cxfa_picture.h"
+#include "xfa/fxfa/parser/cxfa_plaintextmetadata.h"
+#include "xfa/fxfa/parser/cxfa_presence.h"
+#include "xfa/fxfa/parser/cxfa_present.h"
+#include "xfa/fxfa/parser/cxfa_print.h"
+#include "xfa/fxfa/parser/cxfa_printername.h"
+#include "xfa/fxfa/parser/cxfa_printhighquality.h"
+#include "xfa/fxfa/parser/cxfa_printscaling.h"
+#include "xfa/fxfa/parser/cxfa_producer.h"
+#include "xfa/fxfa/parser/cxfa_proto.h"
+#include "xfa/fxfa/parser/cxfa_ps.h"
+#include "xfa/fxfa/parser/cxfa_psmap.h"
+#include "xfa/fxfa/parser/cxfa_query.h"
+#include "xfa/fxfa/parser/cxfa_radial.h"
+#include "xfa/fxfa/parser/cxfa_range.h"
+#include "xfa/fxfa/parser/cxfa_reason.h"
+#include "xfa/fxfa/parser/cxfa_reasons.h"
+#include "xfa/fxfa/parser/cxfa_record.h"
+#include "xfa/fxfa/parser/cxfa_recordset.h"
+#include "xfa/fxfa/parser/cxfa_rectangle.h"
+#include "xfa/fxfa/parser/cxfa_ref.h"
+#include "xfa/fxfa/parser/cxfa_relevant.h"
+#include "xfa/fxfa/parser/cxfa_rename.h"
+#include "xfa/fxfa/parser/cxfa_renderpolicy.h"
+#include "xfa/fxfa/parser/cxfa_rootelement.h"
+#include "xfa/fxfa/parser/cxfa_runscripts.h"
+#include "xfa/fxfa/parser/cxfa_script.h"
+#include "xfa/fxfa/parser/cxfa_scriptmodel.h"
+#include "xfa/fxfa/parser/cxfa_select.h"
+#include "xfa/fxfa/parser/cxfa_setproperty.h"
+#include "xfa/fxfa/parser/cxfa_severity.h"
+#include "xfa/fxfa/parser/cxfa_sharptext.h"
+#include "xfa/fxfa/parser/cxfa_sharpxhtml.h"
+#include "xfa/fxfa/parser/cxfa_sharpxml.h"
+#include "xfa/fxfa/parser/cxfa_signature.h"
+#include "xfa/fxfa/parser/cxfa_signatureproperties.h"
+#include "xfa/fxfa/parser/cxfa_signaturepseudomodel.h"
+#include "xfa/fxfa/parser/cxfa_signdata.h"
+#include "xfa/fxfa/parser/cxfa_signing.h"
+#include "xfa/fxfa/parser/cxfa_silentprint.h"
+#include "xfa/fxfa/parser/cxfa_soapaction.h"
+#include "xfa/fxfa/parser/cxfa_soapaddress.h"
+#include "xfa/fxfa/parser/cxfa_solid.h"
+#include "xfa/fxfa/parser/cxfa_source.h"
+#include "xfa/fxfa/parser/cxfa_sourceset.h"
+#include "xfa/fxfa/parser/cxfa_speak.h"
+#include "xfa/fxfa/parser/cxfa_staple.h"
+#include "xfa/fxfa/parser/cxfa_startnode.h"
+#include "xfa/fxfa/parser/cxfa_startpage.h"
+#include "xfa/fxfa/parser/cxfa_stipple.h"
+#include "xfa/fxfa/parser/cxfa_subform.h"
+#include "xfa/fxfa/parser/cxfa_subformset.h"
+#include "xfa/fxfa/parser/cxfa_subjectdn.h"
+#include "xfa/fxfa/parser/cxfa_subjectdns.h"
+#include "xfa/fxfa/parser/cxfa_submit.h"
+#include "xfa/fxfa/parser/cxfa_submitformat.h"
+#include "xfa/fxfa/parser/cxfa_submiturl.h"
+#include "xfa/fxfa/parser/cxfa_subsetbelow.h"
+#include "xfa/fxfa/parser/cxfa_suppressbanner.h"
+#include "xfa/fxfa/parser/cxfa_tagged.h"
+#include "xfa/fxfa/parser/cxfa_template.h"
+#include "xfa/fxfa/parser/cxfa_templatecache.h"
+#include "xfa/fxfa/parser/cxfa_text.h"
+#include "xfa/fxfa/parser/cxfa_textedit.h"
+#include "xfa/fxfa/parser/cxfa_threshold.h"
+#include "xfa/fxfa/parser/cxfa_time.h"
+#include "xfa/fxfa/parser/cxfa_timepattern.h"
+#include "xfa/fxfa/parser/cxfa_timepatterns.h"
+#include "xfa/fxfa/parser/cxfa_timestamp.h"
+#include "xfa/fxfa/parser/cxfa_to.h"
+#include "xfa/fxfa/parser/cxfa_tooltip.h"
+#include "xfa/fxfa/parser/cxfa_trace.h"
+#include "xfa/fxfa/parser/cxfa_transform.h"
+#include "xfa/fxfa/parser/cxfa_traversal.h"
+#include "xfa/fxfa/parser/cxfa_traverse.h"
+#include "xfa/fxfa/parser/cxfa_type.h"
+#include "xfa/fxfa/parser/cxfa_typeface.h"
+#include "xfa/fxfa/parser/cxfa_typefaces.h"
+#include "xfa/fxfa/parser/cxfa_ui.h"
+#include "xfa/fxfa/parser/cxfa_update.h"
+#include "xfa/fxfa/parser/cxfa_uri.h"
+#include "xfa/fxfa/parser/cxfa_user.h"
+#include "xfa/fxfa/parser/cxfa_validate.h"
+#include "xfa/fxfa/parser/cxfa_validateapprovalsignatures.h"
+#include "xfa/fxfa/parser/cxfa_validationmessaging.h"
+#include "xfa/fxfa/parser/cxfa_value.h"
+#include "xfa/fxfa/parser/cxfa_variables.h"
+#include "xfa/fxfa/parser/cxfa_version.h"
+#include "xfa/fxfa/parser/cxfa_versioncontrol.h"
+#include "xfa/fxfa/parser/cxfa_viewerpreferences.h"
+#include "xfa/fxfa/parser/cxfa_webclient.h"
+#include "xfa/fxfa/parser/cxfa_whitespace.h"
+#include "xfa/fxfa/parser/cxfa_window.h"
+#include "xfa/fxfa/parser/cxfa_wsdladdress.h"
+#include "xfa/fxfa/parser/cxfa_wsdlconnection.h"
+#include "xfa/fxfa/parser/cxfa_xdc.h"
+#include "xfa/fxfa/parser/cxfa_xdp.h"
+#include "xfa/fxfa/parser/cxfa_xfa.h"
+#include "xfa/fxfa/parser/cxfa_xmlconnection.h"
+#include "xfa/fxfa/parser/cxfa_xsdconnection.h"
+#include "xfa/fxfa/parser/cxfa_xsl.h"
+#include "xfa/fxfa/parser/cxfa_zpl.h"
+
+namespace {
+
+struct ElementNameInfo {
+ uint32_t hash;
+ XFA_Element element;
+} ElementNameToEnum[] = {
+ {0x23ee3 /* ps */, XFA_Element::Ps},
+ {0x25363 /* to */, XFA_Element::To},
+ {0x2587e /* ui */, XFA_Element::Ui},
+ {0x1c648b /* recordSet */, XFA_Element::RecordSet},
+ {0x171428f /* subsetBelow */, XFA_Element::SubsetBelow},
+ {0x1a0776a /* subformSet */, XFA_Element::SubformSet},
+ {0x2340d70 /* adobeExtensionLevel */, XFA_Element::AdobeExtensionLevel},
+ {0x2c1c7f1 /* typeface */, XFA_Element::Typeface},
+ {0x5518c25 /* break */, XFA_Element::Break},
+ {0x5fff523 /* fontInfo */, XFA_Element::FontInfo},
+ {0x653a227 /* numberPattern */, XFA_Element::NumberPattern},
+ {0x65b4a05 /* dynamicRender */, XFA_Element::DynamicRender},
+ {0x7e4362e /* printScaling */, XFA_Element::PrintScaling},
+ {0x7fe6d3a /* checkButton */, XFA_Element::CheckButton},
+ {0x80cf58f /* datePatterns */, XFA_Element::DatePatterns},
+ {0x811929d /* sourceSet */, XFA_Element::SourceSet},
+ {0x9f9d612 /* amd */, XFA_Element::Amd},
+ {0x9f9efb6 /* arc */, XFA_Element::Arc},
+ {0xa48835e /* day */, XFA_Element::Day},
+ {0xa6328b8 /* era */, XFA_Element::Era},
+ {0xae6a0a0 /* jog */, XFA_Element::Jog},
+ {0xb1b3d22 /* log */, XFA_Element::Log},
+ {0xb35439e /* map */, XFA_Element::Map},
+ {0xb355301 /* mdp */, XFA_Element::Mdp},
+ {0xb420438 /* breakBefore */, XFA_Element::BreakBefore},
+ {0xb6a091c /* oid */, XFA_Element::Oid},
+ {0xb84389f /* pcl */, XFA_Element::Pcl},
+ {0xb843dba /* pdf */, XFA_Element::Pdf},
+ {0xbb8df5d /* ref */, XFA_Element::Ref},
+ {0xc080cd0 /* uri */, XFA_Element::Uri},
+ {0xc56afbf /* xdc */, XFA_Element::Xdc},
+ {0xc56afcc /* xdp */, XFA_Element::Xdp},
+ {0xc56b9ff /* xfa */, XFA_Element::Xfa},
+ {0xc56fcb7 /* xsl */, XFA_Element::Xsl},
+ {0xc8b89d6 /* zpl */, XFA_Element::Zpl},
+ {0xc9bae94 /* cache */, XFA_Element::Cache},
+ {0xcb016be /* margin */, XFA_Element::Margin},
+ {0xe1378fe /* keyUsage */, XFA_Element::KeyUsage},
+ {0xfe3596a /* exclude */, XFA_Element::Exclude},
+ {0x10395ac7 /* choiceList */, XFA_Element::ChoiceList},
+ {0x1059ec18 /* level */, XFA_Element::Level},
+ {0x10874804 /* labelPrinter */, XFA_Element::LabelPrinter},
+ {0x10c40e03 /* calendarSymbols */, XFA_Element::CalendarSymbols},
+ {0x10f1ea24 /* para */, XFA_Element::Para},
+ {0x10f1ea37 /* part */, XFA_Element::Part},
+ {0x1140975b /* pdfa */, XFA_Element::Pdfa},
+ {0x1154efe6 /* filter */, XFA_Element::Filter},
+ {0x13f41de1 /* present */, XFA_Element::Present},
+ {0x1827e6ea /* pagination */, XFA_Element::Pagination},
+ {0x18463707 /* encoding */, XFA_Element::Encoding},
+ {0x185e41e2 /* event */, XFA_Element::Event},
+ {0x1adb142d /* whitespace */, XFA_Element::Whitespace},
+ {0x1f3f64c3 /* defaultUi */, XFA_Element::DefaultUi},
+ {0x204e87cb /* dataModel */, XFA_Element::DataModel},
+ {0x2057b350 /* barcode */, XFA_Element::Barcode},
+ {0x20596bad /* timePattern */, XFA_Element::TimePattern},
+ {0x210b74d3 /* batchOutput */, XFA_Element::BatchOutput},
+ {0x212ff0e2 /* enforce */, XFA_Element::Enforce},
+ {0x21d351b4 /* currencySymbols */, XFA_Element::CurrencySymbols},
+ {0x21db83c5 /* addSilentPrint */, XFA_Element::AddSilentPrint},
+ {0x22266258 /* rename */, XFA_Element::Rename},
+ {0x226ca8f1 /* operation */, XFA_Element::Operation},
+ {0x23e27b84 /* typefaces */, XFA_Element::Typefaces},
+ {0x23f4aa75 /* subjectDNs */, XFA_Element::SubjectDNs},
+ {0x240d5e8e /* issuers */, XFA_Element::Issuers},
+ {0x2457a033 /* signaturePseudoModel */, XFA_Element::SignaturePseudoModel},
+ {0x24a52f8a /* wsdlConnection */, XFA_Element::WsdlConnection},
+ {0x254ebd07 /* debug */, XFA_Element::Debug},
+ {0x2655c66a /* delta */, XFA_Element::Delta},
+ {0x26c0daec /* eraNames */, XFA_Element::EraNames},
+ {0x273ab03b /* modifyAnnots */, XFA_Element::ModifyAnnots},
+ {0x27875bb4 /* startNode */, XFA_Element::StartNode},
+ {0x285d0dbc /* button */, XFA_Element::Button},
+ {0x28dee6e9 /* format */, XFA_Element::Format},
+ {0x2a23349e /* border */, XFA_Element::Border},
+ {0x2ae67f19 /* area */, XFA_Element::Area},
+ {0x2c3c4c67 /* hyphenation */, XFA_Element::Hyphenation},
+ {0x2d08af85 /* text */, XFA_Element::Text},
+ {0x2d71b00f /* time */, XFA_Element::Time},
+ {0x2f16a382 /* type */, XFA_Element::Type},
+ {0x2fe057e9 /* overprint */, XFA_Element::Overprint},
+ {0x302aee16 /* certificates */, XFA_Element::Certificates},
+ {0x30b227df /* encryptionMethods */, XFA_Element::EncryptionMethods},
+ {0x32b900d1 /* setProperty */, XFA_Element::SetProperty},
+ {0x337d9e45 /* printerName */, XFA_Element::PrinterName},
+ {0x33edda4b /* startPage */, XFA_Element::StartPage},
+ {0x381943e4 /* pageOffset */, XFA_Element::PageOffset},
+ {0x382106cd /* dateTime */, XFA_Element::DateTime},
+ {0x386e7421 /* comb */, XFA_Element::Comb},
+ {0x390acd9e /* pattern */, XFA_Element::Pattern},
+ {0x3942163e /* ifEmpty */, XFA_Element::IfEmpty},
+ {0x39944a7b /* suppressBanner */, XFA_Element::SuppressBanner},
+ {0x3b3c3dca /* outputBin */, XFA_Element::OutputBin},
+ {0x3b8a4024 /* field */, XFA_Element::Field},
+ {0x3c15352f /* agent */, XFA_Element::Agent},
+ {0x3d7e8668 /* outputXSL */, XFA_Element::OutputXSL},
+ {0x3e1c91c5 /* adjustData */, XFA_Element::AdjustData},
+ {0x3e7a9408 /* autoSave */, XFA_Element::AutoSave},
+ {0x3ecead94 /* contentArea */, XFA_Element::ContentArea},
+ {0x3ef334e3 /* eventPseudoModel */, XFA_Element::EventPseudoModel},
+ {0x3fadaec0 /* wsdlAddress */, XFA_Element::WsdlAddress},
+ {0x40623b5b /* solid */, XFA_Element::Solid},
+ {0x41f0bd76 /* dateTimeSymbols */, XFA_Element::DateTimeSymbols},
+ {0x444e7523 /* encryptionLevel */, XFA_Element::EncryptionLevel},
+ {0x4523af55 /* edge */, XFA_Element::Edge},
+ {0x45d5e3c1 /* stipple */, XFA_Element::Stipple},
+ {0x475e4e87 /* attributes */, XFA_Element::Attributes},
+ {0x487a8c87 /* versionControl */, XFA_Element::VersionControl},
+ {0x48e5248c /* meridiem */, XFA_Element::Meridiem},
+ {0x48f36719 /* exclGroup */, XFA_Element::ExclGroup},
+ {0x4977356b /* toolTip */, XFA_Element::ToolTip},
+ {0x499afecc /* compress */, XFA_Element::Compress},
+ {0x4a0c4948 /* reason */, XFA_Element::Reason},
+ {0x4bdcce13 /* execute */, XFA_Element::Execute},
+ {0x4c56b216 /* contentCopy */, XFA_Element::ContentCopy},
+ {0x4cc176d3 /* dateTimeEdit */, XFA_Element::DateTimeEdit},
+ {0x4e1e39b6 /* config */, XFA_Element::Config},
+ {0x4e2d6083 /* image */, XFA_Element::Image},
+ {0x4e814150 /* #xHTML */, XFA_Element::SharpxHTML},
+ {0x4f2388c1 /* numberOfCopies */, XFA_Element::NumberOfCopies},
+ {0x4f512e30 /* behaviorOverride */, XFA_Element::BehaviorOverride},
+ {0x4fdc3454 /* timeStamp */, XFA_Element::TimeStamp},
+ {0x51d90546 /* month */, XFA_Element::Month},
+ {0x523437e4 /* viewerPreferences */, XFA_Element::ViewerPreferences},
+ {0x53abc1c6 /* scriptModel */, XFA_Element::ScriptModel},
+ {0x54034c2f /* decimal */, XFA_Element::Decimal},
+ {0x54202c9e /* subform */, XFA_Element::Subform},
+ {0x542c7300 /* select */, XFA_Element::Select},
+ {0x5436d198 /* window */, XFA_Element::Window},
+ {0x5473b6dc /* localeSet */, XFA_Element::LocaleSet},
+ {0x56ae179e /* handler */, XFA_Element::Handler},
+ {0x5700bd5f /* hostPseudoModel */, XFA_Element::HostPseudoModel},
+ {0x570ce835 /* presence */, XFA_Element::Presence},
+ {0x5779d65f /* record */, XFA_Element::Record},
+ {0x59c8f27d /* embed */, XFA_Element::Embed},
+ {0x5a50e9e6 /* version */, XFA_Element::Version},
+ {0x5b8383df /* command */, XFA_Element::Command},
+ {0x5c43c6c3 /* copies */, XFA_Element::Copies},
+ {0x5e0c2c49 /* staple */, XFA_Element::Staple},
+ {0x5e5083dd /* submitFormat */, XFA_Element::SubmitFormat},
+ {0x5e8c5d20 /* boolean */, XFA_Element::Boolean},
+ {0x60490a85 /* message */, XFA_Element::Message},
+ {0x60d4c8b1 /* output */, XFA_Element::Output},
+ {0x61810081 /* psMap */, XFA_Element::PsMap},
+ {0x62bd904b /* excludeNS */, XFA_Element::ExcludeNS},
+ {0x669d4f77 /* assist */, XFA_Element::Assist},
+ {0x67334a1c /* picture */, XFA_Element::Picture},
+ {0x67fe7334 /* traversal */, XFA_Element::Traversal},
+ {0x6894589c /* silentPrint */, XFA_Element::SilentPrint},
+ {0x68a16bbd /* webClient */, XFA_Element::WebClient},
+ {0x69f115df /* layoutPseudoModel */, XFA_Element::LayoutPseudoModel},
+ {0x6a4bc084 /* producer */, XFA_Element::Producer},
+ {0x6a9e04c9 /* corner */, XFA_Element::Corner},
+ {0x6ccd7274 /* msgId */, XFA_Element::MsgId},
+ {0x6e67921f /* color */, XFA_Element::Color},
+ {0x6ec217a5 /* keep */, XFA_Element::Keep},
+ {0x6eef1116 /* query */, XFA_Element::Query},
+ {0x7033bfd5 /* insert */, XFA_Element::Insert},
+ {0x704af389 /* imageEdit */, XFA_Element::ImageEdit},
+ {0x7233018a /* validate */, XFA_Element::Validate},
+ {0x72ba47b4 /* digestMethods */, XFA_Element::DigestMethods},
+ {0x72f2aa7a /* numberPatterns */, XFA_Element::NumberPatterns},
+ {0x74caed29 /* pageSet */, XFA_Element::PageSet},
+ {0x7568e6ae /* integer */, XFA_Element::Integer},
+ {0x76182db9 /* soapAddress */, XFA_Element::SoapAddress},
+ {0x773146c5 /* equate */, XFA_Element::Equate},
+ {0x77d449dd /* formFieldFilling */, XFA_Element::FormFieldFilling},
+ {0x7889d68a /* pageRange */, XFA_Element::PageRange},
+ {0x7baca2e3 /* update */, XFA_Element::Update},
+ {0x7ce89001 /* connectString */, XFA_Element::ConnectString},
+ {0x7d9fd7c5 /* mode */, XFA_Element::Mode},
+ {0x7e7e845e /* layout */, XFA_Element::Layout},
+ {0x7e845c34 /* #xml */, XFA_Element::Sharpxml},
+ {0x7fb341df /* xsdConnection */, XFA_Element::XsdConnection},
+ {0x7ffb51cc /* traverse */, XFA_Element::Traverse},
+ {0x80203b5a /* encodings */, XFA_Element::Encodings},
+ {0x803550fc /* template */, XFA_Element::Template},
+ {0x803d5bbc /* acrobat */, XFA_Element::Acrobat},
+ {0x821d6569 /* validationMessaging */, XFA_Element::ValidationMessaging},
+ {0x830e688f /* signing */, XFA_Element::Signing},
+ {0x83a550d2 /* dataWindow */, XFA_Element::DataWindow},
+ {0x83dab9f5 /* script */, XFA_Element::Script},
+ {0x8411ebcd /* addViewerPreferences */, XFA_Element::AddViewerPreferences},
+ {0x8777642e /* alwaysEmbed */, XFA_Element::AlwaysEmbed},
+ {0x877a6b39 /* passwordEdit */, XFA_Element::PasswordEdit},
+ {0x87e84c99 /* numericEdit */, XFA_Element::NumericEdit},
+ {0x8852cdec /* encryptionMethod */, XFA_Element::EncryptionMethod},
+ {0x891f4606 /* change */, XFA_Element::Change},
+ {0x89939f36 /* pageArea */, XFA_Element::PageArea},
+ {0x8a9d6247 /* submitUrl */, XFA_Element::SubmitUrl},
+ {0x8ad8b90f /* oids */, XFA_Element::Oids},
+ {0x8b036f32 /* signature */, XFA_Element::Signature},
+ {0x8b128efb /* ADBE_JSConsole */, XFA_Element::ADBE_JSConsole},
+ {0x8bcfe96e /* caption */, XFA_Element::Caption},
+ {0x8e1c2921 /* relevant */, XFA_Element::Relevant},
+ {0x8e3f0a4b /* flipLabel */, XFA_Element::FlipLabel},
+ {0x900280b7 /* exData */, XFA_Element::ExData},
+ {0x91e80352 /* dayNames */, XFA_Element::DayNames},
+ {0x93113b11 /* soapAction */, XFA_Element::SoapAction},
+ {0x938b09f6 /* defaultTypeface */, XFA_Element::DefaultTypeface},
+ {0x95b37897 /* manifest */, XFA_Element::Manifest},
+ {0x97b76b54 /* overflow */, XFA_Element::Overflow},
+ {0x9a57861b /* linear */, XFA_Element::Linear},
+ {0x9ad5a821 /* currencySymbol */, XFA_Element::CurrencySymbol},
+ {0x9c6471b3 /* delete */, XFA_Element::Delete},
+ {0x9deea61d /* deltas */, XFA_Element::Deltas},
+ {0x9e67de21 /* digestMethod */, XFA_Element::DigestMethod},
+ {0x9f3e9510 /* instanceManager */, XFA_Element::InstanceManager},
+ {0xa0799892 /* equateRange */, XFA_Element::EquateRange},
+ {0xa084a381 /* medium */, XFA_Element::Medium},
+ {0xa1211b8b /* textEdit */, XFA_Element::TextEdit},
+ {0xa17008f0 /* templateCache */, XFA_Element::TemplateCache},
+ {0xa4f7b88f /* compressObjectStream */, XFA_Element::CompressObjectStream},
+ {0xa65f5d17 /* dataValue */, XFA_Element::DataValue},
+ {0xa6caaa89 /* accessibleContent */, XFA_Element::AccessibleContent},
+ {0xa94cc00b /* includeXDPContent */, XFA_Element::IncludeXDPContent},
+ {0xa9b081a1 /* xmlConnection */, XFA_Element::XmlConnection},
+ {0xab2a3b74 /* validateApprovalSignatures */,
+ XFA_Element::ValidateApprovalSignatures},
+ {0xab8c5a2b /* signData */, XFA_Element::SignData},
+ {0xabaa2ceb /* packets */, XFA_Element::Packets},
+ {0xadba359c /* datePattern */, XFA_Element::DatePattern},
+ {0xae222b2b /* duplexOption */, XFA_Element::DuplexOption},
+ {0xb012effb /* base */, XFA_Element::Base},
+ {0xb0e5485d /* bind */, XFA_Element::Bind},
+ {0xb45d61b2 /* compression */, XFA_Element::Compression},
+ {0xb563f0ff /* user */, XFA_Element::User},
+ {0xb5848ad5 /* rectangle */, XFA_Element::Rectangle},
+ {0xb6dacb72 /* effectiveOutputPolicy */,
+ XFA_Element::EffectiveOutputPolicy},
+ {0xb7d7654d /* ADBE_JSDebugger */, XFA_Element::ADBE_JSDebugger},
+ {0xbab37f73 /* acrobat7 */, XFA_Element::Acrobat7},
+ {0xbc70081e /* interactive */, XFA_Element::Interactive},
+ {0xbc8fa350 /* locale */, XFA_Element::Locale},
+ {0xbcd44940 /* currentPage */, XFA_Element::CurrentPage},
+ {0xbde9abda /* data */, XFA_Element::Data},
+ {0xbde9abde /* date */, XFA_Element::Date},
+ {0xbe52dfbf /* desc */, XFA_Element::Desc},
+ {0xbf4b6405 /* encrypt */, XFA_Element::Encrypt},
+ {0xbfa87cce /* draw */, XFA_Element::Draw},
+ {0xc181ff4b /* encryption */, XFA_Element::Encryption},
+ {0xc1970f40 /* meridiemNames */, XFA_Element::MeridiemNames},
+ {0xc5ad9f5e /* messaging */, XFA_Element::Messaging},
+ {0xc69549f4 /* speak */, XFA_Element::Speak},
+ {0xc7743dc7 /* dataGroup */, XFA_Element::DataGroup},
+ {0xc7eb20e9 /* common */, XFA_Element::Common},
+ {0xc85d4528 /* #text */, XFA_Element::Sharptext},
+ {0xc861556a /* paginationOverride */, XFA_Element::PaginationOverride},
+ {0xc903dabb /* reasons */, XFA_Element::Reasons},
+ {0xc9a8127f /* signatureProperties */, XFA_Element::SignatureProperties},
+ {0xca010c2d /* threshold */, XFA_Element::Threshold},
+ {0xcb4c5e96 /* appearanceFilter */, XFA_Element::AppearanceFilter},
+ {0xcc92aba7 /* fill */, XFA_Element::Fill},
+ {0xcd308b77 /* font */, XFA_Element::Font},
+ {0xcd309ff4 /* form */, XFA_Element::Form},
+ {0xcebcca2d /* mediumInfo */, XFA_Element::MediumInfo},
+ {0xcfe0d643 /* certificate */, XFA_Element::Certificate},
+ {0xd012c033 /* password */, XFA_Element::Password},
+ {0xd01604bd /* runScripts */, XFA_Element::RunScripts},
+ {0xd1227e6f /* trace */, XFA_Element::Trace},
+ {0xd1532876 /* float */, XFA_Element::Float},
+ {0xd17a6c30 /* renderPolicy */, XFA_Element::RenderPolicy},
+ {0xd4bf6823 /* logPseudoModel */, XFA_Element::LogPseudoModel},
+ {0xd58aa962 /* destination */, XFA_Element::Destination},
+ {0xd6e27f1d /* value */, XFA_Element::Value},
+ {0xd7a14462 /* bookend */, XFA_Element::Bookend},
+ {0xd8c31254 /* exObject */, XFA_Element::ExObject},
+ {0xda6a8590 /* openAction */, XFA_Element::OpenAction},
+ {0xdab4fb7d /* neverEmbed */, XFA_Element::NeverEmbed},
+ {0xdb98475f /* bindItems */, XFA_Element::BindItems},
+ {0xdbfbe02e /* calculate */, XFA_Element::Calculate},
+ {0xdd7676ed /* print */, XFA_Element::Print},
+ {0xdde273d7 /* extras */, XFA_Element::Extras},
+ {0xde146b34 /* proto */, XFA_Element::Proto},
+ {0xdf059321 /* dSigData */, XFA_Element::DSigData},
+ {0xdfccf030 /* creator */, XFA_Element::Creator},
+ {0xdff78c6a /* connect */, XFA_Element::Connect},
+ {0xe11a2cbc /* permissions */, XFA_Element::Permissions},
+ {0xe14c801c /* connectionSet */, XFA_Element::ConnectionSet},
+ {0xe1c83a14 /* submit */, XFA_Element::Submit},
+ {0xe29821cd /* range */, XFA_Element::Range},
+ {0xe38d83c7 /* linearized */, XFA_Element::Linearized},
+ {0xe3aa2578 /* packet */, XFA_Element::Packet},
+ {0xe3aa860e /* rootElement */, XFA_Element::RootElement},
+ {0xe3e553fa /* plaintextMetadata */, XFA_Element::PlaintextMetadata},
+ {0xe3e6e4f2 /* numberSymbols */, XFA_Element::NumberSymbols},
+ {0xe3f067f6 /* printHighQuality */, XFA_Element::PrintHighQuality},
+ {0xe3fd078c /* driver */, XFA_Element::Driver},
+ {0xe48b34f2 /* incrementalLoad */, XFA_Element::IncrementalLoad},
+ {0xe550e7c2 /* subjectDN */, XFA_Element::SubjectDN},
+ {0xe6669a78 /* compressLogicalStructure */,
+ XFA_Element::CompressLogicalStructure},
+ {0xe7a7ea02 /* incrementalMerge */, XFA_Element::IncrementalMerge},
+ {0xe948530d /* radial */, XFA_Element::Radial},
+ {0xea8d6999 /* variables */, XFA_Element::Variables},
+ {0xeaa142c0 /* timePatterns */, XFA_Element::TimePatterns},
+ {0xeb943a71 /* effectiveInputPolicy */, XFA_Element::EffectiveInputPolicy},
+ {0xef04a2bc /* nameAttr */, XFA_Element::NameAttr},
+ {0xf07222ab /* conformance */, XFA_Element::Conformance},
+ {0xf0aaaadc /* transform */, XFA_Element::Transform},
+ {0xf1433e88 /* lockDocument */, XFA_Element::LockDocument},
+ {0xf54eb997 /* breakAfter */, XFA_Element::BreakAfter},
+ {0xf616da28 /* line */, XFA_Element::Line},
+ {0xf616f3dc /* list */, XFA_Element::List},
+ {0xf7055fb1 /* source */, XFA_Element::Source},
+ {0xf7eebe1c /* occur */, XFA_Element::Occur},
+ {0xf8d10d97 /* pickTrayByPDFSize */, XFA_Element::PickTrayByPDFSize},
+ {0xf8f19e3a /* monthNames */, XFA_Element::MonthNames},
+ {0xf984149b /* severity */, XFA_Element::Severity},
+ {0xf9bcb037 /* groupParent */, XFA_Element::GroupParent},
+ {0xfbc42fff /* documentAssembly */, XFA_Element::DocumentAssembly},
+ {0xfc78159f /* numberSymbol */, XFA_Element::NumberSymbol},
+ {0xfcbd606c /* tagged */, XFA_Element::Tagged},
+ {0xff063802 /* items */, XFA_Element::Items},
+};
+
+} // namespace
+
+// static
+XFA_Element CXFA_Node::NameToElement(const WideString& name) {
+ uint32_t hash = FX_HashCode_GetW(name.AsStringView(), false);
+ auto* elem = std::lower_bound(
+ std::begin(ElementNameToEnum), std::end(ElementNameToEnum), hash,
+ [](const ElementNameInfo& a, uint32_t hash) { return a.hash < hash; });
+ if (elem && elem->hash == hash)
+ return elem->element;
+ return XFA_Element::Unknown;
+}
+
+// static
+std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc,
+ XFA_Element element,
+ XFA_XDPPACKET packet) {
+ ASSERT(element != XFA_Element::NodeList);
+ std::unique_ptr<CXFA_Node> node;
+ switch (element) {
+ case XFA_Element::Ps:
+ node = pdfium::MakeUnique<CXFA_Ps>(doc, packet);
+ break;
+ case XFA_Element::To:
+ node = pdfium::MakeUnique<CXFA_To>(doc, packet);
+ break;
+ case XFA_Element::Ui:
+ node = pdfium::MakeUnique<CXFA_Ui>(doc, packet);
+ break;
+ case XFA_Element::RecordSet:
+ node = pdfium::MakeUnique<CXFA_RecordSet>(doc, packet);
+ break;
+ case XFA_Element::SubsetBelow:
+ node = pdfium::MakeUnique<CXFA_SubsetBelow>(doc, packet);
+ break;
+ case XFA_Element::SubformSet:
+ node = pdfium::MakeUnique<CXFA_SubformSet>(doc, packet);
+ break;
+ case XFA_Element::AdobeExtensionLevel:
+ node = pdfium::MakeUnique<CXFA_AdobeExtensionLevel>(doc, packet);
+ break;
+ case XFA_Element::Typeface:
+ node = pdfium::MakeUnique<CXFA_Typeface>(doc, packet);
+ break;
+ case XFA_Element::Break:
+ node = pdfium::MakeUnique<CXFA_Break>(doc, packet);
+ break;
+ case XFA_Element::FontInfo:
+ node = pdfium::MakeUnique<CXFA_FontInfo>(doc, packet);
+ break;
+ case XFA_Element::NumberPattern:
+ node = pdfium::MakeUnique<CXFA_NumberPattern>(doc, packet);
+ break;
+ case XFA_Element::DynamicRender:
+ node = pdfium::MakeUnique<CXFA_DynamicRender>(doc, packet);
+ break;
+ case XFA_Element::PrintScaling:
+ node = pdfium::MakeUnique<CXFA_PrintScaling>(doc, packet);
+ break;
+ case XFA_Element::CheckButton:
+ node = pdfium::MakeUnique<CXFA_CheckButton>(doc, packet);
+ break;
+ case XFA_Element::DatePatterns:
+ node = pdfium::MakeUnique<CXFA_DatePatterns>(doc, packet);
+ break;
+ case XFA_Element::SourceSet:
+ node = pdfium::MakeUnique<CXFA_SourceSet>(doc, packet);
+ break;
+ case XFA_Element::Amd:
+ node = pdfium::MakeUnique<CXFA_Amd>(doc, packet);
+ break;
+ case XFA_Element::Arc:
+ node = pdfium::MakeUnique<CXFA_Arc>(doc, packet);
+ break;
+ case XFA_Element::Day:
+ node = pdfium::MakeUnique<CXFA_Day>(doc, packet);
+ break;
+ case XFA_Element::Era:
+ node = pdfium::MakeUnique<CXFA_Era>(doc, packet);
+ break;
+ case XFA_Element::Jog:
+ node = pdfium::MakeUnique<CXFA_Jog>(doc, packet);
+ break;
+ case XFA_Element::Log:
+ node = pdfium::MakeUnique<CXFA_Log>(doc, packet);
+ break;
+ case XFA_Element::Map:
+ node = pdfium::MakeUnique<CXFA_Map>(doc, packet);
+ break;
+ case XFA_Element::Mdp:
+ node = pdfium::MakeUnique<CXFA_Mdp>(doc, packet);
+ break;
+ case XFA_Element::BreakBefore:
+ node = pdfium::MakeUnique<CXFA_BreakBefore>(doc, packet);
+ break;
+ case XFA_Element::Oid:
+ node = pdfium::MakeUnique<CXFA_Oid>(doc, packet);
+ break;
+ case XFA_Element::Pcl:
+ node = pdfium::MakeUnique<CXFA_Pcl>(doc, packet);
+ break;
+ case XFA_Element::Pdf:
+ node = pdfium::MakeUnique<CXFA_Pdf>(doc, packet);
+ break;
+ case XFA_Element::Ref:
+ node = pdfium::MakeUnique<CXFA_Ref>(doc, packet);
+ break;
+ case XFA_Element::Uri:
+ node = pdfium::MakeUnique<CXFA_Uri>(doc, packet);
+ break;
+ case XFA_Element::Xdc:
+ node = pdfium::MakeUnique<CXFA_Xdc>(doc, packet);
+ break;
+ case XFA_Element::Xdp:
+ node = pdfium::MakeUnique<CXFA_Xdp>(doc, packet);
+ break;
+ case XFA_Element::Xfa:
+ node = pdfium::MakeUnique<CXFA_Xfa>(doc, packet);
+ break;
+ case XFA_Element::Xsl:
+ node = pdfium::MakeUnique<CXFA_Xsl>(doc, packet);
+ break;
+ case XFA_Element::Zpl:
+ node = pdfium::MakeUnique<CXFA_Zpl>(doc, packet);
+ break;
+ case XFA_Element::Cache:
+ node = pdfium::MakeUnique<CXFA_Cache>(doc, packet);
+ break;
+ case XFA_Element::Margin:
+ node = pdfium::MakeUnique<CXFA_Margin>(doc, packet);
+ break;
+ case XFA_Element::KeyUsage:
+ node = pdfium::MakeUnique<CXFA_KeyUsage>(doc, packet);
+ break;
+ case XFA_Element::Exclude:
+ node = pdfium::MakeUnique<CXFA_Exclude>(doc, packet);
+ break;
+ case XFA_Element::ChoiceList:
+ node = pdfium::MakeUnique<CXFA_ChoiceList>(doc, packet);
+ break;
+ case XFA_Element::Level:
+ node = pdfium::MakeUnique<CXFA_Level>(doc, packet);
+ break;
+ case XFA_Element::LabelPrinter:
+ node = pdfium::MakeUnique<CXFA_LabelPrinter>(doc, packet);
+ break;
+ case XFA_Element::CalendarSymbols:
+ node = pdfium::MakeUnique<CXFA_CalendarSymbols>(doc, packet);
+ break;
+ case XFA_Element::Para:
+ node = pdfium::MakeUnique<CXFA_Para>(doc, packet);
+ break;
+ case XFA_Element::Part:
+ node = pdfium::MakeUnique<CXFA_Part>(doc, packet);
+ break;
+ case XFA_Element::Pdfa:
+ node = pdfium::MakeUnique<CXFA_Pdfa>(doc, packet);
+ break;
+ case XFA_Element::Filter:
+ node = pdfium::MakeUnique<CXFA_Filter>(doc, packet);
+ break;
+ case XFA_Element::Present:
+ node = pdfium::MakeUnique<CXFA_Present>(doc, packet);
+ break;
+ case XFA_Element::Pagination:
+ node = pdfium::MakeUnique<CXFA_Pagination>(doc, packet);
+ break;
+ case XFA_Element::Encoding:
+ node = pdfium::MakeUnique<CXFA_Encoding>(doc, packet);
+ break;
+ case XFA_Element::Event:
+ node = pdfium::MakeUnique<CXFA_Event>(doc, packet);
+ break;
+ case XFA_Element::Whitespace:
+ node = pdfium::MakeUnique<CXFA_Whitespace>(doc, packet);
+ break;
+ case XFA_Element::DefaultUi:
+ node = pdfium::MakeUnique<CXFA_DefaultUi>(doc, packet);
+ break;
+ case XFA_Element::DataModel:
+ node = pdfium::MakeUnique<CXFA_DataModel>(doc, packet);
+ break;
+ case XFA_Element::Barcode:
+ node = pdfium::MakeUnique<CXFA_Barcode>(doc, packet);
+ break;
+ case XFA_Element::TimePattern:
+ node = pdfium::MakeUnique<CXFA_TimePattern>(doc, packet);
+ break;
+ case XFA_Element::BatchOutput:
+ node = pdfium::MakeUnique<CXFA_BatchOutput>(doc, packet);
+ break;
+ case XFA_Element::Enforce:
+ node = pdfium::MakeUnique<CXFA_Enforce>(doc, packet);
+ break;
+ case XFA_Element::CurrencySymbols:
+ node = pdfium::MakeUnique<CXFA_CurrencySymbols>(doc, packet);
+ break;
+ case XFA_Element::AddSilentPrint:
+ node = pdfium::MakeUnique<CXFA_AddSilentPrint>(doc, packet);
+ break;
+ case XFA_Element::Rename:
+ node = pdfium::MakeUnique<CXFA_Rename>(doc, packet);
+ break;
+ case XFA_Element::Operation:
+ node = pdfium::MakeUnique<CXFA_Operation>(doc, packet);
+ break;
+ case XFA_Element::Typefaces:
+ node = pdfium::MakeUnique<CXFA_Typefaces>(doc, packet);
+ break;
+ case XFA_Element::SubjectDNs:
+ node = pdfium::MakeUnique<CXFA_SubjectDNs>(doc, packet);
+ break;
+ case XFA_Element::Issuers:
+ node = pdfium::MakeUnique<CXFA_Issuers>(doc, packet);
+ break;
+ case XFA_Element::SignaturePseudoModel:
+ node = pdfium::MakeUnique<CXFA_SignaturePseudoModel>(doc, packet);
+ break;
+ case XFA_Element::WsdlConnection:
+ node = pdfium::MakeUnique<CXFA_WsdlConnection>(doc, packet);
+ break;
+ case XFA_Element::Debug:
+ node = pdfium::MakeUnique<CXFA_Debug>(doc, packet);
+ break;
+ case XFA_Element::Delta:
+ node = pdfium::MakeUnique<CXFA_Delta>(doc, packet);
+ break;
+ case XFA_Element::EraNames:
+ node = pdfium::MakeUnique<CXFA_EraNames>(doc, packet);
+ break;
+ case XFA_Element::ModifyAnnots:
+ node = pdfium::MakeUnique<CXFA_ModifyAnnots>(doc, packet);
+ break;
+ case XFA_Element::StartNode:
+ node = pdfium::MakeUnique<CXFA_StartNode>(doc, packet);
+ break;
+ case XFA_Element::Button:
+ node = pdfium::MakeUnique<CXFA_Button>(doc, packet);
+ break;
+ case XFA_Element::Format:
+ node = pdfium::MakeUnique<CXFA_Format>(doc, packet);
+ break;
+ case XFA_Element::Border:
+ node = pdfium::MakeUnique<CXFA_Border>(doc, packet);
+ break;
+ case XFA_Element::Area:
+ node = pdfium::MakeUnique<CXFA_Area>(doc, packet);
+ break;
+ case XFA_Element::Hyphenation:
+ node = pdfium::MakeUnique<CXFA_Hyphenation>(doc, packet);
+ break;
+ case XFA_Element::Text:
+ node = pdfium::MakeUnique<CXFA_Text>(doc, packet);
+ break;
+ case XFA_Element::Time:
+ node = pdfium::MakeUnique<CXFA_Time>(doc, packet);
+ break;
+ case XFA_Element::Type:
+ node = pdfium::MakeUnique<CXFA_Type>(doc, packet);
+ break;
+ case XFA_Element::Overprint:
+ node = pdfium::MakeUnique<CXFA_Overprint>(doc, packet);
+ break;
+ case XFA_Element::Certificates:
+ node = pdfium::MakeUnique<CXFA_Certificates>(doc, packet);
+ break;
+ case XFA_Element::EncryptionMethods:
+ node = pdfium::MakeUnique<CXFA_EncryptionMethods>(doc, packet);
+ break;
+ case XFA_Element::SetProperty:
+ node = pdfium::MakeUnique<CXFA_SetProperty>(doc, packet);
+ break;
+ case XFA_Element::PrinterName:
+ node = pdfium::MakeUnique<CXFA_PrinterName>(doc, packet);
+ break;
+ case XFA_Element::StartPage:
+ node = pdfium::MakeUnique<CXFA_StartPage>(doc, packet);
+ break;
+ case XFA_Element::PageOffset:
+ node = pdfium::MakeUnique<CXFA_PageOffset>(doc, packet);
+ break;
+ case XFA_Element::DateTime:
+ node = pdfium::MakeUnique<CXFA_DateTime>(doc, packet);
+ break;
+ case XFA_Element::Comb:
+ node = pdfium::MakeUnique<CXFA_Comb>(doc, packet);
+ break;
+ case XFA_Element::Pattern:
+ node = pdfium::MakeUnique<CXFA_Pattern>(doc, packet);
+ break;
+ case XFA_Element::IfEmpty:
+ node = pdfium::MakeUnique<CXFA_IfEmpty>(doc, packet);
+ break;
+ case XFA_Element::SuppressBanner:
+ node = pdfium::MakeUnique<CXFA_SuppressBanner>(doc, packet);
+ break;
+ case XFA_Element::OutputBin:
+ node = pdfium::MakeUnique<CXFA_OutputBin>(doc, packet);
+ break;
+ case XFA_Element::Field:
+ node = pdfium::MakeUnique<CXFA_Field>(doc, packet);
+ break;
+ case XFA_Element::Agent:
+ node = pdfium::MakeUnique<CXFA_Agent>(doc, packet);
+ break;
+ case XFA_Element::OutputXSL:
+ node = pdfium::MakeUnique<CXFA_OutputXSL>(doc, packet);
+ break;
+ case XFA_Element::AdjustData:
+ node = pdfium::MakeUnique<CXFA_AdjustData>(doc, packet);
+ break;
+ case XFA_Element::AutoSave:
+ node = pdfium::MakeUnique<CXFA_AutoSave>(doc, packet);
+ break;
+ case XFA_Element::ContentArea:
+ node = pdfium::MakeUnique<CXFA_ContentArea>(doc, packet);
+ break;
+ case XFA_Element::EventPseudoModel:
+ node = pdfium::MakeUnique<CXFA_EventPseudoModel>(doc, packet);
+ break;
+ case XFA_Element::WsdlAddress:
+ node = pdfium::MakeUnique<CXFA_WsdlAddress>(doc, packet);
+ break;
+ case XFA_Element::Solid:
+ node = pdfium::MakeUnique<CXFA_Solid>(doc, packet);
+ break;
+ case XFA_Element::DateTimeSymbols:
+ node = pdfium::MakeUnique<CXFA_DateTimeSymbols>(doc, packet);
+ break;
+ case XFA_Element::EncryptionLevel:
+ node = pdfium::MakeUnique<CXFA_EncryptionLevel>(doc, packet);
+ break;
+ case XFA_Element::Edge:
+ node = pdfium::MakeUnique<CXFA_Edge>(doc, packet);
+ break;
+ case XFA_Element::Stipple:
+ node = pdfium::MakeUnique<CXFA_Stipple>(doc, packet);
+ break;
+ case XFA_Element::Attributes:
+ node = pdfium::MakeUnique<CXFA_Attributes>(doc, packet);
+ break;
+ case XFA_Element::VersionControl:
+ node = pdfium::MakeUnique<CXFA_VersionControl>(doc, packet);
+ break;
+ case XFA_Element::Meridiem:
+ node = pdfium::MakeUnique<CXFA_Meridiem>(doc, packet);
+ break;
+ case XFA_Element::ExclGroup:
+ node = pdfium::MakeUnique<CXFA_ExclGroup>(doc, packet);
+ break;
+ case XFA_Element::ToolTip:
+ node = pdfium::MakeUnique<CXFA_ToolTip>(doc, packet);
+ break;
+ case XFA_Element::Compress:
+ node = pdfium::MakeUnique<CXFA_Compress>(doc, packet);
+ break;
+ case XFA_Element::Reason:
+ node = pdfium::MakeUnique<CXFA_Reason>(doc, packet);
+ break;
+ case XFA_Element::Execute:
+ node = pdfium::MakeUnique<CXFA_Execute>(doc, packet);
+ break;
+ case XFA_Element::ContentCopy:
+ node = pdfium::MakeUnique<CXFA_ContentCopy>(doc, packet);
+ break;
+ case XFA_Element::DateTimeEdit:
+ node = pdfium::MakeUnique<CXFA_DateTimeEdit>(doc, packet);
+ break;
+ case XFA_Element::Config:
+ node = pdfium::MakeUnique<CXFA_Config>(doc, packet);
+ break;
+ case XFA_Element::Image:
+ node = pdfium::MakeUnique<CXFA_Image>(doc, packet);
+ break;
+ case XFA_Element::SharpxHTML:
+ node = pdfium::MakeUnique<CXFA_SharpxHTML>(doc, packet);
+ break;
+ case XFA_Element::NumberOfCopies:
+ node = pdfium::MakeUnique<CXFA_NumberOfCopies>(doc, packet);
+ break;
+ case XFA_Element::BehaviorOverride:
+ node = pdfium::MakeUnique<CXFA_BehaviorOverride>(doc, packet);
+ break;
+ case XFA_Element::TimeStamp:
+ node = pdfium::MakeUnique<CXFA_TimeStamp>(doc, packet);
+ break;
+ case XFA_Element::Month:
+ node = pdfium::MakeUnique<CXFA_Month>(doc, packet);
+ break;
+ case XFA_Element::ViewerPreferences:
+ node = pdfium::MakeUnique<CXFA_ViewerPreferences>(doc, packet);
+ break;
+ case XFA_Element::ScriptModel:
+ node = pdfium::MakeUnique<CXFA_ScriptModel>(doc, packet);
+ break;
+ case XFA_Element::Decimal:
+ node = pdfium::MakeUnique<CXFA_Decimal>(doc, packet);
+ break;
+ case XFA_Element::Subform:
+ node = pdfium::MakeUnique<CXFA_Subform>(doc, packet);
+ break;
+ case XFA_Element::Select:
+ node = pdfium::MakeUnique<CXFA_Select>(doc, packet);
+ break;
+ case XFA_Element::Window:
+ node = pdfium::MakeUnique<CXFA_Window>(doc, packet);
+ break;
+ case XFA_Element::LocaleSet:
+ node = pdfium::MakeUnique<CXFA_LocaleSet>(doc, packet);
+ break;
+ case XFA_Element::Handler:
+ node = pdfium::MakeUnique<CXFA_Handler>(doc, packet);
+ break;
+ case XFA_Element::HostPseudoModel:
+ node = pdfium::MakeUnique<CXFA_HostPseudoModel>(doc, packet);
+ break;
+ case XFA_Element::Presence:
+ node = pdfium::MakeUnique<CXFA_Presence>(doc, packet);
+ break;
+ case XFA_Element::Record:
+ node = pdfium::MakeUnique<CXFA_Record>(doc, packet);
+ break;
+ case XFA_Element::Embed:
+ node = pdfium::MakeUnique<CXFA_Embed>(doc, packet);
+ break;
+ case XFA_Element::Version:
+ node = pdfium::MakeUnique<CXFA_Version>(doc, packet);
+ break;
+ case XFA_Element::Command:
+ node = pdfium::MakeUnique<CXFA_Command>(doc, packet);
+ break;
+ case XFA_Element::Copies:
+ node = pdfium::MakeUnique<CXFA_Copies>(doc, packet);
+ break;
+ case XFA_Element::Staple:
+ node = pdfium::MakeUnique<CXFA_Staple>(doc, packet);
+ break;
+ case XFA_Element::SubmitFormat:
+ node = pdfium::MakeUnique<CXFA_SubmitFormat>(doc, packet);
+ break;
+ case XFA_Element::Boolean:
+ node = pdfium::MakeUnique<CXFA_Boolean>(doc, packet);
+ break;
+ case XFA_Element::Message:
+ node = pdfium::MakeUnique<CXFA_Message>(doc, packet);
+ break;
+ case XFA_Element::Output:
+ node = pdfium::MakeUnique<CXFA_Output>(doc, packet);
+ break;
+ case XFA_Element::PsMap:
+ node = pdfium::MakeUnique<CXFA_PsMap>(doc, packet);
+ break;
+ case XFA_Element::ExcludeNS:
+ node = pdfium::MakeUnique<CXFA_ExcludeNS>(doc, packet);
+ break;
+ case XFA_Element::Assist:
+ node = pdfium::MakeUnique<CXFA_Assist>(doc, packet);
+ break;
+ case XFA_Element::Picture:
+ node = pdfium::MakeUnique<CXFA_Picture>(doc, packet);
+ break;
+ case XFA_Element::Traversal:
+ node = pdfium::MakeUnique<CXFA_Traversal>(doc, packet);
+ break;
+ case XFA_Element::SilentPrint:
+ node = pdfium::MakeUnique<CXFA_SilentPrint>(doc, packet);
+ break;
+ case XFA_Element::WebClient:
+ node = pdfium::MakeUnique<CXFA_WebClient>(doc, packet);
+ break;
+ case XFA_Element::LayoutPseudoModel:
+ node = pdfium::MakeUnique<CXFA_LayoutPseudoModel>(doc, packet);
+ break;
+ case XFA_Element::Producer:
+ node = pdfium::MakeUnique<CXFA_Producer>(doc, packet);
+ break;
+ case XFA_Element::Corner:
+ node = pdfium::MakeUnique<CXFA_Corner>(doc, packet);
+ break;
+ case XFA_Element::MsgId:
+ node = pdfium::MakeUnique<CXFA_MsgId>(doc, packet);
+ break;
+ case XFA_Element::Color:
+ node = pdfium::MakeUnique<CXFA_Color>(doc, packet);
+ break;
+ case XFA_Element::Keep:
+ node = pdfium::MakeUnique<CXFA_Keep>(doc, packet);
+ break;
+ case XFA_Element::Query:
+ node = pdfium::MakeUnique<CXFA_Query>(doc, packet);
+ break;
+ case XFA_Element::Insert:
+ node = pdfium::MakeUnique<CXFA_Insert>(doc, packet);
+ break;
+ case XFA_Element::ImageEdit:
+ node = pdfium::MakeUnique<CXFA_ImageEdit>(doc, packet);
+ break;
+ case XFA_Element::Validate:
+ node = pdfium::MakeUnique<CXFA_Validate>(doc, packet);
+ break;
+ case XFA_Element::DigestMethods:
+ node = pdfium::MakeUnique<CXFA_DigestMethods>(doc, packet);
+ break;
+ case XFA_Element::NumberPatterns:
+ node = pdfium::MakeUnique<CXFA_NumberPatterns>(doc, packet);
+ break;
+ case XFA_Element::PageSet:
+ node = pdfium::MakeUnique<CXFA_PageSet>(doc, packet);
+ break;
+ case XFA_Element::Integer:
+ node = pdfium::MakeUnique<CXFA_Integer>(doc, packet);
+ break;
+ case XFA_Element::SoapAddress:
+ node = pdfium::MakeUnique<CXFA_SoapAddress>(doc, packet);
+ break;
+ case XFA_Element::Equate:
+ node = pdfium::MakeUnique<CXFA_Equate>(doc, packet);
+ break;
+ case XFA_Element::FormFieldFilling:
+ node = pdfium::MakeUnique<CXFA_FormFieldFilling>(doc, packet);
+ break;
+ case XFA_Element::PageRange:
+ node = pdfium::MakeUnique<CXFA_PageRange>(doc, packet);
+ break;
+ case XFA_Element::Update:
+ node = pdfium::MakeUnique<CXFA_Update>(doc, packet);
+ break;
+ case XFA_Element::ConnectString:
+ node = pdfium::MakeUnique<CXFA_ConnectString>(doc, packet);
+ break;
+ case XFA_Element::Mode:
+ node = pdfium::MakeUnique<CXFA_Mode>(doc, packet);
+ break;
+ case XFA_Element::Layout:
+ node = pdfium::MakeUnique<CXFA_Layout>(doc, packet);
+ break;
+ case XFA_Element::Sharpxml:
+ node = pdfium::MakeUnique<CXFA_Sharpxml>(doc, packet);
+ break;
+ case XFA_Element::XsdConnection:
+ node = pdfium::MakeUnique<CXFA_XsdConnection>(doc, packet);
+ break;
+ case XFA_Element::Traverse:
+ node = pdfium::MakeUnique<CXFA_Traverse>(doc, packet);
+ break;
+ case XFA_Element::Encodings:
+ node = pdfium::MakeUnique<CXFA_Encodings>(doc, packet);
+ break;
+ case XFA_Element::Template:
+ node = pdfium::MakeUnique<CXFA_Template>(doc, packet);
+ break;
+ case XFA_Element::Acrobat:
+ node = pdfium::MakeUnique<CXFA_Acrobat>(doc, packet);
+ break;
+ case XFA_Element::ValidationMessaging:
+ node = pdfium::MakeUnique<CXFA_ValidationMessaging>(doc, packet);
+ break;
+ case XFA_Element::Signing:
+ node = pdfium::MakeUnique<CXFA_Signing>(doc, packet);
+ break;
+ case XFA_Element::DataWindow:
+ node = pdfium::MakeUnique<CXFA_DataWindow>(doc, packet);
+ break;
+ case XFA_Element::Script:
+ node = pdfium::MakeUnique<CXFA_Script>(doc, packet);
+ break;
+ case XFA_Element::AddViewerPreferences:
+ node = pdfium::MakeUnique<CXFA_AddViewerPreferences>(doc, packet);
+ break;
+ case XFA_Element::AlwaysEmbed:
+ node = pdfium::MakeUnique<CXFA_AlwaysEmbed>(doc, packet);
+ break;
+ case XFA_Element::PasswordEdit:
+ node = pdfium::MakeUnique<CXFA_PasswordEdit>(doc, packet);
+ break;
+ case XFA_Element::NumericEdit:
+ node = pdfium::MakeUnique<CXFA_NumericEdit>(doc, packet);
+ break;
+ case XFA_Element::EncryptionMethod:
+ node = pdfium::MakeUnique<CXFA_EncryptionMethod>(doc, packet);
+ break;
+ case XFA_Element::Change:
+ node = pdfium::MakeUnique<CXFA_Change>(doc, packet);
+ break;
+ case XFA_Element::PageArea:
+ node = pdfium::MakeUnique<CXFA_PageArea>(doc, packet);
+ break;
+ case XFA_Element::SubmitUrl:
+ node = pdfium::MakeUnique<CXFA_SubmitUrl>(doc, packet);
+ break;
+ case XFA_Element::Oids:
+ node = pdfium::MakeUnique<CXFA_Oids>(doc, packet);
+ break;
+ case XFA_Element::Signature:
+ node = pdfium::MakeUnique<CXFA_Signature>(doc, packet);
+ break;
+ case XFA_Element::ADBE_JSConsole:
+ node = pdfium::MakeUnique<CXFA_aDBE_JSConsole>(doc, packet);
+ break;
+ case XFA_Element::Caption:
+ node = pdfium::MakeUnique<CXFA_Caption>(doc, packet);
+ break;
+ case XFA_Element::Relevant:
+ node = pdfium::MakeUnique<CXFA_Relevant>(doc, packet);
+ break;
+ case XFA_Element::FlipLabel:
+ node = pdfium::MakeUnique<CXFA_FlipLabel>(doc, packet);
+ break;
+ case XFA_Element::ExData:
+ node = pdfium::MakeUnique<CXFA_ExData>(doc, packet);
+ break;
+ case XFA_Element::DayNames:
+ node = pdfium::MakeUnique<CXFA_DayNames>(doc, packet);
+ break;
+ case XFA_Element::SoapAction:
+ node = pdfium::MakeUnique<CXFA_SoapAction>(doc, packet);
+ break;
+ case XFA_Element::DefaultTypeface:
+ node = pdfium::MakeUnique<CXFA_DefaultTypeface>(doc, packet);
+ break;
+ case XFA_Element::Manifest:
+ node = pdfium::MakeUnique<CXFA_Manifest>(doc, packet);
+ break;
+ case XFA_Element::Overflow:
+ node = pdfium::MakeUnique<CXFA_Overflow>(doc, packet);
+ break;
+ case XFA_Element::Linear:
+ node = pdfium::MakeUnique<CXFA_Linear>(doc, packet);
+ break;
+ case XFA_Element::CurrencySymbol:
+ node = pdfium::MakeUnique<CXFA_CurrencySymbol>(doc, packet);
+ break;
+ case XFA_Element::Delete:
+ node = pdfium::MakeUnique<CXFA_Delete>(doc, packet);
+ break;
+ case XFA_Element::Deltas:
+ node = pdfium::MakeUnique<CXFA_Deltas>(doc, packet);
+ break;
+ case XFA_Element::DigestMethod:
+ node = pdfium::MakeUnique<CXFA_DigestMethod>(doc, packet);
+ break;
+ case XFA_Element::InstanceManager:
+ node = pdfium::MakeUnique<CXFA_InstanceManager>(doc, packet);
+ break;
+ case XFA_Element::EquateRange:
+ node = pdfium::MakeUnique<CXFA_EquateRange>(doc, packet);
+ break;
+ case XFA_Element::Medium:
+ node = pdfium::MakeUnique<CXFA_Medium>(doc, packet);
+ break;
+ case XFA_Element::TextEdit:
+ node = pdfium::MakeUnique<CXFA_TextEdit>(doc, packet);
+ break;
+ case XFA_Element::TemplateCache:
+ node = pdfium::MakeUnique<CXFA_TemplateCache>(doc, packet);
+ break;
+ case XFA_Element::CompressObjectStream:
+ node = pdfium::MakeUnique<CXFA_CompressObjectStream>(doc, packet);
+ break;
+ case XFA_Element::DataValue:
+ node = pdfium::MakeUnique<CXFA_DataValue>(doc, packet);
+ break;
+ case XFA_Element::AccessibleContent:
+ node = pdfium::MakeUnique<CXFA_AccessibleContent>(doc, packet);
+ break;
+ case XFA_Element::IncludeXDPContent:
+ node = pdfium::MakeUnique<CXFA_IncludeXDPContent>(doc, packet);
+ break;
+ case XFA_Element::XmlConnection:
+ node = pdfium::MakeUnique<CXFA_XmlConnection>(doc, packet);
+ break;
+ case XFA_Element::ValidateApprovalSignatures:
+ node = pdfium::MakeUnique<CXFA_ValidateApprovalSignatures>(doc, packet);
+ break;
+ case XFA_Element::SignData:
+ node = pdfium::MakeUnique<CXFA_SignData>(doc, packet);
+ break;
+ case XFA_Element::Packets:
+ node = pdfium::MakeUnique<CXFA_Packets>(doc, packet);
+ break;
+ case XFA_Element::DatePattern:
+ node = pdfium::MakeUnique<CXFA_DatePattern>(doc, packet);
+ break;
+ case XFA_Element::DuplexOption:
+ node = pdfium::MakeUnique<CXFA_DuplexOption>(doc, packet);
+ break;
+ case XFA_Element::Base:
+ node = pdfium::MakeUnique<CXFA_Base>(doc, packet);
+ break;
+ case XFA_Element::Bind:
+ node = pdfium::MakeUnique<CXFA_Bind>(doc, packet);
+ break;
+ case XFA_Element::Compression:
+ node = pdfium::MakeUnique<CXFA_Compression>(doc, packet);
+ break;
+ case XFA_Element::User:
+ node = pdfium::MakeUnique<CXFA_User>(doc, packet);
+ break;
+ case XFA_Element::Rectangle:
+ node = pdfium::MakeUnique<CXFA_Rectangle>(doc, packet);
+ break;
+ case XFA_Element::EffectiveOutputPolicy:
+ node = pdfium::MakeUnique<CXFA_EffectiveOutputPolicy>(doc, packet);
+ break;
+ case XFA_Element::ADBE_JSDebugger:
+ node = pdfium::MakeUnique<CXFA_aDBE_JSDebugger>(doc, packet);
+ break;
+ case XFA_Element::Acrobat7:
+ node = pdfium::MakeUnique<CXFA_Acrobat7>(doc, packet);
+ break;
+ case XFA_Element::Interactive:
+ node = pdfium::MakeUnique<CXFA_Interactive>(doc, packet);
+ break;
+ case XFA_Element::Locale:
+ node = pdfium::MakeUnique<CXFA_Locale>(doc, packet);
+ break;
+ case XFA_Element::CurrentPage:
+ node = pdfium::MakeUnique<CXFA_CurrentPage>(doc, packet);
+ break;
+ case XFA_Element::Data:
+ node = pdfium::MakeUnique<CXFA_Data>(doc, packet);
+ break;
+ case XFA_Element::Date:
+ node = pdfium::MakeUnique<CXFA_Date>(doc, packet);
+ break;
+ case XFA_Element::Desc:
+ node = pdfium::MakeUnique<CXFA_Desc>(doc, packet);
+ break;
+ case XFA_Element::Encrypt:
+ node = pdfium::MakeUnique<CXFA_Encrypt>(doc, packet);
+ break;
+ case XFA_Element::Draw:
+ node = pdfium::MakeUnique<CXFA_Draw>(doc, packet);
+ break;
+ case XFA_Element::Encryption:
+ node = pdfium::MakeUnique<CXFA_Encryption>(doc, packet);
+ break;
+ case XFA_Element::MeridiemNames:
+ node = pdfium::MakeUnique<CXFA_MeridiemNames>(doc, packet);
+ break;
+ case XFA_Element::Messaging:
+ node = pdfium::MakeUnique<CXFA_Messaging>(doc, packet);
+ break;
+ case XFA_Element::Speak:
+ node = pdfium::MakeUnique<CXFA_Speak>(doc, packet);
+ break;
+ case XFA_Element::DataGroup:
+ node = pdfium::MakeUnique<CXFA_DataGroup>(doc, packet);
+ break;
+ case XFA_Element::Common:
+ node = pdfium::MakeUnique<CXFA_Common>(doc, packet);
+ break;
+ case XFA_Element::Sharptext:
+ node = pdfium::MakeUnique<CXFA_Sharptext>(doc, packet);
+ break;
+ case XFA_Element::PaginationOverride:
+ node = pdfium::MakeUnique<CXFA_PaginationOverride>(doc, packet);
+ break;
+ case XFA_Element::Reasons:
+ node = pdfium::MakeUnique<CXFA_Reasons>(doc, packet);
+ break;
+ case XFA_Element::SignatureProperties:
+ node = pdfium::MakeUnique<CXFA_SignatureProperties>(doc, packet);
+ break;
+ case XFA_Element::Threshold:
+ node = pdfium::MakeUnique<CXFA_Threshold>(doc, packet);
+ break;
+ case XFA_Element::AppearanceFilter:
+ node = pdfium::MakeUnique<CXFA_AppearanceFilter>(doc, packet);
+ break;
+ case XFA_Element::Fill:
+ node = pdfium::MakeUnique<CXFA_Fill>(doc, packet);
+ break;
+ case XFA_Element::Font:
+ node = pdfium::MakeUnique<CXFA_Font>(doc, packet);
+ break;
+ case XFA_Element::Form:
+ node = pdfium::MakeUnique<CXFA_Form>(doc, packet);
+ break;
+ case XFA_Element::MediumInfo:
+ node = pdfium::MakeUnique<CXFA_MediumInfo>(doc, packet);
+ break;
+ case XFA_Element::Certificate:
+ node = pdfium::MakeUnique<CXFA_Certificate>(doc, packet);
+ break;
+ case XFA_Element::Password:
+ node = pdfium::MakeUnique<CXFA_Password>(doc, packet);
+ break;
+ case XFA_Element::RunScripts:
+ node = pdfium::MakeUnique<CXFA_RunScripts>(doc, packet);
+ break;
+ case XFA_Element::Trace:
+ node = pdfium::MakeUnique<CXFA_Trace>(doc, packet);
+ break;
+ case XFA_Element::Float:
+ node = pdfium::MakeUnique<CXFA_Float>(doc, packet);
+ break;
+ case XFA_Element::RenderPolicy:
+ node = pdfium::MakeUnique<CXFA_RenderPolicy>(doc, packet);
+ break;
+ case XFA_Element::LogPseudoModel:
+ node = pdfium::MakeUnique<CXFA_LogPseudoModel>(doc, packet);
+ break;
+ case XFA_Element::Destination:
+ node = pdfium::MakeUnique<CXFA_Destination>(doc, packet);
+ break;
+ case XFA_Element::Value:
+ node = pdfium::MakeUnique<CXFA_Value>(doc, packet);
+ break;
+ case XFA_Element::Bookend:
+ node = pdfium::MakeUnique<CXFA_Bookend>(doc, packet);
+ break;
+ case XFA_Element::ExObject:
+ node = pdfium::MakeUnique<CXFA_ExObject>(doc, packet);
+ break;
+ case XFA_Element::OpenAction:
+ node = pdfium::MakeUnique<CXFA_OpenAction>(doc, packet);
+ break;
+ case XFA_Element::NeverEmbed:
+ node = pdfium::MakeUnique<CXFA_NeverEmbed>(doc, packet);
+ break;
+ case XFA_Element::BindItems:
+ node = pdfium::MakeUnique<CXFA_BindItems>(doc, packet);
+ break;
+ case XFA_Element::Calculate:
+ node = pdfium::MakeUnique<CXFA_Calculate>(doc, packet);
+ break;
+ case XFA_Element::Print:
+ node = pdfium::MakeUnique<CXFA_Print>(doc, packet);
+ break;
+ case XFA_Element::Extras:
+ node = pdfium::MakeUnique<CXFA_Extras>(doc, packet);
+ break;
+ case XFA_Element::Proto:
+ node = pdfium::MakeUnique<CXFA_Proto>(doc, packet);
+ break;
+ case XFA_Element::DSigData:
+ node = pdfium::MakeUnique<CXFA_DSigData>(doc, packet);
+ break;
+ case XFA_Element::Creator:
+ node = pdfium::MakeUnique<CXFA_Creator>(doc, packet);
+ break;
+ case XFA_Element::Connect:
+ node = pdfium::MakeUnique<CXFA_Connect>(doc, packet);
+ break;
+ case XFA_Element::Permissions:
+ node = pdfium::MakeUnique<CXFA_Permissions>(doc, packet);
+ break;
+ case XFA_Element::ConnectionSet:
+ node = pdfium::MakeUnique<CXFA_ConnectionSet>(doc, packet);
+ break;
+ case XFA_Element::Submit:
+ node = pdfium::MakeUnique<CXFA_Submit>(doc, packet);
+ break;
+ case XFA_Element::Range:
+ node = pdfium::MakeUnique<CXFA_Range>(doc, packet);
+ break;
+ case XFA_Element::Linearized:
+ node = pdfium::MakeUnique<CXFA_Linearized>(doc, packet);
+ break;
+ case XFA_Element::Packet:
+ node = pdfium::MakeUnique<CXFA_Packet>(doc, packet);
+ break;
+ case XFA_Element::RootElement:
+ node = pdfium::MakeUnique<CXFA_RootElement>(doc, packet);
+ break;
+ case XFA_Element::PlaintextMetadata:
+ node = pdfium::MakeUnique<CXFA_PlaintextMetadata>(doc, packet);
+ break;
+ case XFA_Element::NumberSymbols:
+ node = pdfium::MakeUnique<CXFA_NumberSymbols>(doc, packet);
+ break;
+ case XFA_Element::PrintHighQuality:
+ node = pdfium::MakeUnique<CXFA_PrintHighQuality>(doc, packet);
+ break;
+ case XFA_Element::Driver:
+ node = pdfium::MakeUnique<CXFA_Driver>(doc, packet);
+ break;
+ case XFA_Element::IncrementalLoad:
+ node = pdfium::MakeUnique<CXFA_IncrementalLoad>(doc, packet);
+ break;
+ case XFA_Element::SubjectDN:
+ node = pdfium::MakeUnique<CXFA_SubjectDN>(doc, packet);
+ break;
+ case XFA_Element::CompressLogicalStructure:
+ node = pdfium::MakeUnique<CXFA_CompressLogicalStructure>(doc, packet);
+ break;
+ case XFA_Element::IncrementalMerge:
+ node = pdfium::MakeUnique<CXFA_IncrementalMerge>(doc, packet);
+ break;
+ case XFA_Element::Radial:
+ node = pdfium::MakeUnique<CXFA_Radial>(doc, packet);
+ break;
+ case XFA_Element::Variables:
+ node = pdfium::MakeUnique<CXFA_Variables>(doc, packet);
+ break;
+ case XFA_Element::TimePatterns:
+ node = pdfium::MakeUnique<CXFA_TimePatterns>(doc, packet);
+ break;
+ case XFA_Element::EffectiveInputPolicy:
+ node = pdfium::MakeUnique<CXFA_EffectiveInputPolicy>(doc, packet);
+ break;
+ case XFA_Element::NameAttr:
+ node = pdfium::MakeUnique<CXFA_NameAttr>(doc, packet);
+ break;
+ case XFA_Element::Conformance:
+ node = pdfium::MakeUnique<CXFA_Conformance>(doc, packet);
+ break;
+ case XFA_Element::Transform:
+ node = pdfium::MakeUnique<CXFA_Transform>(doc, packet);
+ break;
+ case XFA_Element::LockDocument:
+ node = pdfium::MakeUnique<CXFA_LockDocument>(doc, packet);
+ break;
+ case XFA_Element::BreakAfter:
+ node = pdfium::MakeUnique<CXFA_BreakAfter>(doc, packet);
+ break;
+ case XFA_Element::Line:
+ node = pdfium::MakeUnique<CXFA_Line>(doc, packet);
+ break;
+ case XFA_Element::List:
+ node = pdfium::MakeUnique<CXFA_List>(doc, packet);
+ break;
+ case XFA_Element::Source:
+ node = pdfium::MakeUnique<CXFA_Source>(doc, packet);
+ break;
+ case XFA_Element::Occur:
+ node = pdfium::MakeUnique<CXFA_Occur>(doc, packet);
+ break;
+ case XFA_Element::PickTrayByPDFSize:
+ node = pdfium::MakeUnique<CXFA_PickTrayByPDFSize>(doc, packet);
+ break;
+ case XFA_Element::MonthNames:
+ node = pdfium::MakeUnique<CXFA_MonthNames>(doc, packet);
+ break;
+ case XFA_Element::Severity:
+ node = pdfium::MakeUnique<CXFA_Severity>(doc, packet);
+ break;
+ case XFA_Element::GroupParent:
+ node = pdfium::MakeUnique<CXFA_GroupParent>(doc, packet);
+ break;
+ case XFA_Element::DocumentAssembly:
+ node = pdfium::MakeUnique<CXFA_DocumentAssembly>(doc, packet);
+ break;
+ case XFA_Element::NumberSymbol:
+ node = pdfium::MakeUnique<CXFA_NumberSymbol>(doc, packet);
+ break;
+ case XFA_Element::Tagged:
+ node = pdfium::MakeUnique<CXFA_Tagged>(doc, packet);
+ break;
+ case XFA_Element::Items:
+ node = pdfium::MakeUnique<CXFA_Items>(doc, packet);
+ break;
+ case XFA_Element::Unknown:
+ case XFA_Element::NodeList:
+ NOTREACHED();
+ return nullptr;
+ }
+ if (!node || !node->IsValidInPacket(packet))
+ return nullptr;
+ return node;
+}
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.cpp b/xfa/fxfa/parser/cxfa_nodehelper.cpp
index e8e88d2fc1..6428a3ca4a 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.cpp
+++ b/xfa/fxfa/parser/cxfa_nodehelper.cpp
@@ -45,9 +45,8 @@ int32_t CXFA_NodeHelper::CountSiblings(CXFA_Node* pNode,
CXFA_Node* parent = ResolveNodes_GetParent(pNode, XFA_LOGIC_NoTransparent);
if (!parent)
return 0;
- const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement(
- parent->GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN);
- if (!pProperty && eLogicType == XFA_LOGIC_Transparent) {
+ if (!parent->HasProperty(pNode->GetElementType()) &&
+ eLogicType == XFA_LOGIC_Transparent) {
parent = ResolveNodes_GetParent(pNode, XFA_LOGIC_Transparent);
if (!parent)
return 0;
@@ -340,7 +339,7 @@ bool CXFA_NodeHelper::ResolveNodes_CreateNode(WideString wsName,
CreateNode_ForCondition(wsCondition);
}
if (bIsClassName) {
- XFA_Element eType = XFA_GetElementTypeForName(wsName.AsStringView());
+ XFA_Element eType = CXFA_Node::NameToElement(wsName);
if (eType == XFA_Element::Unknown)
return false;
@@ -396,8 +395,5 @@ void CXFA_NodeHelper::SetCreateNodeType(CXFA_Node* refNode) {
bool CXFA_NodeHelper::NodeIsProperty(CXFA_Node* refNode) {
CXFA_Node* parent = ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent);
- return parent && refNode &&
- XFA_GetPropertyOfElement(parent->GetElementType(),
- refNode->GetElementType(),
- XFA_XDPPACKET_UNKNOWN);
+ return parent && refNode && parent->HasProperty(refNode->GetElementType());
}
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.cpp b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
new file mode 100644
index 0000000000..6970fcc25e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_numberofcopies.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"numberOfCopies";
+
+} // namespace
+
+CXFA_NumberOfCopies::CXFA_NumberOfCopies(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::NumberOfCopies,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_NumberOfCopies::~CXFA_NumberOfCopies() {}
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.h b/xfa/fxfa/parser/cxfa_numberofcopies.h
new file mode 100644
index 0000000000..32b3fce1ef
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NUMBEROFCOPIES_H_
+#define XFA_FXFA_PARSER_CXFA_NUMBEROFCOPIES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NumberOfCopies : public CXFA_Node {
+ public:
+ CXFA_NumberOfCopies(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NumberOfCopies() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NUMBEROFCOPIES_H_
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.cpp b/xfa/fxfa/parser/cxfa_numberpattern.cpp
new file mode 100644
index 0000000000..71097405ae
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numberpattern.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_numberpattern.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"numberPattern";
+
+} // namespace
+
+CXFA_NumberPattern::CXFA_NumberPattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::NumberPattern,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_NumberPattern::~CXFA_NumberPattern() {}
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.h b/xfa/fxfa/parser/cxfa_numberpattern.h
new file mode 100644
index 0000000000..84be0c2b03
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numberpattern.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NUMBERPATTERN_H_
+#define XFA_FXFA_PARSER_CXFA_NUMBERPATTERN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NumberPattern : public CXFA_Node {
+ public:
+ CXFA_NumberPattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NumberPattern() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NUMBERPATTERN_H_
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.cpp b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
new file mode 100644
index 0000000000..bcd97cca8c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_numberpatterns.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::NumberPattern, 4, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"numberPatterns";
+
+} // namespace
+
+CXFA_NumberPatterns::CXFA_NumberPatterns(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::NumberPatterns,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_NumberPatterns::~CXFA_NumberPatterns() {}
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.h b/xfa/fxfa/parser/cxfa_numberpatterns.h
new file mode 100644
index 0000000000..724070f48f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NUMBERPATTERNS_H_
+#define XFA_FXFA_PARSER_CXFA_NUMBERPATTERNS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NumberPatterns : public CXFA_Node {
+ public:
+ CXFA_NumberPatterns(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NumberPatterns() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NUMBERPATTERNS_H_
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.cpp b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
new file mode 100644
index 0000000000..064206c82a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_numbersymbol.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"numberSymbol";
+
+} // namespace
+
+CXFA_NumberSymbol::CXFA_NumberSymbol(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::NumberSymbol,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_NumberSymbol::~CXFA_NumberSymbol() {}
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.h b/xfa/fxfa/parser/cxfa_numbersymbol.h
new file mode 100644
index 0000000000..a63cf3a0ce
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NUMBERSYMBOL_H_
+#define XFA_FXFA_PARSER_CXFA_NUMBERSYMBOL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NumberSymbol : public CXFA_Node {
+ public:
+ CXFA_NumberSymbol(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NumberSymbol() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NUMBERSYMBOL_H_
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.cpp b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
new file mode 100644
index 0000000000..62a94aa0f7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_numbersymbols.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::NumberSymbol, 5, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"numberSymbols";
+
+} // namespace
+
+CXFA_NumberSymbols::CXFA_NumberSymbols(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::NumberSymbols,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_NumberSymbols::~CXFA_NumberSymbols() {}
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.h b/xfa/fxfa/parser/cxfa_numbersymbols.h
new file mode 100644
index 0000000000..af668d0ce8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NUMBERSYMBOLS_H_
+#define XFA_FXFA_PARSER_CXFA_NUMBERSYMBOLS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NumberSymbols : public CXFA_Node {
+ public:
+ CXFA_NumberSymbols(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NumberSymbols() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NUMBERSYMBOLS_H_
diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp
new file mode 100644
index 0000000000..4f605f321f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numericedit.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_numericedit.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
+ {XFA_Element::Border, 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};
+
+constexpr wchar_t kName[] = L"numericEdit";
+
+} // namespace
+
+CXFA_NumericEdit::CXFA_NumericEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::NumericEdit,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_NumericEdit::~CXFA_NumericEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_numericedit.h b/xfa/fxfa/parser/cxfa_numericedit.h
new file mode 100644
index 0000000000..ad2523c0f8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_numericedit.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_NUMERICEDIT_H_
+#define XFA_FXFA_PARSER_CXFA_NUMERICEDIT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_NumericEdit : public CXFA_Node {
+ public:
+ CXFA_NumericEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_NumericEdit() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_NUMERICEDIT_H_
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp
new file mode 100644
index 0000000000..3f0675624c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_occur.h"
+
+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};
+
+constexpr wchar_t kName[] = L"occur";
+
+} // namespace
+
+CXFA_Occur::CXFA_Occur(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Occur,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Occur::~CXFA_Occur() {}
diff --git a/xfa/fxfa/parser/cxfa_occur.h b/xfa/fxfa/parser/cxfa_occur.h
new file mode 100644
index 0000000000..9a39d98470
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_occur.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OCCUR_H_
+#define XFA_FXFA_PARSER_CXFA_OCCUR_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Occur : public CXFA_Node {
+ public:
+ CXFA_Occur(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Occur() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OCCUR_H_
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
new file mode 100644
index 0000000000..e46f701918
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_oid.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"oid";
+
+} // namespace
+
+CXFA_Oid::CXFA_Oid(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Oid,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Oid::~CXFA_Oid() {}
diff --git a/xfa/fxfa/parser/cxfa_oid.h b/xfa/fxfa/parser/cxfa_oid.h
new file mode 100644
index 0000000000..b76fbd07be
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_oid.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OID_H_
+#define XFA_FXFA_PARSER_CXFA_OID_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Oid : public CXFA_Node {
+ public:
+ CXFA_Oid(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Oid() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OID_H_
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
new file mode 100644
index 0000000000..842171b64f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_oids.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"oids";
+
+} // namespace
+
+CXFA_Oids::CXFA_Oids(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Oids,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Oids::~CXFA_Oids() {}
diff --git a/xfa/fxfa/parser/cxfa_oids.h b/xfa/fxfa/parser/cxfa_oids.h
new file mode 100644
index 0000000000..85d8e2602b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_oids.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OIDS_H_
+#define XFA_FXFA_PARSER_CXFA_OIDS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Oids : public CXFA_Node {
+ public:
+ CXFA_Oids(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Oids() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OIDS_H_
diff --git a/xfa/fxfa/parser/cxfa_openaction.cpp b/xfa/fxfa/parser/cxfa_openaction.cpp
new file mode 100644
index 0000000000..b2db5093d5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_openaction.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_openaction.h"
+
+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};
+
+constexpr wchar_t kName[] = L"openAction";
+
+} // namespace
+
+CXFA_OpenAction::CXFA_OpenAction(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::OpenAction,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_OpenAction::~CXFA_OpenAction() {}
diff --git a/xfa/fxfa/parser/cxfa_openaction.h b/xfa/fxfa/parser/cxfa_openaction.h
new file mode 100644
index 0000000000..ce59fbd374
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_openaction.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OPENACTION_H_
+#define XFA_FXFA_PARSER_CXFA_OPENACTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_OpenAction : public CXFA_Node {
+ public:
+ CXFA_OpenAction(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_OpenAction() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OPENACTION_H_
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
new file mode 100644
index 0000000000..f58d2ceb6a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_operation.h"
+
+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};
+
+constexpr wchar_t kName[] = L"operation";
+
+} // namespace
+
+CXFA_Operation::CXFA_Operation(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::Operation,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Operation::~CXFA_Operation() {}
diff --git a/xfa/fxfa/parser/cxfa_operation.h b/xfa/fxfa/parser/cxfa_operation.h
new file mode 100644
index 0000000000..e65c936b00
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_operation.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OPERATION_H_
+#define XFA_FXFA_PARSER_CXFA_OPERATION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Operation : public CXFA_Node {
+ public:
+ CXFA_Operation(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Operation() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OPERATION_H_
diff --git a/xfa/fxfa/parser/cxfa_output.cpp b/xfa/fxfa/parser/cxfa_output.cpp
new file mode 100644
index 0000000000..13173ea57a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_output.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_output.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"output";
+
+} // namespace
+
+CXFA_Output::CXFA_Output(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Output,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Output::~CXFA_Output() {}
diff --git a/xfa/fxfa/parser/cxfa_output.h b/xfa/fxfa/parser/cxfa_output.h
new file mode 100644
index 0000000000..34d3d33a1e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_output.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OUTPUT_H_
+#define XFA_FXFA_PARSER_CXFA_OUTPUT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Output : public CXFA_Node {
+ public:
+ CXFA_Output(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Output() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OUTPUT_H_
diff --git a/xfa/fxfa/parser/cxfa_outputbin.cpp b/xfa/fxfa/parser/cxfa_outputbin.cpp
new file mode 100644
index 0000000000..61cb1a7b5a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_outputbin.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_outputbin.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"outputBin";
+
+} // namespace
+
+CXFA_OutputBin::CXFA_OutputBin(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::OutputBin,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_OutputBin::~CXFA_OutputBin() {}
diff --git a/xfa/fxfa/parser/cxfa_outputbin.h b/xfa/fxfa/parser/cxfa_outputbin.h
new file mode 100644
index 0000000000..2c29c63d13
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_outputbin.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OUTPUTBIN_H_
+#define XFA_FXFA_PARSER_CXFA_OUTPUTBIN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_OutputBin : public CXFA_Node {
+ public:
+ CXFA_OutputBin(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_OutputBin() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OUTPUTBIN_H_
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.cpp b/xfa/fxfa/parser/cxfa_outputxsl.cpp
new file mode 100644
index 0000000000..598c931f7d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_outputxsl.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_outputxsl.h"
+
+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};
+
+constexpr wchar_t kName[] = L"outputXSL";
+
+} // namespace
+
+CXFA_OutputXSL::CXFA_OutputXSL(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::OutputXSL,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_OutputXSL::~CXFA_OutputXSL() {}
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.h b/xfa/fxfa/parser/cxfa_outputxsl.h
new file mode 100644
index 0000000000..3be7c49ffe
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_outputxsl.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OUTPUTXSL_H_
+#define XFA_FXFA_PARSER_CXFA_OUTPUTXSL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_OutputXSL : public CXFA_Node {
+ public:
+ CXFA_OutputXSL(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_OutputXSL() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OUTPUTXSL_H_
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
new file mode 100644
index 0000000000..86912fafd1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_overflow.h"
+
+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};
+
+constexpr wchar_t kName[] = L"overflow";
+
+} // namespace
+
+CXFA_Overflow::CXFA_Overflow(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Overflow,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Overflow::~CXFA_Overflow() {}
diff --git a/xfa/fxfa/parser/cxfa_overflow.h b/xfa/fxfa/parser/cxfa_overflow.h
new file mode 100644
index 0000000000..a5283e0503
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_overflow.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OVERFLOW_H_
+#define XFA_FXFA_PARSER_CXFA_OVERFLOW_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Overflow : public CXFA_Node {
+ public:
+ CXFA_Overflow(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Overflow() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OVERFLOW_H_
diff --git a/xfa/fxfa/parser/cxfa_overprint.cpp b/xfa/fxfa/parser/cxfa_overprint.cpp
new file mode 100644
index 0000000000..cfcba66703
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_overprint.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_overprint.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"overprint";
+
+} // namespace
+
+CXFA_Overprint::CXFA_Overprint(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Overprint,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Overprint::~CXFA_Overprint() {}
diff --git a/xfa/fxfa/parser/cxfa_overprint.h b/xfa/fxfa/parser/cxfa_overprint.h
new file mode 100644
index 0000000000..451dab1ca8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_overprint.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_OVERPRINT_H_
+#define XFA_FXFA_PARSER_CXFA_OVERPRINT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Overprint : public CXFA_Node {
+ public:
+ CXFA_Overprint(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Overprint() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_OVERPRINT_H_
diff --git a/xfa/fxfa/parser/cxfa_packet.cpp b/xfa/fxfa/parser/cxfa_packet.cpp
new file mode 100644
index 0000000000..dc5841808e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_packet.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_packet.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"packet";
+
+} // namespace
+
+CXFA_Packet::CXFA_Packet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::NodeC,
+ XFA_Element::Packet,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Packet::~CXFA_Packet() {}
diff --git a/xfa/fxfa/parser/cxfa_packet.h b/xfa/fxfa/parser/cxfa_packet.h
new file mode 100644
index 0000000000..66ea715b85
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_packet.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PACKET_H_
+#define XFA_FXFA_PARSER_CXFA_PACKET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Packet : public CXFA_Node {
+ public:
+ CXFA_Packet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Packet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PACKET_H_
diff --git a/xfa/fxfa/parser/cxfa_packets.cpp b/xfa/fxfa/parser/cxfa_packets.cpp
new file mode 100644
index 0000000000..313e2a3543
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_packets.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_packets.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"packets";
+
+} // namespace
+
+CXFA_Packets::CXFA_Packets(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Packets,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Packets::~CXFA_Packets() {}
diff --git a/xfa/fxfa/parser/cxfa_packets.h b/xfa/fxfa/parser/cxfa_packets.h
new file mode 100644
index 0000000000..8a7fde5b7b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_packets.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PACKETS_H_
+#define XFA_FXFA_PARSER_CXFA_PACKETS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Packets : public CXFA_Node {
+ public:
+ CXFA_Packets(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Packets() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PACKETS_H_
diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp
new file mode 100644
index 0000000000..17489f6f26
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pagearea.cpp
@@ -0,0 +1,42 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pagearea.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Medium, 1, 0},
+ {XFA_Element::Desc, 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};
+
+constexpr wchar_t kName[] = L"pageArea";
+
+} // namespace
+
+CXFA_PageArea::CXFA_PageArea(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::PageArea,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_PageArea::~CXFA_PageArea() {}
diff --git a/xfa/fxfa/parser/cxfa_pagearea.h b/xfa/fxfa/parser/cxfa_pagearea.h
new file mode 100644
index 0000000000..d71fc59236
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pagearea.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PAGEAREA_H_
+#define XFA_FXFA_PARSER_CXFA_PAGEAREA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PageArea : public CXFA_Node {
+ public:
+ CXFA_PageArea(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PageArea() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PAGEAREA_H_
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.cpp b/xfa/fxfa/parser/cxfa_pageoffset.cpp
new file mode 100644
index 0000000000..0d2445849d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pageoffset.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pageoffset.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::X, XFA_Attribute::Y, XFA_Attribute::Desc,
+ XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"pageOffset";
+
+} // namespace
+
+CXFA_PageOffset::CXFA_PageOffset(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::PageOffset,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PageOffset::~CXFA_PageOffset() {}
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.h b/xfa/fxfa/parser/cxfa_pageoffset.h
new file mode 100644
index 0000000000..1c8d243552
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pageoffset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PAGEOFFSET_H_
+#define XFA_FXFA_PARSER_CXFA_PAGEOFFSET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PageOffset : public CXFA_Node {
+ public:
+ CXFA_PageOffset(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PageOffset() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PAGEOFFSET_H_
diff --git a/xfa/fxfa/parser/cxfa_pagerange.cpp b/xfa/fxfa/parser/cxfa_pagerange.cpp
new file mode 100644
index 0000000000..10004eb43c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pagerange.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pagerange.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"pageRange";
+
+} // namespace
+
+CXFA_PageRange::CXFA_PageRange(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PageRange,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PageRange::~CXFA_PageRange() {}
diff --git a/xfa/fxfa/parser/cxfa_pagerange.h b/xfa/fxfa/parser/cxfa_pagerange.h
new file mode 100644
index 0000000000..67662279f0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pagerange.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PAGERANGE_H_
+#define XFA_FXFA_PARSER_CXFA_PAGERANGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PageRange : public CXFA_Node {
+ public:
+ CXFA_PageRange(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PageRange() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PAGERANGE_H_
diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp
new file mode 100644
index 0000000000..914060da58
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pageset.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pageset.h"
+
+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};
+
+constexpr wchar_t kName[] = L"pageSet";
+
+} // namespace
+
+CXFA_PageSet::CXFA_PageSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::PageSet,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_PageSet::~CXFA_PageSet() {}
diff --git a/xfa/fxfa/parser/cxfa_pageset.h b/xfa/fxfa/parser/cxfa_pageset.h
new file mode 100644
index 0000000000..487d358d76
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pageset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PAGESET_H_
+#define XFA_FXFA_PARSER_CXFA_PAGESET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PageSet : public CXFA_Node {
+ public:
+ CXFA_PageSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PageSet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PAGESET_H_
diff --git a/xfa/fxfa/parser/cxfa_pagination.cpp b/xfa/fxfa/parser/cxfa_pagination.cpp
new file mode 100644
index 0000000000..0290479ab4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pagination.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pagination.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"pagination";
+
+} // namespace
+
+CXFA_Pagination::CXFA_Pagination(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Pagination,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Pagination::~CXFA_Pagination() {}
diff --git a/xfa/fxfa/parser/cxfa_pagination.h b/xfa/fxfa/parser/cxfa_pagination.h
new file mode 100644
index 0000000000..fba83867d4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pagination.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PAGINATION_H_
+#define XFA_FXFA_PARSER_CXFA_PAGINATION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Pagination : public CXFA_Node {
+ public:
+ CXFA_Pagination(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Pagination() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PAGINATION_H_
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.cpp b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
new file mode 100644
index 0000000000..69fb357667
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_paginationoverride.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"paginationOverride";
+
+} // namespace
+
+CXFA_PaginationOverride::CXFA_PaginationOverride(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PaginationOverride,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PaginationOverride::~CXFA_PaginationOverride() {}
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.h b/xfa/fxfa/parser/cxfa_paginationoverride.h
new file mode 100644
index 0000000000..156e7d634b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PAGINATIONOVERRIDE_H_
+#define XFA_FXFA_PARSER_CXFA_PAGINATIONOVERRIDE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PaginationOverride : public CXFA_Node {
+ public:
+ CXFA_PaginationOverride(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PaginationOverride() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PAGINATIONOVERRIDE_H_
diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp
new file mode 100644
index 0000000000..43d63b6e06
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_para.cpp
@@ -0,0 +1,39 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_para.h"
+
+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};
+
+constexpr wchar_t kName[] = L"para";
+
+} // namespace
+
+CXFA_Para::CXFA_Para(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Para,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Para::~CXFA_Para() {}
diff --git a/xfa/fxfa/parser/cxfa_para.h b/xfa/fxfa/parser/cxfa_para.h
new file mode 100644
index 0000000000..00ac970bc0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_para.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PARA_H_
+#define XFA_FXFA_PARSER_CXFA_PARA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Para : public CXFA_Node {
+ public:
+ CXFA_Para(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Para() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PARA_H_
diff --git a/xfa/fxfa/parser/cxfa_part.cpp b/xfa/fxfa/parser/cxfa_part.cpp
new file mode 100644
index 0000000000..917b46891d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_part.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_part.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"part";
+
+} // namespace
+
+CXFA_Part::CXFA_Part(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Part,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Part::~CXFA_Part() {}
diff --git a/xfa/fxfa/parser/cxfa_part.h b/xfa/fxfa/parser/cxfa_part.h
new file mode 100644
index 0000000000..f4114d0674
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_part.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PART_H_
+#define XFA_FXFA_PARSER_CXFA_PART_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Part : public CXFA_Node {
+ public:
+ CXFA_Part(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Part() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PART_H_
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
new file mode 100644
index 0000000000..2f4573b76e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_password.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"password";
+
+} // namespace
+
+CXFA_Password::CXFA_Password(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::Password,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Password::~CXFA_Password() {}
diff --git a/xfa/fxfa/parser/cxfa_password.h b/xfa/fxfa/parser/cxfa_password.h
new file mode 100644
index 0000000000..feffdb5c71
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_password.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PASSWORD_H_
+#define XFA_FXFA_PARSER_CXFA_PASSWORD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Password : public CXFA_Node {
+ public:
+ CXFA_Password(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Password() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PASSWORD_H_
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp
new file mode 100644
index 0000000000..96b040cbd3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp
@@ -0,0 +1,36 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_passwordedit.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"passwordEdit";
+
+} // namespace
+
+CXFA_PasswordEdit::CXFA_PasswordEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::PasswordEdit,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_PasswordEdit::~CXFA_PasswordEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.h b/xfa/fxfa/parser/cxfa_passwordedit.h
new file mode 100644
index 0000000000..1c408cb4b0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_passwordedit.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PASSWORDEDIT_H_
+#define XFA_FXFA_PARSER_CXFA_PASSWORDEDIT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PasswordEdit : public CXFA_Node {
+ public:
+ CXFA_PasswordEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PasswordEdit() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PASSWORDEDIT_H_
diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp
new file mode 100644
index 0000000000..b9740d14c0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pattern.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pattern.h"
+
+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};
+
+constexpr wchar_t kName[] = L"pattern";
+
+} // namespace
+
+CXFA_Pattern::CXFA_Pattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Pattern,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Pattern::~CXFA_Pattern() {}
diff --git a/xfa/fxfa/parser/cxfa_pattern.h b/xfa/fxfa/parser/cxfa_pattern.h
new file mode 100644
index 0000000000..066e92f610
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pattern.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PATTERN_H_
+#define XFA_FXFA_PARSER_CXFA_PATTERN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Pattern : public CXFA_Node {
+ public:
+ CXFA_Pattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Pattern() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PATTERN_H_
diff --git a/xfa/fxfa/parser/cxfa_pcl.cpp b/xfa/fxfa/parser/cxfa_pcl.cpp
new file mode 100644
index 0000000000..13ca508a9b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pcl.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pcl.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::FontInfo, 1, 0}, {XFA_Element::Jog, 1, 0},
+ {XFA_Element::Xdc, 1, 0}, {XFA_Element::BatchOutput, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"pcl";
+
+} // namespace
+
+CXFA_Pcl::CXFA_Pcl(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Pcl,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Pcl::~CXFA_Pcl() {}
diff --git a/xfa/fxfa/parser/cxfa_pcl.h b/xfa/fxfa/parser/cxfa_pcl.h
new file mode 100644
index 0000000000..eb1a08febd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pcl.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PCL_H_
+#define XFA_FXFA_PARSER_CXFA_PCL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Pcl : public CXFA_Node {
+ public:
+ CXFA_Pcl(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Pcl() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PCL_H_
diff --git a/xfa/fxfa/parser/cxfa_pdf.cpp b/xfa/fxfa/parser/cxfa_pdf.cpp
new file mode 100644
index 0000000000..957867e448
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pdf.cpp
@@ -0,0 +1,50 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pdf.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::AdobeExtensionLevel, 1, 0},
+ {XFA_Element::FontInfo, 1, 0},
+ {XFA_Element::Xdc, 1, 0},
+ {XFA_Element::Pdfa, 1, 0},
+ {XFA_Element::BatchOutput, 1, 0},
+ {XFA_Element::ViewerPreferences, 1, 0},
+ {XFA_Element::ScriptModel, 1, 0},
+ {XFA_Element::Version, 1, 0},
+ {XFA_Element::SubmitFormat, 1, 0},
+ {XFA_Element::SilentPrint, 1, 0},
+ {XFA_Element::Producer, 1, 0},
+ {XFA_Element::Compression, 1, 0},
+ {XFA_Element::Interactive, 1, 0},
+ {XFA_Element::Encryption, 1, 0},
+ {XFA_Element::RenderPolicy, 1, 0},
+ {XFA_Element::OpenAction, 1, 0},
+ {XFA_Element::Creator, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"pdf";
+
+} // namespace
+
+CXFA_Pdf::CXFA_Pdf(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Pdf,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Pdf::~CXFA_Pdf() {}
diff --git a/xfa/fxfa/parser/cxfa_pdf.h b/xfa/fxfa/parser/cxfa_pdf.h
new file mode 100644
index 0000000000..dcf39ba4cc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pdf.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PDF_H_
+#define XFA_FXFA_PARSER_CXFA_PDF_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Pdf : public CXFA_Node {
+ public:
+ CXFA_Pdf(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Pdf() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PDF_H_
diff --git a/xfa/fxfa/parser/cxfa_pdfa.cpp b/xfa/fxfa/parser/cxfa_pdfa.cpp
new file mode 100644
index 0000000000..76b624980f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pdfa.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_pdfa.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Amd, 1, 0},
+ {XFA_Element::Part, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"pdfa";
+
+} // namespace
+
+CXFA_Pdfa::CXFA_Pdfa(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Pdfa,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Pdfa::~CXFA_Pdfa() {}
diff --git a/xfa/fxfa/parser/cxfa_pdfa.h b/xfa/fxfa/parser/cxfa_pdfa.h
new file mode 100644
index 0000000000..c0549ab90e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_pdfa.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PDFA_H_
+#define XFA_FXFA_PARSER_CXFA_PDFA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Pdfa : public CXFA_Node {
+ public:
+ CXFA_Pdfa(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Pdfa() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PDFA_H_
diff --git a/xfa/fxfa/parser/cxfa_permissions.cpp b/xfa/fxfa/parser/cxfa_permissions.cpp
new file mode 100644
index 0000000000..29620127f5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_permissions.cpp
@@ -0,0 +1,39 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_permissions.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::ModifyAnnots, 1, 0},
+ {XFA_Element::ContentCopy, 1, 0},
+ {XFA_Element::FormFieldFilling, 1, 0},
+ {XFA_Element::Change, 1, 0},
+ {XFA_Element::AccessibleContent, 1, 0},
+ {XFA_Element::Print, 1, 0},
+ {XFA_Element::PlaintextMetadata, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"permissions";
+
+} // namespace
+
+CXFA_Permissions::CXFA_Permissions(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Permissions,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Permissions::~CXFA_Permissions() {}
diff --git a/xfa/fxfa/parser/cxfa_permissions.h b/xfa/fxfa/parser/cxfa_permissions.h
new file mode 100644
index 0000000000..b0b639bef7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_permissions.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PERMISSIONS_H_
+#define XFA_FXFA_PARSER_CXFA_PERMISSIONS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Permissions : public CXFA_Node {
+ public:
+ CXFA_Permissions(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Permissions() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PERMISSIONS_H_
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
new file mode 100644
index 0000000000..3a82e108ad
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_picktraybypdfsize.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"pickTrayByPDFSize";
+
+} // namespace
+
+CXFA_PickTrayByPDFSize::CXFA_PickTrayByPDFSize(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PickTrayByPDFSize,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PickTrayByPDFSize::~CXFA_PickTrayByPDFSize() {}
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.h b/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
new file mode 100644
index 0000000000..1257523bf7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PICKTRAYBYPDFSIZE_H_
+#define XFA_FXFA_PARSER_CXFA_PICKTRAYBYPDFSIZE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PickTrayByPDFSize : public CXFA_Node {
+ public:
+ CXFA_PickTrayByPDFSize(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PickTrayByPDFSize() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PICKTRAYBYPDFSIZE_H_
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
new file mode 100644
index 0000000000..2f5def6c5a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_picture.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Usehref,
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"picture";
+
+} // namespace
+
+CXFA_Picture::CXFA_Picture(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Picture,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Picture::~CXFA_Picture() {}
diff --git a/xfa/fxfa/parser/cxfa_picture.h b/xfa/fxfa/parser/cxfa_picture.h
new file mode 100644
index 0000000000..4e2f95e48f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_picture.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PICTURE_H_
+#define XFA_FXFA_PARSER_CXFA_PICTURE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Picture : public CXFA_Node {
+ public:
+ CXFA_Picture(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Picture() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PICTURE_H_
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
new file mode 100644
index 0000000000..52a038eaaf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_plaintextmetadata.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"plaintextMetadata";
+
+} // namespace
+
+CXFA_PlaintextMetadata::CXFA_PlaintextMetadata(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PlaintextMetadata,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PlaintextMetadata::~CXFA_PlaintextMetadata() {}
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.h b/xfa/fxfa/parser/cxfa_plaintextmetadata.h
new file mode 100644
index 0000000000..dc940c2913
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PLAINTEXTMETADATA_H_
+#define XFA_FXFA_PARSER_CXFA_PLAINTEXTMETADATA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PlaintextMetadata : public CXFA_Node {
+ public:
+ CXFA_PlaintextMetadata(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PlaintextMetadata() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PLAINTEXTMETADATA_H_
diff --git a/xfa/fxfa/parser/cxfa_presence.cpp b/xfa/fxfa/parser/cxfa_presence.cpp
new file mode 100644
index 0000000000..352c8f0793
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_presence.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_presence.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"presence";
+
+} // namespace
+
+CXFA_Presence::CXFA_Presence(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Presence,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Presence::~CXFA_Presence() {}
diff --git a/xfa/fxfa/parser/cxfa_presence.h b/xfa/fxfa/parser/cxfa_presence.h
new file mode 100644
index 0000000000..bf13d1a88c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_presence.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRESENCE_H_
+#define XFA_FXFA_PARSER_CXFA_PRESENCE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Presence : public CXFA_Node {
+ public:
+ CXFA_Presence(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Presence() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRESENCE_H_
diff --git a/xfa/fxfa/parser/cxfa_present.cpp b/xfa/fxfa/parser/cxfa_present.cpp
new file mode 100644
index 0000000000..939789af00
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_present.cpp
@@ -0,0 +1,44 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_present.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Xdp, 1, 0},
+ {XFA_Element::Cache, 1, 0},
+ {XFA_Element::Pagination, 1, 0},
+ {XFA_Element::Overprint, 1, 0},
+ {XFA_Element::BehaviorOverride, 1, 0},
+ {XFA_Element::Copies, 1, 0},
+ {XFA_Element::Output, 1, 0},
+ {XFA_Element::Validate, 1, 0},
+ {XFA_Element::Layout, 1, 0},
+ {XFA_Element::Script, 1, 0},
+ {XFA_Element::Common, 1, 0},
+ {XFA_Element::PaginationOverride, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"present";
+
+} // namespace
+
+CXFA_Present::CXFA_Present(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Present,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Present::~CXFA_Present() {}
diff --git a/xfa/fxfa/parser/cxfa_present.h b/xfa/fxfa/parser/cxfa_present.h
new file mode 100644
index 0000000000..83cfaf9a55
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_present.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRESENT_H_
+#define XFA_FXFA_PARSER_CXFA_PRESENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Present : public CXFA_Node {
+ public:
+ CXFA_Present(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Present() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRESENT_H_
diff --git a/xfa/fxfa/parser/cxfa_print.cpp b/xfa/fxfa/parser/cxfa_print.cpp
new file mode 100644
index 0000000000..42dcb2fb41
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_print.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_print.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"print";
+
+} // namespace
+
+CXFA_Print::CXFA_Print(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Print,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Print::~CXFA_Print() {}
diff --git a/xfa/fxfa/parser/cxfa_print.h b/xfa/fxfa/parser/cxfa_print.h
new file mode 100644
index 0000000000..048c3c329e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_print.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRINT_H_
+#define XFA_FXFA_PARSER_CXFA_PRINT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Print : public CXFA_Node {
+ public:
+ CXFA_Print(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Print() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRINT_H_
diff --git a/xfa/fxfa/parser/cxfa_printername.cpp b/xfa/fxfa/parser/cxfa_printername.cpp
new file mode 100644
index 0000000000..711591c461
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_printername.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_printername.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"printerName";
+
+} // namespace
+
+CXFA_PrinterName::CXFA_PrinterName(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PrinterName,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PrinterName::~CXFA_PrinterName() {}
diff --git a/xfa/fxfa/parser/cxfa_printername.h b/xfa/fxfa/parser/cxfa_printername.h
new file mode 100644
index 0000000000..c79fd63797
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_printername.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRINTERNAME_H_
+#define XFA_FXFA_PARSER_CXFA_PRINTERNAME_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PrinterName : public CXFA_Node {
+ public:
+ CXFA_PrinterName(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PrinterName() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRINTERNAME_H_
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.cpp b/xfa/fxfa/parser/cxfa_printhighquality.cpp
new file mode 100644
index 0000000000..6a443a9b2a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_printhighquality.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_printhighquality.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"printHighQuality";
+
+} // namespace
+
+CXFA_PrintHighQuality::CXFA_PrintHighQuality(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PrintHighQuality,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PrintHighQuality::~CXFA_PrintHighQuality() {}
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.h b/xfa/fxfa/parser/cxfa_printhighquality.h
new file mode 100644
index 0000000000..4752bc6e96
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_printhighquality.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRINTHIGHQUALITY_H_
+#define XFA_FXFA_PARSER_CXFA_PRINTHIGHQUALITY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PrintHighQuality : public CXFA_Node {
+ public:
+ CXFA_PrintHighQuality(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PrintHighQuality() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRINTHIGHQUALITY_H_
diff --git a/xfa/fxfa/parser/cxfa_printscaling.cpp b/xfa/fxfa/parser/cxfa_printscaling.cpp
new file mode 100644
index 0000000000..c73a40adeb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_printscaling.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_printscaling.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"printScaling";
+
+} // namespace
+
+CXFA_PrintScaling::CXFA_PrintScaling(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::PrintScaling,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_PrintScaling::~CXFA_PrintScaling() {}
diff --git a/xfa/fxfa/parser/cxfa_printscaling.h b/xfa/fxfa/parser/cxfa_printscaling.h
new file mode 100644
index 0000000000..bfe69ebc21
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_printscaling.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRINTSCALING_H_
+#define XFA_FXFA_PARSER_CXFA_PRINTSCALING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PrintScaling : public CXFA_Node {
+ public:
+ CXFA_PrintScaling(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PrintScaling() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRINTSCALING_H_
diff --git a/xfa/fxfa/parser/cxfa_producer.cpp b/xfa/fxfa/parser/cxfa_producer.cpp
new file mode 100644
index 0000000000..b1829bd551
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_producer.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_producer.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"producer";
+
+} // namespace
+
+CXFA_Producer::CXFA_Producer(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Producer,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Producer::~CXFA_Producer() {}
diff --git a/xfa/fxfa/parser/cxfa_producer.h b/xfa/fxfa/parser/cxfa_producer.h
new file mode 100644
index 0000000000..1065031277
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_producer.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PRODUCER_H_
+#define XFA_FXFA_PARSER_CXFA_PRODUCER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Producer : public CXFA_Node {
+ public:
+ CXFA_Producer(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Producer() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PRODUCER_H_
diff --git a/xfa/fxfa/parser/cxfa_proto.cpp b/xfa/fxfa/parser/cxfa_proto.cpp
new file mode 100644
index 0000000000..6d846c7420
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_proto.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_proto.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"proto";
+
+} // namespace
+
+CXFA_Proto::CXFA_Proto(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Proto,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Proto::~CXFA_Proto() {}
diff --git a/xfa/fxfa/parser/cxfa_proto.h b/xfa/fxfa/parser/cxfa_proto.h
new file mode 100644
index 0000000000..52509e4ba9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_proto.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PROTO_H_
+#define XFA_FXFA_PARSER_CXFA_PROTO_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Proto : public CXFA_Node {
+ public:
+ CXFA_Proto(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Proto() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PROTO_H_
diff --git a/xfa/fxfa/parser/cxfa_ps.cpp b/xfa/fxfa/parser/cxfa_ps.cpp
new file mode 100644
index 0000000000..36bc37705b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ps.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_ps.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::FontInfo, 1, 0}, {XFA_Element::Jog, 1, 0},
+ {XFA_Element::Xdc, 1, 0}, {XFA_Element::BatchOutput, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"ps";
+
+} // namespace
+
+CXFA_Ps::CXFA_Ps(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Ps,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Ps::~CXFA_Ps() {}
diff --git a/xfa/fxfa/parser/cxfa_ps.h b/xfa/fxfa/parser/cxfa_ps.h
new file mode 100644
index 0000000000..460ad418a4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ps.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PS_H_
+#define XFA_FXFA_PARSER_CXFA_PS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Ps : public CXFA_Node {
+ public:
+ CXFA_Ps(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Ps() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PS_H_
diff --git a/xfa/fxfa/parser/cxfa_psmap.cpp b/xfa/fxfa/parser/cxfa_psmap.cpp
new file mode 100644
index 0000000000..52ed45eb4c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_psmap.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_psmap.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"psMap";
+
+} // namespace
+
+CXFA_PsMap::CXFA_PsMap(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::PsMap,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_PsMap::~CXFA_PsMap() {}
diff --git a/xfa/fxfa/parser/cxfa_psmap.h b/xfa/fxfa/parser/cxfa_psmap.h
new file mode 100644
index 0000000000..5129a72887
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_psmap.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_PSMAP_H_
+#define XFA_FXFA_PARSER_CXFA_PSMAP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_PsMap : public CXFA_Node {
+ public:
+ CXFA_PsMap(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_PsMap() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_PSMAP_H_
diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp
new file mode 100644
index 0000000000..34d2c0a141
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_query.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_query.h"
+
+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};
+
+constexpr wchar_t kName[] = L"query";
+
+} // namespace
+
+CXFA_Query::CXFA_Query(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::Node,
+ XFA_Element::Query,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Query::~CXFA_Query() {}
diff --git a/xfa/fxfa/parser/cxfa_query.h b/xfa/fxfa/parser/cxfa_query.h
new file mode 100644
index 0000000000..a4fe3d9d2a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_query.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_QUERY_H_
+#define XFA_FXFA_PARSER_CXFA_QUERY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Query : public CXFA_Node {
+ public:
+ CXFA_Query(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Query() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_QUERY_H_
diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp
new file mode 100644
index 0000000000..d080c35693
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_radial.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_radial.h"
+
+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};
+
+constexpr wchar_t kName[] = L"radial";
+
+} // namespace
+
+CXFA_Radial::CXFA_Radial(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Radial,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Radial::~CXFA_Radial() {}
diff --git a/xfa/fxfa/parser/cxfa_radial.h b/xfa/fxfa/parser/cxfa_radial.h
new file mode 100644
index 0000000000..00a4459f47
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_radial.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RADIAL_H_
+#define XFA_FXFA_PARSER_CXFA_RADIAL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Radial : public CXFA_Node {
+ public:
+ CXFA_Radial(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Radial() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RADIAL_H_
diff --git a/xfa/fxfa/parser/cxfa_range.cpp b/xfa/fxfa/parser/cxfa_range.cpp
new file mode 100644
index 0000000000..ec3269394d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_range.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_range.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"range";
+
+} // namespace
+
+CXFA_Range::CXFA_Range(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Range,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Range::~CXFA_Range() {}
diff --git a/xfa/fxfa/parser/cxfa_range.h b/xfa/fxfa/parser/cxfa_range.h
new file mode 100644
index 0000000000..6b923ea477
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_range.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RANGE_H_
+#define XFA_FXFA_PARSER_CXFA_RANGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Range : public CXFA_Node {
+ public:
+ CXFA_Range(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Range() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RANGE_H_
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
new file mode 100644
index 0000000000..a7b4b52c4f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_reason.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"reason";
+
+} // namespace
+
+CXFA_Reason::CXFA_Reason(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Reason,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Reason::~CXFA_Reason() {}
diff --git a/xfa/fxfa/parser/cxfa_reason.h b/xfa/fxfa/parser/cxfa_reason.h
new file mode 100644
index 0000000000..a78aebb563
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_reason.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_REASON_H_
+#define XFA_FXFA_PARSER_CXFA_REASON_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Reason : public CXFA_Node {
+ public:
+ CXFA_Reason(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Reason() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_REASON_H_
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
new file mode 100644
index 0000000000..df964d49d1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_reasons.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"reasons";
+
+} // namespace
+
+CXFA_Reasons::CXFA_Reasons(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Reasons,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Reasons::~CXFA_Reasons() {}
diff --git a/xfa/fxfa/parser/cxfa_reasons.h b/xfa/fxfa/parser/cxfa_reasons.h
new file mode 100644
index 0000000000..a1938255b5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_reasons.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_REASONS_H_
+#define XFA_FXFA_PARSER_CXFA_REASONS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Reasons : public CXFA_Node {
+ public:
+ CXFA_Reasons(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Reasons() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_REASONS_H_
diff --git a/xfa/fxfa/parser/cxfa_record.cpp b/xfa/fxfa/parser/cxfa_record.cpp
new file mode 100644
index 0000000000..90877e80e5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_record.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_record.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"record";
+
+} // namespace
+
+CXFA_Record::CXFA_Record(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Record,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Record::~CXFA_Record() {}
diff --git a/xfa/fxfa/parser/cxfa_record.h b/xfa/fxfa/parser/cxfa_record.h
new file mode 100644
index 0000000000..68a38c3733
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_record.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RECORD_H_
+#define XFA_FXFA_PARSER_CXFA_RECORD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Record : public CXFA_Node {
+ public:
+ CXFA_Record(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Record() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RECORD_H_
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
new file mode 100644
index 0000000000..e7ae76679d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_recordset.h"
+
+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};
+
+constexpr wchar_t kName[] = L"recordSet";
+
+} // namespace
+
+CXFA_RecordSet::CXFA_RecordSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::Node,
+ XFA_Element::RecordSet,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_RecordSet::~CXFA_RecordSet() {}
diff --git a/xfa/fxfa/parser/cxfa_recordset.h b/xfa/fxfa/parser/cxfa_recordset.h
new file mode 100644
index 0000000000..df08c6ff63
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_recordset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RECORDSET_H_
+#define XFA_FXFA_PARSER_CXFA_RECORDSET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_RecordSet : public CXFA_Node {
+ public:
+ CXFA_RecordSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_RecordSet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RECORDSET_H_
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
new file mode 100644
index 0000000000..cd3b584a75
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_rectangle.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"rectangle";
+
+} // namespace
+
+CXFA_Rectangle::CXFA_Rectangle(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Rectangle,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Rectangle::~CXFA_Rectangle() {}
diff --git a/xfa/fxfa/parser/cxfa_rectangle.h b/xfa/fxfa/parser/cxfa_rectangle.h
new file mode 100644
index 0000000000..af46554b05
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_rectangle.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RECTANGLE_H_
+#define XFA_FXFA_PARSER_CXFA_RECTANGLE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Rectangle : public CXFA_Node {
+ public:
+ CXFA_Rectangle(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Rectangle() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RECTANGLE_H_
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
new file mode 100644
index 0000000000..cbc3ff9f83
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_ref.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
+ XFA_Attribute::Usehref,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"ref";
+
+} // namespace
+
+CXFA_Ref::CXFA_Ref(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Ref,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Ref::~CXFA_Ref() {}
diff --git a/xfa/fxfa/parser/cxfa_ref.h b/xfa/fxfa/parser/cxfa_ref.h
new file mode 100644
index 0000000000..f99c960b33
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ref.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_REF_H_
+#define XFA_FXFA_PARSER_CXFA_REF_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Ref : public CXFA_Node {
+ public:
+ CXFA_Ref(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Ref() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_REF_H_
diff --git a/xfa/fxfa/parser/cxfa_relevant.cpp b/xfa/fxfa/parser/cxfa_relevant.cpp
new file mode 100644
index 0000000000..a4209bc3d8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_relevant.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_relevant.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"relevant";
+
+} // namespace
+
+CXFA_Relevant::CXFA_Relevant(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Relevant,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Relevant::~CXFA_Relevant() {}
diff --git a/xfa/fxfa/parser/cxfa_relevant.h b/xfa/fxfa/parser/cxfa_relevant.h
new file mode 100644
index 0000000000..90fbddf5d4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_relevant.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RELEVANT_H_
+#define XFA_FXFA_PARSER_CXFA_RELEVANT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Relevant : public CXFA_Node {
+ public:
+ CXFA_Relevant(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Relevant() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RELEVANT_H_
diff --git a/xfa/fxfa/parser/cxfa_rename.cpp b/xfa/fxfa/parser/cxfa_rename.cpp
new file mode 100644
index 0000000000..406315e86a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_rename.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_rename.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"rename";
+
+} // namespace
+
+CXFA_Rename::CXFA_Rename(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Rename,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Rename::~CXFA_Rename() {}
diff --git a/xfa/fxfa/parser/cxfa_rename.h b/xfa/fxfa/parser/cxfa_rename.h
new file mode 100644
index 0000000000..901125afd1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_rename.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RENAME_H_
+#define XFA_FXFA_PARSER_CXFA_RENAME_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Rename : public CXFA_Node {
+ public:
+ CXFA_Rename(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Rename() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RENAME_H_
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.cpp b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
new file mode 100644
index 0000000000..85eb4b171f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_renderpolicy.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"renderPolicy";
+
+} // namespace
+
+CXFA_RenderPolicy::CXFA_RenderPolicy(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::RenderPolicy,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_RenderPolicy::~CXFA_RenderPolicy() {}
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.h b/xfa/fxfa/parser/cxfa_renderpolicy.h
new file mode 100644
index 0000000000..732201452b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RENDERPOLICY_H_
+#define XFA_FXFA_PARSER_CXFA_RENDERPOLICY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_RenderPolicy : public CXFA_Node {
+ public:
+ CXFA_RenderPolicy(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_RenderPolicy() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RENDERPOLICY_H_
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
new file mode 100644
index 0000000000..3cd5614e9b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_rootelement.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"rootElement";
+
+} // namespace
+
+CXFA_RootElement::CXFA_RootElement(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::RootElement,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_RootElement::~CXFA_RootElement() {}
diff --git a/xfa/fxfa/parser/cxfa_rootelement.h b/xfa/fxfa/parser/cxfa_rootelement.h
new file mode 100644
index 0000000000..be55fc1890
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_rootelement.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ROOTELEMENT_H_
+#define XFA_FXFA_PARSER_CXFA_ROOTELEMENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_RootElement : public CXFA_Node {
+ public:
+ CXFA_RootElement(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_RootElement() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ROOTELEMENT_H_
diff --git a/xfa/fxfa/parser/cxfa_runscripts.cpp b/xfa/fxfa/parser/cxfa_runscripts.cpp
new file mode 100644
index 0000000000..120dbc8120
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_runscripts.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_runscripts.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"runScripts";
+
+} // namespace
+
+CXFA_RunScripts::CXFA_RunScripts(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::RunScripts,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_RunScripts::~CXFA_RunScripts() {}
diff --git a/xfa/fxfa/parser/cxfa_runscripts.h b/xfa/fxfa/parser/cxfa_runscripts.h
new file mode 100644
index 0000000000..0dc6e7d7c9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_runscripts.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_RUNSCRIPTS_H_
+#define XFA_FXFA_PARSER_CXFA_RUNSCRIPTS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_RunScripts : public CXFA_Node {
+ public:
+ CXFA_RunScripts(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_RunScripts() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_RUNSCRIPTS_H_
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp
new file mode 100644
index 0000000000..c34e09433c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -0,0 +1,37 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_script.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Exclude, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"script";
+
+} // namespace
+
+CXFA_Script::CXFA_Script(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Script,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Script::~CXFA_Script() {}
diff --git a/xfa/fxfa/parser/cxfa_script.h b/xfa/fxfa/parser/cxfa_script.h
new file mode 100644
index 0000000000..f88b8b5d69
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_script.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SCRIPT_H_
+#define XFA_FXFA_PARSER_CXFA_SCRIPT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Script : public CXFA_Node {
+ public:
+ CXFA_Script(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Script() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SCRIPT_H_
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.cpp b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
new file mode 100644
index 0000000000..bed2e1d6e2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_scriptmodel.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"scriptModel";
+
+} // namespace
+
+CXFA_ScriptModel::CXFA_ScriptModel(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::ScriptModel,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ScriptModel::~CXFA_ScriptModel() {}
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.h b/xfa/fxfa/parser/cxfa_scriptmodel.h
new file mode 100644
index 0000000000..bb6cfd3fcb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SCRIPTMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_SCRIPTMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ScriptModel : public CXFA_Node {
+ public:
+ CXFA_ScriptModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ScriptModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SCRIPTMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
new file mode 100644
index 0000000000..52835eff7a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_select.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"select";
+
+} // namespace
+
+CXFA_Select::CXFA_Select(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::Select,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Select::~CXFA_Select() {}
diff --git a/xfa/fxfa/parser/cxfa_select.h b/xfa/fxfa/parser/cxfa_select.h
new file mode 100644
index 0000000000..99b99afb79
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_select.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SELECT_H_
+#define XFA_FXFA_PARSER_CXFA_SELECT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Select : public CXFA_Node {
+ public:
+ CXFA_Select(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Select() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SELECT_H_
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
new file mode 100644
index 0000000000..4826ae4e74
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_setproperty.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Ref, XFA_Attribute::Connection, XFA_Attribute::Target,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"setProperty";
+
+} // namespace
+
+CXFA_SetProperty::CXFA_SetProperty(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::SetProperty,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SetProperty::~CXFA_SetProperty() {}
diff --git a/xfa/fxfa/parser/cxfa_setproperty.h b/xfa/fxfa/parser/cxfa_setproperty.h
new file mode 100644
index 0000000000..4add12ee43
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_setproperty.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SETPROPERTY_H_
+#define XFA_FXFA_PARSER_CXFA_SETPROPERTY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SetProperty : public CXFA_Node {
+ public:
+ CXFA_SetProperty(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SetProperty() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SETPROPERTY_H_
diff --git a/xfa/fxfa/parser/cxfa_severity.cpp b/xfa/fxfa/parser/cxfa_severity.cpp
new file mode 100644
index 0000000000..0b7d365b86
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_severity.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_severity.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"severity";
+
+} // namespace
+
+CXFA_Severity::CXFA_Severity(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Severity,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Severity::~CXFA_Severity() {}
diff --git a/xfa/fxfa/parser/cxfa_severity.h b/xfa/fxfa/parser/cxfa_severity.h
new file mode 100644
index 0000000000..9f9693e114
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_severity.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SEVERITY_H_
+#define XFA_FXFA_PARSER_CXFA_SEVERITY_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Severity : public CXFA_Node {
+ public:
+ CXFA_Severity(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Severity() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SEVERITY_H_
diff --git a/xfa/fxfa/parser/cxfa_sharptext.cpp b/xfa/fxfa/parser/cxfa_sharptext.cpp
new file mode 100644
index 0000000000..52128a59af
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sharptext.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_sharptext.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"#text";
+
+} // namespace
+
+CXFA_Sharptext::CXFA_Sharptext(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config |
+ XFA_XDPPACKET_LocaleSet | XFA_XDPPACKET_ConnectionSet |
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeV,
+ XFA_Element::Sharptext,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Sharptext::~CXFA_Sharptext() {}
diff --git a/xfa/fxfa/parser/cxfa_sharptext.h b/xfa/fxfa/parser/cxfa_sharptext.h
new file mode 100644
index 0000000000..3767289866
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sharptext.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SHARPTEXT_H_
+#define XFA_FXFA_PARSER_CXFA_SHARPTEXT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Sharptext : public CXFA_Node {
+ public:
+ CXFA_Sharptext(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Sharptext() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SHARPTEXT_H_
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.cpp b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
new file mode 100644
index 0000000000..e3f514e699
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_sharpxhtml.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"#xHTML";
+
+} // namespace
+
+CXFA_SharpxHTML::CXFA_SharpxHTML(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Config |
+ XFA_XDPPACKET_LocaleSet | XFA_XDPPACKET_ConnectionSet |
+ XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeV,
+ XFA_Element::SharpxHTML,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SharpxHTML::~CXFA_SharpxHTML() {}
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.h b/xfa/fxfa/parser/cxfa_sharpxhtml.h
new file mode 100644
index 0000000000..048014e755
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SHARPXHTML_H_
+#define XFA_FXFA_PARSER_CXFA_SHARPXHTML_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SharpxHTML : public CXFA_Node {
+ public:
+ CXFA_SharpxHTML(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SharpxHTML() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SHARPXHTML_H_
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.cpp b/xfa/fxfa/parser/cxfa_sharpxml.cpp
new file mode 100644
index 0000000000..dbda7cbb72
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sharpxml.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_sharpxml.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Value,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"#xml";
+
+} // namespace
+
+CXFA_Sharpxml::CXFA_Sharpxml(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeV,
+ XFA_Element::Sharpxml,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Sharpxml::~CXFA_Sharpxml() {}
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.h b/xfa/fxfa/parser/cxfa_sharpxml.h
new file mode 100644
index 0000000000..f4e55cd205
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sharpxml.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SHARPXML_H_
+#define XFA_FXFA_PARSER_CXFA_SHARPXML_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Sharpxml : public CXFA_Node {
+ public:
+ CXFA_Sharpxml(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Sharpxml() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SHARPXML_H_
diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp
new file mode 100644
index 0000000000..0dca3bcead
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signature.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_signature.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"signature";
+
+} // namespace
+
+CXFA_Signature::CXFA_Signature(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Signature,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Signature::~CXFA_Signature() {}
diff --git a/xfa/fxfa/parser/cxfa_signature.h b/xfa/fxfa/parser/cxfa_signature.h
new file mode 100644
index 0000000000..b70e29807a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signature.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SIGNATURE_H_
+#define XFA_FXFA_PARSER_CXFA_SIGNATURE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Signature : public CXFA_Node {
+ public:
+ CXFA_Signature(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Signature() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SIGNATURE_H_
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
new file mode 100644
index 0000000000..2f9623b370
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_signatureproperties.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Use, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"signatureProperties";
+
+} // namespace
+
+CXFA_SignatureProperties::CXFA_SignatureProperties(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::SignatureProperties,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SignatureProperties::~CXFA_SignatureProperties() {}
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.h b/xfa/fxfa/parser/cxfa_signatureproperties.h
new file mode 100644
index 0000000000..3fce949f1f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SIGNATUREPROPERTIES_H_
+#define XFA_FXFA_PARSER_CXFA_SIGNATUREPROPERTIES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SignatureProperties : public CXFA_Node {
+ public:
+ CXFA_SignatureProperties(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SignatureProperties() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SIGNATUREPROPERTIES_H_
diff --git a/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp b/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp
new file mode 100644
index 0000000000..c65cc36209
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_signaturepseudomodel.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"signaturePseudoModel";
+
+} // namespace
+
+CXFA_SignaturePseudoModel::CXFA_SignaturePseudoModel(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::Object,
+ XFA_Element::SignaturePseudoModel,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_SignaturePseudoModel::~CXFA_SignaturePseudoModel() {}
diff --git a/xfa/fxfa/parser/cxfa_signaturepseudomodel.h b/xfa/fxfa/parser/cxfa_signaturepseudomodel.h
new file mode 100644
index 0000000000..53273b1808
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signaturepseudomodel.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SIGNATUREPSEUDOMODEL_H_
+#define XFA_FXFA_PARSER_CXFA_SIGNATUREPSEUDOMODEL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SignaturePseudoModel : public CXFA_Node {
+ public:
+ CXFA_SignaturePseudoModel(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SignaturePseudoModel() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SIGNATUREPSEUDOMODEL_H_
diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp
new file mode 100644
index 0000000000..a9cb38df05
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signdata.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_signdata.h"
+
+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};
+
+constexpr wchar_t kName[] = L"signData";
+
+} // namespace
+
+CXFA_SignData::CXFA_SignData(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::SignData,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_SignData::~CXFA_SignData() {}
diff --git a/xfa/fxfa/parser/cxfa_signdata.h b/xfa/fxfa/parser/cxfa_signdata.h
new file mode 100644
index 0000000000..234ddeb13a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signdata.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SIGNDATA_H_
+#define XFA_FXFA_PARSER_CXFA_SIGNDATA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SignData : public CXFA_Node {
+ public:
+ CXFA_SignData(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SignData() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SIGNDATA_H_
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
new file mode 100644
index 0000000000..a1ec88bcd9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_signing.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"signing";
+
+} // namespace
+
+CXFA_Signing::CXFA_Signing(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Signing,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Signing::~CXFA_Signing() {}
diff --git a/xfa/fxfa/parser/cxfa_signing.h b/xfa/fxfa/parser/cxfa_signing.h
new file mode 100644
index 0000000000..0fe83cf240
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_signing.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SIGNING_H_
+#define XFA_FXFA_PARSER_CXFA_SIGNING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Signing : public CXFA_Node {
+ public:
+ CXFA_Signing(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Signing() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SIGNING_H_
diff --git a/xfa/fxfa/parser/cxfa_silentprint.cpp b/xfa/fxfa/parser/cxfa_silentprint.cpp
new file mode 100644
index 0000000000..5e48a94bbe
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_silentprint.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_silentprint.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"silentPrint";
+
+} // namespace
+
+CXFA_SilentPrint::CXFA_SilentPrint(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::SilentPrint,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_SilentPrint::~CXFA_SilentPrint() {}
diff --git a/xfa/fxfa/parser/cxfa_silentprint.h b/xfa/fxfa/parser/cxfa_silentprint.h
new file mode 100644
index 0000000000..7b1adc1371
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_silentprint.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SILENTPRINT_H_
+#define XFA_FXFA_PARSER_CXFA_SILENTPRINT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SilentPrint : public CXFA_Node {
+ public:
+ CXFA_SilentPrint(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SilentPrint() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SILENTPRINT_H_
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.cpp b/xfa/fxfa/parser/cxfa_simple_parser.cpp
index 579ca9e832..4ee9ca76b3 100644
--- a/xfa/fxfa/parser/cxfa_simple_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_simple_parser.cpp
@@ -871,20 +871,18 @@ CXFA_Node* CXFA_SimpleParser::NormalLoader(CXFA_Node* pXFANode,
case FX_XMLNODE_Element: {
CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLChild);
WideString wsTagName = pXMLElement->GetLocalTagName();
- XFA_Element eType = XFA_GetElementTypeForName(wsTagName.AsStringView());
+ XFA_Element eType = CXFA_Node::NameToElement(wsTagName);
if (eType == XFA_Element::Unknown)
continue;
- const XFA_PROPERTY* pPropertyInfo = XFA_GetPropertyOfElement(
- pXFANode->GetElementType(), eType, ePacketID);
- if (pPropertyInfo &&
- ((pPropertyInfo->uFlags &
- (XFA_PROPERTYFLAG_OneOf | XFA_PROPERTYFLAG_DefaultOneOf)) != 0)) {
+ if (pXFANode->HasPropertyFlags(
+ eType,
+ XFA_PROPERTYFLAG_OneOf | XFA_PROPERTYFLAG_DefaultOneOf)) {
if (bOneOfPropertyFound)
break;
-
bOneOfPropertyFound = true;
}
+
CXFA_Node* pXFAChild = m_pFactory->CreateNode(ePacketID, eType);
if (!pXFAChild)
return nullptr;
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
new file mode 100644
index 0000000000..c5716debb0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_soapaction.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"soapAction";
+
+} // namespace
+
+CXFA_SoapAction::CXFA_SoapAction(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::SoapAction,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SoapAction::~CXFA_SoapAction() {}
diff --git a/xfa/fxfa/parser/cxfa_soapaction.h b/xfa/fxfa/parser/cxfa_soapaction.h
new file mode 100644
index 0000000000..9d24e6ef50
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_soapaction.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SOAPACTION_H_
+#define XFA_FXFA_PARSER_CXFA_SOAPACTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SoapAction : public CXFA_Node {
+ public:
+ CXFA_SoapAction(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SoapAction() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SOAPACTION_H_
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
new file mode 100644
index 0000000000..2e4750fe68
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_soapaddress.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"soapAddress";
+
+} // namespace
+
+CXFA_SoapAddress::CXFA_SoapAddress(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::SoapAddress,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SoapAddress::~CXFA_SoapAddress() {}
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.h b/xfa/fxfa/parser/cxfa_soapaddress.h
new file mode 100644
index 0000000000..17ab11f1c2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_soapaddress.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SOAPADDRESS_H_
+#define XFA_FXFA_PARSER_CXFA_SOAPADDRESS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SoapAddress : public CXFA_Node {
+ public:
+ CXFA_SoapAddress(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SoapAddress() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SOAPADDRESS_H_
diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp
new file mode 100644
index 0000000000..8c5c051d17
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_solid.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_solid.h"
+
+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};
+
+constexpr wchar_t kName[] = L"solid";
+
+} // namespace
+
+CXFA_Solid::CXFA_Solid(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Solid,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Solid::~CXFA_Solid() {}
diff --git a/xfa/fxfa/parser/cxfa_solid.h b/xfa/fxfa/parser/cxfa_solid.h
new file mode 100644
index 0000000000..75936cde8a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_solid.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SOLID_H_
+#define XFA_FXFA_PARSER_CXFA_SOLID_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Solid : public CXFA_Node {
+ public:
+ CXFA_Solid(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Solid() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SOLID_H_
diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp
new file mode 100644
index 0000000000..994213c5ad
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_source.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_source.h"
+
+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};
+
+constexpr wchar_t kName[] = L"source";
+
+} // namespace
+
+CXFA_Source::CXFA_Source(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::Node,
+ XFA_Element::Source,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Source::~CXFA_Source() {}
diff --git a/xfa/fxfa/parser/cxfa_source.h b/xfa/fxfa/parser/cxfa_source.h
new file mode 100644
index 0000000000..9c249cd6a0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_source.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SOURCE_H_
+#define XFA_FXFA_PARSER_CXFA_SOURCE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Source : public CXFA_Node {
+ public:
+ CXFA_Source(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Source() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SOURCE_H_
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
new file mode 100644
index 0000000000..6757aaabc6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_sourceset.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"sourceSet";
+
+} // namespace
+
+CXFA_SourceSet::CXFA_SourceSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::ModelNode,
+ XFA_Element::SourceSet,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SourceSet::~CXFA_SourceSet() {}
diff --git a/xfa/fxfa/parser/cxfa_sourceset.h b/xfa/fxfa/parser/cxfa_sourceset.h
new file mode 100644
index 0000000000..47f45ad65c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_sourceset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SOURCESET_H_
+#define XFA_FXFA_PARSER_CXFA_SOURCESET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SourceSet : public CXFA_Node {
+ public:
+ CXFA_SourceSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SourceSet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SOURCESET_H_
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
new file mode 100644
index 0000000000..789a9fdc0c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_speak.h"
+
+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};
+
+constexpr wchar_t kName[] = L"speak";
+
+} // namespace
+
+CXFA_Speak::CXFA_Speak(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Speak,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Speak::~CXFA_Speak() {}
diff --git a/xfa/fxfa/parser/cxfa_speak.h b/xfa/fxfa/parser/cxfa_speak.h
new file mode 100644
index 0000000000..e45bf50c8a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_speak.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SPEAK_H_
+#define XFA_FXFA_PARSER_CXFA_SPEAK_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Speak : public CXFA_Node {
+ public:
+ CXFA_Speak(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Speak() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SPEAK_H_
diff --git a/xfa/fxfa/parser/cxfa_staple.cpp b/xfa/fxfa/parser/cxfa_staple.cpp
new file mode 100644
index 0000000000..86e1ce3073
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_staple.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_staple.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Mode, XFA_Attribute::Desc, XFA_Attribute::Lock,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"staple";
+
+} // namespace
+
+CXFA_Staple::CXFA_Staple(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Staple,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Staple::~CXFA_Staple() {}
diff --git a/xfa/fxfa/parser/cxfa_staple.h b/xfa/fxfa/parser/cxfa_staple.h
new file mode 100644
index 0000000000..b84301976b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_staple.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_STAPLE_H_
+#define XFA_FXFA_PARSER_CXFA_STAPLE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Staple : public CXFA_Node {
+ public:
+ CXFA_Staple(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Staple() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_STAPLE_H_
diff --git a/xfa/fxfa/parser/cxfa_startnode.cpp b/xfa/fxfa/parser/cxfa_startnode.cpp
new file mode 100644
index 0000000000..736456005b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_startnode.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_startnode.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"startNode";
+
+} // namespace
+
+CXFA_StartNode::CXFA_StartNode(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::StartNode,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_StartNode::~CXFA_StartNode() {}
diff --git a/xfa/fxfa/parser/cxfa_startnode.h b/xfa/fxfa/parser/cxfa_startnode.h
new file mode 100644
index 0000000000..048564d29f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_startnode.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_STARTNODE_H_
+#define XFA_FXFA_PARSER_CXFA_STARTNODE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_StartNode : public CXFA_Node {
+ public:
+ CXFA_StartNode(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_StartNode() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_STARTNODE_H_
diff --git a/xfa/fxfa/parser/cxfa_startpage.cpp b/xfa/fxfa/parser/cxfa_startpage.cpp
new file mode 100644
index 0000000000..48d5debbb3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_startpage.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_startpage.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"startPage";
+
+} // namespace
+
+CXFA_StartPage::CXFA_StartPage(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::StartPage,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_StartPage::~CXFA_StartPage() {}
diff --git a/xfa/fxfa/parser/cxfa_startpage.h b/xfa/fxfa/parser/cxfa_startpage.h
new file mode 100644
index 0000000000..0eceb878c5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_startpage.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_STARTPAGE_H_
+#define XFA_FXFA_PARSER_CXFA_STARTPAGE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_StartPage : public CXFA_Node {
+ public:
+ CXFA_StartPage(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_StartPage() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_STARTPAGE_H_
diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp
new file mode 100644
index 0000000000..0567f5a153
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_stipple.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_stipple.h"
+
+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};
+
+constexpr wchar_t kName[] = L"stipple";
+
+} // namespace
+
+CXFA_Stipple::CXFA_Stipple(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Stipple,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Stipple::~CXFA_Stipple() {}
diff --git a/xfa/fxfa/parser/cxfa_stipple.h b/xfa/fxfa/parser/cxfa_stipple.h
new file mode 100644
index 0000000000..a662e481ca
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_stipple.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_STIPPLE_H_
+#define XFA_FXFA_PARSER_CXFA_STIPPLE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Stipple : public CXFA_Node {
+ public:
+ CXFA_Stipple(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Stipple() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_STIPPLE_H_
diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp
new file mode 100644
index 0000000000..e297437d99
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subform.cpp
@@ -0,0 +1,63 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_subform.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Break, 1, 0}, {XFA_Element::Margin, 1, 0},
+ {XFA_Element::Para, 1, 0}, {XFA_Element::Border, 1, 0},
+ {XFA_Element::Assist, 1, 0}, {XFA_Element::Traversal, 1, 0},
+ {XFA_Element::Keep, 1, 0}, {XFA_Element::Validate, 1, 0},
+ {XFA_Element::PageSet, 1, 0}, {XFA_Element::Overflow, 1, 0},
+ {XFA_Element::Bind, 1, 0}, {XFA_Element::Desc, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"subform";
+
+} // namespace
+
+CXFA_Subform::CXFA_Subform(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::Subform,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Subform::~CXFA_Subform() {}
diff --git a/xfa/fxfa/parser/cxfa_subform.h b/xfa/fxfa/parser/cxfa_subform.h
new file mode 100644
index 0000000000..1c2f2af6a5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subform.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBFORM_H_
+#define XFA_FXFA_PARSER_CXFA_SUBFORM_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Subform : public CXFA_Node {
+ public:
+ CXFA_Subform(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Subform() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBFORM_H_
diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp
new file mode 100644
index 0000000000..a72549f8a8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subformset.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_subformset.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Break, 1, 0}, {XFA_Element::Overflow, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"subformSet";
+
+} // namespace
+
+CXFA_SubformSet::CXFA_SubformSet(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::SubformSet,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_SubformSet::~CXFA_SubformSet() {}
diff --git a/xfa/fxfa/parser/cxfa_subformset.h b/xfa/fxfa/parser/cxfa_subformset.h
new file mode 100644
index 0000000000..4f7f7dcd17
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subformset.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBFORMSET_H_
+#define XFA_FXFA_PARSER_CXFA_SUBFORMSET_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SubformSet : public CXFA_Node {
+ public:
+ CXFA_SubformSet(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SubformSet() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBFORMSET_H_
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
new file mode 100644
index 0000000000..3541c7b7c6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_subjectdn.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Delimiter, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"subjectDN";
+
+} // namespace
+
+CXFA_SubjectDN::CXFA_SubjectDN(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::NodeC,
+ XFA_Element::SubjectDN,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SubjectDN::~CXFA_SubjectDN() {}
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.h b/xfa/fxfa/parser/cxfa_subjectdn.h
new file mode 100644
index 0000000000..e7782527f5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subjectdn.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBJECTDN_H_
+#define XFA_FXFA_PARSER_CXFA_SUBJECTDN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SubjectDN : public CXFA_Node {
+ public:
+ CXFA_SubjectDN(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SubjectDN() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBJECTDN_H_
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
new file mode 100644
index 0000000000..fd551d30b7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_subjectdns.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"subjectDNs";
+
+} // namespace
+
+CXFA_SubjectDNs::CXFA_SubjectDNs(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::SubjectDNs,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SubjectDNs::~CXFA_SubjectDNs() {}
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.h b/xfa/fxfa/parser/cxfa_subjectdns.h
new file mode 100644
index 0000000000..ba8cf07a85
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subjectdns.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBJECTDNS_H_
+#define XFA_FXFA_PARSER_CXFA_SUBJECTDNS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SubjectDNs : public CXFA_Node {
+ public:
+ CXFA_SubjectDNs(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SubjectDNs() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBJECTDNS_H_
diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp
new file mode 100644
index 0000000000..7d3dbe9946
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_submit.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_submit.h"
+
+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};
+
+constexpr wchar_t kName[] = L"submit";
+
+} // namespace
+
+CXFA_Submit::CXFA_Submit(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Submit,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Submit::~CXFA_Submit() {}
diff --git a/xfa/fxfa/parser/cxfa_submit.h b/xfa/fxfa/parser/cxfa_submit.h
new file mode 100644
index 0000000000..863d2109bf
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_submit.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBMIT_H_
+#define XFA_FXFA_PARSER_CXFA_SUBMIT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Submit : public CXFA_Node {
+ public:
+ CXFA_Submit(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Submit() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBMIT_H_
diff --git a/xfa/fxfa/parser/cxfa_submitformat.cpp b/xfa/fxfa/parser/cxfa_submitformat.cpp
new file mode 100644
index 0000000000..1d2962f49e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_submitformat.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_submitformat.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"submitFormat";
+
+} // namespace
+
+CXFA_SubmitFormat::CXFA_SubmitFormat(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::SubmitFormat,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SubmitFormat::~CXFA_SubmitFormat() {}
diff --git a/xfa/fxfa/parser/cxfa_submitformat.h b/xfa/fxfa/parser/cxfa_submitformat.h
new file mode 100644
index 0000000000..72febdf469
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_submitformat.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBMITFORMAT_H_
+#define XFA_FXFA_PARSER_CXFA_SUBMITFORMAT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SubmitFormat : public CXFA_Node {
+ public:
+ CXFA_SubmitFormat(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SubmitFormat() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBMITFORMAT_H_
diff --git a/xfa/fxfa/parser/cxfa_submiturl.cpp b/xfa/fxfa/parser/cxfa_submiturl.cpp
new file mode 100644
index 0000000000..6ee7009b72
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_submiturl.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_submiturl.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"submitUrl";
+
+} // namespace
+
+CXFA_SubmitUrl::CXFA_SubmitUrl(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::SubmitUrl,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SubmitUrl::~CXFA_SubmitUrl() {}
diff --git a/xfa/fxfa/parser/cxfa_submiturl.h b/xfa/fxfa/parser/cxfa_submiturl.h
new file mode 100644
index 0000000000..6d1b25f70c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_submiturl.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBMITURL_H_
+#define XFA_FXFA_PARSER_CXFA_SUBMITURL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SubmitUrl : public CXFA_Node {
+ public:
+ CXFA_SubmitUrl(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SubmitUrl() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBMITURL_H_
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.cpp b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
new file mode 100644
index 0000000000..5116cae9f9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_subsetbelow.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"subsetBelow";
+
+} // namespace
+
+CXFA_SubsetBelow::CXFA_SubsetBelow(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::SubsetBelow,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SubsetBelow::~CXFA_SubsetBelow() {}
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.h b/xfa/fxfa/parser/cxfa_subsetbelow.h
new file mode 100644
index 0000000000..e3ff516ad8
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUBSETBELOW_H_
+#define XFA_FXFA_PARSER_CXFA_SUBSETBELOW_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SubsetBelow : public CXFA_Node {
+ public:
+ CXFA_SubsetBelow(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SubsetBelow() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUBSETBELOW_H_
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.cpp b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
new file mode 100644
index 0000000000..5d428956b7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_suppressbanner.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"suppressBanner";
+
+} // namespace
+
+CXFA_SuppressBanner::CXFA_SuppressBanner(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::SuppressBanner,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_SuppressBanner::~CXFA_SuppressBanner() {}
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.h b/xfa/fxfa/parser/cxfa_suppressbanner.h
new file mode 100644
index 0000000000..ef3406bbd2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_SUPPRESSBANNER_H_
+#define XFA_FXFA_PARSER_CXFA_SUPPRESSBANNER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_SuppressBanner : public CXFA_Node {
+ public:
+ CXFA_SuppressBanner(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_SuppressBanner() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_SUPPRESSBANNER_H_
diff --git a/xfa/fxfa/parser/cxfa_tagged.cpp b/xfa/fxfa/parser/cxfa_tagged.cpp
new file mode 100644
index 0000000000..180f1a7313
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_tagged.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_tagged.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"tagged";
+
+} // namespace
+
+CXFA_Tagged::CXFA_Tagged(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Tagged,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Tagged::~CXFA_Tagged() {}
diff --git a/xfa/fxfa/parser/cxfa_tagged.h b/xfa/fxfa/parser/cxfa_tagged.h
new file mode 100644
index 0000000000..14c55c2b3e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_tagged.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TAGGED_H_
+#define XFA_FXFA_PARSER_CXFA_TAGGED_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Tagged : public CXFA_Node {
+ public:
+ CXFA_Tagged(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Tagged() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TAGGED_H_
diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp
new file mode 100644
index 0000000000..286ecce58e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_template.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_template.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Uri, 1, 0}, {XFA_Element::Xsl, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"template";
+
+} // namespace
+
+CXFA_Template::CXFA_Template(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ModelNode,
+ XFA_Element::Template,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Template::~CXFA_Template() {}
diff --git a/xfa/fxfa/parser/cxfa_template.h b/xfa/fxfa/parser/cxfa_template.h
new file mode 100644
index 0000000000..4d41209f94
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_template.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TEMPLATE_H_
+#define XFA_FXFA_PARSER_CXFA_TEMPLATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Template : public CXFA_Node {
+ public:
+ CXFA_Template(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Template() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TEMPLATE_H_
diff --git a/xfa/fxfa/parser/cxfa_templatecache.cpp b/xfa/fxfa/parser/cxfa_templatecache.cpp
new file mode 100644
index 0000000000..f07f486c11
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_templatecache.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_templatecache.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::MaxEntries, XFA_Attribute::Lock,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"templateCache";
+
+} // namespace
+
+CXFA_TemplateCache::CXFA_TemplateCache(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::TemplateCache,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_TemplateCache::~CXFA_TemplateCache() {}
diff --git a/xfa/fxfa/parser/cxfa_templatecache.h b/xfa/fxfa/parser/cxfa_templatecache.h
new file mode 100644
index 0000000000..3477f2e633
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_templatecache.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TEMPLATECACHE_H_
+#define XFA_FXFA_PARSER_CXFA_TEMPLATECACHE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_TemplateCache : public CXFA_Node {
+ public:
+ CXFA_TemplateCache(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_TemplateCache() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TEMPLATECACHE_H_
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
new file mode 100644
index 0000000000..be0d95b775
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_text.h"
+
+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};
+
+constexpr wchar_t kName[] = L"text";
+
+} // namespace
+
+CXFA_Text::CXFA_Text(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
+ XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Text,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Text::~CXFA_Text() {}
diff --git a/xfa/fxfa/parser/cxfa_text.h b/xfa/fxfa/parser/cxfa_text.h
new file mode 100644
index 0000000000..2bb5ef8d39
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_text.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TEXT_H_
+#define XFA_FXFA_PARSER_CXFA_TEXT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Text : public CXFA_Node {
+ public:
+ CXFA_Text(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Text() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TEXT_H_
diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp
new file mode 100644
index 0000000000..7dd7468539
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_textedit.cpp
@@ -0,0 +1,39 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_textedit.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
+ {XFA_Element::Border, 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};
+
+constexpr wchar_t kName[] = L"textEdit";
+
+} // namespace
+
+CXFA_TextEdit::CXFA_TextEdit(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::TextEdit,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_TextEdit::~CXFA_TextEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_textedit.h b/xfa/fxfa/parser/cxfa_textedit.h
new file mode 100644
index 0000000000..6fbae5d5fb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_textedit.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TEXTEDIT_H_
+#define XFA_FXFA_PARSER_CXFA_TEXTEDIT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_TextEdit : public CXFA_Node {
+ public:
+ CXFA_TextEdit(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_TextEdit() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TEXTEDIT_H_
diff --git a/xfa/fxfa/parser/cxfa_threshold.cpp b/xfa/fxfa/parser/cxfa_threshold.cpp
new file mode 100644
index 0000000000..fabebe5cc1
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_threshold.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_threshold.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"threshold";
+
+} // namespace
+
+CXFA_Threshold::CXFA_Threshold(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Threshold,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Threshold::~CXFA_Threshold() {}
diff --git a/xfa/fxfa/parser/cxfa_threshold.h b/xfa/fxfa/parser/cxfa_threshold.h
new file mode 100644
index 0000000000..6625b22096
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_threshold.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_THRESHOLD_H_
+#define XFA_FXFA_PARSER_CXFA_THRESHOLD_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Threshold : public CXFA_Node {
+ public:
+ CXFA_Threshold(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Threshold() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_THRESHOLD_H_
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
new file mode 100644
index 0000000000..0917e22c27
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_time.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"time";
+
+} // namespace
+
+CXFA_Time::CXFA_Time(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Time,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Time::~CXFA_Time() {}
diff --git a/xfa/fxfa/parser/cxfa_time.h b/xfa/fxfa/parser/cxfa_time.h
new file mode 100644
index 0000000000..fe6f6629c3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_time.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TIME_H_
+#define XFA_FXFA_PARSER_CXFA_TIME_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Time : public CXFA_Node {
+ public:
+ CXFA_Time(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Time() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TIME_H_
diff --git a/xfa/fxfa/parser/cxfa_timepattern.cpp b/xfa/fxfa/parser/cxfa_timepattern.cpp
new file mode 100644
index 0000000000..7eb5ac5780
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_timepattern.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_timepattern.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"timePattern";
+
+} // namespace
+
+CXFA_TimePattern::CXFA_TimePattern(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::TimePattern,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_TimePattern::~CXFA_TimePattern() {}
diff --git a/xfa/fxfa/parser/cxfa_timepattern.h b/xfa/fxfa/parser/cxfa_timepattern.h
new file mode 100644
index 0000000000..7bddbd2413
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_timepattern.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TIMEPATTERN_H_
+#define XFA_FXFA_PARSER_CXFA_TIMEPATTERN_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_TimePattern : public CXFA_Node {
+ public:
+ CXFA_TimePattern(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_TimePattern() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TIMEPATTERN_H_
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.cpp b/xfa/fxfa/parser/cxfa_timepatterns.cpp
new file mode 100644
index 0000000000..7739e00709
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_timepatterns.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_timepatterns.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::TimePattern, 4, 0},
+ {XFA_Element::Unknown, 0, 0}};
+
+constexpr wchar_t kName[] = L"timePatterns";
+
+} // namespace
+
+CXFA_TimePatterns::CXFA_TimePatterns(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::TimePatterns,
+ kPropertyData,
+ nullptr,
+ kName) {}
+
+CXFA_TimePatterns::~CXFA_TimePatterns() {}
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.h b/xfa/fxfa/parser/cxfa_timepatterns.h
new file mode 100644
index 0000000000..827d241ecd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_timepatterns.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TIMEPATTERNS_H_
+#define XFA_FXFA_PARSER_CXFA_TIMEPATTERNS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_TimePatterns : public CXFA_Node {
+ public:
+ CXFA_TimePatterns(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_TimePatterns() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TIMEPATTERNS_H_
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
new file mode 100644
index 0000000000..52a9fa4621
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_timestamp.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Use, XFA_Attribute::Type,
+ XFA_Attribute::Server, XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"timeStamp";
+
+} // namespace
+
+CXFA_TimeStamp::CXFA_TimeStamp(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::TimeStamp,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_TimeStamp::~CXFA_TimeStamp() {}
diff --git a/xfa/fxfa/parser/cxfa_timestamp.h b/xfa/fxfa/parser/cxfa_timestamp.h
new file mode 100644
index 0000000000..b35ed0530a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_timestamp.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TIMESTAMP_H_
+#define XFA_FXFA_PARSER_CXFA_TIMESTAMP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_TimeStamp : public CXFA_Node {
+ public:
+ CXFA_TimeStamp(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_TimeStamp() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TIMESTAMP_H_
diff --git a/xfa/fxfa/parser/cxfa_to.cpp b/xfa/fxfa/parser/cxfa_to.cpp
new file mode 100644
index 0000000000..f6a0b7ec87
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_to.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_to.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"to";
+
+} // namespace
+
+CXFA_To::CXFA_To(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::To,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_To::~CXFA_To() {}
diff --git a/xfa/fxfa/parser/cxfa_to.h b/xfa/fxfa/parser/cxfa_to.h
new file mode 100644
index 0000000000..d7ea7d1017
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_to.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TO_H_
+#define XFA_FXFA_PARSER_CXFA_TO_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_To : public CXFA_Node {
+ public:
+ CXFA_To(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_To() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TO_H_
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
new file mode 100644
index 0000000000..ee58344d84
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_tooltip.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Rid, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"toolTip";
+
+} // namespace
+
+CXFA_ToolTip::CXFA_ToolTip(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::TextNode,
+ XFA_Element::ToolTip,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ToolTip::~CXFA_ToolTip() {}
diff --git a/xfa/fxfa/parser/cxfa_tooltip.h b/xfa/fxfa/parser/cxfa_tooltip.h
new file mode 100644
index 0000000000..a487a88726
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_tooltip.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TOOLTIP_H_
+#define XFA_FXFA_PARSER_CXFA_TOOLTIP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ToolTip : public CXFA_Node {
+ public:
+ CXFA_ToolTip(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ToolTip() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TOOLTIP_H_
diff --git a/xfa/fxfa/parser/cxfa_trace.cpp b/xfa/fxfa/parser/cxfa_trace.cpp
new file mode 100644
index 0000000000..8342dc6af6
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_trace.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_trace.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"trace";
+
+} // namespace
+
+CXFA_Trace::CXFA_Trace(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Trace,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Trace::~CXFA_Trace() {}
diff --git a/xfa/fxfa/parser/cxfa_trace.h b/xfa/fxfa/parser/cxfa_trace.h
new file mode 100644
index 0000000000..113b739bfc
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_trace.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TRACE_H_
+#define XFA_FXFA_PARSER_CXFA_TRACE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Trace : public CXFA_Node {
+ public:
+ CXFA_Trace(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Trace() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TRACE_H_
diff --git a/xfa/fxfa/parser/cxfa_transform.cpp b/xfa/fxfa/parser/cxfa_transform.cpp
new file mode 100644
index 0000000000..34bcf019ab
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_transform.cpp
@@ -0,0 +1,34 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_transform.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Whitespace, 1, 0}, {XFA_Element::Rename, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"transform";
+
+} // namespace
+
+CXFA_Transform::CXFA_Transform(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Transform,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Transform::~CXFA_Transform() {}
diff --git a/xfa/fxfa/parser/cxfa_transform.h b/xfa/fxfa/parser/cxfa_transform.h
new file mode 100644
index 0000000000..410cbd3ee7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_transform.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TRANSFORM_H_
+#define XFA_FXFA_PARSER_CXFA_TRANSFORM_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Transform : public CXFA_Node {
+ public:
+ CXFA_Transform(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Transform() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TRANSFORM_H_
diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp
new file mode 100644
index 0000000000..4dcedffe09
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traversal.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_traversal.h"
+
+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};
+
+constexpr wchar_t kName[] = L"traversal";
+
+} // namespace
+
+CXFA_Traversal::CXFA_Traversal(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Traversal,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Traversal::~CXFA_Traversal() {}
diff --git a/xfa/fxfa/parser/cxfa_traversal.h b/xfa/fxfa/parser/cxfa_traversal.h
new file mode 100644
index 0000000000..15df49dd8e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traversal.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TRAVERSAL_H_
+#define XFA_FXFA_PARSER_CXFA_TRAVERSAL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Traversal : public CXFA_Node {
+ public:
+ CXFA_Traversal(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Traversal() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TRAVERSAL_H_
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
new file mode 100644
index 0000000000..96b6b5c339
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_traverse.h"
+
+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};
+
+constexpr wchar_t kName[] = L"traverse";
+
+} // namespace
+
+CXFA_Traverse::CXFA_Traverse(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Traverse,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Traverse::~CXFA_Traverse() {}
diff --git a/xfa/fxfa/parser/cxfa_traverse.h b/xfa/fxfa/parser/cxfa_traverse.h
new file mode 100644
index 0000000000..09ca4dc0c3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traverse.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TRAVERSE_H_
+#define XFA_FXFA_PARSER_CXFA_TRAVERSE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Traverse : public CXFA_Node {
+ public:
+ CXFA_Traverse(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Traverse() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TRAVERSE_H_
diff --git a/xfa/fxfa/parser/cxfa_type.cpp b/xfa/fxfa/parser/cxfa_type.cpp
new file mode 100644
index 0000000000..625888271f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_type.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_type.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"type";
+
+} // namespace
+
+CXFA_Type::CXFA_Type(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Type,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Type::~CXFA_Type() {}
diff --git a/xfa/fxfa/parser/cxfa_type.h b/xfa/fxfa/parser/cxfa_type.h
new file mode 100644
index 0000000000..b9dfacd1c5
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_type.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TYPE_H_
+#define XFA_FXFA_PARSER_CXFA_TYPE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Type : public CXFA_Node {
+ public:
+ CXFA_Type(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Type() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TYPE_H_
diff --git a/xfa/fxfa/parser/cxfa_typeface.cpp b/xfa/fxfa/parser/cxfa_typeface.cpp
new file mode 100644
index 0000000000..b4e002b7c2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_typeface.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_typeface.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Name,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"typeface";
+
+} // namespace
+
+CXFA_Typeface::CXFA_Typeface(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::Typeface,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Typeface::~CXFA_Typeface() {}
diff --git a/xfa/fxfa/parser/cxfa_typeface.h b/xfa/fxfa/parser/cxfa_typeface.h
new file mode 100644
index 0000000000..235abe4458
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_typeface.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TYPEFACE_H_
+#define XFA_FXFA_PARSER_CXFA_TYPEFACE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Typeface : public CXFA_Node {
+ public:
+ CXFA_Typeface(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Typeface() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TYPEFACE_H_
diff --git a/xfa/fxfa/parser/cxfa_typefaces.cpp b/xfa/fxfa/parser/cxfa_typefaces.cpp
new file mode 100644
index 0000000000..6cd89f4422
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_typefaces.cpp
@@ -0,0 +1,25 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_typefaces.h"
+
+namespace {
+
+constexpr wchar_t kName[] = L"typefaces";
+
+} // namespace
+
+CXFA_Typefaces::CXFA_Typefaces(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_LocaleSet,
+ XFA_ObjectType::Node,
+ XFA_Element::Typefaces,
+ nullptr,
+ nullptr,
+ kName) {}
+
+CXFA_Typefaces::~CXFA_Typefaces() {}
diff --git a/xfa/fxfa/parser/cxfa_typefaces.h b/xfa/fxfa/parser/cxfa_typefaces.h
new file mode 100644
index 0000000000..8f55049939
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_typefaces.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_TYPEFACES_H_
+#define XFA_FXFA_PARSER_CXFA_TYPEFACES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Typefaces : public CXFA_Node {
+ public:
+ CXFA_Typefaces(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Typefaces() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TYPEFACES_H_
diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp
new file mode 100644
index 0000000000..275d7ed821
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ui.cpp
@@ -0,0 +1,45 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_ui.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::CheckButton, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::ChoiceList, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::DefaultUi, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Barcode, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Button, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::DateTimeEdit, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Picture, 1, 0},
+ {XFA_Element::ImageEdit, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::PasswordEdit, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::NumericEdit, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Signature, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::TextEdit, 1, XFA_PROPERTYFLAG_OneOf},
+ {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};
+
+constexpr wchar_t kName[] = L"ui";
+
+} // namespace
+
+CXFA_Ui::CXFA_Ui(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Ui,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Ui::~CXFA_Ui() {}
diff --git a/xfa/fxfa/parser/cxfa_ui.h b/xfa/fxfa/parser/cxfa_ui.h
new file mode 100644
index 0000000000..cb43c7a38e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_ui.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_UI_H_
+#define XFA_FXFA_PARSER_CXFA_UI_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Ui : public CXFA_Node {
+ public:
+ CXFA_Ui(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Ui() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_UI_H_
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
new file mode 100644
index 0000000000..d668809e1e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_update.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"update";
+
+} // namespace
+
+CXFA_Update::CXFA_Update(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::Update,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Update::~CXFA_Update() {}
diff --git a/xfa/fxfa/parser/cxfa_update.h b/xfa/fxfa/parser/cxfa_update.h
new file mode 100644
index 0000000000..a79626e57f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_update.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_UPDATE_H_
+#define XFA_FXFA_PARSER_CXFA_UPDATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Update : public CXFA_Node {
+ public:
+ CXFA_Update(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Update() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_UPDATE_H_
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
new file mode 100644
index 0000000000..9d825ead53
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_uri.h"
+
+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};
+
+constexpr wchar_t kName[] = L"uri";
+
+} // namespace
+
+CXFA_Uri::CXFA_Uri(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_ConnectionSet),
+ XFA_ObjectType::TextNode,
+ XFA_Element::Uri,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Uri::~CXFA_Uri() {}
diff --git a/xfa/fxfa/parser/cxfa_uri.h b/xfa/fxfa/parser/cxfa_uri.h
new file mode 100644
index 0000000000..e82f824949
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_uri.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_URI_H_
+#define XFA_FXFA_PARSER_CXFA_URI_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Uri : public CXFA_Node {
+ public:
+ CXFA_Uri(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Uri() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_URI_H_
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
new file mode 100644
index 0000000000..6954bec523
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_user.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"user";
+
+} // namespace
+
+CXFA_User::CXFA_User(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_SourceSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::User,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_User::~CXFA_User() {}
diff --git a/xfa/fxfa/parser/cxfa_user.h b/xfa/fxfa/parser/cxfa_user.h
new file mode 100644
index 0000000000..a2a03646dd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_user.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_USER_H_
+#define XFA_FXFA_PARSER_CXFA_USER_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_User : public CXFA_Node {
+ public:
+ CXFA_User(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_User() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_USER_H_
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp
new file mode 100644
index 0000000000..aaee8f1d52
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -0,0 +1,38 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_validate.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
+ {XFA_Element::Picture, 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};
+
+constexpr wchar_t kName[] = L"validate";
+
+} // namespace
+
+CXFA_Validate::CXFA_Validate(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(
+ doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Validate,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Validate::~CXFA_Validate() {}
diff --git a/xfa/fxfa/parser/cxfa_validate.h b/xfa/fxfa/parser/cxfa_validate.h
new file mode 100644
index 0000000000..c21ed419a3
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_validate.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VALIDATE_H_
+#define XFA_FXFA_PARSER_CXFA_VALIDATE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Validate : public CXFA_Node {
+ public:
+ CXFA_Validate(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Validate() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VALIDATE_H_
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
new file mode 100644
index 0000000000..9bf9fdd80f
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_validateapprovalsignatures.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"validateApprovalSignatures";
+
+} // namespace
+
+CXFA_ValidateApprovalSignatures::CXFA_ValidateApprovalSignatures(
+ CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::ValidateApprovalSignatures,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ValidateApprovalSignatures::~CXFA_ValidateApprovalSignatures() {}
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
new file mode 100644
index 0000000000..2922cb50e4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VALIDATEAPPROVALSIGNATURES_H_
+#define XFA_FXFA_PARSER_CXFA_VALIDATEAPPROVALSIGNATURES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ValidateApprovalSignatures : public CXFA_Node {
+ public:
+ CXFA_ValidateApprovalSignatures(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ValidateApprovalSignatures() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VALIDATEAPPROVALSIGNATURES_H_
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.cpp b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
new file mode 100644
index 0000000000..85371e2413
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_validationmessaging.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"validationMessaging";
+
+} // namespace
+
+CXFA_ValidationMessaging::CXFA_ValidationMessaging(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::ValidationMessaging,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_ValidationMessaging::~CXFA_ValidationMessaging() {}
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.h b/xfa/fxfa/parser/cxfa_validationmessaging.h
new file mode 100644
index 0000000000..3a493b4508
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VALIDATIONMESSAGING_H_
+#define XFA_FXFA_PARSER_CXFA_VALIDATIONMESSAGING_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ValidationMessaging : public CXFA_Node {
+ public:
+ CXFA_ValidationMessaging(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ValidationMessaging() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VALIDATIONMESSAGING_H_
diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp
new file mode 100644
index 0000000000..020507f333
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_value.cpp
@@ -0,0 +1,44 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_value.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Arc, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Text, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Time, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::DateTime, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Image, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Decimal, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Boolean, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Integer, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::ExData, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Rectangle, 1, XFA_PROPERTYFLAG_OneOf},
+ {XFA_Element::Date, 1, XFA_PROPERTYFLAG_OneOf},
+ {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};
+
+constexpr wchar_t kName[] = L"value";
+
+} // namespace
+
+CXFA_Value::CXFA_Value(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::Node,
+ XFA_Element::Value,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Value::~CXFA_Value() {}
diff --git a/xfa/fxfa/parser/cxfa_value.h b/xfa/fxfa/parser/cxfa_value.h
new file mode 100644
index 0000000000..b73d50d431
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_value.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VALUE_H_
+#define XFA_FXFA_PARSER_CXFA_VALUE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Value : public CXFA_Node {
+ public:
+ CXFA_Value(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Value() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VALUE_H_
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
new file mode 100644
index 0000000000..d52b517420
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_variables.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {XFA_Attribute::Id, XFA_Attribute::Use,
+ XFA_Attribute::Usehref,
+ XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"variables";
+
+} // namespace
+
+CXFA_Variables::CXFA_Variables(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
+ XFA_ObjectType::ContainerNode,
+ XFA_Element::Variables,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Variables::~CXFA_Variables() {}
diff --git a/xfa/fxfa/parser/cxfa_variables.h b/xfa/fxfa/parser/cxfa_variables.h
new file mode 100644
index 0000000000..1f7b6fce60
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_variables.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VARIABLES_H_
+#define XFA_FXFA_PARSER_CXFA_VARIABLES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Variables : public CXFA_Node {
+ public:
+ CXFA_Variables(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Variables() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VARIABLES_H_
diff --git a/xfa/fxfa/parser/cxfa_version.cpp b/xfa/fxfa/parser/cxfa_version.cpp
new file mode 100644
index 0000000000..dc3b820d68
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_version.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_version.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"version";
+
+} // namespace
+
+CXFA_Version::CXFA_Version(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::ContentNode,
+ XFA_Element::Version,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Version::~CXFA_Version() {}
diff --git a/xfa/fxfa/parser/cxfa_version.h b/xfa/fxfa/parser/cxfa_version.h
new file mode 100644
index 0000000000..ad50610dbd
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_version.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VERSION_H_
+#define XFA_FXFA_PARSER_CXFA_VERSION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Version : public CXFA_Node {
+ public:
+ CXFA_Version(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Version() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VERSION_H_
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.cpp b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
new file mode 100644
index 0000000000..b14eb3c119
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_versioncontrol.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::SourceBelow, XFA_Attribute::OutputBelow,
+ XFA_Attribute::SourceAbove, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"versionControl";
+
+} // namespace
+
+CXFA_VersionControl::CXFA_VersionControl(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::VersionControl,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_VersionControl::~CXFA_VersionControl() {}
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.h b/xfa/fxfa/parser/cxfa_versioncontrol.h
new file mode 100644
index 0000000000..46c14181a7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VERSIONCONTROL_H_
+#define XFA_FXFA_PARSER_CXFA_VERSIONCONTROL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_VersionControl : public CXFA_Node {
+ public:
+ CXFA_VersionControl(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_VersionControl() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VERSIONCONTROL_H_
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.cpp b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
new file mode 100644
index 0000000000..afee927006
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.cpp
@@ -0,0 +1,40 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_viewerpreferences.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::PrintScaling, 1, 0},
+ {XFA_Element::Enforce, 1, 0},
+ {XFA_Element::NumberOfCopies, 1, 0},
+ {XFA_Element::PageRange, 1, 0},
+ {XFA_Element::AddViewerPreferences, 1, 0},
+ {XFA_Element::ADBE_JSConsole, 1, 0},
+ {XFA_Element::DuplexOption, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"viewerPreferences";
+
+} // namespace
+
+CXFA_ViewerPreferences::CXFA_ViewerPreferences(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::ViewerPreferences,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_ViewerPreferences::~CXFA_ViewerPreferences() {}
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.h b/xfa/fxfa/parser/cxfa_viewerpreferences.h
new file mode 100644
index 0000000000..009ee03644
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_VIEWERPREFERENCES_H_
+#define XFA_FXFA_PARSER_CXFA_VIEWERPREFERENCES_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_ViewerPreferences : public CXFA_Node {
+ public:
+ CXFA_ViewerPreferences(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_ViewerPreferences() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_VIEWERPREFERENCES_H_
diff --git a/xfa/fxfa/parser/cxfa_webclient.cpp b/xfa/fxfa/parser/cxfa_webclient.cpp
new file mode 100644
index 0000000000..319d1437b2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_webclient.cpp
@@ -0,0 +1,32 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_webclient.h"
+
+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};
+
+constexpr wchar_t kName[] = L"webClient";
+
+} // namespace
+
+CXFA_WebClient::CXFA_WebClient(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::WebClient,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_WebClient::~CXFA_WebClient() {}
diff --git a/xfa/fxfa/parser/cxfa_webclient.h b/xfa/fxfa/parser/cxfa_webclient.h
new file mode 100644
index 0000000000..b902461a8c
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_webclient.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_WEBCLIENT_H_
+#define XFA_FXFA_PARSER_CXFA_WEBCLIENT_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_WebClient : public CXFA_Node {
+ public:
+ CXFA_WebClient(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_WebClient() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_WEBCLIENT_H_
diff --git a/xfa/fxfa/parser/cxfa_whitespace.cpp b/xfa/fxfa/parser/cxfa_whitespace.cpp
new file mode 100644
index 0000000000..de4e25bfe9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_whitespace.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_whitespace.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"whitespace";
+
+} // namespace
+
+CXFA_Whitespace::CXFA_Whitespace(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Whitespace,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Whitespace::~CXFA_Whitespace() {}
diff --git a/xfa/fxfa/parser/cxfa_whitespace.h b/xfa/fxfa/parser/cxfa_whitespace.h
new file mode 100644
index 0000000000..7ed50fe90d
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_whitespace.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_WHITESPACE_H_
+#define XFA_FXFA_PARSER_CXFA_WHITESPACE_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Whitespace : public CXFA_Node {
+ public:
+ CXFA_Whitespace(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Whitespace() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_WHITESPACE_H_
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index 19a82542ea..4544e2eb51 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -113,9 +113,10 @@ CXFA_Node* CreateUIChild(CXFA_Node* pNode, XFA_Element& eWidgetType) {
eChildType == XFA_Element::Picture) {
continue;
}
- const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement(
- XFA_Element::Ui, eChildType, XFA_XDPPACKET_Form);
- if (pProperty && (pProperty->uFlags & XFA_PROPERTYFLAG_OneOf)) {
+
+ auto node = CXFA_Node::Create(pChild->GetDocument(), XFA_Element::Ui,
+ XFA_XDPPACKET_Form);
+ if (node && node->HasPropertyFlags(eChildType, XFA_PROPERTYFLAG_OneOf)) {
pUIChild = pChild;
break;
}
diff --git a/xfa/fxfa/parser/cxfa_window.cpp b/xfa/fxfa/parser/cxfa_window.cpp
new file mode 100644
index 0000000000..14612108e7
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_window.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_window.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Desc, XFA_Attribute::Lock, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"window";
+
+} // namespace
+
+CXFA_Window::CXFA_Window(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::NodeV,
+ XFA_Element::Window,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Window::~CXFA_Window() {}
diff --git a/xfa/fxfa/parser/cxfa_window.h b/xfa/fxfa/parser/cxfa_window.h
new file mode 100644
index 0000000000..b0bb1c66fb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_window.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_WINDOW_H_
+#define XFA_FXFA_PARSER_CXFA_WINDOW_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Window : public CXFA_Node {
+ public:
+ CXFA_Window(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Window() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_WINDOW_H_
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
new file mode 100644
index 0000000000..6e5a55e7b9
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -0,0 +1,29 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_wsdladdress.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::Id, XFA_Attribute::Name, XFA_Attribute::Use,
+ XFA_Attribute::Usehref, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"wsdlAddress";
+
+} // namespace
+
+CXFA_WsdlAddress::CXFA_WsdlAddress(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::TextNode,
+ XFA_Element::WsdlAddress,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_WsdlAddress::~CXFA_WsdlAddress() {}
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.h b/xfa/fxfa/parser/cxfa_wsdladdress.h
new file mode 100644
index 0000000000..ec99ae0e1e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_WSDLADDRESS_H_
+#define XFA_FXFA_PARSER_CXFA_WSDLADDRESS_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_WsdlAddress : public CXFA_Node {
+ public:
+ CXFA_WsdlAddress(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_WsdlAddress() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_WSDLADDRESS_H_
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
new file mode 100644
index 0000000000..a828f6080e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp
@@ -0,0 +1,38 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_wsdlconnection.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::Operation, 1, 0},
+ {XFA_Element::WsdlAddress, 1, 0},
+ {XFA_Element::SoapAddress, 1, 0},
+ {XFA_Element::SoapAction, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"wsdlConnection";
+
+} // namespace
+
+CXFA_WsdlConnection::CXFA_WsdlConnection(CXFA_Document* doc,
+ XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::Node,
+ XFA_Element::WsdlConnection,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_WsdlConnection::~CXFA_WsdlConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.h b/xfa/fxfa/parser/cxfa_wsdlconnection.h
new file mode 100644
index 0000000000..70ebd871aa
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_WSDLCONNECTION_H_
+#define XFA_FXFA_PARSER_CXFA_WSDLCONNECTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_WsdlConnection : public CXFA_Node {
+ public:
+ CXFA_WsdlConnection(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_WsdlConnection() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_WSDLCONNECTION_H_
diff --git a/xfa/fxfa/parser/cxfa_xdc.cpp b/xfa/fxfa/parser/cxfa_xdc.cpp
new file mode 100644
index 0000000000..cd1a31d685
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xdc.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_xdc.h"
+
+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};
+
+constexpr wchar_t kName[] = L"xdc";
+
+} // namespace
+
+CXFA_Xdc::CXFA_Xdc(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ (XFA_XDPPACKET_Config | XFA_XDPPACKET_Xdc),
+ XFA_ObjectType::ModelNode,
+ XFA_Element::Xdc,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Xdc::~CXFA_Xdc() {}
diff --git a/xfa/fxfa/parser/cxfa_xdc.h b/xfa/fxfa/parser/cxfa_xdc.h
new file mode 100644
index 0000000000..e64c91c7d2
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xdc.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_XDC_H_
+#define XFA_FXFA_PARSER_CXFA_XDC_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Xdc : public CXFA_Node {
+ public:
+ CXFA_Xdc(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Xdc() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_XDC_H_
diff --git a/xfa/fxfa/parser/cxfa_xdp.cpp b/xfa/fxfa/parser/cxfa_xdp.cpp
new file mode 100644
index 0000000000..4e06c1cf98
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xdp.cpp
@@ -0,0 +1,30 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_xdp.h"
+
+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};
+
+constexpr wchar_t kName[] = L"xdp";
+
+} // namespace
+
+CXFA_Xdp::CXFA_Xdp(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Xdp,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Xdp::~CXFA_Xdp() {}
diff --git a/xfa/fxfa/parser/cxfa_xdp.h b/xfa/fxfa/parser/cxfa_xdp.h
new file mode 100644
index 0000000000..dbd1ef31ee
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xdp.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_XDP_H_
+#define XFA_FXFA_PARSER_CXFA_XDP_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Xdp : public CXFA_Node {
+ public:
+ CXFA_Xdp(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Xdp() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_XDP_H_
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
new file mode 100644
index 0000000000..2e125de462
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -0,0 +1,28 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_xfa.h"
+
+namespace {
+
+const XFA_Attribute kAttributeData[] = {
+ XFA_Attribute::TimeStamp, XFA_Attribute::Uuid, XFA_Attribute::Unknown};
+
+constexpr wchar_t kName[] = L"xfa";
+
+} // namespace
+
+CXFA_Xfa::CXFA_Xfa(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_XDP,
+ XFA_ObjectType::ModelNode,
+ XFA_Element::Xfa,
+ nullptr,
+ kAttributeData,
+ kName) {}
+
+CXFA_Xfa::~CXFA_Xfa() {}
diff --git a/xfa/fxfa/parser/cxfa_xfa.h b/xfa/fxfa/parser/cxfa_xfa.h
new file mode 100644
index 0000000000..f821cbbcdb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xfa.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_XFA_H_
+#define XFA_FXFA_PARSER_CXFA_XFA_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Xfa : public CXFA_Node {
+ public:
+ CXFA_Xfa(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Xfa() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_XFA_H_
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
new file mode 100644
index 0000000000..e41f83795b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_xmlconnection.h"
+
+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};
+
+constexpr wchar_t kName[] = L"xmlConnection";
+
+} // namespace
+
+CXFA_XmlConnection::CXFA_XmlConnection(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::Node,
+ XFA_Element::XmlConnection,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_XmlConnection::~CXFA_XmlConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.h b/xfa/fxfa/parser/cxfa_xmlconnection.h
new file mode 100644
index 0000000000..d2ce3eb50b
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_XMLCONNECTION_H_
+#define XFA_FXFA_PARSER_CXFA_XMLCONNECTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_XmlConnection : public CXFA_Node {
+ public:
+ CXFA_XmlConnection(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_XmlConnection() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_XMLCONNECTION_H_
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
new file mode 100644
index 0000000000..30c1e113fb
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
@@ -0,0 +1,33 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_xsdconnection.h"
+
+namespace {
+
+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};
+
+constexpr wchar_t kName[] = L"xsdConnection";
+
+} // namespace
+
+CXFA_XsdConnection::CXFA_XsdConnection(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_ConnectionSet,
+ XFA_ObjectType::Node,
+ XFA_Element::XsdConnection,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_XsdConnection::~CXFA_XsdConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.h b/xfa/fxfa/parser/cxfa_xsdconnection.h
new file mode 100644
index 0000000000..2d0af3f037
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_XSDCONNECTION_H_
+#define XFA_FXFA_PARSER_CXFA_XSDCONNECTION_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_XsdConnection : public CXFA_Node {
+ public:
+ CXFA_XsdConnection(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_XsdConnection() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_XSDCONNECTION_H_
diff --git a/xfa/fxfa/parser/cxfa_xsl.cpp b/xfa/fxfa/parser/cxfa_xsl.cpp
new file mode 100644
index 0000000000..b12b71a0c4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xsl.cpp
@@ -0,0 +1,31 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_xsl.h"
+
+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};
+
+constexpr wchar_t kName[] = L"xsl";
+
+} // namespace
+
+CXFA_Xsl::CXFA_Xsl(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Xsl,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Xsl::~CXFA_Xsl() {}
diff --git a/xfa/fxfa/parser/cxfa_xsl.h b/xfa/fxfa/parser/cxfa_xsl.h
new file mode 100644
index 0000000000..9ad29bfee4
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_xsl.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_XSL_H_
+#define XFA_FXFA_PARSER_CXFA_XSL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Xsl : public CXFA_Node {
+ public:
+ CXFA_Xsl(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Xsl() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_XSL_H_
diff --git a/xfa/fxfa/parser/cxfa_zpl.cpp b/xfa/fxfa/parser/cxfa_zpl.cpp
new file mode 100644
index 0000000000..df6ffefd39
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_zpl.cpp
@@ -0,0 +1,35 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_zpl.h"
+
+namespace {
+
+const CXFA_Node::PropertyData kPropertyData[] = {
+ {XFA_Element::FontInfo, 1, 0},
+ {XFA_Element::Xdc, 1, 0},
+ {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};
+
+constexpr wchar_t kName[] = L"zpl";
+
+} // namespace
+
+CXFA_Zpl::CXFA_Zpl(CXFA_Document* doc, XFA_XDPPACKET packet)
+ : CXFA_Node(doc,
+ packet,
+ XFA_XDPPACKET_Config,
+ XFA_ObjectType::Node,
+ XFA_Element::Zpl,
+ kPropertyData,
+ kAttributeData,
+ kName) {}
+
+CXFA_Zpl::~CXFA_Zpl() {}
diff --git a/xfa/fxfa/parser/cxfa_zpl.h b/xfa/fxfa/parser/cxfa_zpl.h
new file mode 100644
index 0000000000..e987a7fe47
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_zpl.h
@@ -0,0 +1,18 @@
+// Copyright 2017 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXFA_PARSER_CXFA_ZPL_H_
+#define XFA_FXFA_PARSER_CXFA_ZPL_H_
+
+#include "xfa/fxfa/parser/cxfa_node.h"
+
+class CXFA_Zpl : public CXFA_Node {
+ public:
+ CXFA_Zpl(CXFA_Document* doc, XFA_XDPPACKET packet);
+ ~CXFA_Zpl() override;
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_ZPL_H_
diff --git a/xfa/fxfa/parser/xfa_basic_data.cpp b/xfa/fxfa/parser/xfa_basic_data.cpp
deleted file mode 100644
index 8e2986fecf..0000000000
--- a/xfa/fxfa/parser/xfa_basic_data.cpp
+++ /dev/null
@@ -1,674 +0,0 @@
-// Copyright 2014 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_object.h"
-
-const XFA_ELEMENTINFO g_XFAElementData[] = {
- {0x23ee3, L"ps", XFA_Element::Ps, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x25363, L"to", XFA_Element::To, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x2587e, L"ui", XFA_Element::Ui,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x1c648b, L"recordSet", XFA_Element::RecordSet, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::Node},
- {0x171428f, L"subsetBelow", XFA_Element::SubsetBelow, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x1a0776a, L"subformSet", XFA_Element::SubformSet,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x2340d70, L"adobeExtensionLevel", XFA_Element::AdobeExtensionLevel,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x2c1c7f1, L"typeface", XFA_Element::Typeface, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::Node},
- {0x5518c25, L"break", XFA_Element::Break,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x5fff523, L"fontInfo", XFA_Element::FontInfo, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x653a227, L"numberPattern", XFA_Element::NumberPattern,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
- {0x65b4a05, L"dynamicRender", XFA_Element::DynamicRender,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x7e4362e, L"printScaling", XFA_Element::PrintScaling,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x7fe6d3a, L"checkButton", XFA_Element::CheckButton,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x80cf58f, L"datePatterns", XFA_Element::DatePatterns,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0x811929d, L"sourceSet", XFA_Element::SourceSet, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::ModelNode},
- {0x9f9d612, L"amd", XFA_Element::Amd, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x9f9efb6, L"arc", XFA_Element::Arc,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xa48835e, L"day", XFA_Element::Day, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::ContentNode},
- {0xa6328b8, L"era", XFA_Element::Era, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::ContentNode},
- {0xae6a0a0, L"jog", XFA_Element::Jog, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xb1b3d22, L"log", XFA_Element::Log, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xb35439e, L"map", XFA_Element::Map,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_SourceSet, XFA_ObjectType::Node},
- {0xb355301, L"mdp", XFA_Element::Mdp,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xb420438, L"breakBefore", XFA_Element::BreakBefore,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xb6a091c, L"oid", XFA_Element::Oid,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0xb84389f, L"pcl", XFA_Element::Pcl, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xb843dba, L"pdf", XFA_Element::Pdf, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xbb8df5d, L"ref", XFA_Element::Ref,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0xc080cd0, L"uri", XFA_Element::Uri,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_ConnectionSet,
- XFA_ObjectType::TextNode},
- {0xc56afbf, L"xdc", XFA_Element::Xdc,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Xdc, XFA_ObjectType::ModelNode},
- {0xc56afcc, L"xdp", XFA_Element::Xdp, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xc56b9ff, L"xfa", XFA_Element::Xfa, XFA_XDPPACKET_XDP,
- XFA_ObjectType::ModelNode},
- {0xc56fcb7, L"xsl", XFA_Element::Xsl, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xc8b89d6, L"zpl", XFA_Element::Zpl, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xc9bae94, L"cache", XFA_Element::Cache, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xcb016be, L"margin", XFA_Element::Margin,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xe1378fe, L"keyUsage", XFA_Element::KeyUsage,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xfe3596a, L"exclude", XFA_Element::Exclude, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x10395ac7, L"choiceList", XFA_Element::ChoiceList,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x1059ec18, L"level", XFA_Element::Level, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x10874804, L"labelPrinter", XFA_Element::LabelPrinter,
- XFA_XDPPACKET_Config, XFA_ObjectType::Node},
- {0x10c40e03, L"calendarSymbols", XFA_Element::CalendarSymbols,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0x10f1ea24, L"para", XFA_Element::Para,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x10f1ea37, L"part", XFA_Element::Part, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x1140975b, L"pdfa", XFA_Element::Pdfa, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x1154efe6, L"filter", XFA_Element::Filter,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x13f41de1, L"present", XFA_Element::Present, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x1827e6ea, L"pagination", XFA_Element::Pagination, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x18463707, L"encoding", XFA_Element::Encoding,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
- {0x185e41e2, L"event", XFA_Element::Event,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x1adb142d, L"whitespace", XFA_Element::Whitespace, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x1f3f64c3, L"defaultUi", XFA_Element::DefaultUi,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x204e87cb, L"dataModel", XFA_Element::DataModel, XFA_XDPPACKET_Datasets,
- XFA_ObjectType::ModelNode},
- {0x2057b350, L"barcode", XFA_Element::Barcode,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x20596bad, L"timePattern", XFA_Element::TimePattern,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
- {0x210b74d3, L"batchOutput", XFA_Element::BatchOutput, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x212ff0e2, L"enforce", XFA_Element::Enforce, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x21d351b4, L"currencySymbols", XFA_Element::CurrencySymbols,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0x21db83c5, L"addSilentPrint", XFA_Element::AddSilentPrint,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x22266258, L"rename", XFA_Element::Rename, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x226ca8f1, L"operation", XFA_Element::Operation,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
- {0x23e27b84, L"typefaces", XFA_Element::Typefaces, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::Node},
- {0x23f4aa75, L"subjectDNs", XFA_Element::SubjectDNs,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x240d5e8e, L"issuers", XFA_Element::Issuers,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x2457a033, L"signaturePseudoModel", XFA_Element::SignaturePseudoModel,
- XFA_XDPPACKET_XDP, XFA_ObjectType::Object},
- {0x24a52f8a, L"wsdlConnection", XFA_Element::WsdlConnection,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
- {0x254ebd07, L"debug", XFA_Element::Debug, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x2655c66a, L"delta", XFA_Element::Delta, XFA_XDPPACKET_Form,
- XFA_ObjectType::Object},
- {0x26c0daec, L"eraNames", XFA_Element::EraNames, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::Node},
- {0x273ab03b, L"modifyAnnots", XFA_Element::ModifyAnnots,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x27875bb4, L"startNode", XFA_Element::StartNode, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x285d0dbc, L"button", XFA_Element::Button,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x28dee6e9, L"format", XFA_Element::Format,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x2a23349e, L"border", XFA_Element::Border,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x2ae67f19, L"area", XFA_Element::Area,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x2c3c4c67, L"hyphenation", XFA_Element::Hyphenation,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x2d08af85, L"text", XFA_Element::Text,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0x2d71b00f, L"time", XFA_Element::Time,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0x2f16a382, L"type", XFA_Element::Type, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x2fe057e9, L"overprint", XFA_Element::Overprint, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x302aee16, L"certificates", XFA_Element::Certificates,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x30b227df, L"encryptionMethods", XFA_Element::EncryptionMethods,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x32b900d1, L"setProperty", XFA_Element::SetProperty,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x337d9e45, L"printerName", XFA_Element::PrinterName, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x33edda4b, L"startPage", XFA_Element::StartPage, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x381943e4, L"pageOffset", XFA_Element::PageOffset, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x382106cd, L"dateTime", XFA_Element::DateTime,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0x386e7421, L"comb", XFA_Element::Comb,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x390acd9e, L"pattern", XFA_Element::Pattern,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x3942163e, L"ifEmpty", XFA_Element::IfEmpty, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x39944a7b, L"suppressBanner", XFA_Element::SuppressBanner,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x3b3c3dca, L"outputBin", XFA_Element::OutputBin, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x3b8a4024, L"field", XFA_Element::Field,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x3c15352f, L"agent", XFA_Element::Agent, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x3d7e8668, L"outputXSL", XFA_Element::OutputXSL, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x3e1c91c5, L"adjustData", XFA_Element::AdjustData, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x3e7a9408, L"autoSave", XFA_Element::AutoSave, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x3ecead94, L"contentArea", XFA_Element::ContentArea,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x3ef334e3, L"eventPseudoModel", XFA_Element::EventPseudoModel,
- XFA_XDPPACKET_XDP, XFA_ObjectType::Object},
- {0x3fadaec0, L"wsdlAddress", XFA_Element::WsdlAddress,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
- {0x40623b5b, L"solid", XFA_Element::Solid,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x41f0bd76, L"dateTimeSymbols", XFA_Element::DateTimeSymbols,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
- {0x444e7523, L"encryptionLevel", XFA_Element::EncryptionLevel,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x4523af55, L"edge", XFA_Element::Edge,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x45d5e3c1, L"stipple", XFA_Element::Stipple,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x475e4e87, L"attributes", XFA_Element::Attributes, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x487a8c87, L"versionControl", XFA_Element::VersionControl,
- XFA_XDPPACKET_Config, XFA_ObjectType::Node},
- {0x48e5248c, L"meridiem", XFA_Element::Meridiem, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::ContentNode},
- {0x48f36719, L"exclGroup", XFA_Element::ExclGroup,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x4977356b, L"toolTip", XFA_Element::ToolTip,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0x499afecc, L"compress", XFA_Element::Compress, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x4a0c4948, L"reason", XFA_Element::Reason,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0x4bdcce13, L"execute", XFA_Element::Execute,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x4c56b216, L"contentCopy", XFA_Element::ContentCopy, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x4cc176d3, L"dateTimeEdit", XFA_Element::DateTimeEdit,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x4e1e39b6, L"config", XFA_Element::Config, XFA_XDPPACKET_Config,
- XFA_ObjectType::ModelNode},
- {0x4e2d6083, L"image", XFA_Element::Image,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0x4e814150, L"#xHTML", XFA_Element::SharpxHTML,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_SourceSet |
- XFA_XDPPACKET_Form,
- XFA_ObjectType::NodeV},
- {0x4f2388c1, L"numberOfCopies", XFA_Element::NumberOfCopies,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x4f512e30, L"behaviorOverride", XFA_Element::BehaviorOverride,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x4fdc3454, L"timeStamp", XFA_Element::TimeStamp,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x51d90546, L"month", XFA_Element::Month, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::ContentNode},
- {0x523437e4, L"viewerPreferences", XFA_Element::ViewerPreferences,
- XFA_XDPPACKET_Config, XFA_ObjectType::Node},
- {0x53abc1c6, L"scriptModel", XFA_Element::ScriptModel, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x54034c2f, L"decimal", XFA_Element::Decimal,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0x54202c9e, L"subform", XFA_Element::Subform,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x542c7300, L"select", XFA_Element::Select, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::TextNode},
- {0x5436d198, L"window", XFA_Element::Window, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x5473b6dc, L"localeSet", XFA_Element::LocaleSet,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ModelNode},
- {0x56ae179e, L"handler", XFA_Element::Handler,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0x5700bd5f, L"hostPseudoModel", XFA_Element::HostPseudoModel,
- XFA_XDPPACKET_XDP, XFA_ObjectType::Object},
- {0x570ce835, L"presence", XFA_Element::Presence, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x5779d65f, L"record", XFA_Element::Record, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x59c8f27d, L"embed", XFA_Element::Embed, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x5a50e9e6, L"version", XFA_Element::Version, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x5b8383df, L"command", XFA_Element::Command, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::Node},
- {0x5c43c6c3, L"copies", XFA_Element::Copies, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x5e0c2c49, L"staple", XFA_Element::Staple, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x5e5083dd, L"submitFormat", XFA_Element::SubmitFormat,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x5e8c5d20, L"boolean", XFA_Element::Boolean,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0x60490a85, L"message", XFA_Element::Message,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::Node},
- {0x60d4c8b1, L"output", XFA_Element::Output, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x61810081, L"psMap", XFA_Element::PsMap, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x62bd904b, L"excludeNS", XFA_Element::ExcludeNS, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x669d4f77, L"assist", XFA_Element::Assist,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x67334a1c, L"picture", XFA_Element::Picture,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0x67fe7334, L"traversal", XFA_Element::Traversal,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x6894589c, L"silentPrint", XFA_Element::SilentPrint, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x68a16bbd, L"webClient", XFA_Element::WebClient, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x69f115df, L"layoutPseudoModel", XFA_Element::LayoutPseudoModel,
- XFA_XDPPACKET_XDP, XFA_ObjectType::Object},
- {0x6a4bc084, L"producer", XFA_Element::Producer, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x6a9e04c9, L"corner", XFA_Element::Corner,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x6ccd7274, L"msgId", XFA_Element::MsgId, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x6e67921f, L"color", XFA_Element::Color,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x6ec217a5, L"keep", XFA_Element::Keep,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x6eef1116, L"query", XFA_Element::Query, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::Node},
- {0x7033bfd5, L"insert", XFA_Element::Insert, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::TextNode},
- {0x704af389, L"imageEdit", XFA_Element::ImageEdit,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x7233018a, L"validate", XFA_Element::Validate,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0x72ba47b4, L"digestMethods", XFA_Element::DigestMethods,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x72f2aa7a, L"numberPatterns", XFA_Element::NumberPatterns,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0x74caed29, L"pageSet", XFA_Element::PageSet,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x7568e6ae, L"integer", XFA_Element::Integer,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0x76182db9, L"soapAddress", XFA_Element::SoapAddress,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
- {0x773146c5, L"equate", XFA_Element::Equate, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x77d449dd, L"formFieldFilling", XFA_Element::FormFieldFilling,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x7889d68a, L"pageRange", XFA_Element::PageRange, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x7baca2e3, L"update", XFA_Element::Update, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::TextNode},
- {0x7ce89001, L"connectString", XFA_Element::ConnectString,
- XFA_XDPPACKET_SourceSet, XFA_ObjectType::TextNode},
- {0x7d9fd7c5, L"mode", XFA_Element::Mode, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x7e7e845e, L"layout", XFA_Element::Layout, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x7e845c34, L"#xml", XFA_Element::Sharpxml,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeV},
- {0x7fb341df, L"xsdConnection", XFA_Element::XsdConnection,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
- {0x7ffb51cc, L"traverse", XFA_Element::Traverse,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x80203b5a, L"encodings", XFA_Element::Encodings,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x803550fc, L"template", XFA_Element::Template,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ModelNode},
- {0x803d5bbc, L"acrobat", XFA_Element::Acrobat, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0x821d6569, L"validationMessaging", XFA_Element::ValidationMessaging,
- XFA_XDPPACKET_Config, XFA_ObjectType::NodeV},
- {0x830e688f, L"signing", XFA_Element::Signing,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x83a550d2, L"dataWindow", XFA_Element::DataWindow, XFA_XDPPACKET_Datasets,
- XFA_ObjectType::Object},
- {0x83dab9f5, L"script", XFA_Element::Script,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0x8411ebcd, L"addViewerPreferences", XFA_Element::AddViewerPreferences,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x8777642e, L"alwaysEmbed", XFA_Element::AlwaysEmbed, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x877a6b39, L"passwordEdit", XFA_Element::PasswordEdit,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x87e84c99, L"numericEdit", XFA_Element::NumericEdit,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x8852cdec, L"encryptionMethod", XFA_Element::EncryptionMethod,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
- {0x891f4606, L"change", XFA_Element::Change, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x89939f36, L"pageArea", XFA_Element::PageArea,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0x8a9d6247, L"submitUrl", XFA_Element::SubmitUrl, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0x8ad8b90f, L"oids", XFA_Element::Oids,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x8b036f32, L"signature", XFA_Element::Signature,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x8b128efb, L"ADBE_JSConsole", XFA_Element::ADBE_JSConsole,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0x8bcfe96e, L"caption", XFA_Element::Caption,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x8e1c2921, L"relevant", XFA_Element::Relevant, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x8e3f0a4b, L"flipLabel", XFA_Element::FlipLabel, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0x900280b7, L"exData", XFA_Element::ExData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0x91e80352, L"dayNames", XFA_Element::DayNames, XFA_XDPPACKET_LocaleSet,
- XFA_ObjectType::Node},
- {0x93113b11, L"soapAction", XFA_Element::SoapAction,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
- {0x938b09f6, L"defaultTypeface", XFA_Element::DefaultTypeface,
- XFA_XDPPACKET_Config, XFA_ObjectType::NodeV},
- {0x95b37897, L"manifest", XFA_Element::Manifest,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x97b76b54, L"overflow", XFA_Element::Overflow,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x9a57861b, L"linear", XFA_Element::Linear,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0x9ad5a821, L"currencySymbol", XFA_Element::CurrencySymbol,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
- {0x9c6471b3, L"delete", XFA_Element::Delete, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::TextNode},
- {0x9deea61d, L"deltas", XFA_Element::Deltas, XFA_XDPPACKET_Form,
- XFA_ObjectType::Object},
- {0x9e67de21, L"digestMethod", XFA_Element::DigestMethod,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
- {0x9f3e9510, L"instanceManager", XFA_Element::InstanceManager,
- XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xa0799892, L"equateRange", XFA_Element::EquateRange, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xa084a381, L"medium", XFA_Element::Medium,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xa1211b8b, L"textEdit", XFA_Element::TextEdit,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xa17008f0, L"templateCache", XFA_Element::TemplateCache,
- XFA_XDPPACKET_Config, XFA_ObjectType::Node},
- {0xa4f7b88f, L"compressObjectStream", XFA_Element::CompressObjectStream,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xa65f5d17, L"dataValue", XFA_Element::DataValue, XFA_XDPPACKET_Datasets,
- XFA_ObjectType::Node},
- {0xa6caaa89, L"accessibleContent", XFA_Element::AccessibleContent,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xa8c7d5e2, L"nodeList", XFA_Element::NodeList, XFA_XDPPACKET_XDP,
- XFA_ObjectType::NodeList},
- {0xa94cc00b, L"includeXDPContent", XFA_Element::IncludeXDPContent,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xa9b081a1, L"xmlConnection", XFA_Element::XmlConnection,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
- {0xab2a3b74, L"validateApprovalSignatures",
- XFA_Element::ValidateApprovalSignatures, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xab8c5a2b, L"signData", XFA_Element::SignData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xabaa2ceb, L"packets", XFA_Element::Packets, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xadba359c, L"datePattern", XFA_Element::DatePattern,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
- {0xae222b2b, L"duplexOption", XFA_Element::DuplexOption,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xb012effb, L"base", XFA_Element::Base, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xb0e5485d, L"bind", XFA_Element::Bind,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::Node},
- {0xb45d61b2, L"compression", XFA_Element::Compression, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xb563f0ff, L"user", XFA_Element::User, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::TextNode},
- {0xb5848ad5, L"rectangle", XFA_Element::Rectangle,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xb6dacb72, L"effectiveOutputPolicy", XFA_Element::EffectiveOutputPolicy,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
- {0xb7d7654d, L"ADBE_JSDebugger", XFA_Element::ADBE_JSDebugger,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xbab37f73, L"acrobat7", XFA_Element::Acrobat7, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xbc70081e, L"interactive", XFA_Element::Interactive, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xbc8fa350, L"locale", XFA_Element::Locale,
- XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0xbcd44940, L"currentPage", XFA_Element::CurrentPage, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xbde9abda, L"data", XFA_Element::Data, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xbde9abde, L"date", XFA_Element::Date,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0xbe52dfbf, L"desc", XFA_Element::Desc,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xbf4b6405, L"encrypt", XFA_Element::Encrypt,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContentNode},
- {0xbfa87cce, L"draw", XFA_Element::Draw,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0xc181ff4b, L"encryption", XFA_Element::Encryption, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xc1970f40, L"meridiemNames", XFA_Element::MeridiemNames,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0xc5ad9f5e, L"messaging", XFA_Element::Messaging, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xc69549f4, L"speak", XFA_Element::Speak,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0xc7743dc7, L"dataGroup", XFA_Element::DataGroup, XFA_XDPPACKET_Datasets,
- XFA_ObjectType::Node},
- {0xc7eb20e9, L"common", XFA_Element::Common, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xc85d4528, L"#text", XFA_Element::Sharptext,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_LocaleSet |
- XFA_XDPPACKET_ConnectionSet | XFA_XDPPACKET_SourceSet |
- XFA_XDPPACKET_Form,
- XFA_ObjectType::NodeV},
- {0xc861556a, L"paginationOverride", XFA_Element::PaginationOverride,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xc903dabb, L"reasons", XFA_Element::Reasons,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xc9a8127f, L"signatureProperties", XFA_Element::SignatureProperties,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xca010c2d, L"threshold", XFA_Element::Threshold, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xcb4c5e96, L"appearanceFilter", XFA_Element::AppearanceFilter,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
- {0xcc92aba7, L"fill", XFA_Element::Fill,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xcd308b77, L"font", XFA_Element::Font,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Config | XFA_XDPPACKET_Form,
- XFA_ObjectType::Node},
- {0xcd309ff4, L"form", XFA_Element::Form, XFA_XDPPACKET_Form,
- XFA_ObjectType::ModelNode},
- {0xcebcca2d, L"mediumInfo", XFA_Element::MediumInfo, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xcfe0d643, L"certificate", XFA_Element::Certificate,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::TextNode},
- {0xd012c033, L"password", XFA_Element::Password, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::TextNode},
- {0xd01604bd, L"runScripts", XFA_Element::RunScripts, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xd1227e6f, L"trace", XFA_Element::Trace, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xd1532876, L"float", XFA_Element::Float,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0xd17a6c30, L"renderPolicy", XFA_Element::RenderPolicy,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xd4bf6823, L"logPseudoModel", XFA_Element::LogPseudoModel,
- XFA_XDPPACKET_XDP, XFA_ObjectType::Object},
- {0xd58aa962, L"destination", XFA_Element::Destination, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xd6e27f1d, L"value", XFA_Element::Value,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xd7a14462, L"bookend", XFA_Element::Bookend,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xd8c31254, L"exObject", XFA_Element::ExObject,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xda6a8590, L"openAction", XFA_Element::OpenAction, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xdab4fb7d, L"neverEmbed", XFA_Element::NeverEmbed, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xdb98475f, L"bindItems", XFA_Element::BindItems,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xdbfbe02e, L"calculate", XFA_Element::Calculate,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xdd7676ed, L"print", XFA_Element::Print, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xdde273d7, L"extras", XFA_Element::Extras,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::Node},
- {0xde146b34, L"proto", XFA_Element::Proto,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xdf059321, L"dSigData", XFA_Element::DSigData,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xdfccf030, L"creator", XFA_Element::Creator, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xdff78c6a, L"connect", XFA_Element::Connect,
- XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::Node},
- {0xe11a2cbc, L"permissions", XFA_Element::Permissions, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xe14c801c, L"connectionSet", XFA_Element::ConnectionSet,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::ModelNode},
- {0xe1c83a14, L"submit", XFA_Element::Submit,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xe29821cd, L"range", XFA_Element::Range, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xe38d83c7, L"linearized", XFA_Element::Linearized, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xe3aa2578, L"packet", XFA_Element::Packet, XFA_XDPPACKET_XDP,
- XFA_ObjectType::NodeC},
- {0xe3aa860e, L"rootElement", XFA_Element::RootElement,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::TextNode},
- {0xe3e553fa, L"plaintextMetadata", XFA_Element::PlaintextMetadata,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xe3e6e4f2, L"numberSymbols", XFA_Element::NumberSymbols,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0xe3f067f6, L"printHighQuality", XFA_Element::PrintHighQuality,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xe3fd078c, L"driver", XFA_Element::Driver, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xe48b34f2, L"incrementalLoad", XFA_Element::IncrementalLoad,
- XFA_XDPPACKET_Config, XFA_ObjectType::NodeV},
- {0xe550e7c2, L"subjectDN", XFA_Element::SubjectDN,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::NodeC},
- {0xe6669a78, L"compressLogicalStructure",
- XFA_Element::CompressLogicalStructure, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xe7a7ea02, L"incrementalMerge", XFA_Element::IncrementalMerge,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xe948530d, L"radial", XFA_Element::Radial,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xea8d6999, L"variables", XFA_Element::Variables,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form,
- XFA_ObjectType::ContainerNode},
- {0xeaa142c0, L"timePatterns", XFA_Element::TimePatterns,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0xeb943a71, L"effectiveInputPolicy", XFA_Element::EffectiveInputPolicy,
- XFA_XDPPACKET_ConnectionSet, XFA_ObjectType::Node},
- {0xef04a2bc, L"nameAttr", XFA_Element::NameAttr, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xf07222ab, L"conformance", XFA_Element::Conformance, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xf0aaaadc, L"transform", XFA_Element::Transform, XFA_XDPPACKET_Config,
- XFA_ObjectType::Node},
- {0xf1433e88, L"lockDocument", XFA_Element::LockDocument,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::ContentNode},
- {0xf54eb997, L"breakAfter", XFA_Element::BreakAfter,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xf616da28, L"line", XFA_Element::Line,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xf616f3dc, L"list", XFA_Element::List, XFA_XDPPACKET_XDP,
- XFA_ObjectType::List},
- {0xf7055fb1, L"source", XFA_Element::Source, XFA_XDPPACKET_SourceSet,
- XFA_ObjectType::Node},
- {0xf7eebe1c, L"occur", XFA_Element::Occur,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
- {0xf8d10d97, L"pickTrayByPDFSize", XFA_Element::PickTrayByPDFSize,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xf8f19e3a, L"monthNames", XFA_Element::MonthNames,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::Node},
- {0xf984149b, L"severity", XFA_Element::Severity, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xf9bcb037, L"groupParent", XFA_Element::GroupParent, XFA_XDPPACKET_Config,
- XFA_ObjectType::NodeV},
- {0xfbc42fff, L"documentAssembly", XFA_Element::DocumentAssembly,
- XFA_XDPPACKET_Config, XFA_ObjectType::ContentNode},
- {0xfc78159f, L"numberSymbol", XFA_Element::NumberSymbol,
- XFA_XDPPACKET_LocaleSet, XFA_ObjectType::ContentNode},
- {0xfcbd606c, L"tagged", XFA_Element::Tagged, XFA_XDPPACKET_Config,
- XFA_ObjectType::ContentNode},
- {0xff063802, L"items", XFA_Element::Items,
- XFA_XDPPACKET_Template | XFA_XDPPACKET_Form, XFA_ObjectType::Node},
-};
-const int32_t g_iXFAElementCount = FX_ArraySize(g_XFAElementData);
-static_assert(g_iXFAElementCount ==
- (static_cast<int32_t>(XFA_Element::Items) + 1),
- "g_XFAElementData size does not match XFA_Elements");
-
diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h
index 4de156922a..3c8b710e80 100644
--- a/xfa/fxfa/parser/xfa_basic_data.h
+++ b/xfa/fxfa/parser/xfa_basic_data.h
@@ -7,6 +7,8 @@
#ifndef XFA_FXFA_PARSER_XFA_BASIC_DATA_H_
#define XFA_FXFA_PARSER_XFA_BASIC_DATA_H_
+#include <map>
+
#include "xfa/fxfa/fxfa_basic.h"
extern const XFA_PACKETINFO g_XFAPacketData[];
@@ -21,15 +23,6 @@ extern const int32_t g_iXFAAttributeCount;
extern const XFA_NOTSUREATTRIBUTE g_XFANotsureAttributes[];
extern const int32_t g_iXFANotsureCount;
-extern const XFA_ELEMENTINFO g_XFAElementData[];
-extern const int32_t g_iXFAElementCount;
-
-extern const XFA_ELEMENTHIERARCHY g_XFAElementAttributeIndex[];
-extern const XFA_Attribute g_XFAElementAttributeData[];
-
-extern const XFA_ELEMENTHIERARCHY g_XFAElementPropertyIndex[];
-extern const XFA_PROPERTY g_XFAElementPropertyData[];
-
extern const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[];
extern const int32_t g_iScriptIndexCount;
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_attributes.cpp b/xfa/fxfa/parser/xfa_basic_data_element_attributes.cpp
deleted file mode 100644
index e560dd0a0d..0000000000
--- a/xfa/fxfa/parser/xfa_basic_data_element_attributes.cpp
+++ /dev/null
@@ -1,1188 +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"
-
-const XFA_ELEMENTHIERARCHY g_XFAElementAttributeIndex[] = {
- {0, 3}, {3, 2}, {5, 3}, {8, 10}, {18, 2}, {20, 6}, {26, 2},
- {28, 1}, {29, 13}, {42, 2}, {44, 1}, {45, 2}, {47, 2}, {49, 7},
- {56, 0}, {56, 4}, {60, 2}, {62, 7}, {69, 0}, {69, 0}, {69, 2},
- {71, 2}, {73, 8}, {81, 5}, {86, 8}, {94, 4}, {98, 3}, {101, 3},
- {104, 3}, {107, 6}, {113, 2}, {115, 2}, {117, 2}, {119, 2}, {121, 3},
- {124, 2}, {126, 7}, {133, 13}, {146, 2}, {148, 6}, {154, 2}, {156, 3},
- {159, 1}, {160, 17}, {177, 2}, {179, 2}, {181, 6}, {187, 2}, {189, 2},
- {191, 3}, {194, 7}, {201, 2}, {203, 3}, {206, 0}, {206, 21}, {227, 1},
- {228, 3}, {231, 2}, {233, 0}, {233, 2}, {235, 2}, {237, 6}, {243, 0},
- {243, 4}, {247, 4}, {251, 0}, {251, 2}, {253, 2}, {255, 0}, {255, 0},
- {255, 2}, {257, 2}, {259, 4}, {263, 3}, {266, 7}, {273, 10}, {283, 9},
- {292, 6}, {298, 4}, {302, 2}, {304, 2}, {306, 6}, {312, 4}, {316, 3},
- {319, 2}, {321, 2}, {323, 4}, {327, 4}, {331, 4}, {335, 4}, {339, 2},
- {341, 2}, {343, 2}, {345, 22}, {367, 3}, {370, 2}, {372, 2}, {374, 2},
- {376, 9}, {385, 0}, {385, 4}, {389, 3}, {392, 0}, {392, 2}, {394, 7},
- {401, 4}, {405, 2}, {407, 4}, {411, 0}, {411, 21}, {432, 4}, {436, 3},
- {439, 4}, {443, 6}, {449, 2}, {451, 5}, {456, 2}, {458, 8}, {466, 1},
- {467, 2}, {469, 2}, {471, 5}, {476, 0}, {476, 2}, {478, 2}, {480, 6},
- {486, 26}, {512, 4}, {516, 2}, {518, 2}, {520, 4}, {524, 0}, {524, 2},
- {526, 2}, {528, 2}, {530, 2}, {532, 5}, {537, 2}, {539, 3}, {542, 2},
- {544, 4}, {548, 5}, {553, 2}, {555, 0}, {555, 2}, {557, 4}, {561, 5},
- {566, 3}, {569, 2}, {571, 3}, {574, 0}, {574, 2}, {576, 9}, {585, 2},
- {587, 5}, {592, 6}, {598, 5}, {603, 4}, {607, 4}, {611, 8}, {619, 4},
- {623, 0}, {623, 7}, {630, 4}, {634, 4}, {638, 5}, {643, 2}, {645, 2},
- {647, 4}, {651, 4}, {655, 2}, {657, 2}, {659, 1}, {660, 2}, {662, 5},
- {667, 4}, {671, 3}, {674, 2}, {676, 2}, {678, 4}, {682, 0}, {682, 9},
- {691, 2}, {693, 2}, {695, 5}, {700, 4}, {704, 3}, {707, 2}, {709, 10},
- {719, 2}, {721, 4}, {725, 4}, {729, 2}, {731, 6}, {737, 2}, {739, 2},
- {741, 9}, {750, 1}, {751, 4}, {755, 3}, {758, 5}, {763, 6}, {769, 4},
- {773, 1}, {774, 4}, {778, 0}, {778, 3}, {781, 1}, {782, 5}, {787, 10},
- {797, 7}, {804, 3}, {807, 2}, {809, 5}, {814, 2}, {816, 0}, {816, 2},
- {818, 2}, {820, 2}, {822, 6}, {828, 2}, {830, 1}, {831, 2}, {833, 2},
- {835, 8}, {843, 2}, {845, 4}, {849, 4}, {853, 4}, {857, 2}, {859, 2},
- {861, 2}, {863, 3}, {866, 2}, {868, 2}, {870, 4}, {874, 3}, {877, 5},
- {882, 20}, {902, 2}, {904, 0}, {904, 2}, {906, 6}, {912, 1}, {913, 2},
- {915, 1}, {916, 2}, {918, 4}, {922, 2}, {924, 2}, {926, 4}, {930, 4},
- {934, 20}, {954, 1}, {955, 2}, {957, 4}, {961, 4}, {965, 2}, {967, 2},
- {969, 4}, {973, 2}, {975, 0}, {975, 2}, {977, 5}, {982, 5}, {987, 8},
- {995, 2}, {997, 2}, {999, 4}, {1003, 4}, {1007, 2}, {1009, 4}, {1013, 0},
- {1013, 1}, {1014, 2}, {1016, 9}, {1025, 2}, {1027, 0}, {1027, 8}, {1035, 2},
- {1037, 2}, {1039, 0}, {1039, 4}, {1043, 2}, {1045, 0}, {1045, 2}, {1047, 3},
- {1050, 2}, {1052, 5}, {1057, 2}, {1059, 2}, {1061, 4}, {1065, 3}, {1068, 0},
- {1068, 4}, {1072, 2}, {1074, 2}, {1076, 3}, {1079, 4}, {1083, 8}, {1091, 5},
- {1096, 0}, {1096, 4}, {1100, 6}, {1106, 2}, {1108, 1}, {1109, 2}, {1111, 2},
- {1113, 2}, {1115, 1}, {1116, 2}, {1118, 7},
-};
-static_assert(FX_ArraySize(g_XFAElementAttributeIndex) ==
- (static_cast<int32_t>(XFA_Element::Items) + 1),
- "gXFAElementAttributeIndex size does not match XFA_Element");
-
-const XFA_Attribute g_XFAElementAttributeData[] = {
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Relation,
- XFA_Attribute::Relevant,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::AllowNeutral,
- XFA_Attribute::Mark,
- XFA_Attribute::Shape,
- XFA_Attribute::Size,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::StartAngle,
- XFA_Attribute::SweepAngle,
- XFA_Attribute::Circular,
- XFA_Attribute::Usehref,
- XFA_Attribute::Hand,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Id,
- XFA_Attribute::Use,
- XFA_Attribute::SignatureType,
- XFA_Attribute::Usehref,
- XFA_Attribute::Permissions,
- 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::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::TimeStamp,
- XFA_Attribute::Uuid,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::LeftInset,
- XFA_Attribute::BottomInset,
- XFA_Attribute::TopInset,
- XFA_Attribute::RightInset,
- XFA_Attribute::Usehref,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Open,
- XFA_Attribute::CommitOn,
- XFA_Attribute::TextEntry,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Version,
- XFA_Attribute::Usehref,
- XFA_Attribute::AddRevocationInfo,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Ref,
- XFA_Attribute::Use,
- XFA_Attribute::Listen,
- XFA_Attribute::Usehref,
- XFA_Attribute::Activity,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- 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::Name,
- XFA_Attribute::Format,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Output,
- XFA_Attribute::Usehref,
- XFA_Attribute::Input,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Name,
- XFA_Attribute::DataDescription,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Highlight,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Break,
- XFA_Attribute::Use,
- XFA_Attribute::Presence,
- XFA_Attribute::Relevant,
- XFA_Attribute::Usehref,
- XFA_Attribute::Hand,
- 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::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::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Rid,
- XFA_Attribute::Use,
- XFA_Attribute::MaxChars,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Url,
- XFA_Attribute::Use,
- XFA_Attribute::CredentialServerPolicy,
- XFA_Attribute::Usehref,
- XFA_Attribute::UrlPolicy,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Ref,
- XFA_Attribute::Connection,
- XFA_Attribute::Target,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::X,
- XFA_Attribute::Y,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::NumberOfCells,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Cap,
- XFA_Attribute::Use,
- XFA_Attribute::Stroke,
- XFA_Attribute::Presence,
- XFA_Attribute::Thickness,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Rate,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::SourceBelow,
- XFA_Attribute::OutputBelow,
- XFA_Attribute::SourceAbove,
- XFA_Attribute::Lock,
- 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::Id,
- XFA_Attribute::Rid,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Scope,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Connection,
- XFA_Attribute::RunAt,
- XFA_Attribute::ExecuteType,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Picker,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Value,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Server,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::FracDigits,
- XFA_Attribute::Usehref,
- XFA_Attribute::LeadDigits,
- 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::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Timeout,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Mode,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Role,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::CSpace,
- XFA_Attribute::Usehref,
- XFA_Attribute::Value,
- XFA_Attribute::Id,
- XFA_Attribute::Next,
- XFA_Attribute::Use,
- XFA_Attribute::Previous,
- XFA_Attribute::Usehref,
- XFA_Attribute::Intact,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::CommandType,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Data,
- 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::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Relation,
- XFA_Attribute::Relevant,
- XFA_Attribute::DuplexImposition,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::To,
- XFA_Attribute::Force,
- XFA_Attribute::Desc,
- XFA_Attribute::From,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Value,
- XFA_Attribute::Name,
- XFA_Attribute::DataDescription,
- XFA_Attribute::Id,
- XFA_Attribute::Ref,
- XFA_Attribute::Use,
- XFA_Attribute::Operation,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::BaseProfile,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::PasswordChar,
- XFA_Attribute::Usehref,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Reserve,
- XFA_Attribute::Presence,
- XFA_Attribute::Usehref,
- XFA_Attribute::Placement,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Abbr,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::WritingScript,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Action,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Trailer,
- XFA_Attribute::Usehref,
- XFA_Attribute::Target,
- XFA_Attribute::Leader,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Name,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Name,
- XFA_Attribute::To,
- XFA_Attribute::UnicodeRange,
- XFA_Attribute::Desc,
- XFA_Attribute::From,
- XFA_Attribute::Lock,
- 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::Id,
- XFA_Attribute::VScrollPolicy,
- XFA_Attribute::Use,
- XFA_Attribute::AllowRichText,
- XFA_Attribute::MultiLine,
- XFA_Attribute::Usehref,
- XFA_Attribute::HScrollPolicy,
- XFA_Attribute::Desc,
- XFA_Attribute::MaxEntries,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::ContentType,
- XFA_Attribute::Contains,
- XFA_Attribute::Value,
- XFA_Attribute::IsNull,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::DataDescription,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Ref,
- XFA_Attribute::Use,
- XFA_Attribute::Operation,
- XFA_Attribute::Usehref,
- XFA_Attribute::Target,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Hand,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Rid,
- XFA_Attribute::Use,
- XFA_Attribute::Priority,
- XFA_Attribute::Usehref,
- XFA_Attribute::Disable,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Value,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Presence,
- XFA_Attribute::Usehref,
- 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::Checksum,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Relevant,
- XFA_Attribute::Usehref,
- XFA_Attribute::Override,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Trailer,
- XFA_Attribute::Usehref,
- XFA_Attribute::Leader,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Ref,
- XFA_Attribute::Connection,
- XFA_Attribute::LabelRef,
- XFA_Attribute::ValueRef,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Override,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Value,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- 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::Desc,
- XFA_Attribute::Lock,
- 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::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Delimiter,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Ref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Type,
- XFA_Attribute::Usehref,
- 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::Id,
- XFA_Attribute::Use,
- XFA_Attribute::Slope,
- XFA_Attribute::Usehref,
- XFA_Attribute::Hand,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Use,
- XFA_Attribute::Usehref,
- XFA_Attribute::Id,
- XFA_Attribute::Max,
- XFA_Attribute::Min,
- XFA_Attribute::Use,
- XFA_Attribute::Initial,
- XFA_Attribute::Usehref,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Abbr,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Name,
- XFA_Attribute::Desc,
- XFA_Attribute::Lock,
- XFA_Attribute::Id,
- XFA_Attribute::Name,
- XFA_Attribute::Ref,
- XFA_Attribute::Use,
- XFA_Attribute::Presence,
- XFA_Attribute::Save,
- XFA_Attribute::Usehref,
-};
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_properties.cpp b/xfa/fxfa/parser/xfa_basic_data_element_properties.cpp
deleted file mode 100644
index 1b47b033e8..0000000000
--- a/xfa/fxfa/parser/xfa_basic_data_element_properties.cpp
+++ /dev/null
@@ -1,487 +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"
-
-const XFA_ELEMENTHIERARCHY g_XFAElementPropertyIndex[] = {
- {0, 8}, {8, 0}, {8, 14}, {22, 0}, {22, 0}, {22, 6}, {28, 0},
- {28, 0}, {28, 1}, {29, 3}, {32, 0}, {32, 0}, {32, 0}, {32, 3},
- {35, 1}, {36, 0}, {36, 0}, {36, 2}, {38, 0}, {38, 0}, {38, 0},
- {38, 4}, {42, 0}, {42, 0}, {42, 1}, {43, 0}, {43, 8}, {51, 19},
- {70, 0}, {70, 0}, {70, 2}, {72, 1}, {73, 0}, {73, 2}, {75, 4},
- {79, 1}, {80, 1}, {81, 0}, {81, 0}, {81, 3}, {84, 0}, {84, 4},
- {88, 4}, {92, 1}, {93, 0}, {93, 4}, {97, 9}, {106, 14}, {120, 0},
- {120, 0}, {120, 5}, {125, 0}, {125, 1}, {126, 0}, {126, 0}, {126, 0},
- {126, 0}, {126, 0}, {126, 1}, {127, 0}, {127, 0}, {127, 0}, {127, 0},
- {127, 0}, {127, 0}, {127, 0}, {127, 6}, {133, 1}, {134, 0}, {134, 1},
- {135, 0}, {135, 0}, {135, 1}, {136, 2}, {138, 5}, {143, 2}, {145, 0},
- {145, 0}, {145, 0}, {145, 0}, {145, 0}, {145, 5}, {150, 0}, {150, 0},
- {150, 0}, {150, 0}, {150, 0}, {150, 0}, {150, 0}, {150, 2}, {152, 0},
- {152, 0}, {152, 0}, {152, 17}, {169, 0}, {169, 1}, {170, 0}, {170, 0},
- {170, 2}, {172, 0}, {172, 0}, {172, 1}, {173, 0}, {173, 0}, {173, 2},
- {175, 2}, {177, 0}, {177, 0}, {177, 0}, {177, 11}, {188, 0}, {188, 0},
- {188, 0}, {188, 0}, {188, 0}, {188, 4}, {192, 3}, {195, 0}, {195, 0},
- {195, 0}, {195, 0}, {195, 0}, {195, 0}, {195, 9}, {204, 0}, {204, 0},
- {204, 17}, {221, 0}, {221, 0}, {221, 0}, {221, 0}, {221, 0}, {221, 0},
- {221, 0}, {221, 0}, {221, 0}, {221, 4}, {225, 0}, {225, 0}, {225, 0},
- {225, 0}, {225, 2}, {227, 3}, {230, 0}, {230, 0}, {230, 2}, {232, 0},
- {232, 1}, {233, 2}, {235, 2}, {237, 0}, {237, 0}, {237, 2}, {239, 0},
- {239, 1}, {240, 1}, {241, 2}, {243, 0}, {243, 3}, {246, 4}, {250, 0},
- {250, 1}, {251, 2}, {253, 0}, {253, 0}, {253, 0}, {253, 0}, {253, 0},
- {253, 0}, {253, 0}, {253, 0}, {253, 0}, {253, 0}, {253, 2}, {255, 2},
- {257, 0}, {257, 6}, {263, 5}, {268, 0}, {268, 0}, {268, 0}, {268, 3},
- {271, 0}, {271, 0}, {271, 3}, {274, 4}, {278, 0}, {278, 0}, {278, 4},
- {282, 0}, {282, 0}, {282, 5}, {287, 0}, {287, 5}, {292, 0}, {292, 0},
- {292, 0}, {292, 1}, {293, 0}, {293, 0}, {293, 1}, {294, 0}, {294, 2},
- {296, 0}, {296, 0}, {296, 0}, {296, 0}, {296, 1}, {297, 0}, {297, 0},
- {297, 4}, {301, 0}, {301, 0}, {301, 0}, {301, 0}, {301, 0}, {301, 0},
- {301, 1}, {302, 0}, {302, 2}, {304, 0}, {304, 0}, {304, 0}, {304, 0},
- {304, 1}, {305, 4}, {309, 0}, {309, 3}, {312, 0}, {312, 0}, {312, 1},
- {313, 0}, {313, 8}, {321, 0}, {321, 10}, {331, 0}, {331, 10}, {341, 1},
- {342, 12}, {354, 3}, {357, 1}, {358, 0}, {358, 0}, {358, 0}, {358, 8},
- {366, 0}, {366, 0}, {366, 0}, {366, 0}, {366, 0}, {366, 0}, {366, 7},
- {373, 2}, {375, 0}, {375, 1}, {376, 0}, {376, 0}, {376, 0}, {376, 0},
- {376, 0}, {376, 0}, {376, 0}, {376, 0}, {376, 13}, {389, 0}, {389, 1},
- {390, 1}, {391, 0}, {391, 0}, {391, 3}, {394, 0}, {394, 0}, {394, 0},
- {394, 0}, {394, 0}, {394, 4}, {398, 9}, {407, 0}, {407, 1}, {408, 0},
- {408, 0}, {408, 0}, {408, 0}, {408, 0}, {408, 1}, {409, 0}, {409, 2},
- {411, 0}, {411, 0}, {411, 0}, {411, 0}, {411, 2}, {413, 0}, {413, 1},
- {414, 0}, {414, 0}, {414, 0}, {414, 7}, {421, 0}, {421, 1}, {422, 1},
- {423, 0}, {423, 1}, {424, 1}, {425, 0}, {425, 1}, {426, 0}, {426, 0},
- {426, 0}, {426, 0}, {426, 0}, {426, 0},
-};
-
-const XFA_PROPERTY g_XFAElementPropertyData[] = {
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Jog, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::BatchOutput, 1, 0},
- {XFA_Element::OutputBin, 1, 0},
- {XFA_Element::Compress, 1, 0},
- {XFA_Element::Staple, 1, 0},
- {XFA_Element::MediumInfo, 1, 0},
- {XFA_Element::CheckButton, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::ChoiceList, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::DefaultUi, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Barcode, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Button, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::DateTimeEdit, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Picture, 1, 0},
- {XFA_Element::ImageEdit, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::PasswordEdit, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::NumericEdit, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Signature, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::TextEdit, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::ExObject, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Break, 1, 0},
- {XFA_Element::Overflow, 1, 0},
- {XFA_Element::Desc, 1, 0},
- {XFA_Element::Bookend, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Occur, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::SubsetBelow, 1, 0},
- {XFA_Element::Map, 1, 0},
- {XFA_Element::Embed, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::DatePattern, 4, 0},
- {XFA_Element::Edge, 1, 0},
- {XFA_Element::Fill, 1, 0},
- {XFA_Element::To, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Mode, 1, 0},
- {XFA_Element::Threshold, 1, 0},
- {XFA_Element::Script, 1, 0},
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Jog, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::BatchOutput, 1, 0},
- {XFA_Element::PageOffset, 1, 0},
- {XFA_Element::OutputBin, 1, 0},
- {XFA_Element::Staple, 1, 0},
- {XFA_Element::MediumInfo, 1, 0},
- {XFA_Element::AdobeExtensionLevel, 1, 0},
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::Pdfa, 1, 0},
- {XFA_Element::BatchOutput, 1, 0},
- {XFA_Element::ViewerPreferences, 1, 0},
- {XFA_Element::ScriptModel, 1, 0},
- {XFA_Element::Version, 1, 0},
- {XFA_Element::SubmitFormat, 1, 0},
- {XFA_Element::SilentPrint, 1, 0},
- {XFA_Element::Producer, 1, 0},
- {XFA_Element::Compression, 1, 0},
- {XFA_Element::Interactive, 1, 0},
- {XFA_Element::Encryption, 1, 0},
- {XFA_Element::RenderPolicy, 1, 0},
- {XFA_Element::OpenAction, 1, 0},
- {XFA_Element::Creator, 1, 0},
- {XFA_Element::Linearized, 1, 0},
- {XFA_Element::Tagged, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Xsl, 1, 0},
- {XFA_Element::Packets, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Debug, 1, 0},
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::BatchOutput, 1, 0},
- {XFA_Element::FlipLabel, 1, 0},
- {XFA_Element::TemplateCache, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::BatchOutput, 1, 0},
- {XFA_Element::FlipLabel, 1, 0},
- {XFA_Element::EraNames, 1, 0},
- {XFA_Element::DayNames, 2, 0},
- {XFA_Element::MeridiemNames, 1, 0},
- {XFA_Element::MonthNames, 2, 0},
- {XFA_Element::Hyphenation, 1, 0},
- {XFA_Element::Amd, 1, 0},
- {XFA_Element::Part, 1, 0},
- {XFA_Element::IncludeXDPContent, 1, 0},
- {XFA_Element::Conformance, 1, 0},
- {XFA_Element::Mdp, 1, 0},
- {XFA_Element::Certificates, 1, 0},
- {XFA_Element::TimeStamp, 1, 0},
- {XFA_Element::Handler, 1, 0},
- {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::Xdp, 1, 0},
- {XFA_Element::Cache, 1, 0},
- {XFA_Element::Pagination, 1, 0},
- {XFA_Element::Overprint, 1, 0},
- {XFA_Element::BehaviorOverride, 1, 0},
- {XFA_Element::Copies, 1, 0},
- {XFA_Element::Output, 1, 0},
- {XFA_Element::Validate, 1, 0},
- {XFA_Element::Layout, 1, 0},
- {XFA_Element::Script, 1, 0},
- {XFA_Element::Common, 1, 0},
- {XFA_Element::PaginationOverride, 1, 0},
- {XFA_Element::Destination, 1, 0},
- {XFA_Element::IncrementalMerge, 1, 0},
- {XFA_Element::Execute, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Script, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::SignData, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Submit, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::CurrencySymbol, 3, 0},
- {XFA_Element::Operation, 1, 0},
- {XFA_Element::WsdlAddress, 1, 0},
- {XFA_Element::SoapAddress, 1, 0},
- {XFA_Element::SoapAction, 1, 0},
- {XFA_Element::EffectiveOutputPolicy, 1, 0},
- {XFA_Element::EffectiveInputPolicy, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Era, 2, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Picture, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {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::Desc, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {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::Color, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Ui, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Para, 1, 0},
- {XFA_Element::Format, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Assist, 1, 0},
- {XFA_Element::Traversal, 1, 0},
- {XFA_Element::Keep, 1, 0},
- {XFA_Element::Validate, 1, 0},
- {XFA_Element::Caption, 1, 0},
- {XFA_Element::Bind, 1, 0},
- {XFA_Element::Desc, 1, 0},
- {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::Uri, 1, 0},
- {XFA_Element::Desc, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Color, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Color, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Para, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Assist, 1, 0},
- {XFA_Element::Traversal, 1, 0},
- {XFA_Element::Validate, 1, 0},
- {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::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Comb, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Present, 1, 0},
- {XFA_Element::Acrobat, 1, 0},
- {XFA_Element::Trace, 1, 0},
- {XFA_Element::PrintScaling, 1, 0},
- {XFA_Element::Enforce, 1, 0},
- {XFA_Element::NumberOfCopies, 1, 0},
- {XFA_Element::PageRange, 1, 0},
- {XFA_Element::AddViewerPreferences, 1, 0},
- {XFA_Element::ADBE_JSConsole, 1, 0},
- {XFA_Element::DuplexOption, 1, 0},
- {XFA_Element::ADBE_JSDebugger, 1, 0},
- {XFA_Element::PickTrayByPDFSize, 1, 0},
- {XFA_Element::Break, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Para, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Assist, 1, 0},
- {XFA_Element::Traversal, 1, 0},
- {XFA_Element::Keep, 1, 0},
- {XFA_Element::Validate, 1, 0},
- {XFA_Element::PageSet, 1, 0},
- {XFA_Element::Overflow, 1, 0},
- {XFA_Element::Bind, 1, 0},
- {XFA_Element::Desc, 1, 0},
- {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::Query, 1, 0},
- {XFA_Element::Insert, 1, 0},
- {XFA_Element::Update, 1, 0},
- {XFA_Element::Delete, 1, 0},
- {XFA_Element::MsgId, 1, 0},
- {XFA_Element::Severity, 1, 0},
- {XFA_Element::To, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Type, 1, 0},
- {XFA_Element::ToolTip, 1, 0},
- {XFA_Element::Speak, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::AddSilentPrint, 1, 0},
- {XFA_Element::PrinterName, 1, 0},
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::Color, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::RecordSet, 1, 0},
- {XFA_Element::Select, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Message, 1, 0},
- {XFA_Element::Picture, 1, 0},
- {XFA_Element::Script, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::NumberPattern, 4, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Occur, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::RootElement, 1, 0},
- {XFA_Element::Script, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Xsl, 1, 0},
- {XFA_Element::StartPage, 1, 0},
- {XFA_Element::Relevant, 1, 0},
- {XFA_Element::Base, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::AutoSave, 1, 0},
- {XFA_Element::Validate, 1, 0},
- {XFA_Element::ValidateApprovalSignatures, 1, 0},
- {XFA_Element::Acrobat7, 1, 0},
- {XFA_Element::Common, 1, 0},
- {XFA_Element::Exclude, 1, 0},
- {XFA_Element::CurrentPage, 1, 0},
- {XFA_Element::RunScripts, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Comb, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Medium, 1, 0},
- {XFA_Element::Desc, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Occur, 1, 0},
- {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::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::Day, 7, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Color, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Occur, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Comb, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Filter, 1, 0},
- {XFA_Element::Manifest, 1, 0},
- {XFA_Element::Picture, 1, 0},
- {XFA_Element::Level, 1, 0},
- {XFA_Element::Type, 1, 0},
- {XFA_Element::CompressObjectStream, 1, 0},
- {XFA_Element::CompressLogicalStructure, 1, 0},
- {XFA_Element::Edge, 4, 0},
- {XFA_Element::Corner, 4, 0},
- {XFA_Element::Fill, 1, 0},
- {XFA_Element::DynamicRender, 1, 0},
- {XFA_Element::DatePatterns, 1, 0},
- {XFA_Element::CalendarSymbols, 1, 0},
- {XFA_Element::CurrencySymbols, 1, 0},
- {XFA_Element::Typefaces, 1, 0},
- {XFA_Element::DateTimeSymbols, 1, 0},
- {XFA_Element::NumberPatterns, 1, 0},
- {XFA_Element::NumberSymbols, 1, 0},
- {XFA_Element::TimePatterns, 1, 0},
- {XFA_Element::Uri, 1, 0},
- {XFA_Element::Xsl, 1, 0},
- {XFA_Element::StartNode, 1, 0},
- {XFA_Element::OutputXSL, 1, 0},
- {XFA_Element::AdjustData, 1, 0},
- {XFA_Element::Attributes, 1, 0},
- {XFA_Element::Window, 1, 0},
- {XFA_Element::Record, 1, 0},
- {XFA_Element::Range, 1, 0},
- {XFA_Element::IncrementalLoad, 1, 0},
- {XFA_Element::Text, 1, 0},
- {XFA_Element::Time, 1, 0},
- {XFA_Element::DateTime, 1, 0},
- {XFA_Element::Image, 1, 0},
- {XFA_Element::Decimal, 1, 0},
- {XFA_Element::Boolean, 1, 0},
- {XFA_Element::Integer, 1, 0},
- {XFA_Element::ExData, 1, 0},
- {XFA_Element::Date, 1, 0},
- {XFA_Element::Float, 1, 0},
- {XFA_Element::Certificate, 1, 0},
- {XFA_Element::Ui, 1, 0},
- {XFA_Element::Margin, 1, 0},
- {XFA_Element::Para, 1, 0},
- {XFA_Element::Border, 1, 0},
- {XFA_Element::Assist, 1, 0},
- {XFA_Element::Traversal, 1, 0},
- {XFA_Element::Keep, 1, 0},
- {XFA_Element::Caption, 1, 0},
- {XFA_Element::Desc, 1, 0},
- {XFA_Element::Font, 1, 0},
- {XFA_Element::Value, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::EncryptionLevel, 1, 0},
- {XFA_Element::Encrypt, 1, 0},
- {XFA_Element::Permissions, 1, 0},
- {XFA_Element::Meridiem, 2, 0},
- {XFA_Element::SuppressBanner, 1, 0},
- {XFA_Element::VersionControl, 1, 0},
- {XFA_Element::LocaleSet, 1, 0},
- {XFA_Element::Template, 1, 0},
- {XFA_Element::ValidationMessaging, 1, 0},
- {XFA_Element::Locale, 1, 0},
- {XFA_Element::Data, 1, 0},
- {XFA_Element::Messaging, 1, 0},
- {XFA_Element::Pattern, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Solid, 1,
- XFA_PROPERTYFLAG_OneOf | XFA_PROPERTYFLAG_DefaultOneOf},
- {XFA_Element::Stipple, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Color, 1, 0},
- {XFA_Element::Linear, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Radial, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Fill, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Map, 1, 0},
- {XFA_Element::Arc, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Text, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Time, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::DateTime, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Image, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Decimal, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Boolean, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Integer, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::ExData, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Rectangle, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Date, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Float, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Line, 1, XFA_PROPERTYFLAG_OneOf},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Destination, 1, 0},
- {XFA_Element::Message, 1, 0},
- {XFA_Element::Script, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Picture, 1, 0},
- {XFA_Element::ConnectString, 1, 0},
- {XFA_Element::User, 1, 0},
- {XFA_Element::Password, 1, 0},
- {XFA_Element::ModifyAnnots, 1, 0},
- {XFA_Element::ContentCopy, 1, 0},
- {XFA_Element::FormFieldFilling, 1, 0},
- {XFA_Element::Change, 1, 0},
- {XFA_Element::AccessibleContent, 1, 0},
- {XFA_Element::Print, 1, 0},
- {XFA_Element::PlaintextMetadata, 1, 0},
- {XFA_Element::PrintHighQuality, 1, 0},
- {XFA_Element::DocumentAssembly, 1, 0},
- {XFA_Element::Encrypt, 1, 0},
- {XFA_Element::NumberSymbol, 5, 0},
- {XFA_Element::FontInfo, 1, 0},
- {XFA_Element::Xdc, 1, 0},
- {XFA_Element::Color, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::TimePattern, 4, 0},
- {XFA_Element::Whitespace, 1, 0},
- {XFA_Element::Rename, 1, 0},
- {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::Script, 1, 0},
- {XFA_Element::Edge, 1, 0},
- {XFA_Element::Connect, 1, 0},
- {XFA_Element::Extras, 1, 0},
- {XFA_Element::Month, 12, 0},
-};
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp
index 588246fc55..b17a7535eb 100644
--- a/xfa/fxfa/parser/xfa_utils.cpp
+++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -243,72 +243,6 @@ const XFA_NOTSUREATTRIBUTE* XFA_GetNotsureAttribute(XFA_Element eElement,
return nullptr;
}
-const XFA_PROPERTY* XFA_GetPropertyOfElement(XFA_Element eElement,
- XFA_Element eProperty,
- uint32_t dwPacket) {
- int32_t iCount = 0;
- const XFA_PROPERTY* pProperties = XFA_GetElementProperties(eElement, iCount);
- if (!pProperties || iCount < 1)
- return nullptr;
-
- auto* it = std::find_if(pProperties, pProperties + iCount,
- [eProperty](const XFA_PROPERTY& prop) {
- return prop.eName == eProperty;
- });
- if (it == pProperties + iCount)
- return nullptr;
-
- const XFA_ELEMENTINFO* pInfo = XFA_GetElementByID(eProperty);
- ASSERT(pInfo);
- if (dwPacket != XFA_XDPPACKET_UNKNOWN && !(dwPacket & pInfo->dwPackets))
- return nullptr;
- return it;
-}
-
-const XFA_PROPERTY* XFA_GetElementProperties(XFA_Element eElement,
- int32_t& iCount) {
- if (eElement == XFA_Element::Unknown)
- return nullptr;
-
- const XFA_ELEMENTHIERARCHY* pElement =
- g_XFAElementPropertyIndex + static_cast<int32_t>(eElement);
- iCount = pElement->wCount;
- return g_XFAElementPropertyData + pElement->wStart;
-}
-
-const XFA_Attribute* XFA_GetElementAttributes(XFA_Element eElement,
- int32_t& iCount) {
- if (eElement == XFA_Element::Unknown)
- return nullptr;
-
- const XFA_ELEMENTHIERARCHY* pElement =
- g_XFAElementAttributeIndex + static_cast<int32_t>(eElement);
- iCount = pElement->wCount;
- return g_XFAElementAttributeData + pElement->wStart;
-}
-
-const XFA_ELEMENTINFO* XFA_GetElementByID(XFA_Element eName) {
- return eName != XFA_Element::Unknown
- ? g_XFAElementData + static_cast<int32_t>(eName)
- : nullptr;
-}
-
-XFA_Element XFA_GetElementTypeForName(const WideStringView& wsName) {
- if (wsName.IsEmpty())
- return XFA_Element::Unknown;
-
- uint32_t uHash = FX_HashCode_GetW(wsName, false);
- const XFA_ELEMENTINFO* pEnd = g_XFAElementData + g_iXFAElementCount;
- auto* pInfo =
- std::lower_bound(g_XFAElementData, pEnd, uHash,
- [](const XFA_ELEMENTINFO& info, uint32_t hash) {
- return info.uHash < hash;
- });
- if (pInfo < pEnd && pInfo->uHash == uHash)
- return pInfo->eName;
- return XFA_Element::Unknown;
-}
-
bool XFA_GetAttributeDefaultValue(void*& pValue,
XFA_Element eElement,
XFA_Attribute eAttribute,
diff --git a/xfa/fxfa/parser/xfa_utils.h b/xfa/fxfa/parser/xfa_utils.h
index b00f7aace6..08092563e8 100644
--- a/xfa/fxfa/parser/xfa_utils.h
+++ b/xfa/fxfa/parser/xfa_utils.h
@@ -47,15 +47,8 @@ const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName(
XFA_Element eElement,
const WideStringView& wsAttributeName);
-const XFA_PROPERTY* XFA_GetPropertyOfElement(XFA_Element eElement,
- XFA_Element eProperty,
- uint32_t dwPacket);
-const XFA_PROPERTY* XFA_GetElementProperties(XFA_Element eElement,
- int32_t& iCount);
const XFA_Attribute* XFA_GetElementAttributes(XFA_Element eElement,
int32_t& iCount);
-const XFA_ELEMENTINFO* XFA_GetElementByID(XFA_Element eName);
-XFA_Element XFA_GetElementTypeForName(const WideStringView& wsName);
bool XFA_GetAttributeDefaultValue(void*& pValue,
XFA_Element eElement,
XFA_Attribute eAttribute,