1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "xfa/fxfa/parser/xfa_basic_data.h"
8 
9 #include "xfa/fxfa/fxfa_basic.h"
10 
11 const XFA_ELEMENTHIERARCHY g_XFAElementPropertyIndex[] = {
12     {0, 8},    {8, 0},   {8, 14},   {22, 0},   {22, 0},   {22, 6},   {28, 0},
13     {28, 0},   {28, 1},  {29, 3},   {32, 0},   {32, 0},   {32, 0},   {32, 3},
14     {35, 1},   {36, 0},  {36, 0},   {36, 2},   {38, 0},   {38, 0},   {38, 0},
15     {38, 4},   {42, 0},  {42, 0},   {42, 1},   {43, 0},   {43, 8},   {51, 19},
16     {70, 0},   {70, 0},  {70, 2},   {72, 1},   {73, 0},   {73, 2},   {75, 4},
17     {79, 1},   {80, 1},  {81, 0},   {81, 0},   {81, 3},   {84, 0},   {84, 4},
18     {88, 4},   {92, 1},  {93, 0},   {93, 4},   {97, 9},   {106, 14}, {120, 0},
19     {120, 0},  {120, 5}, {125, 0},  {125, 1},  {126, 0},  {126, 0},  {126, 0},
20     {126, 0},  {126, 0}, {126, 1},  {127, 0},  {127, 0},  {127, 0},  {127, 0},
21     {127, 0},  {127, 0}, {127, 0},  {127, 6},  {133, 1},  {134, 0},  {134, 1},
22     {135, 0},  {135, 0}, {135, 1},  {136, 2},  {138, 5},  {143, 2},  {145, 0},
23     {145, 0},  {145, 0}, {145, 0},  {145, 0},  {145, 5},  {150, 0},  {150, 0},
24     {150, 0},  {150, 0}, {150, 0},  {150, 0},  {150, 0},  {150, 2},  {152, 0},
25     {152, 0},  {152, 0}, {152, 17}, {169, 0},  {169, 1},  {170, 0},  {170, 0},
26     {170, 2},  {172, 0}, {172, 0},  {172, 1},  {173, 0},  {173, 0},  {173, 2},
27     {175, 2},  {177, 0}, {177, 0},  {177, 0},  {177, 11}, {188, 0},  {188, 0},
28     {188, 0},  {188, 0}, {188, 0},  {188, 4},  {192, 3},  {195, 0},  {195, 0},
29     {195, 0},  {195, 0}, {195, 0},  {195, 0},  {195, 9},  {204, 0},  {204, 0},
30     {204, 17}, {221, 0}, {221, 0},  {221, 0},  {221, 0},  {221, 0},  {221, 0},
31     {221, 0},  {221, 0}, {221, 0},  {221, 4},  {225, 0},  {225, 0},  {225, 0},
32     {225, 0},  {225, 2}, {227, 3},  {230, 0},  {230, 0},  {230, 2},  {232, 0},
33     {232, 1},  {233, 2}, {235, 2},  {237, 0},  {237, 0},  {237, 2},  {239, 0},
34     {239, 1},  {240, 1}, {241, 2},  {243, 0},  {243, 3},  {246, 4},  {250, 0},
35     {250, 1},  {251, 2}, {253, 0},  {253, 0},  {253, 0},  {253, 0},  {253, 0},
36     {253, 0},  {253, 0}, {253, 0},  {253, 0},  {253, 0},  {253, 2},  {255, 2},
37     {257, 0},  {257, 6}, {263, 5},  {268, 0},  {268, 0},  {268, 0},  {268, 3},
38     {271, 0},  {271, 0}, {271, 3},  {274, 4},  {278, 0},  {278, 0},  {278, 4},
39     {282, 0},  {282, 0}, {282, 5},  {287, 0},  {287, 5},  {292, 0},  {292, 0},
40     {292, 0},  {292, 1}, {293, 0},  {293, 0},  {293, 1},  {294, 0},  {294, 2},
41     {296, 0},  {296, 0}, {296, 0},  {296, 0},  {296, 1},  {297, 0},  {297, 0},
42     {297, 4},  {301, 0}, {301, 0},  {301, 0},  {301, 0},  {301, 0},  {301, 0},
43     {301, 1},  {302, 0}, {302, 2},  {304, 0},  {304, 0},  {304, 0},  {304, 0},
44     {304, 1},  {305, 4}, {309, 0},  {309, 3},  {312, 0},  {312, 0},  {312, 1},
45     {313, 0},  {313, 8}, {321, 0},  {321, 10}, {331, 0},  {331, 10}, {341, 1},
46     {342, 12}, {354, 3}, {357, 1},  {358, 0},  {358, 0},  {358, 0},  {358, 8},
47     {366, 0},  {366, 0}, {366, 0},  {366, 0},  {366, 0},  {366, 0},  {366, 7},
48     {373, 2},  {375, 0}, {375, 1},  {376, 0},  {376, 0},  {376, 0},  {376, 0},
49     {376, 0},  {376, 0}, {376, 0},  {376, 0},  {376, 13}, {389, 0},  {389, 1},
50     {390, 1},  {391, 0}, {391, 0},  {391, 3},  {394, 0},  {394, 0},  {394, 0},
51     {394, 0},  {394, 0}, {394, 4},  {398, 9},  {407, 0},  {407, 1},  {408, 0},
52     {408, 0},  {408, 0}, {408, 0},  {408, 0},  {408, 1},  {409, 0},  {409, 2},
53     {411, 0},  {411, 0}, {411, 0},  {411, 0},  {411, 2},  {413, 0},  {413, 1},
54     {414, 0},  {414, 0}, {414, 0},  {414, 7},  {421, 0},  {421, 1},  {422, 1},
55     {423, 0},  {423, 1}, {424, 1},  {425, 0},  {425, 1},  {426, 0},  {426, 0},
56     {426, 0},  {426, 0}, {426, 0},  {426, 0},
57 };
58 
59 const XFA_PROPERTY g_XFAElementPropertyData[] = {
60     {XFA_Element::FontInfo, 1, 0},
61     {XFA_Element::Jog, 1, 0},
62     {XFA_Element::Xdc, 1, 0},
63     {XFA_Element::BatchOutput, 1, 0},
64     {XFA_Element::OutputBin, 1, 0},
65     {XFA_Element::Compress, 1, 0},
66     {XFA_Element::Staple, 1, 0},
67     {XFA_Element::MediumInfo, 1, 0},
68     {XFA_Element::CheckButton, 1, XFA_PROPERTYFLAG_OneOf},
69     {XFA_Element::ChoiceList, 1, XFA_PROPERTYFLAG_OneOf},
70     {XFA_Element::DefaultUi, 1, XFA_PROPERTYFLAG_OneOf},
71     {XFA_Element::Barcode, 1, XFA_PROPERTYFLAG_OneOf},
72     {XFA_Element::Button, 1, XFA_PROPERTYFLAG_OneOf},
73     {XFA_Element::DateTimeEdit, 1, XFA_PROPERTYFLAG_OneOf},
74     {XFA_Element::Picture, 1, 0},
75     {XFA_Element::ImageEdit, 1, XFA_PROPERTYFLAG_OneOf},
76     {XFA_Element::PasswordEdit, 1, XFA_PROPERTYFLAG_OneOf},
77     {XFA_Element::NumericEdit, 1, XFA_PROPERTYFLAG_OneOf},
78     {XFA_Element::Signature, 1, XFA_PROPERTYFLAG_OneOf},
79     {XFA_Element::TextEdit, 1, XFA_PROPERTYFLAG_OneOf},
80     {XFA_Element::ExObject, 1, XFA_PROPERTYFLAG_OneOf},
81     {XFA_Element::Extras, 1, 0},
82     {XFA_Element::Break, 1, 0},
83     {XFA_Element::Overflow, 1, 0},
84     {XFA_Element::Desc, 1, 0},
85     {XFA_Element::Bookend, 1, 0},
86     {XFA_Element::Extras, 1, 0},
87     {XFA_Element::Occur, 1, 0},
88     {XFA_Element::Extras, 1, 0},
89     {XFA_Element::SubsetBelow, 1, 0},
90     {XFA_Element::Map, 1, 0},
91     {XFA_Element::Embed, 1, 0},
92     {XFA_Element::Margin, 1, 0},
93     {XFA_Element::Border, 1, 0},
94     {XFA_Element::Extras, 1, 0},
95     {XFA_Element::DatePattern, 4, 0},
96     {XFA_Element::Edge, 1, 0},
97     {XFA_Element::Fill, 1, 0},
98     {XFA_Element::To, 1, 0},
99     {XFA_Element::Uri, 1, 0},
100     {XFA_Element::Mode, 1, 0},
101     {XFA_Element::Threshold, 1, 0},
102     {XFA_Element::Script, 1, 0},
103     {XFA_Element::FontInfo, 1, 0},
104     {XFA_Element::Jog, 1, 0},
105     {XFA_Element::Xdc, 1, 0},
106     {XFA_Element::BatchOutput, 1, 0},
107     {XFA_Element::PageOffset, 1, 0},
108     {XFA_Element::OutputBin, 1, 0},
109     {XFA_Element::Staple, 1, 0},
110     {XFA_Element::MediumInfo, 1, 0},
111     {XFA_Element::AdobeExtensionLevel, 1, 0},
112     {XFA_Element::FontInfo, 1, 0},
113     {XFA_Element::Xdc, 1, 0},
114     {XFA_Element::Pdfa, 1, 0},
115     {XFA_Element::BatchOutput, 1, 0},
116     {XFA_Element::ViewerPreferences, 1, 0},
117     {XFA_Element::ScriptModel, 1, 0},
118     {XFA_Element::Version, 1, 0},
119     {XFA_Element::SubmitFormat, 1, 0},
120     {XFA_Element::SilentPrint, 1, 0},
121     {XFA_Element::Producer, 1, 0},
122     {XFA_Element::Compression, 1, 0},
123     {XFA_Element::Interactive, 1, 0},
124     {XFA_Element::Encryption, 1, 0},
125     {XFA_Element::RenderPolicy, 1, 0},
126     {XFA_Element::OpenAction, 1, 0},
127     {XFA_Element::Creator, 1, 0},
128     {XFA_Element::Linearized, 1, 0},
129     {XFA_Element::Tagged, 1, 0},
130     {XFA_Element::Uri, 1, 0},
131     {XFA_Element::Xsl, 1, 0},
132     {XFA_Element::Packets, 1, 0},
133     {XFA_Element::Uri, 1, 0},
134     {XFA_Element::Debug, 1, 0},
135     {XFA_Element::FontInfo, 1, 0},
136     {XFA_Element::Xdc, 1, 0},
137     {XFA_Element::BatchOutput, 1, 0},
138     {XFA_Element::FlipLabel, 1, 0},
139     {XFA_Element::TemplateCache, 1, 0},
140     {XFA_Element::Extras, 1, 0},
141     {XFA_Element::Margin, 1, 0},
142     {XFA_Element::Border, 1, 0},
143     {XFA_Element::Extras, 1, 0},
144     {XFA_Element::FontInfo, 1, 0},
145     {XFA_Element::Xdc, 1, 0},
146     {XFA_Element::BatchOutput, 1, 0},
147     {XFA_Element::FlipLabel, 1, 0},
148     {XFA_Element::EraNames, 1, 0},
149     {XFA_Element::DayNames, 2, 0},
150     {XFA_Element::MeridiemNames, 1, 0},
151     {XFA_Element::MonthNames, 2, 0},
152     {XFA_Element::Hyphenation, 1, 0},
153     {XFA_Element::Amd, 1, 0},
154     {XFA_Element::Part, 1, 0},
155     {XFA_Element::IncludeXDPContent, 1, 0},
156     {XFA_Element::Conformance, 1, 0},
157     {XFA_Element::Mdp, 1, 0},
158     {XFA_Element::Certificates, 1, 0},
159     {XFA_Element::TimeStamp, 1, 0},
160     {XFA_Element::Handler, 1, 0},
161     {XFA_Element::DigestMethods, 1, 0},
162     {XFA_Element::Encodings, 1, 0},
163     {XFA_Element::Reasons, 1, 0},
164     {XFA_Element::AppearanceFilter, 1, 0},
165     {XFA_Element::LockDocument, 1, 0},
166     {XFA_Element::Xdp, 1, 0},
167     {XFA_Element::Cache, 1, 0},
168     {XFA_Element::Pagination, 1, 0},
169     {XFA_Element::Overprint, 1, 0},
170     {XFA_Element::BehaviorOverride, 1, 0},
171     {XFA_Element::Copies, 1, 0},
172     {XFA_Element::Output, 1, 0},
173     {XFA_Element::Validate, 1, 0},
174     {XFA_Element::Layout, 1, 0},
175     {XFA_Element::Script, 1, 0},
176     {XFA_Element::Common, 1, 0},
177     {XFA_Element::PaginationOverride, 1, 0},
178     {XFA_Element::Destination, 1, 0},
179     {XFA_Element::IncrementalMerge, 1, 0},
180     {XFA_Element::Execute, 1, XFA_PROPERTYFLAG_OneOf},
181     {XFA_Element::Script, 1, XFA_PROPERTYFLAG_OneOf},
182     {XFA_Element::SignData, 1, XFA_PROPERTYFLAG_OneOf},
183     {XFA_Element::Extras, 1, 0},
184     {XFA_Element::Submit, 1, XFA_PROPERTYFLAG_OneOf},
185     {XFA_Element::Extras, 1, 0},
186     {XFA_Element::CurrencySymbol, 3, 0},
187     {XFA_Element::Operation, 1, 0},
188     {XFA_Element::WsdlAddress, 1, 0},
189     {XFA_Element::SoapAddress, 1, 0},
190     {XFA_Element::SoapAction, 1, 0},
191     {XFA_Element::EffectiveOutputPolicy, 1, 0},
192     {XFA_Element::EffectiveInputPolicy, 1, 0},
193     {XFA_Element::Uri, 1, 0},
194     {XFA_Element::Era, 2, 0},
195     {XFA_Element::Extras, 1, 0},
196     {XFA_Element::Picture, 1, 0},
197     {XFA_Element::Extras, 1, 0},
198     {XFA_Element::Margin, 1, 0},
199     {XFA_Element::Edge, 4, 0},
200     {XFA_Element::Corner, 4, 0},
201     {XFA_Element::Fill, 1, 0},
202     {XFA_Element::Extras, 1, 0},
203     {XFA_Element::Desc, 1, 0},
204     {XFA_Element::Extras, 1, 0},
205     {XFA_Element::KeyUsage, 1, 0},
206     {XFA_Element::SubjectDNs, 1, 0},
207     {XFA_Element::Issuers, 1, 0},
208     {XFA_Element::Signing, 1, 0},
209     {XFA_Element::Oids, 1, 0},
210     {XFA_Element::Color, 1, 0},
211     {XFA_Element::Extras, 1, 0},
212     {XFA_Element::Ui, 1, 0},
213     {XFA_Element::Margin, 1, 0},
214     {XFA_Element::Para, 1, 0},
215     {XFA_Element::Format, 1, 0},
216     {XFA_Element::Border, 1, 0},
217     {XFA_Element::Assist, 1, 0},
218     {XFA_Element::Traversal, 1, 0},
219     {XFA_Element::Keep, 1, 0},
220     {XFA_Element::Validate, 1, 0},
221     {XFA_Element::Caption, 1, 0},
222     {XFA_Element::Bind, 1, 0},
223     {XFA_Element::Desc, 1, 0},
224     {XFA_Element::Font, 1, 0},
225     {XFA_Element::Value, 1, 0},
226     {XFA_Element::Calculate, 1, 0},
227     {XFA_Element::Extras, 1, 0},
228     {XFA_Element::Items, 2, 0},
229     {XFA_Element::Uri, 1, 0},
230     {XFA_Element::Desc, 1, 0},
231     {XFA_Element::Extras, 1, 0},
232     {XFA_Element::Extras, 1, 0},
233     {XFA_Element::Color, 1, 0},
234     {XFA_Element::Extras, 1, 0},
235     {XFA_Element::Color, 1, 0},
236     {XFA_Element::Extras, 1, 0},
237     {XFA_Element::Margin, 1, 0},
238     {XFA_Element::Para, 1, 0},
239     {XFA_Element::Border, 1, 0},
240     {XFA_Element::Assist, 1, 0},
241     {XFA_Element::Traversal, 1, 0},
242     {XFA_Element::Validate, 1, 0},
243     {XFA_Element::Caption, 1, 0},
244     {XFA_Element::Bind, 1, 0},
245     {XFA_Element::Desc, 1, 0},
246     {XFA_Element::Calculate, 1, 0},
247     {XFA_Element::Extras, 1, 0},
248     {XFA_Element::Margin, 1, 0},
249     {XFA_Element::Border, 1, 0},
250     {XFA_Element::Comb, 1, 0},
251     {XFA_Element::Extras, 1, 0},
252     {XFA_Element::Present, 1, 0},
253     {XFA_Element::Acrobat, 1, 0},
254     {XFA_Element::Trace, 1, 0},
255     {XFA_Element::PrintScaling, 1, 0},
256     {XFA_Element::Enforce, 1, 0},
257     {XFA_Element::NumberOfCopies, 1, 0},
258     {XFA_Element::PageRange, 1, 0},
259     {XFA_Element::AddViewerPreferences, 1, 0},
260     {XFA_Element::ADBE_JSConsole, 1, 0},
261     {XFA_Element::DuplexOption, 1, 0},
262     {XFA_Element::ADBE_JSDebugger, 1, 0},
263     {XFA_Element::PickTrayByPDFSize, 1, 0},
264     {XFA_Element::Break, 1, 0},
265     {XFA_Element::Margin, 1, 0},
266     {XFA_Element::Para, 1, 0},
267     {XFA_Element::Border, 1, 0},
268     {XFA_Element::Assist, 1, 0},
269     {XFA_Element::Traversal, 1, 0},
270     {XFA_Element::Keep, 1, 0},
271     {XFA_Element::Validate, 1, 0},
272     {XFA_Element::PageSet, 1, 0},
273     {XFA_Element::Overflow, 1, 0},
274     {XFA_Element::Bind, 1, 0},
275     {XFA_Element::Desc, 1, 0},
276     {XFA_Element::Bookend, 1, 0},
277     {XFA_Element::Calculate, 1, 0},
278     {XFA_Element::Extras, 1, 0},
279     {XFA_Element::Variables, 1, 0},
280     {XFA_Element::Occur, 1, 0},
281     {XFA_Element::Query, 1, 0},
282     {XFA_Element::Insert, 1, 0},
283     {XFA_Element::Update, 1, 0},
284     {XFA_Element::Delete, 1, 0},
285     {XFA_Element::MsgId, 1, 0},
286     {XFA_Element::Severity, 1, 0},
287     {XFA_Element::To, 1, 0},
288     {XFA_Element::Uri, 1, 0},
289     {XFA_Element::Type, 1, 0},
290     {XFA_Element::ToolTip, 1, 0},
291     {XFA_Element::Speak, 1, 0},
292     {XFA_Element::Extras, 1, 0},
293     {XFA_Element::AddSilentPrint, 1, 0},
294     {XFA_Element::PrinterName, 1, 0},
295     {XFA_Element::FontInfo, 1, 0},
296     {XFA_Element::Xdc, 1, 0},
297     {XFA_Element::Color, 1, 0},
298     {XFA_Element::Extras, 1, 0},
299     {XFA_Element::Extras, 1, 0},
300     {XFA_Element::Extras, 1, 0},
301     {XFA_Element::RecordSet, 1, 0},
302     {XFA_Element::Select, 1, 0},
303     {XFA_Element::Margin, 1, 0},
304     {XFA_Element::Border, 1, 0},
305     {XFA_Element::Extras, 1, 0},
306     {XFA_Element::Message, 1, 0},
307     {XFA_Element::Picture, 1, 0},
308     {XFA_Element::Script, 1, 0},
309     {XFA_Element::Extras, 1, 0},
310     {XFA_Element::NumberPattern, 4, 0},
311     {XFA_Element::Extras, 1, 0},
312     {XFA_Element::Occur, 1, 0},
313     {XFA_Element::Uri, 1, 0},
314     {XFA_Element::RootElement, 1, 0},
315     {XFA_Element::Script, 1, 0},
316     {XFA_Element::Extras, 1, 0},
317     {XFA_Element::Uri, 1, 0},
318     {XFA_Element::Xsl, 1, 0},
319     {XFA_Element::StartPage, 1, 0},
320     {XFA_Element::Relevant, 1, 0},
321     {XFA_Element::Base, 1, 0},
322     {XFA_Element::Extras, 1, 0},
323     {XFA_Element::AutoSave, 1, 0},
324     {XFA_Element::Validate, 1, 0},
325     {XFA_Element::ValidateApprovalSignatures, 1, 0},
326     {XFA_Element::Acrobat7, 1, 0},
327     {XFA_Element::Common, 1, 0},
328     {XFA_Element::Exclude, 1, 0},
329     {XFA_Element::CurrentPage, 1, 0},
330     {XFA_Element::RunScripts, 1, 0},
331     {XFA_Element::Margin, 1, 0},
332     {XFA_Element::Border, 1, 0},
333     {XFA_Element::Extras, 1, 0},
334     {XFA_Element::Margin, 1, 0},
335     {XFA_Element::Border, 1, 0},
336     {XFA_Element::Comb, 1, 0},
337     {XFA_Element::Extras, 1, 0},
338     {XFA_Element::Medium, 1, 0},
339     {XFA_Element::Desc, 1, 0},
340     {XFA_Element::Extras, 1, 0},
341     {XFA_Element::Occur, 1, 0},
342     {XFA_Element::Margin, 1, 0},
343     {XFA_Element::Filter, 1, 0},
344     {XFA_Element::Border, 1, 0},
345     {XFA_Element::Manifest, 1, 0},
346     {XFA_Element::Extras, 1, 0},
347     {XFA_Element::Margin, 1, 0},
348     {XFA_Element::Para, 1, 0},
349     {XFA_Element::Font, 1, 0},
350     {XFA_Element::Value, 1, 0},
351     {XFA_Element::Extras, 1, 0},
352     {XFA_Element::Day, 7, 0},
353     {XFA_Element::Extras, 1, 0},
354     {XFA_Element::Color, 1, 0},
355     {XFA_Element::Extras, 1, 0},
356     {XFA_Element::Occur, 1, 0},
357     {XFA_Element::Margin, 1, 0},
358     {XFA_Element::Border, 1, 0},
359     {XFA_Element::Comb, 1, 0},
360     {XFA_Element::Extras, 1, 0},
361     {XFA_Element::Uri, 1, 0},
362     {XFA_Element::Filter, 1, 0},
363     {XFA_Element::Manifest, 1, 0},
364     {XFA_Element::Picture, 1, 0},
365     {XFA_Element::Level, 1, 0},
366     {XFA_Element::Type, 1, 0},
367     {XFA_Element::CompressObjectStream, 1, 0},
368     {XFA_Element::CompressLogicalStructure, 1, 0},
369     {XFA_Element::Edge, 4, 0},
370     {XFA_Element::Corner, 4, 0},
371     {XFA_Element::Fill, 1, 0},
372     {XFA_Element::DynamicRender, 1, 0},
373     {XFA_Element::DatePatterns, 1, 0},
374     {XFA_Element::CalendarSymbols, 1, 0},
375     {XFA_Element::CurrencySymbols, 1, 0},
376     {XFA_Element::Typefaces, 1, 0},
377     {XFA_Element::DateTimeSymbols, 1, 0},
378     {XFA_Element::NumberPatterns, 1, 0},
379     {XFA_Element::NumberSymbols, 1, 0},
380     {XFA_Element::TimePatterns, 1, 0},
381     {XFA_Element::Uri, 1, 0},
382     {XFA_Element::Xsl, 1, 0},
383     {XFA_Element::StartNode, 1, 0},
384     {XFA_Element::OutputXSL, 1, 0},
385     {XFA_Element::AdjustData, 1, 0},
386     {XFA_Element::Attributes, 1, 0},
387     {XFA_Element::Window, 1, 0},
388     {XFA_Element::Record, 1, 0},
389     {XFA_Element::Range, 1, 0},
390     {XFA_Element::IncrementalLoad, 1, 0},
391     {XFA_Element::Text, 1, 0},
392     {XFA_Element::Time, 1, 0},
393     {XFA_Element::DateTime, 1, 0},
394     {XFA_Element::Image, 1, 0},
395     {XFA_Element::Decimal, 1, 0},
396     {XFA_Element::Boolean, 1, 0},
397     {XFA_Element::Integer, 1, 0},
398     {XFA_Element::ExData, 1, 0},
399     {XFA_Element::Date, 1, 0},
400     {XFA_Element::Float, 1, 0},
401     {XFA_Element::Certificate, 1, 0},
402     {XFA_Element::Ui, 1, 0},
403     {XFA_Element::Margin, 1, 0},
404     {XFA_Element::Para, 1, 0},
405     {XFA_Element::Border, 1, 0},
406     {XFA_Element::Assist, 1, 0},
407     {XFA_Element::Traversal, 1, 0},
408     {XFA_Element::Keep, 1, 0},
409     {XFA_Element::Caption, 1, 0},
410     {XFA_Element::Desc, 1, 0},
411     {XFA_Element::Font, 1, 0},
412     {XFA_Element::Value, 1, 0},
413     {XFA_Element::Extras, 1, 0},
414     {XFA_Element::EncryptionLevel, 1, 0},
415     {XFA_Element::Encrypt, 1, 0},
416     {XFA_Element::Permissions, 1, 0},
417     {XFA_Element::Meridiem, 2, 0},
418     {XFA_Element::SuppressBanner, 1, 0},
419     {XFA_Element::VersionControl, 1, 0},
420     {XFA_Element::LocaleSet, 1, 0},
421     {XFA_Element::Template, 1, 0},
422     {XFA_Element::ValidationMessaging, 1, 0},
423     {XFA_Element::Locale, 1, 0},
424     {XFA_Element::Data, 1, 0},
425     {XFA_Element::Messaging, 1, 0},
426     {XFA_Element::Pattern, 1, XFA_PROPERTYFLAG_OneOf},
427     {XFA_Element::Solid, 1,
428      XFA_PROPERTYFLAG_OneOf | XFA_PROPERTYFLAG_DefaultOneOf},
429     {XFA_Element::Stipple, 1, XFA_PROPERTYFLAG_OneOf},
430     {XFA_Element::Color, 1, 0},
431     {XFA_Element::Linear, 1, XFA_PROPERTYFLAG_OneOf},
432     {XFA_Element::Extras, 1, 0},
433     {XFA_Element::Radial, 1, XFA_PROPERTYFLAG_OneOf},
434     {XFA_Element::Fill, 1, 0},
435     {XFA_Element::Extras, 1, 0},
436     {XFA_Element::Map, 1, 0},
437     {XFA_Element::Arc, 1, XFA_PROPERTYFLAG_OneOf},
438     {XFA_Element::Text, 1, XFA_PROPERTYFLAG_OneOf},
439     {XFA_Element::Time, 1, XFA_PROPERTYFLAG_OneOf},
440     {XFA_Element::DateTime, 1, XFA_PROPERTYFLAG_OneOf},
441     {XFA_Element::Image, 1, XFA_PROPERTYFLAG_OneOf},
442     {XFA_Element::Decimal, 1, XFA_PROPERTYFLAG_OneOf},
443     {XFA_Element::Boolean, 1, XFA_PROPERTYFLAG_OneOf},
444     {XFA_Element::Integer, 1, XFA_PROPERTYFLAG_OneOf},
445     {XFA_Element::ExData, 1, XFA_PROPERTYFLAG_OneOf},
446     {XFA_Element::Rectangle, 1, XFA_PROPERTYFLAG_OneOf},
447     {XFA_Element::Date, 1, XFA_PROPERTYFLAG_OneOf},
448     {XFA_Element::Float, 1, XFA_PROPERTYFLAG_OneOf},
449     {XFA_Element::Line, 1, XFA_PROPERTYFLAG_OneOf},
450     {XFA_Element::Extras, 1, 0},
451     {XFA_Element::Destination, 1, 0},
452     {XFA_Element::Message, 1, 0},
453     {XFA_Element::Script, 1, 0},
454     {XFA_Element::Extras, 1, 0},
455     {XFA_Element::Picture, 1, 0},
456     {XFA_Element::ConnectString, 1, 0},
457     {XFA_Element::User, 1, 0},
458     {XFA_Element::Password, 1, 0},
459     {XFA_Element::ModifyAnnots, 1, 0},
460     {XFA_Element::ContentCopy, 1, 0},
461     {XFA_Element::FormFieldFilling, 1, 0},
462     {XFA_Element::Change, 1, 0},
463     {XFA_Element::AccessibleContent, 1, 0},
464     {XFA_Element::Print, 1, 0},
465     {XFA_Element::PlaintextMetadata, 1, 0},
466     {XFA_Element::PrintHighQuality, 1, 0},
467     {XFA_Element::DocumentAssembly, 1, 0},
468     {XFA_Element::Encrypt, 1, 0},
469     {XFA_Element::NumberSymbol, 5, 0},
470     {XFA_Element::FontInfo, 1, 0},
471     {XFA_Element::Xdc, 1, 0},
472     {XFA_Element::Color, 1, 0},
473     {XFA_Element::Extras, 1, 0},
474     {XFA_Element::TimePattern, 4, 0},
475     {XFA_Element::Whitespace, 1, 0},
476     {XFA_Element::Rename, 1, 0},
477     {XFA_Element::IfEmpty, 1, 0},
478     {XFA_Element::Presence, 1, 0},
479     {XFA_Element::Picture, 1, 0},
480     {XFA_Element::NameAttr, 1, 0},
481     {XFA_Element::GroupParent, 1, 0},
482     {XFA_Element::Script, 1, 0},
483     {XFA_Element::Edge, 1, 0},
484     {XFA_Element::Connect, 1, 0},
485     {XFA_Element::Extras, 1, 0},
486     {XFA_Element::Month, 12, 0},
487 };
488