Skip to main content

ooxml_wml/
generated.rs

1// Generated from ECMA-376 RELAX NG schema.
2// Do not edit manually.
3
4use serde::{Deserialize, Serialize};
5
6/// XML namespace URIs used in this schema.
7pub mod ns {
8    /// Namespace prefix: o
9    pub const O: &str = "urn:schemas-microsoft-com:office:office";
10    /// Namespace prefix: s
11    pub const S: &str = "http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes";
12    /// Namespace prefix: v
13    pub const V: &str = "urn:schemas-microsoft-com:vml";
14    /// Namespace prefix: w10
15    pub const W10: &str = "urn:schemas-microsoft-com:office:word";
16    /// Namespace prefix: x
17    pub const X: &str = "urn:schemas-microsoft-com:office:excel";
18    /// Namespace prefix: r
19    pub const R: &str = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
20    /// Namespace prefix: m
21    pub const M: &str = "http://schemas.openxmlformats.org/officeDocument/2006/math";
22    /// Namespace prefix: sl
23    pub const SL: &str = "http://schemas.openxmlformats.org/schemaLibrary/2006/main";
24    /// Default namespace (prefix: w)
25    pub const W: &str = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
26    /// Namespace prefix: wp
27    pub const WP: &str = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
28}
29
30pub type Language = String;
31
32pub type HexColorRgb = Vec<u8>;
33
34pub type Panose = Vec<u8>;
35
36#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
37pub enum CalendarType {
38    #[serde(rename = "gregorian")]
39    Gregorian,
40    #[serde(rename = "gregorianUs")]
41    GregorianUs,
42    #[serde(rename = "gregorianMeFrench")]
43    GregorianMeFrench,
44    #[serde(rename = "gregorianArabic")]
45    GregorianArabic,
46    #[serde(rename = "hijri")]
47    Hijri,
48    #[serde(rename = "hebrew")]
49    Hebrew,
50    #[serde(rename = "taiwan")]
51    Taiwan,
52    #[serde(rename = "japan")]
53    Japan,
54    #[serde(rename = "thai")]
55    Thai,
56    #[serde(rename = "korea")]
57    Korea,
58    #[serde(rename = "saka")]
59    Saka,
60    #[serde(rename = "gregorianXlitEnglish")]
61    GregorianXlitEnglish,
62    #[serde(rename = "gregorianXlitFrench")]
63    GregorianXlitFrench,
64    #[serde(rename = "none")]
65    None,
66}
67
68impl std::fmt::Display for CalendarType {
69    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
70        match self {
71            Self::Gregorian => write!(f, "gregorian"),
72            Self::GregorianUs => write!(f, "gregorianUs"),
73            Self::GregorianMeFrench => write!(f, "gregorianMeFrench"),
74            Self::GregorianArabic => write!(f, "gregorianArabic"),
75            Self::Hijri => write!(f, "hijri"),
76            Self::Hebrew => write!(f, "hebrew"),
77            Self::Taiwan => write!(f, "taiwan"),
78            Self::Japan => write!(f, "japan"),
79            Self::Thai => write!(f, "thai"),
80            Self::Korea => write!(f, "korea"),
81            Self::Saka => write!(f, "saka"),
82            Self::GregorianXlitEnglish => write!(f, "gregorianXlitEnglish"),
83            Self::GregorianXlitFrench => write!(f, "gregorianXlitFrench"),
84            Self::None => write!(f, "none"),
85        }
86    }
87}
88
89impl std::str::FromStr for CalendarType {
90    type Err = String;
91
92    fn from_str(s: &str) -> Result<Self, Self::Err> {
93        match s {
94            "gregorian" => Ok(Self::Gregorian),
95            "gregorianUs" => Ok(Self::GregorianUs),
96            "gregorianMeFrench" => Ok(Self::GregorianMeFrench),
97            "gregorianArabic" => Ok(Self::GregorianArabic),
98            "hijri" => Ok(Self::Hijri),
99            "hebrew" => Ok(Self::Hebrew),
100            "taiwan" => Ok(Self::Taiwan),
101            "japan" => Ok(Self::Japan),
102            "thai" => Ok(Self::Thai),
103            "korea" => Ok(Self::Korea),
104            "saka" => Ok(Self::Saka),
105            "gregorianXlitEnglish" => Ok(Self::GregorianXlitEnglish),
106            "gregorianXlitFrench" => Ok(Self::GregorianXlitFrench),
107            "none" => Ok(Self::None),
108            _ => Err(format!("unknown CalendarType value: {}", s)),
109        }
110    }
111}
112
113#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
114pub enum STAlgClass {
115    #[serde(rename = "hash")]
116    Hash,
117    #[serde(rename = "custom")]
118    Custom,
119}
120
121impl std::fmt::Display for STAlgClass {
122    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
123        match self {
124            Self::Hash => write!(f, "hash"),
125            Self::Custom => write!(f, "custom"),
126        }
127    }
128}
129
130impl std::str::FromStr for STAlgClass {
131    type Err = String;
132
133    fn from_str(s: &str) -> Result<Self, Self::Err> {
134        match s {
135            "hash" => Ok(Self::Hash),
136            "custom" => Ok(Self::Custom),
137            _ => Err(format!("unknown STAlgClass value: {}", s)),
138        }
139    }
140}
141
142#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
143pub enum STCryptProv {
144    #[serde(rename = "rsaAES")]
145    RsaAES,
146    #[serde(rename = "rsaFull")]
147    RsaFull,
148    #[serde(rename = "custom")]
149    Custom,
150}
151
152impl std::fmt::Display for STCryptProv {
153    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
154        match self {
155            Self::RsaAES => write!(f, "rsaAES"),
156            Self::RsaFull => write!(f, "rsaFull"),
157            Self::Custom => write!(f, "custom"),
158        }
159    }
160}
161
162impl std::str::FromStr for STCryptProv {
163    type Err = String;
164
165    fn from_str(s: &str) -> Result<Self, Self::Err> {
166        match s {
167            "rsaAES" => Ok(Self::RsaAES),
168            "rsaFull" => Ok(Self::RsaFull),
169            "custom" => Ok(Self::Custom),
170            _ => Err(format!("unknown STCryptProv value: {}", s)),
171        }
172    }
173}
174
175#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
176pub enum STAlgType {
177    #[serde(rename = "typeAny")]
178    TypeAny,
179    #[serde(rename = "custom")]
180    Custom,
181}
182
183impl std::fmt::Display for STAlgType {
184    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
185        match self {
186            Self::TypeAny => write!(f, "typeAny"),
187            Self::Custom => write!(f, "custom"),
188        }
189    }
190}
191
192impl std::str::FromStr for STAlgType {
193    type Err = String;
194
195    fn from_str(s: &str) -> Result<Self, Self::Err> {
196        match s {
197            "typeAny" => Ok(Self::TypeAny),
198            "custom" => Ok(Self::Custom),
199            _ => Err(format!("unknown STAlgType value: {}", s)),
200        }
201    }
202}
203
204pub type STColorType = String;
205
206pub type Guid = String;
207
208pub type OnOff = String;
209
210#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
211pub enum STOnOff1 {
212    #[serde(rename = "on")]
213    On,
214    #[serde(rename = "off")]
215    Off,
216}
217
218impl std::fmt::Display for STOnOff1 {
219    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
220        match self {
221            Self::On => write!(f, "on"),
222            Self::Off => write!(f, "off"),
223        }
224    }
225}
226
227impl std::str::FromStr for STOnOff1 {
228    type Err = String;
229
230    fn from_str(s: &str) -> Result<Self, Self::Err> {
231        match s {
232            "on" => Ok(Self::On),
233            "off" => Ok(Self::Off),
234            _ => Err(format!("unknown STOnOff1 value: {}", s)),
235        }
236    }
237}
238
239pub type STString = String;
240
241pub type STXmlName = String;
242
243#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
244pub enum TrueFalse {
245    #[serde(rename = "t")]
246    T,
247    #[serde(rename = "f")]
248    F,
249    #[serde(rename = "true")]
250    True,
251    #[serde(rename = "false")]
252    False,
253}
254
255impl std::fmt::Display for TrueFalse {
256    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
257        match self {
258            Self::T => write!(f, "t"),
259            Self::F => write!(f, "f"),
260            Self::True => write!(f, "true"),
261            Self::False => write!(f, "false"),
262        }
263    }
264}
265
266impl std::str::FromStr for TrueFalse {
267    type Err = String;
268
269    fn from_str(s: &str) -> Result<Self, Self::Err> {
270        match s {
271            "t" => Ok(Self::T),
272            "f" => Ok(Self::F),
273            "true" => Ok(Self::True),
274            "false" => Ok(Self::False),
275            _ => Err(format!("unknown TrueFalse value: {}", s)),
276        }
277    }
278}
279
280#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
281pub enum STTrueFalseBlank {
282    #[serde(rename = "t")]
283    T,
284    #[serde(rename = "f")]
285    F,
286    #[serde(rename = "true")]
287    True,
288    #[serde(rename = "false")]
289    False,
290    #[serde(rename = "")]
291    Empty,
292}
293
294impl std::fmt::Display for STTrueFalseBlank {
295    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
296        match self {
297            Self::T => write!(f, "t"),
298            Self::F => write!(f, "f"),
299            Self::True => write!(f, "true"),
300            Self::False => write!(f, "false"),
301            Self::Empty => write!(f, ""),
302        }
303    }
304}
305
306impl std::str::FromStr for STTrueFalseBlank {
307    type Err = String;
308
309    fn from_str(s: &str) -> Result<Self, Self::Err> {
310        match s {
311            "t" => Ok(Self::T),
312            "f" => Ok(Self::F),
313            "true" => Ok(Self::True),
314            "false" => Ok(Self::False),
315            "" => Ok(Self::Empty),
316            "True" => Ok(Self::True),
317            "False" => Ok(Self::False),
318            _ => Err(format!("unknown STTrueFalseBlank value: {}", s)),
319        }
320    }
321}
322
323pub type STUnsignedDecimalNumber = u64;
324
325pub type STTwipsMeasure = String;
326
327#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
328pub enum STVerticalAlignRun {
329    #[serde(rename = "baseline")]
330    Baseline,
331    #[serde(rename = "superscript")]
332    Superscript,
333    #[serde(rename = "subscript")]
334    Subscript,
335}
336
337impl std::fmt::Display for STVerticalAlignRun {
338    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
339        match self {
340            Self::Baseline => write!(f, "baseline"),
341            Self::Superscript => write!(f, "superscript"),
342            Self::Subscript => write!(f, "subscript"),
343        }
344    }
345}
346
347impl std::str::FromStr for STVerticalAlignRun {
348    type Err = String;
349
350    fn from_str(s: &str) -> Result<Self, Self::Err> {
351        match s {
352            "baseline" => Ok(Self::Baseline),
353            "superscript" => Ok(Self::Superscript),
354            "subscript" => Ok(Self::Subscript),
355            _ => Err(format!("unknown STVerticalAlignRun value: {}", s)),
356        }
357    }
358}
359
360pub type XmlString = String;
361
362#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
363pub enum STXAlign {
364    #[serde(rename = "left")]
365    Left,
366    #[serde(rename = "center")]
367    Center,
368    #[serde(rename = "right")]
369    Right,
370    #[serde(rename = "inside")]
371    Inside,
372    #[serde(rename = "outside")]
373    Outside,
374}
375
376impl std::fmt::Display for STXAlign {
377    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
378        match self {
379            Self::Left => write!(f, "left"),
380            Self::Center => write!(f, "center"),
381            Self::Right => write!(f, "right"),
382            Self::Inside => write!(f, "inside"),
383            Self::Outside => write!(f, "outside"),
384        }
385    }
386}
387
388impl std::str::FromStr for STXAlign {
389    type Err = String;
390
391    fn from_str(s: &str) -> Result<Self, Self::Err> {
392        match s {
393            "left" => Ok(Self::Left),
394            "center" => Ok(Self::Center),
395            "right" => Ok(Self::Right),
396            "inside" => Ok(Self::Inside),
397            "outside" => Ok(Self::Outside),
398            _ => Err(format!("unknown STXAlign value: {}", s)),
399        }
400    }
401}
402
403#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
404pub enum STYAlign {
405    #[serde(rename = "inline")]
406    Inline,
407    #[serde(rename = "top")]
408    Top,
409    #[serde(rename = "center")]
410    Center,
411    #[serde(rename = "bottom")]
412    Bottom,
413    #[serde(rename = "inside")]
414    Inside,
415    #[serde(rename = "outside")]
416    Outside,
417}
418
419impl std::fmt::Display for STYAlign {
420    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
421        match self {
422            Self::Inline => write!(f, "inline"),
423            Self::Top => write!(f, "top"),
424            Self::Center => write!(f, "center"),
425            Self::Bottom => write!(f, "bottom"),
426            Self::Inside => write!(f, "inside"),
427            Self::Outside => write!(f, "outside"),
428        }
429    }
430}
431
432impl std::str::FromStr for STYAlign {
433    type Err = String;
434
435    fn from_str(s: &str) -> Result<Self, Self::Err> {
436        match s {
437            "inline" => Ok(Self::Inline),
438            "top" => Ok(Self::Top),
439            "center" => Ok(Self::Center),
440            "bottom" => Ok(Self::Bottom),
441            "inside" => Ok(Self::Inside),
442            "outside" => Ok(Self::Outside),
443            _ => Err(format!("unknown STYAlign value: {}", s)),
444        }
445    }
446}
447
448#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
449pub enum STConformanceClass {
450    #[serde(rename = "strict")]
451    Strict,
452    #[serde(rename = "transitional")]
453    Transitional,
454}
455
456impl std::fmt::Display for STConformanceClass {
457    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
458        match self {
459            Self::Strict => write!(f, "strict"),
460            Self::Transitional => write!(f, "transitional"),
461        }
462    }
463}
464
465impl std::str::FromStr for STConformanceClass {
466    type Err = String;
467
468    fn from_str(s: &str) -> Result<Self, Self::Err> {
469        match s {
470            "strict" => Ok(Self::Strict),
471            "transitional" => Ok(Self::Transitional),
472            _ => Err(format!("unknown STConformanceClass value: {}", s)),
473        }
474    }
475}
476
477pub type STUniversalMeasure = String;
478
479pub type STPositiveUniversalMeasure = String;
480
481pub type STPercentage = String;
482
483pub type STFixedPercentage = String;
484
485pub type STPositivePercentage = String;
486
487pub type STPositiveFixedPercentage = String;
488
489pub type STRelationshipId = String;
490
491pub type STLongHexNumber = Vec<u8>;
492
493pub type STShortHexNumber = Vec<u8>;
494
495pub type STUcharHexNumber = Vec<u8>;
496
497pub type STDecimalNumberOrPercent = String;
498
499pub type STUnqualifiedPercentage = i64;
500
501pub type STDecimalNumber = i64;
502
503pub type STSignedTwipsMeasure = String;
504
505pub type STPixelsMeasure = STUnsignedDecimalNumber;
506
507pub type STHpsMeasure = String;
508
509pub type STSignedHpsMeasure = String;
510
511pub type STDateTime = String;
512
513pub type STMacroName = String;
514
515pub type STEighthPointMeasure = STUnsignedDecimalNumber;
516
517pub type STPointMeasure = STUnsignedDecimalNumber;
518
519pub type STTextScale = String;
520
521pub type STTextScalePercent = String;
522
523pub type STTextScaleDecimal = i64;
524
525#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
526pub enum STHighlightColor {
527    #[serde(rename = "black")]
528    Black,
529    #[serde(rename = "blue")]
530    Blue,
531    #[serde(rename = "cyan")]
532    Cyan,
533    #[serde(rename = "green")]
534    Green,
535    #[serde(rename = "magenta")]
536    Magenta,
537    #[serde(rename = "red")]
538    Red,
539    #[serde(rename = "yellow")]
540    Yellow,
541    #[serde(rename = "white")]
542    White,
543    #[serde(rename = "darkBlue")]
544    DarkBlue,
545    #[serde(rename = "darkCyan")]
546    DarkCyan,
547    #[serde(rename = "darkGreen")]
548    DarkGreen,
549    #[serde(rename = "darkMagenta")]
550    DarkMagenta,
551    #[serde(rename = "darkRed")]
552    DarkRed,
553    #[serde(rename = "darkYellow")]
554    DarkYellow,
555    #[serde(rename = "darkGray")]
556    DarkGray,
557    #[serde(rename = "lightGray")]
558    LightGray,
559    #[serde(rename = "none")]
560    None,
561}
562
563impl std::fmt::Display for STHighlightColor {
564    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
565        match self {
566            Self::Black => write!(f, "black"),
567            Self::Blue => write!(f, "blue"),
568            Self::Cyan => write!(f, "cyan"),
569            Self::Green => write!(f, "green"),
570            Self::Magenta => write!(f, "magenta"),
571            Self::Red => write!(f, "red"),
572            Self::Yellow => write!(f, "yellow"),
573            Self::White => write!(f, "white"),
574            Self::DarkBlue => write!(f, "darkBlue"),
575            Self::DarkCyan => write!(f, "darkCyan"),
576            Self::DarkGreen => write!(f, "darkGreen"),
577            Self::DarkMagenta => write!(f, "darkMagenta"),
578            Self::DarkRed => write!(f, "darkRed"),
579            Self::DarkYellow => write!(f, "darkYellow"),
580            Self::DarkGray => write!(f, "darkGray"),
581            Self::LightGray => write!(f, "lightGray"),
582            Self::None => write!(f, "none"),
583        }
584    }
585}
586
587impl std::str::FromStr for STHighlightColor {
588    type Err = String;
589
590    fn from_str(s: &str) -> Result<Self, Self::Err> {
591        match s {
592            "black" => Ok(Self::Black),
593            "blue" => Ok(Self::Blue),
594            "cyan" => Ok(Self::Cyan),
595            "green" => Ok(Self::Green),
596            "magenta" => Ok(Self::Magenta),
597            "red" => Ok(Self::Red),
598            "yellow" => Ok(Self::Yellow),
599            "white" => Ok(Self::White),
600            "darkBlue" => Ok(Self::DarkBlue),
601            "darkCyan" => Ok(Self::DarkCyan),
602            "darkGreen" => Ok(Self::DarkGreen),
603            "darkMagenta" => Ok(Self::DarkMagenta),
604            "darkRed" => Ok(Self::DarkRed),
605            "darkYellow" => Ok(Self::DarkYellow),
606            "darkGray" => Ok(Self::DarkGray),
607            "lightGray" => Ok(Self::LightGray),
608            "none" => Ok(Self::None),
609            _ => Err(format!("unknown STHighlightColor value: {}", s)),
610        }
611    }
612}
613
614pub type STHexColor = String;
615
616#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
617pub enum STUnderline {
618    #[serde(rename = "single")]
619    Single,
620    #[serde(rename = "words")]
621    Words,
622    #[serde(rename = "double")]
623    Double,
624    #[serde(rename = "thick")]
625    Thick,
626    #[serde(rename = "dotted")]
627    Dotted,
628    #[serde(rename = "dottedHeavy")]
629    DottedHeavy,
630    #[serde(rename = "dash")]
631    Dash,
632    #[serde(rename = "dashedHeavy")]
633    DashedHeavy,
634    #[serde(rename = "dashLong")]
635    DashLong,
636    #[serde(rename = "dashLongHeavy")]
637    DashLongHeavy,
638    #[serde(rename = "dotDash")]
639    DotDash,
640    #[serde(rename = "dashDotHeavy")]
641    DashDotHeavy,
642    #[serde(rename = "dotDotDash")]
643    DotDotDash,
644    #[serde(rename = "dashDotDotHeavy")]
645    DashDotDotHeavy,
646    #[serde(rename = "wave")]
647    Wave,
648    #[serde(rename = "wavyHeavy")]
649    WavyHeavy,
650    #[serde(rename = "wavyDouble")]
651    WavyDouble,
652    #[serde(rename = "none")]
653    None,
654}
655
656impl std::fmt::Display for STUnderline {
657    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
658        match self {
659            Self::Single => write!(f, "single"),
660            Self::Words => write!(f, "words"),
661            Self::Double => write!(f, "double"),
662            Self::Thick => write!(f, "thick"),
663            Self::Dotted => write!(f, "dotted"),
664            Self::DottedHeavy => write!(f, "dottedHeavy"),
665            Self::Dash => write!(f, "dash"),
666            Self::DashedHeavy => write!(f, "dashedHeavy"),
667            Self::DashLong => write!(f, "dashLong"),
668            Self::DashLongHeavy => write!(f, "dashLongHeavy"),
669            Self::DotDash => write!(f, "dotDash"),
670            Self::DashDotHeavy => write!(f, "dashDotHeavy"),
671            Self::DotDotDash => write!(f, "dotDotDash"),
672            Self::DashDotDotHeavy => write!(f, "dashDotDotHeavy"),
673            Self::Wave => write!(f, "wave"),
674            Self::WavyHeavy => write!(f, "wavyHeavy"),
675            Self::WavyDouble => write!(f, "wavyDouble"),
676            Self::None => write!(f, "none"),
677        }
678    }
679}
680
681impl std::str::FromStr for STUnderline {
682    type Err = String;
683
684    fn from_str(s: &str) -> Result<Self, Self::Err> {
685        match s {
686            "single" => Ok(Self::Single),
687            "words" => Ok(Self::Words),
688            "double" => Ok(Self::Double),
689            "thick" => Ok(Self::Thick),
690            "dotted" => Ok(Self::Dotted),
691            "dottedHeavy" => Ok(Self::DottedHeavy),
692            "dash" => Ok(Self::Dash),
693            "dashedHeavy" => Ok(Self::DashedHeavy),
694            "dashLong" => Ok(Self::DashLong),
695            "dashLongHeavy" => Ok(Self::DashLongHeavy),
696            "dotDash" => Ok(Self::DotDash),
697            "dashDotHeavy" => Ok(Self::DashDotHeavy),
698            "dotDotDash" => Ok(Self::DotDotDash),
699            "dashDotDotHeavy" => Ok(Self::DashDotDotHeavy),
700            "wave" => Ok(Self::Wave),
701            "wavyHeavy" => Ok(Self::WavyHeavy),
702            "wavyDouble" => Ok(Self::WavyDouble),
703            "none" => Ok(Self::None),
704            _ => Err(format!("unknown STUnderline value: {}", s)),
705        }
706    }
707}
708
709#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
710pub enum STTextEffect {
711    #[serde(rename = "blinkBackground")]
712    BlinkBackground,
713    #[serde(rename = "lights")]
714    Lights,
715    #[serde(rename = "antsBlack")]
716    AntsBlack,
717    #[serde(rename = "antsRed")]
718    AntsRed,
719    #[serde(rename = "shimmer")]
720    Shimmer,
721    #[serde(rename = "sparkle")]
722    Sparkle,
723    #[serde(rename = "none")]
724    None,
725}
726
727impl std::fmt::Display for STTextEffect {
728    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
729        match self {
730            Self::BlinkBackground => write!(f, "blinkBackground"),
731            Self::Lights => write!(f, "lights"),
732            Self::AntsBlack => write!(f, "antsBlack"),
733            Self::AntsRed => write!(f, "antsRed"),
734            Self::Shimmer => write!(f, "shimmer"),
735            Self::Sparkle => write!(f, "sparkle"),
736            Self::None => write!(f, "none"),
737        }
738    }
739}
740
741impl std::str::FromStr for STTextEffect {
742    type Err = String;
743
744    fn from_str(s: &str) -> Result<Self, Self::Err> {
745        match s {
746            "blinkBackground" => Ok(Self::BlinkBackground),
747            "lights" => Ok(Self::Lights),
748            "antsBlack" => Ok(Self::AntsBlack),
749            "antsRed" => Ok(Self::AntsRed),
750            "shimmer" => Ok(Self::Shimmer),
751            "sparkle" => Ok(Self::Sparkle),
752            "none" => Ok(Self::None),
753            _ => Err(format!("unknown STTextEffect value: {}", s)),
754        }
755    }
756}
757
758#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
759pub enum STBorder {
760    #[serde(rename = "nil")]
761    Nil,
762    #[serde(rename = "none")]
763    None,
764    #[serde(rename = "single")]
765    Single,
766    #[serde(rename = "thick")]
767    Thick,
768    #[serde(rename = "double")]
769    Double,
770    #[serde(rename = "dotted")]
771    Dotted,
772    #[serde(rename = "dashed")]
773    Dashed,
774    #[serde(rename = "dotDash")]
775    DotDash,
776    #[serde(rename = "dotDotDash")]
777    DotDotDash,
778    #[serde(rename = "triple")]
779    Triple,
780    #[serde(rename = "thinThickSmallGap")]
781    ThinThickSmallGap,
782    #[serde(rename = "thickThinSmallGap")]
783    ThickThinSmallGap,
784    #[serde(rename = "thinThickThinSmallGap")]
785    ThinThickThinSmallGap,
786    #[serde(rename = "thinThickMediumGap")]
787    ThinThickMediumGap,
788    #[serde(rename = "thickThinMediumGap")]
789    ThickThinMediumGap,
790    #[serde(rename = "thinThickThinMediumGap")]
791    ThinThickThinMediumGap,
792    #[serde(rename = "thinThickLargeGap")]
793    ThinThickLargeGap,
794    #[serde(rename = "thickThinLargeGap")]
795    ThickThinLargeGap,
796    #[serde(rename = "thinThickThinLargeGap")]
797    ThinThickThinLargeGap,
798    #[serde(rename = "wave")]
799    Wave,
800    #[serde(rename = "doubleWave")]
801    DoubleWave,
802    #[serde(rename = "dashSmallGap")]
803    DashSmallGap,
804    #[serde(rename = "dashDotStroked")]
805    DashDotStroked,
806    #[serde(rename = "threeDEmboss")]
807    ThreeDEmboss,
808    #[serde(rename = "threeDEngrave")]
809    ThreeDEngrave,
810    #[serde(rename = "outset")]
811    Outset,
812    #[serde(rename = "inset")]
813    Inset,
814    #[serde(rename = "apples")]
815    Apples,
816    #[serde(rename = "archedScallops")]
817    ArchedScallops,
818    #[serde(rename = "babyPacifier")]
819    BabyPacifier,
820    #[serde(rename = "babyRattle")]
821    BabyRattle,
822    #[serde(rename = "balloons3Colors")]
823    Balloons3Colors,
824    #[serde(rename = "balloonsHotAir")]
825    BalloonsHotAir,
826    #[serde(rename = "basicBlackDashes")]
827    BasicBlackDashes,
828    #[serde(rename = "basicBlackDots")]
829    BasicBlackDots,
830    #[serde(rename = "basicBlackSquares")]
831    BasicBlackSquares,
832    #[serde(rename = "basicThinLines")]
833    BasicThinLines,
834    #[serde(rename = "basicWhiteDashes")]
835    BasicWhiteDashes,
836    #[serde(rename = "basicWhiteDots")]
837    BasicWhiteDots,
838    #[serde(rename = "basicWhiteSquares")]
839    BasicWhiteSquares,
840    #[serde(rename = "basicWideInline")]
841    BasicWideInline,
842    #[serde(rename = "basicWideMidline")]
843    BasicWideMidline,
844    #[serde(rename = "basicWideOutline")]
845    BasicWideOutline,
846    #[serde(rename = "bats")]
847    Bats,
848    #[serde(rename = "birds")]
849    Birds,
850    #[serde(rename = "birdsFlight")]
851    BirdsFlight,
852    #[serde(rename = "cabins")]
853    Cabins,
854    #[serde(rename = "cakeSlice")]
855    CakeSlice,
856    #[serde(rename = "candyCorn")]
857    CandyCorn,
858    #[serde(rename = "celticKnotwork")]
859    CelticKnotwork,
860    #[serde(rename = "certificateBanner")]
861    CertificateBanner,
862    #[serde(rename = "chainLink")]
863    ChainLink,
864    #[serde(rename = "champagneBottle")]
865    ChampagneBottle,
866    #[serde(rename = "checkedBarBlack")]
867    CheckedBarBlack,
868    #[serde(rename = "checkedBarColor")]
869    CheckedBarColor,
870    #[serde(rename = "checkered")]
871    Checkered,
872    #[serde(rename = "christmasTree")]
873    ChristmasTree,
874    #[serde(rename = "circlesLines")]
875    CirclesLines,
876    #[serde(rename = "circlesRectangles")]
877    CirclesRectangles,
878    #[serde(rename = "classicalWave")]
879    ClassicalWave,
880    #[serde(rename = "clocks")]
881    Clocks,
882    #[serde(rename = "compass")]
883    Compass,
884    #[serde(rename = "confetti")]
885    Confetti,
886    #[serde(rename = "confettiGrays")]
887    ConfettiGrays,
888    #[serde(rename = "confettiOutline")]
889    ConfettiOutline,
890    #[serde(rename = "confettiStreamers")]
891    ConfettiStreamers,
892    #[serde(rename = "confettiWhite")]
893    ConfettiWhite,
894    #[serde(rename = "cornerTriangles")]
895    CornerTriangles,
896    #[serde(rename = "couponCutoutDashes")]
897    CouponCutoutDashes,
898    #[serde(rename = "couponCutoutDots")]
899    CouponCutoutDots,
900    #[serde(rename = "crazyMaze")]
901    CrazyMaze,
902    #[serde(rename = "creaturesButterfly")]
903    CreaturesButterfly,
904    #[serde(rename = "creaturesFish")]
905    CreaturesFish,
906    #[serde(rename = "creaturesInsects")]
907    CreaturesInsects,
908    #[serde(rename = "creaturesLadyBug")]
909    CreaturesLadyBug,
910    #[serde(rename = "crossStitch")]
911    CrossStitch,
912    #[serde(rename = "cup")]
913    Cup,
914    #[serde(rename = "decoArch")]
915    DecoArch,
916    #[serde(rename = "decoArchColor")]
917    DecoArchColor,
918    #[serde(rename = "decoBlocks")]
919    DecoBlocks,
920    #[serde(rename = "diamondsGray")]
921    DiamondsGray,
922    #[serde(rename = "doubleD")]
923    DoubleD,
924    #[serde(rename = "doubleDiamonds")]
925    DoubleDiamonds,
926    #[serde(rename = "earth1")]
927    Earth1,
928    #[serde(rename = "earth2")]
929    Earth2,
930    #[serde(rename = "earth3")]
931    Earth3,
932    #[serde(rename = "eclipsingSquares1")]
933    EclipsingSquares1,
934    #[serde(rename = "eclipsingSquares2")]
935    EclipsingSquares2,
936    #[serde(rename = "eggsBlack")]
937    EggsBlack,
938    #[serde(rename = "fans")]
939    Fans,
940    #[serde(rename = "film")]
941    Film,
942    #[serde(rename = "firecrackers")]
943    Firecrackers,
944    #[serde(rename = "flowersBlockPrint")]
945    FlowersBlockPrint,
946    #[serde(rename = "flowersDaisies")]
947    FlowersDaisies,
948    #[serde(rename = "flowersModern1")]
949    FlowersModern1,
950    #[serde(rename = "flowersModern2")]
951    FlowersModern2,
952    #[serde(rename = "flowersPansy")]
953    FlowersPansy,
954    #[serde(rename = "flowersRedRose")]
955    FlowersRedRose,
956    #[serde(rename = "flowersRoses")]
957    FlowersRoses,
958    #[serde(rename = "flowersTeacup")]
959    FlowersTeacup,
960    #[serde(rename = "flowersTiny")]
961    FlowersTiny,
962    #[serde(rename = "gems")]
963    Gems,
964    #[serde(rename = "gingerbreadMan")]
965    GingerbreadMan,
966    #[serde(rename = "gradient")]
967    Gradient,
968    #[serde(rename = "handmade1")]
969    Handmade1,
970    #[serde(rename = "handmade2")]
971    Handmade2,
972    #[serde(rename = "heartBalloon")]
973    HeartBalloon,
974    #[serde(rename = "heartGray")]
975    HeartGray,
976    #[serde(rename = "hearts")]
977    Hearts,
978    #[serde(rename = "heebieJeebies")]
979    HeebieJeebies,
980    #[serde(rename = "holly")]
981    Holly,
982    #[serde(rename = "houseFunky")]
983    HouseFunky,
984    #[serde(rename = "hypnotic")]
985    Hypnotic,
986    #[serde(rename = "iceCreamCones")]
987    IceCreamCones,
988    #[serde(rename = "lightBulb")]
989    LightBulb,
990    #[serde(rename = "lightning1")]
991    Lightning1,
992    #[serde(rename = "lightning2")]
993    Lightning2,
994    #[serde(rename = "mapPins")]
995    MapPins,
996    #[serde(rename = "mapleLeaf")]
997    MapleLeaf,
998    #[serde(rename = "mapleMuffins")]
999    MapleMuffins,
1000    #[serde(rename = "marquee")]
1001    Marquee,
1002    #[serde(rename = "marqueeToothed")]
1003    MarqueeToothed,
1004    #[serde(rename = "moons")]
1005    Moons,
1006    #[serde(rename = "mosaic")]
1007    Mosaic,
1008    #[serde(rename = "musicNotes")]
1009    MusicNotes,
1010    #[serde(rename = "northwest")]
1011    Northwest,
1012    #[serde(rename = "ovals")]
1013    Ovals,
1014    #[serde(rename = "packages")]
1015    Packages,
1016    #[serde(rename = "palmsBlack")]
1017    PalmsBlack,
1018    #[serde(rename = "palmsColor")]
1019    PalmsColor,
1020    #[serde(rename = "paperClips")]
1021    PaperClips,
1022    #[serde(rename = "papyrus")]
1023    Papyrus,
1024    #[serde(rename = "partyFavor")]
1025    PartyFavor,
1026    #[serde(rename = "partyGlass")]
1027    PartyGlass,
1028    #[serde(rename = "pencils")]
1029    Pencils,
1030    #[serde(rename = "people")]
1031    People,
1032    #[serde(rename = "peopleWaving")]
1033    PeopleWaving,
1034    #[serde(rename = "peopleHats")]
1035    PeopleHats,
1036    #[serde(rename = "poinsettias")]
1037    Poinsettias,
1038    #[serde(rename = "postageStamp")]
1039    PostageStamp,
1040    #[serde(rename = "pumpkin1")]
1041    Pumpkin1,
1042    #[serde(rename = "pushPinNote2")]
1043    PushPinNote2,
1044    #[serde(rename = "pushPinNote1")]
1045    PushPinNote1,
1046    #[serde(rename = "pyramids")]
1047    Pyramids,
1048    #[serde(rename = "pyramidsAbove")]
1049    PyramidsAbove,
1050    #[serde(rename = "quadrants")]
1051    Quadrants,
1052    #[serde(rename = "rings")]
1053    Rings,
1054    #[serde(rename = "safari")]
1055    Safari,
1056    #[serde(rename = "sawtooth")]
1057    Sawtooth,
1058    #[serde(rename = "sawtoothGray")]
1059    SawtoothGray,
1060    #[serde(rename = "scaredCat")]
1061    ScaredCat,
1062    #[serde(rename = "seattle")]
1063    Seattle,
1064    #[serde(rename = "shadowedSquares")]
1065    ShadowedSquares,
1066    #[serde(rename = "sharksTeeth")]
1067    SharksTeeth,
1068    #[serde(rename = "shorebirdTracks")]
1069    ShorebirdTracks,
1070    #[serde(rename = "skyrocket")]
1071    Skyrocket,
1072    #[serde(rename = "snowflakeFancy")]
1073    SnowflakeFancy,
1074    #[serde(rename = "snowflakes")]
1075    Snowflakes,
1076    #[serde(rename = "sombrero")]
1077    Sombrero,
1078    #[serde(rename = "southwest")]
1079    Southwest,
1080    #[serde(rename = "stars")]
1081    Stars,
1082    #[serde(rename = "starsTop")]
1083    StarsTop,
1084    #[serde(rename = "stars3d")]
1085    Stars3d,
1086    #[serde(rename = "starsBlack")]
1087    StarsBlack,
1088    #[serde(rename = "starsShadowed")]
1089    StarsShadowed,
1090    #[serde(rename = "sun")]
1091    Sun,
1092    #[serde(rename = "swirligig")]
1093    Swirligig,
1094    #[serde(rename = "tornPaper")]
1095    TornPaper,
1096    #[serde(rename = "tornPaperBlack")]
1097    TornPaperBlack,
1098    #[serde(rename = "trees")]
1099    Trees,
1100    #[serde(rename = "triangleParty")]
1101    TriangleParty,
1102    #[serde(rename = "triangles")]
1103    Triangles,
1104    #[serde(rename = "triangle1")]
1105    Triangle1,
1106    #[serde(rename = "triangle2")]
1107    Triangle2,
1108    #[serde(rename = "triangleCircle1")]
1109    TriangleCircle1,
1110    #[serde(rename = "triangleCircle2")]
1111    TriangleCircle2,
1112    #[serde(rename = "shapes1")]
1113    Shapes1,
1114    #[serde(rename = "shapes2")]
1115    Shapes2,
1116    #[serde(rename = "twistedLines1")]
1117    TwistedLines1,
1118    #[serde(rename = "twistedLines2")]
1119    TwistedLines2,
1120    #[serde(rename = "vine")]
1121    Vine,
1122    #[serde(rename = "waveline")]
1123    Waveline,
1124    #[serde(rename = "weavingAngles")]
1125    WeavingAngles,
1126    #[serde(rename = "weavingBraid")]
1127    WeavingBraid,
1128    #[serde(rename = "weavingRibbon")]
1129    WeavingRibbon,
1130    #[serde(rename = "weavingStrips")]
1131    WeavingStrips,
1132    #[serde(rename = "whiteFlowers")]
1133    WhiteFlowers,
1134    #[serde(rename = "woodwork")]
1135    Woodwork,
1136    #[serde(rename = "xIllusions")]
1137    XIllusions,
1138    #[serde(rename = "zanyTriangles")]
1139    ZanyTriangles,
1140    #[serde(rename = "zigZag")]
1141    ZigZag,
1142    #[serde(rename = "zigZagStitch")]
1143    ZigZagStitch,
1144    #[serde(rename = "custom")]
1145    Custom,
1146}
1147
1148impl std::fmt::Display for STBorder {
1149    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1150        match self {
1151            Self::Nil => write!(f, "nil"),
1152            Self::None => write!(f, "none"),
1153            Self::Single => write!(f, "single"),
1154            Self::Thick => write!(f, "thick"),
1155            Self::Double => write!(f, "double"),
1156            Self::Dotted => write!(f, "dotted"),
1157            Self::Dashed => write!(f, "dashed"),
1158            Self::DotDash => write!(f, "dotDash"),
1159            Self::DotDotDash => write!(f, "dotDotDash"),
1160            Self::Triple => write!(f, "triple"),
1161            Self::ThinThickSmallGap => write!(f, "thinThickSmallGap"),
1162            Self::ThickThinSmallGap => write!(f, "thickThinSmallGap"),
1163            Self::ThinThickThinSmallGap => write!(f, "thinThickThinSmallGap"),
1164            Self::ThinThickMediumGap => write!(f, "thinThickMediumGap"),
1165            Self::ThickThinMediumGap => write!(f, "thickThinMediumGap"),
1166            Self::ThinThickThinMediumGap => write!(f, "thinThickThinMediumGap"),
1167            Self::ThinThickLargeGap => write!(f, "thinThickLargeGap"),
1168            Self::ThickThinLargeGap => write!(f, "thickThinLargeGap"),
1169            Self::ThinThickThinLargeGap => write!(f, "thinThickThinLargeGap"),
1170            Self::Wave => write!(f, "wave"),
1171            Self::DoubleWave => write!(f, "doubleWave"),
1172            Self::DashSmallGap => write!(f, "dashSmallGap"),
1173            Self::DashDotStroked => write!(f, "dashDotStroked"),
1174            Self::ThreeDEmboss => write!(f, "threeDEmboss"),
1175            Self::ThreeDEngrave => write!(f, "threeDEngrave"),
1176            Self::Outset => write!(f, "outset"),
1177            Self::Inset => write!(f, "inset"),
1178            Self::Apples => write!(f, "apples"),
1179            Self::ArchedScallops => write!(f, "archedScallops"),
1180            Self::BabyPacifier => write!(f, "babyPacifier"),
1181            Self::BabyRattle => write!(f, "babyRattle"),
1182            Self::Balloons3Colors => write!(f, "balloons3Colors"),
1183            Self::BalloonsHotAir => write!(f, "balloonsHotAir"),
1184            Self::BasicBlackDashes => write!(f, "basicBlackDashes"),
1185            Self::BasicBlackDots => write!(f, "basicBlackDots"),
1186            Self::BasicBlackSquares => write!(f, "basicBlackSquares"),
1187            Self::BasicThinLines => write!(f, "basicThinLines"),
1188            Self::BasicWhiteDashes => write!(f, "basicWhiteDashes"),
1189            Self::BasicWhiteDots => write!(f, "basicWhiteDots"),
1190            Self::BasicWhiteSquares => write!(f, "basicWhiteSquares"),
1191            Self::BasicWideInline => write!(f, "basicWideInline"),
1192            Self::BasicWideMidline => write!(f, "basicWideMidline"),
1193            Self::BasicWideOutline => write!(f, "basicWideOutline"),
1194            Self::Bats => write!(f, "bats"),
1195            Self::Birds => write!(f, "birds"),
1196            Self::BirdsFlight => write!(f, "birdsFlight"),
1197            Self::Cabins => write!(f, "cabins"),
1198            Self::CakeSlice => write!(f, "cakeSlice"),
1199            Self::CandyCorn => write!(f, "candyCorn"),
1200            Self::CelticKnotwork => write!(f, "celticKnotwork"),
1201            Self::CertificateBanner => write!(f, "certificateBanner"),
1202            Self::ChainLink => write!(f, "chainLink"),
1203            Self::ChampagneBottle => write!(f, "champagneBottle"),
1204            Self::CheckedBarBlack => write!(f, "checkedBarBlack"),
1205            Self::CheckedBarColor => write!(f, "checkedBarColor"),
1206            Self::Checkered => write!(f, "checkered"),
1207            Self::ChristmasTree => write!(f, "christmasTree"),
1208            Self::CirclesLines => write!(f, "circlesLines"),
1209            Self::CirclesRectangles => write!(f, "circlesRectangles"),
1210            Self::ClassicalWave => write!(f, "classicalWave"),
1211            Self::Clocks => write!(f, "clocks"),
1212            Self::Compass => write!(f, "compass"),
1213            Self::Confetti => write!(f, "confetti"),
1214            Self::ConfettiGrays => write!(f, "confettiGrays"),
1215            Self::ConfettiOutline => write!(f, "confettiOutline"),
1216            Self::ConfettiStreamers => write!(f, "confettiStreamers"),
1217            Self::ConfettiWhite => write!(f, "confettiWhite"),
1218            Self::CornerTriangles => write!(f, "cornerTriangles"),
1219            Self::CouponCutoutDashes => write!(f, "couponCutoutDashes"),
1220            Self::CouponCutoutDots => write!(f, "couponCutoutDots"),
1221            Self::CrazyMaze => write!(f, "crazyMaze"),
1222            Self::CreaturesButterfly => write!(f, "creaturesButterfly"),
1223            Self::CreaturesFish => write!(f, "creaturesFish"),
1224            Self::CreaturesInsects => write!(f, "creaturesInsects"),
1225            Self::CreaturesLadyBug => write!(f, "creaturesLadyBug"),
1226            Self::CrossStitch => write!(f, "crossStitch"),
1227            Self::Cup => write!(f, "cup"),
1228            Self::DecoArch => write!(f, "decoArch"),
1229            Self::DecoArchColor => write!(f, "decoArchColor"),
1230            Self::DecoBlocks => write!(f, "decoBlocks"),
1231            Self::DiamondsGray => write!(f, "diamondsGray"),
1232            Self::DoubleD => write!(f, "doubleD"),
1233            Self::DoubleDiamonds => write!(f, "doubleDiamonds"),
1234            Self::Earth1 => write!(f, "earth1"),
1235            Self::Earth2 => write!(f, "earth2"),
1236            Self::Earth3 => write!(f, "earth3"),
1237            Self::EclipsingSquares1 => write!(f, "eclipsingSquares1"),
1238            Self::EclipsingSquares2 => write!(f, "eclipsingSquares2"),
1239            Self::EggsBlack => write!(f, "eggsBlack"),
1240            Self::Fans => write!(f, "fans"),
1241            Self::Film => write!(f, "film"),
1242            Self::Firecrackers => write!(f, "firecrackers"),
1243            Self::FlowersBlockPrint => write!(f, "flowersBlockPrint"),
1244            Self::FlowersDaisies => write!(f, "flowersDaisies"),
1245            Self::FlowersModern1 => write!(f, "flowersModern1"),
1246            Self::FlowersModern2 => write!(f, "flowersModern2"),
1247            Self::FlowersPansy => write!(f, "flowersPansy"),
1248            Self::FlowersRedRose => write!(f, "flowersRedRose"),
1249            Self::FlowersRoses => write!(f, "flowersRoses"),
1250            Self::FlowersTeacup => write!(f, "flowersTeacup"),
1251            Self::FlowersTiny => write!(f, "flowersTiny"),
1252            Self::Gems => write!(f, "gems"),
1253            Self::GingerbreadMan => write!(f, "gingerbreadMan"),
1254            Self::Gradient => write!(f, "gradient"),
1255            Self::Handmade1 => write!(f, "handmade1"),
1256            Self::Handmade2 => write!(f, "handmade2"),
1257            Self::HeartBalloon => write!(f, "heartBalloon"),
1258            Self::HeartGray => write!(f, "heartGray"),
1259            Self::Hearts => write!(f, "hearts"),
1260            Self::HeebieJeebies => write!(f, "heebieJeebies"),
1261            Self::Holly => write!(f, "holly"),
1262            Self::HouseFunky => write!(f, "houseFunky"),
1263            Self::Hypnotic => write!(f, "hypnotic"),
1264            Self::IceCreamCones => write!(f, "iceCreamCones"),
1265            Self::LightBulb => write!(f, "lightBulb"),
1266            Self::Lightning1 => write!(f, "lightning1"),
1267            Self::Lightning2 => write!(f, "lightning2"),
1268            Self::MapPins => write!(f, "mapPins"),
1269            Self::MapleLeaf => write!(f, "mapleLeaf"),
1270            Self::MapleMuffins => write!(f, "mapleMuffins"),
1271            Self::Marquee => write!(f, "marquee"),
1272            Self::MarqueeToothed => write!(f, "marqueeToothed"),
1273            Self::Moons => write!(f, "moons"),
1274            Self::Mosaic => write!(f, "mosaic"),
1275            Self::MusicNotes => write!(f, "musicNotes"),
1276            Self::Northwest => write!(f, "northwest"),
1277            Self::Ovals => write!(f, "ovals"),
1278            Self::Packages => write!(f, "packages"),
1279            Self::PalmsBlack => write!(f, "palmsBlack"),
1280            Self::PalmsColor => write!(f, "palmsColor"),
1281            Self::PaperClips => write!(f, "paperClips"),
1282            Self::Papyrus => write!(f, "papyrus"),
1283            Self::PartyFavor => write!(f, "partyFavor"),
1284            Self::PartyGlass => write!(f, "partyGlass"),
1285            Self::Pencils => write!(f, "pencils"),
1286            Self::People => write!(f, "people"),
1287            Self::PeopleWaving => write!(f, "peopleWaving"),
1288            Self::PeopleHats => write!(f, "peopleHats"),
1289            Self::Poinsettias => write!(f, "poinsettias"),
1290            Self::PostageStamp => write!(f, "postageStamp"),
1291            Self::Pumpkin1 => write!(f, "pumpkin1"),
1292            Self::PushPinNote2 => write!(f, "pushPinNote2"),
1293            Self::PushPinNote1 => write!(f, "pushPinNote1"),
1294            Self::Pyramids => write!(f, "pyramids"),
1295            Self::PyramidsAbove => write!(f, "pyramidsAbove"),
1296            Self::Quadrants => write!(f, "quadrants"),
1297            Self::Rings => write!(f, "rings"),
1298            Self::Safari => write!(f, "safari"),
1299            Self::Sawtooth => write!(f, "sawtooth"),
1300            Self::SawtoothGray => write!(f, "sawtoothGray"),
1301            Self::ScaredCat => write!(f, "scaredCat"),
1302            Self::Seattle => write!(f, "seattle"),
1303            Self::ShadowedSquares => write!(f, "shadowedSquares"),
1304            Self::SharksTeeth => write!(f, "sharksTeeth"),
1305            Self::ShorebirdTracks => write!(f, "shorebirdTracks"),
1306            Self::Skyrocket => write!(f, "skyrocket"),
1307            Self::SnowflakeFancy => write!(f, "snowflakeFancy"),
1308            Self::Snowflakes => write!(f, "snowflakes"),
1309            Self::Sombrero => write!(f, "sombrero"),
1310            Self::Southwest => write!(f, "southwest"),
1311            Self::Stars => write!(f, "stars"),
1312            Self::StarsTop => write!(f, "starsTop"),
1313            Self::Stars3d => write!(f, "stars3d"),
1314            Self::StarsBlack => write!(f, "starsBlack"),
1315            Self::StarsShadowed => write!(f, "starsShadowed"),
1316            Self::Sun => write!(f, "sun"),
1317            Self::Swirligig => write!(f, "swirligig"),
1318            Self::TornPaper => write!(f, "tornPaper"),
1319            Self::TornPaperBlack => write!(f, "tornPaperBlack"),
1320            Self::Trees => write!(f, "trees"),
1321            Self::TriangleParty => write!(f, "triangleParty"),
1322            Self::Triangles => write!(f, "triangles"),
1323            Self::Triangle1 => write!(f, "triangle1"),
1324            Self::Triangle2 => write!(f, "triangle2"),
1325            Self::TriangleCircle1 => write!(f, "triangleCircle1"),
1326            Self::TriangleCircle2 => write!(f, "triangleCircle2"),
1327            Self::Shapes1 => write!(f, "shapes1"),
1328            Self::Shapes2 => write!(f, "shapes2"),
1329            Self::TwistedLines1 => write!(f, "twistedLines1"),
1330            Self::TwistedLines2 => write!(f, "twistedLines2"),
1331            Self::Vine => write!(f, "vine"),
1332            Self::Waveline => write!(f, "waveline"),
1333            Self::WeavingAngles => write!(f, "weavingAngles"),
1334            Self::WeavingBraid => write!(f, "weavingBraid"),
1335            Self::WeavingRibbon => write!(f, "weavingRibbon"),
1336            Self::WeavingStrips => write!(f, "weavingStrips"),
1337            Self::WhiteFlowers => write!(f, "whiteFlowers"),
1338            Self::Woodwork => write!(f, "woodwork"),
1339            Self::XIllusions => write!(f, "xIllusions"),
1340            Self::ZanyTriangles => write!(f, "zanyTriangles"),
1341            Self::ZigZag => write!(f, "zigZag"),
1342            Self::ZigZagStitch => write!(f, "zigZagStitch"),
1343            Self::Custom => write!(f, "custom"),
1344        }
1345    }
1346}
1347
1348impl std::str::FromStr for STBorder {
1349    type Err = String;
1350
1351    fn from_str(s: &str) -> Result<Self, Self::Err> {
1352        match s {
1353            "nil" => Ok(Self::Nil),
1354            "none" => Ok(Self::None),
1355            "single" => Ok(Self::Single),
1356            "thick" => Ok(Self::Thick),
1357            "double" => Ok(Self::Double),
1358            "dotted" => Ok(Self::Dotted),
1359            "dashed" => Ok(Self::Dashed),
1360            "dotDash" => Ok(Self::DotDash),
1361            "dotDotDash" => Ok(Self::DotDotDash),
1362            "triple" => Ok(Self::Triple),
1363            "thinThickSmallGap" => Ok(Self::ThinThickSmallGap),
1364            "thickThinSmallGap" => Ok(Self::ThickThinSmallGap),
1365            "thinThickThinSmallGap" => Ok(Self::ThinThickThinSmallGap),
1366            "thinThickMediumGap" => Ok(Self::ThinThickMediumGap),
1367            "thickThinMediumGap" => Ok(Self::ThickThinMediumGap),
1368            "thinThickThinMediumGap" => Ok(Self::ThinThickThinMediumGap),
1369            "thinThickLargeGap" => Ok(Self::ThinThickLargeGap),
1370            "thickThinLargeGap" => Ok(Self::ThickThinLargeGap),
1371            "thinThickThinLargeGap" => Ok(Self::ThinThickThinLargeGap),
1372            "wave" => Ok(Self::Wave),
1373            "doubleWave" => Ok(Self::DoubleWave),
1374            "dashSmallGap" => Ok(Self::DashSmallGap),
1375            "dashDotStroked" => Ok(Self::DashDotStroked),
1376            "threeDEmboss" => Ok(Self::ThreeDEmboss),
1377            "threeDEngrave" => Ok(Self::ThreeDEngrave),
1378            "outset" => Ok(Self::Outset),
1379            "inset" => Ok(Self::Inset),
1380            "apples" => Ok(Self::Apples),
1381            "archedScallops" => Ok(Self::ArchedScallops),
1382            "babyPacifier" => Ok(Self::BabyPacifier),
1383            "babyRattle" => Ok(Self::BabyRattle),
1384            "balloons3Colors" => Ok(Self::Balloons3Colors),
1385            "balloonsHotAir" => Ok(Self::BalloonsHotAir),
1386            "basicBlackDashes" => Ok(Self::BasicBlackDashes),
1387            "basicBlackDots" => Ok(Self::BasicBlackDots),
1388            "basicBlackSquares" => Ok(Self::BasicBlackSquares),
1389            "basicThinLines" => Ok(Self::BasicThinLines),
1390            "basicWhiteDashes" => Ok(Self::BasicWhiteDashes),
1391            "basicWhiteDots" => Ok(Self::BasicWhiteDots),
1392            "basicWhiteSquares" => Ok(Self::BasicWhiteSquares),
1393            "basicWideInline" => Ok(Self::BasicWideInline),
1394            "basicWideMidline" => Ok(Self::BasicWideMidline),
1395            "basicWideOutline" => Ok(Self::BasicWideOutline),
1396            "bats" => Ok(Self::Bats),
1397            "birds" => Ok(Self::Birds),
1398            "birdsFlight" => Ok(Self::BirdsFlight),
1399            "cabins" => Ok(Self::Cabins),
1400            "cakeSlice" => Ok(Self::CakeSlice),
1401            "candyCorn" => Ok(Self::CandyCorn),
1402            "celticKnotwork" => Ok(Self::CelticKnotwork),
1403            "certificateBanner" => Ok(Self::CertificateBanner),
1404            "chainLink" => Ok(Self::ChainLink),
1405            "champagneBottle" => Ok(Self::ChampagneBottle),
1406            "checkedBarBlack" => Ok(Self::CheckedBarBlack),
1407            "checkedBarColor" => Ok(Self::CheckedBarColor),
1408            "checkered" => Ok(Self::Checkered),
1409            "christmasTree" => Ok(Self::ChristmasTree),
1410            "circlesLines" => Ok(Self::CirclesLines),
1411            "circlesRectangles" => Ok(Self::CirclesRectangles),
1412            "classicalWave" => Ok(Self::ClassicalWave),
1413            "clocks" => Ok(Self::Clocks),
1414            "compass" => Ok(Self::Compass),
1415            "confetti" => Ok(Self::Confetti),
1416            "confettiGrays" => Ok(Self::ConfettiGrays),
1417            "confettiOutline" => Ok(Self::ConfettiOutline),
1418            "confettiStreamers" => Ok(Self::ConfettiStreamers),
1419            "confettiWhite" => Ok(Self::ConfettiWhite),
1420            "cornerTriangles" => Ok(Self::CornerTriangles),
1421            "couponCutoutDashes" => Ok(Self::CouponCutoutDashes),
1422            "couponCutoutDots" => Ok(Self::CouponCutoutDots),
1423            "crazyMaze" => Ok(Self::CrazyMaze),
1424            "creaturesButterfly" => Ok(Self::CreaturesButterfly),
1425            "creaturesFish" => Ok(Self::CreaturesFish),
1426            "creaturesInsects" => Ok(Self::CreaturesInsects),
1427            "creaturesLadyBug" => Ok(Self::CreaturesLadyBug),
1428            "crossStitch" => Ok(Self::CrossStitch),
1429            "cup" => Ok(Self::Cup),
1430            "decoArch" => Ok(Self::DecoArch),
1431            "decoArchColor" => Ok(Self::DecoArchColor),
1432            "decoBlocks" => Ok(Self::DecoBlocks),
1433            "diamondsGray" => Ok(Self::DiamondsGray),
1434            "doubleD" => Ok(Self::DoubleD),
1435            "doubleDiamonds" => Ok(Self::DoubleDiamonds),
1436            "earth1" => Ok(Self::Earth1),
1437            "earth2" => Ok(Self::Earth2),
1438            "earth3" => Ok(Self::Earth3),
1439            "eclipsingSquares1" => Ok(Self::EclipsingSquares1),
1440            "eclipsingSquares2" => Ok(Self::EclipsingSquares2),
1441            "eggsBlack" => Ok(Self::EggsBlack),
1442            "fans" => Ok(Self::Fans),
1443            "film" => Ok(Self::Film),
1444            "firecrackers" => Ok(Self::Firecrackers),
1445            "flowersBlockPrint" => Ok(Self::FlowersBlockPrint),
1446            "flowersDaisies" => Ok(Self::FlowersDaisies),
1447            "flowersModern1" => Ok(Self::FlowersModern1),
1448            "flowersModern2" => Ok(Self::FlowersModern2),
1449            "flowersPansy" => Ok(Self::FlowersPansy),
1450            "flowersRedRose" => Ok(Self::FlowersRedRose),
1451            "flowersRoses" => Ok(Self::FlowersRoses),
1452            "flowersTeacup" => Ok(Self::FlowersTeacup),
1453            "flowersTiny" => Ok(Self::FlowersTiny),
1454            "gems" => Ok(Self::Gems),
1455            "gingerbreadMan" => Ok(Self::GingerbreadMan),
1456            "gradient" => Ok(Self::Gradient),
1457            "handmade1" => Ok(Self::Handmade1),
1458            "handmade2" => Ok(Self::Handmade2),
1459            "heartBalloon" => Ok(Self::HeartBalloon),
1460            "heartGray" => Ok(Self::HeartGray),
1461            "hearts" => Ok(Self::Hearts),
1462            "heebieJeebies" => Ok(Self::HeebieJeebies),
1463            "holly" => Ok(Self::Holly),
1464            "houseFunky" => Ok(Self::HouseFunky),
1465            "hypnotic" => Ok(Self::Hypnotic),
1466            "iceCreamCones" => Ok(Self::IceCreamCones),
1467            "lightBulb" => Ok(Self::LightBulb),
1468            "lightning1" => Ok(Self::Lightning1),
1469            "lightning2" => Ok(Self::Lightning2),
1470            "mapPins" => Ok(Self::MapPins),
1471            "mapleLeaf" => Ok(Self::MapleLeaf),
1472            "mapleMuffins" => Ok(Self::MapleMuffins),
1473            "marquee" => Ok(Self::Marquee),
1474            "marqueeToothed" => Ok(Self::MarqueeToothed),
1475            "moons" => Ok(Self::Moons),
1476            "mosaic" => Ok(Self::Mosaic),
1477            "musicNotes" => Ok(Self::MusicNotes),
1478            "northwest" => Ok(Self::Northwest),
1479            "ovals" => Ok(Self::Ovals),
1480            "packages" => Ok(Self::Packages),
1481            "palmsBlack" => Ok(Self::PalmsBlack),
1482            "palmsColor" => Ok(Self::PalmsColor),
1483            "paperClips" => Ok(Self::PaperClips),
1484            "papyrus" => Ok(Self::Papyrus),
1485            "partyFavor" => Ok(Self::PartyFavor),
1486            "partyGlass" => Ok(Self::PartyGlass),
1487            "pencils" => Ok(Self::Pencils),
1488            "people" => Ok(Self::People),
1489            "peopleWaving" => Ok(Self::PeopleWaving),
1490            "peopleHats" => Ok(Self::PeopleHats),
1491            "poinsettias" => Ok(Self::Poinsettias),
1492            "postageStamp" => Ok(Self::PostageStamp),
1493            "pumpkin1" => Ok(Self::Pumpkin1),
1494            "pushPinNote2" => Ok(Self::PushPinNote2),
1495            "pushPinNote1" => Ok(Self::PushPinNote1),
1496            "pyramids" => Ok(Self::Pyramids),
1497            "pyramidsAbove" => Ok(Self::PyramidsAbove),
1498            "quadrants" => Ok(Self::Quadrants),
1499            "rings" => Ok(Self::Rings),
1500            "safari" => Ok(Self::Safari),
1501            "sawtooth" => Ok(Self::Sawtooth),
1502            "sawtoothGray" => Ok(Self::SawtoothGray),
1503            "scaredCat" => Ok(Self::ScaredCat),
1504            "seattle" => Ok(Self::Seattle),
1505            "shadowedSquares" => Ok(Self::ShadowedSquares),
1506            "sharksTeeth" => Ok(Self::SharksTeeth),
1507            "shorebirdTracks" => Ok(Self::ShorebirdTracks),
1508            "skyrocket" => Ok(Self::Skyrocket),
1509            "snowflakeFancy" => Ok(Self::SnowflakeFancy),
1510            "snowflakes" => Ok(Self::Snowflakes),
1511            "sombrero" => Ok(Self::Sombrero),
1512            "southwest" => Ok(Self::Southwest),
1513            "stars" => Ok(Self::Stars),
1514            "starsTop" => Ok(Self::StarsTop),
1515            "stars3d" => Ok(Self::Stars3d),
1516            "starsBlack" => Ok(Self::StarsBlack),
1517            "starsShadowed" => Ok(Self::StarsShadowed),
1518            "sun" => Ok(Self::Sun),
1519            "swirligig" => Ok(Self::Swirligig),
1520            "tornPaper" => Ok(Self::TornPaper),
1521            "tornPaperBlack" => Ok(Self::TornPaperBlack),
1522            "trees" => Ok(Self::Trees),
1523            "triangleParty" => Ok(Self::TriangleParty),
1524            "triangles" => Ok(Self::Triangles),
1525            "triangle1" => Ok(Self::Triangle1),
1526            "triangle2" => Ok(Self::Triangle2),
1527            "triangleCircle1" => Ok(Self::TriangleCircle1),
1528            "triangleCircle2" => Ok(Self::TriangleCircle2),
1529            "shapes1" => Ok(Self::Shapes1),
1530            "shapes2" => Ok(Self::Shapes2),
1531            "twistedLines1" => Ok(Self::TwistedLines1),
1532            "twistedLines2" => Ok(Self::TwistedLines2),
1533            "vine" => Ok(Self::Vine),
1534            "waveline" => Ok(Self::Waveline),
1535            "weavingAngles" => Ok(Self::WeavingAngles),
1536            "weavingBraid" => Ok(Self::WeavingBraid),
1537            "weavingRibbon" => Ok(Self::WeavingRibbon),
1538            "weavingStrips" => Ok(Self::WeavingStrips),
1539            "whiteFlowers" => Ok(Self::WhiteFlowers),
1540            "woodwork" => Ok(Self::Woodwork),
1541            "xIllusions" => Ok(Self::XIllusions),
1542            "zanyTriangles" => Ok(Self::ZanyTriangles),
1543            "zigZag" => Ok(Self::ZigZag),
1544            "zigZagStitch" => Ok(Self::ZigZagStitch),
1545            "custom" => Ok(Self::Custom),
1546            _ => Err(format!("unknown STBorder value: {}", s)),
1547        }
1548    }
1549}
1550
1551#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1552pub enum STShd {
1553    #[serde(rename = "nil")]
1554    Nil,
1555    #[serde(rename = "clear")]
1556    Clear,
1557    #[serde(rename = "solid")]
1558    Solid,
1559    #[serde(rename = "horzStripe")]
1560    HorzStripe,
1561    #[serde(rename = "vertStripe")]
1562    VertStripe,
1563    #[serde(rename = "reverseDiagStripe")]
1564    ReverseDiagStripe,
1565    #[serde(rename = "diagStripe")]
1566    DiagStripe,
1567    #[serde(rename = "horzCross")]
1568    HorzCross,
1569    #[serde(rename = "diagCross")]
1570    DiagCross,
1571    #[serde(rename = "thinHorzStripe")]
1572    ThinHorzStripe,
1573    #[serde(rename = "thinVertStripe")]
1574    ThinVertStripe,
1575    #[serde(rename = "thinReverseDiagStripe")]
1576    ThinReverseDiagStripe,
1577    #[serde(rename = "thinDiagStripe")]
1578    ThinDiagStripe,
1579    #[serde(rename = "thinHorzCross")]
1580    ThinHorzCross,
1581    #[serde(rename = "thinDiagCross")]
1582    ThinDiagCross,
1583    #[serde(rename = "pct5")]
1584    Pct5,
1585    #[serde(rename = "pct10")]
1586    Pct10,
1587    #[serde(rename = "pct12")]
1588    Pct12,
1589    #[serde(rename = "pct15")]
1590    Pct15,
1591    #[serde(rename = "pct20")]
1592    Pct20,
1593    #[serde(rename = "pct25")]
1594    Pct25,
1595    #[serde(rename = "pct30")]
1596    Pct30,
1597    #[serde(rename = "pct35")]
1598    Pct35,
1599    #[serde(rename = "pct37")]
1600    Pct37,
1601    #[serde(rename = "pct40")]
1602    Pct40,
1603    #[serde(rename = "pct45")]
1604    Pct45,
1605    #[serde(rename = "pct50")]
1606    Pct50,
1607    #[serde(rename = "pct55")]
1608    Pct55,
1609    #[serde(rename = "pct60")]
1610    Pct60,
1611    #[serde(rename = "pct62")]
1612    Pct62,
1613    #[serde(rename = "pct65")]
1614    Pct65,
1615    #[serde(rename = "pct70")]
1616    Pct70,
1617    #[serde(rename = "pct75")]
1618    Pct75,
1619    #[serde(rename = "pct80")]
1620    Pct80,
1621    #[serde(rename = "pct85")]
1622    Pct85,
1623    #[serde(rename = "pct87")]
1624    Pct87,
1625    #[serde(rename = "pct90")]
1626    Pct90,
1627    #[serde(rename = "pct95")]
1628    Pct95,
1629}
1630
1631impl std::fmt::Display for STShd {
1632    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1633        match self {
1634            Self::Nil => write!(f, "nil"),
1635            Self::Clear => write!(f, "clear"),
1636            Self::Solid => write!(f, "solid"),
1637            Self::HorzStripe => write!(f, "horzStripe"),
1638            Self::VertStripe => write!(f, "vertStripe"),
1639            Self::ReverseDiagStripe => write!(f, "reverseDiagStripe"),
1640            Self::DiagStripe => write!(f, "diagStripe"),
1641            Self::HorzCross => write!(f, "horzCross"),
1642            Self::DiagCross => write!(f, "diagCross"),
1643            Self::ThinHorzStripe => write!(f, "thinHorzStripe"),
1644            Self::ThinVertStripe => write!(f, "thinVertStripe"),
1645            Self::ThinReverseDiagStripe => write!(f, "thinReverseDiagStripe"),
1646            Self::ThinDiagStripe => write!(f, "thinDiagStripe"),
1647            Self::ThinHorzCross => write!(f, "thinHorzCross"),
1648            Self::ThinDiagCross => write!(f, "thinDiagCross"),
1649            Self::Pct5 => write!(f, "pct5"),
1650            Self::Pct10 => write!(f, "pct10"),
1651            Self::Pct12 => write!(f, "pct12"),
1652            Self::Pct15 => write!(f, "pct15"),
1653            Self::Pct20 => write!(f, "pct20"),
1654            Self::Pct25 => write!(f, "pct25"),
1655            Self::Pct30 => write!(f, "pct30"),
1656            Self::Pct35 => write!(f, "pct35"),
1657            Self::Pct37 => write!(f, "pct37"),
1658            Self::Pct40 => write!(f, "pct40"),
1659            Self::Pct45 => write!(f, "pct45"),
1660            Self::Pct50 => write!(f, "pct50"),
1661            Self::Pct55 => write!(f, "pct55"),
1662            Self::Pct60 => write!(f, "pct60"),
1663            Self::Pct62 => write!(f, "pct62"),
1664            Self::Pct65 => write!(f, "pct65"),
1665            Self::Pct70 => write!(f, "pct70"),
1666            Self::Pct75 => write!(f, "pct75"),
1667            Self::Pct80 => write!(f, "pct80"),
1668            Self::Pct85 => write!(f, "pct85"),
1669            Self::Pct87 => write!(f, "pct87"),
1670            Self::Pct90 => write!(f, "pct90"),
1671            Self::Pct95 => write!(f, "pct95"),
1672        }
1673    }
1674}
1675
1676impl std::str::FromStr for STShd {
1677    type Err = String;
1678
1679    fn from_str(s: &str) -> Result<Self, Self::Err> {
1680        match s {
1681            "nil" => Ok(Self::Nil),
1682            "clear" => Ok(Self::Clear),
1683            "solid" => Ok(Self::Solid),
1684            "horzStripe" => Ok(Self::HorzStripe),
1685            "vertStripe" => Ok(Self::VertStripe),
1686            "reverseDiagStripe" => Ok(Self::ReverseDiagStripe),
1687            "diagStripe" => Ok(Self::DiagStripe),
1688            "horzCross" => Ok(Self::HorzCross),
1689            "diagCross" => Ok(Self::DiagCross),
1690            "thinHorzStripe" => Ok(Self::ThinHorzStripe),
1691            "thinVertStripe" => Ok(Self::ThinVertStripe),
1692            "thinReverseDiagStripe" => Ok(Self::ThinReverseDiagStripe),
1693            "thinDiagStripe" => Ok(Self::ThinDiagStripe),
1694            "thinHorzCross" => Ok(Self::ThinHorzCross),
1695            "thinDiagCross" => Ok(Self::ThinDiagCross),
1696            "pct5" => Ok(Self::Pct5),
1697            "pct10" => Ok(Self::Pct10),
1698            "pct12" => Ok(Self::Pct12),
1699            "pct15" => Ok(Self::Pct15),
1700            "pct20" => Ok(Self::Pct20),
1701            "pct25" => Ok(Self::Pct25),
1702            "pct30" => Ok(Self::Pct30),
1703            "pct35" => Ok(Self::Pct35),
1704            "pct37" => Ok(Self::Pct37),
1705            "pct40" => Ok(Self::Pct40),
1706            "pct45" => Ok(Self::Pct45),
1707            "pct50" => Ok(Self::Pct50),
1708            "pct55" => Ok(Self::Pct55),
1709            "pct60" => Ok(Self::Pct60),
1710            "pct62" => Ok(Self::Pct62),
1711            "pct65" => Ok(Self::Pct65),
1712            "pct70" => Ok(Self::Pct70),
1713            "pct75" => Ok(Self::Pct75),
1714            "pct80" => Ok(Self::Pct80),
1715            "pct85" => Ok(Self::Pct85),
1716            "pct87" => Ok(Self::Pct87),
1717            "pct90" => Ok(Self::Pct90),
1718            "pct95" => Ok(Self::Pct95),
1719            _ => Err(format!("unknown STShd value: {}", s)),
1720        }
1721    }
1722}
1723
1724#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1725pub enum STEm {
1726    #[serde(rename = "none")]
1727    None,
1728    #[serde(rename = "dot")]
1729    Dot,
1730    #[serde(rename = "comma")]
1731    Comma,
1732    #[serde(rename = "circle")]
1733    Circle,
1734    #[serde(rename = "underDot")]
1735    UnderDot,
1736}
1737
1738impl std::fmt::Display for STEm {
1739    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1740        match self {
1741            Self::None => write!(f, "none"),
1742            Self::Dot => write!(f, "dot"),
1743            Self::Comma => write!(f, "comma"),
1744            Self::Circle => write!(f, "circle"),
1745            Self::UnderDot => write!(f, "underDot"),
1746        }
1747    }
1748}
1749
1750impl std::str::FromStr for STEm {
1751    type Err = String;
1752
1753    fn from_str(s: &str) -> Result<Self, Self::Err> {
1754        match s {
1755            "none" => Ok(Self::None),
1756            "dot" => Ok(Self::Dot),
1757            "comma" => Ok(Self::Comma),
1758            "circle" => Ok(Self::Circle),
1759            "underDot" => Ok(Self::UnderDot),
1760            _ => Err(format!("unknown STEm value: {}", s)),
1761        }
1762    }
1763}
1764
1765#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1766pub enum STCombineBrackets {
1767    #[serde(rename = "none")]
1768    None,
1769    #[serde(rename = "round")]
1770    Round,
1771    #[serde(rename = "square")]
1772    Square,
1773    #[serde(rename = "angle")]
1774    Angle,
1775    #[serde(rename = "curly")]
1776    Curly,
1777}
1778
1779impl std::fmt::Display for STCombineBrackets {
1780    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1781        match self {
1782            Self::None => write!(f, "none"),
1783            Self::Round => write!(f, "round"),
1784            Self::Square => write!(f, "square"),
1785            Self::Angle => write!(f, "angle"),
1786            Self::Curly => write!(f, "curly"),
1787        }
1788    }
1789}
1790
1791impl std::str::FromStr for STCombineBrackets {
1792    type Err = String;
1793
1794    fn from_str(s: &str) -> Result<Self, Self::Err> {
1795        match s {
1796            "none" => Ok(Self::None),
1797            "round" => Ok(Self::Round),
1798            "square" => Ok(Self::Square),
1799            "angle" => Ok(Self::Angle),
1800            "curly" => Ok(Self::Curly),
1801            _ => Err(format!("unknown STCombineBrackets value: {}", s)),
1802        }
1803    }
1804}
1805
1806#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1807pub enum STHeightRule {
1808    #[serde(rename = "auto")]
1809    Auto,
1810    #[serde(rename = "exact")]
1811    Exact,
1812    #[serde(rename = "atLeast")]
1813    AtLeast,
1814}
1815
1816impl std::fmt::Display for STHeightRule {
1817    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1818        match self {
1819            Self::Auto => write!(f, "auto"),
1820            Self::Exact => write!(f, "exact"),
1821            Self::AtLeast => write!(f, "atLeast"),
1822        }
1823    }
1824}
1825
1826impl std::str::FromStr for STHeightRule {
1827    type Err = String;
1828
1829    fn from_str(s: &str) -> Result<Self, Self::Err> {
1830        match s {
1831            "auto" => Ok(Self::Auto),
1832            "exact" => Ok(Self::Exact),
1833            "atLeast" => Ok(Self::AtLeast),
1834            _ => Err(format!("unknown STHeightRule value: {}", s)),
1835        }
1836    }
1837}
1838
1839#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1840pub enum STWrap {
1841    #[serde(rename = "auto")]
1842    Auto,
1843    #[serde(rename = "notBeside")]
1844    NotBeside,
1845    #[serde(rename = "around")]
1846    Around,
1847    #[serde(rename = "tight")]
1848    Tight,
1849    #[serde(rename = "through")]
1850    Through,
1851    #[serde(rename = "none")]
1852    None,
1853}
1854
1855impl std::fmt::Display for STWrap {
1856    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1857        match self {
1858            Self::Auto => write!(f, "auto"),
1859            Self::NotBeside => write!(f, "notBeside"),
1860            Self::Around => write!(f, "around"),
1861            Self::Tight => write!(f, "tight"),
1862            Self::Through => write!(f, "through"),
1863            Self::None => write!(f, "none"),
1864        }
1865    }
1866}
1867
1868impl std::str::FromStr for STWrap {
1869    type Err = String;
1870
1871    fn from_str(s: &str) -> Result<Self, Self::Err> {
1872        match s {
1873            "auto" => Ok(Self::Auto),
1874            "notBeside" => Ok(Self::NotBeside),
1875            "around" => Ok(Self::Around),
1876            "tight" => Ok(Self::Tight),
1877            "through" => Ok(Self::Through),
1878            "none" => Ok(Self::None),
1879            _ => Err(format!("unknown STWrap value: {}", s)),
1880        }
1881    }
1882}
1883
1884#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1885pub enum STVAnchor {
1886    #[serde(rename = "text")]
1887    Text,
1888    #[serde(rename = "margin")]
1889    Margin,
1890    #[serde(rename = "page")]
1891    Page,
1892}
1893
1894impl std::fmt::Display for STVAnchor {
1895    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1896        match self {
1897            Self::Text => write!(f, "text"),
1898            Self::Margin => write!(f, "margin"),
1899            Self::Page => write!(f, "page"),
1900        }
1901    }
1902}
1903
1904impl std::str::FromStr for STVAnchor {
1905    type Err = String;
1906
1907    fn from_str(s: &str) -> Result<Self, Self::Err> {
1908        match s {
1909            "text" => Ok(Self::Text),
1910            "margin" => Ok(Self::Margin),
1911            "page" => Ok(Self::Page),
1912            _ => Err(format!("unknown STVAnchor value: {}", s)),
1913        }
1914    }
1915}
1916
1917#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1918pub enum STHAnchor {
1919    #[serde(rename = "text")]
1920    Text,
1921    #[serde(rename = "margin")]
1922    Margin,
1923    #[serde(rename = "page")]
1924    Page,
1925}
1926
1927impl std::fmt::Display for STHAnchor {
1928    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1929        match self {
1930            Self::Text => write!(f, "text"),
1931            Self::Margin => write!(f, "margin"),
1932            Self::Page => write!(f, "page"),
1933        }
1934    }
1935}
1936
1937impl std::str::FromStr for STHAnchor {
1938    type Err = String;
1939
1940    fn from_str(s: &str) -> Result<Self, Self::Err> {
1941        match s {
1942            "text" => Ok(Self::Text),
1943            "margin" => Ok(Self::Margin),
1944            "page" => Ok(Self::Page),
1945            _ => Err(format!("unknown STHAnchor value: {}", s)),
1946        }
1947    }
1948}
1949
1950#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1951pub enum STDropCap {
1952    #[serde(rename = "none")]
1953    None,
1954    #[serde(rename = "drop")]
1955    Drop,
1956    #[serde(rename = "margin")]
1957    Margin,
1958}
1959
1960impl std::fmt::Display for STDropCap {
1961    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1962        match self {
1963            Self::None => write!(f, "none"),
1964            Self::Drop => write!(f, "drop"),
1965            Self::Margin => write!(f, "margin"),
1966        }
1967    }
1968}
1969
1970impl std::str::FromStr for STDropCap {
1971    type Err = String;
1972
1973    fn from_str(s: &str) -> Result<Self, Self::Err> {
1974        match s {
1975            "none" => Ok(Self::None),
1976            "drop" => Ok(Self::Drop),
1977            "margin" => Ok(Self::Margin),
1978            _ => Err(format!("unknown STDropCap value: {}", s)),
1979        }
1980    }
1981}
1982
1983#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1984pub enum STTabJc {
1985    #[serde(rename = "clear")]
1986    Clear,
1987    #[serde(rename = "start")]
1988    Start,
1989    #[serde(rename = "center")]
1990    Center,
1991    #[serde(rename = "end")]
1992    End,
1993    #[serde(rename = "decimal")]
1994    Decimal,
1995    #[serde(rename = "bar")]
1996    Bar,
1997    #[serde(rename = "num")]
1998    Num,
1999    #[serde(rename = "left")]
2000    Left,
2001    #[serde(rename = "right")]
2002    Right,
2003}
2004
2005impl std::fmt::Display for STTabJc {
2006    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2007        match self {
2008            Self::Clear => write!(f, "clear"),
2009            Self::Start => write!(f, "start"),
2010            Self::Center => write!(f, "center"),
2011            Self::End => write!(f, "end"),
2012            Self::Decimal => write!(f, "decimal"),
2013            Self::Bar => write!(f, "bar"),
2014            Self::Num => write!(f, "num"),
2015            Self::Left => write!(f, "left"),
2016            Self::Right => write!(f, "right"),
2017        }
2018    }
2019}
2020
2021impl std::str::FromStr for STTabJc {
2022    type Err = String;
2023
2024    fn from_str(s: &str) -> Result<Self, Self::Err> {
2025        match s {
2026            "clear" => Ok(Self::Clear),
2027            "start" => Ok(Self::Start),
2028            "center" => Ok(Self::Center),
2029            "end" => Ok(Self::End),
2030            "decimal" => Ok(Self::Decimal),
2031            "bar" => Ok(Self::Bar),
2032            "num" => Ok(Self::Num),
2033            "left" => Ok(Self::Left),
2034            "right" => Ok(Self::Right),
2035            _ => Err(format!("unknown STTabJc value: {}", s)),
2036        }
2037    }
2038}
2039
2040#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2041pub enum STTabTlc {
2042    #[serde(rename = "none")]
2043    None,
2044    #[serde(rename = "dot")]
2045    Dot,
2046    #[serde(rename = "hyphen")]
2047    Hyphen,
2048    #[serde(rename = "underscore")]
2049    Underscore,
2050    #[serde(rename = "heavy")]
2051    Heavy,
2052    #[serde(rename = "middleDot")]
2053    MiddleDot,
2054}
2055
2056impl std::fmt::Display for STTabTlc {
2057    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2058        match self {
2059            Self::None => write!(f, "none"),
2060            Self::Dot => write!(f, "dot"),
2061            Self::Hyphen => write!(f, "hyphen"),
2062            Self::Underscore => write!(f, "underscore"),
2063            Self::Heavy => write!(f, "heavy"),
2064            Self::MiddleDot => write!(f, "middleDot"),
2065        }
2066    }
2067}
2068
2069impl std::str::FromStr for STTabTlc {
2070    type Err = String;
2071
2072    fn from_str(s: &str) -> Result<Self, Self::Err> {
2073        match s {
2074            "none" => Ok(Self::None),
2075            "dot" => Ok(Self::Dot),
2076            "hyphen" => Ok(Self::Hyphen),
2077            "underscore" => Ok(Self::Underscore),
2078            "heavy" => Ok(Self::Heavy),
2079            "middleDot" => Ok(Self::MiddleDot),
2080            _ => Err(format!("unknown STTabTlc value: {}", s)),
2081        }
2082    }
2083}
2084
2085#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2086pub enum STLineSpacingRule {
2087    #[serde(rename = "auto")]
2088    Auto,
2089    #[serde(rename = "exact")]
2090    Exact,
2091    #[serde(rename = "atLeast")]
2092    AtLeast,
2093}
2094
2095impl std::fmt::Display for STLineSpacingRule {
2096    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2097        match self {
2098            Self::Auto => write!(f, "auto"),
2099            Self::Exact => write!(f, "exact"),
2100            Self::AtLeast => write!(f, "atLeast"),
2101        }
2102    }
2103}
2104
2105impl std::str::FromStr for STLineSpacingRule {
2106    type Err = String;
2107
2108    fn from_str(s: &str) -> Result<Self, Self::Err> {
2109        match s {
2110            "auto" => Ok(Self::Auto),
2111            "exact" => Ok(Self::Exact),
2112            "atLeast" => Ok(Self::AtLeast),
2113            _ => Err(format!("unknown STLineSpacingRule value: {}", s)),
2114        }
2115    }
2116}
2117
2118#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2119pub enum STJc {
2120    #[serde(rename = "start")]
2121    Start,
2122    #[serde(rename = "center")]
2123    Center,
2124    #[serde(rename = "end")]
2125    End,
2126    #[serde(rename = "both")]
2127    Both,
2128    #[serde(rename = "mediumKashida")]
2129    MediumKashida,
2130    #[serde(rename = "distribute")]
2131    Distribute,
2132    #[serde(rename = "numTab")]
2133    NumTab,
2134    #[serde(rename = "highKashida")]
2135    HighKashida,
2136    #[serde(rename = "lowKashida")]
2137    LowKashida,
2138    #[serde(rename = "thaiDistribute")]
2139    ThaiDistribute,
2140    #[serde(rename = "left")]
2141    Left,
2142    #[serde(rename = "right")]
2143    Right,
2144}
2145
2146impl std::fmt::Display for STJc {
2147    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2148        match self {
2149            Self::Start => write!(f, "start"),
2150            Self::Center => write!(f, "center"),
2151            Self::End => write!(f, "end"),
2152            Self::Both => write!(f, "both"),
2153            Self::MediumKashida => write!(f, "mediumKashida"),
2154            Self::Distribute => write!(f, "distribute"),
2155            Self::NumTab => write!(f, "numTab"),
2156            Self::HighKashida => write!(f, "highKashida"),
2157            Self::LowKashida => write!(f, "lowKashida"),
2158            Self::ThaiDistribute => write!(f, "thaiDistribute"),
2159            Self::Left => write!(f, "left"),
2160            Self::Right => write!(f, "right"),
2161        }
2162    }
2163}
2164
2165impl std::str::FromStr for STJc {
2166    type Err = String;
2167
2168    fn from_str(s: &str) -> Result<Self, Self::Err> {
2169        match s {
2170            "start" => Ok(Self::Start),
2171            "center" => Ok(Self::Center),
2172            "end" => Ok(Self::End),
2173            "both" => Ok(Self::Both),
2174            "mediumKashida" => Ok(Self::MediumKashida),
2175            "distribute" => Ok(Self::Distribute),
2176            "numTab" => Ok(Self::NumTab),
2177            "highKashida" => Ok(Self::HighKashida),
2178            "lowKashida" => Ok(Self::LowKashida),
2179            "thaiDistribute" => Ok(Self::ThaiDistribute),
2180            "left" => Ok(Self::Left),
2181            "right" => Ok(Self::Right),
2182            _ => Err(format!("unknown STJc value: {}", s)),
2183        }
2184    }
2185}
2186
2187#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2188pub enum STJcTable {
2189    #[serde(rename = "center")]
2190    Center,
2191    #[serde(rename = "end")]
2192    End,
2193    #[serde(rename = "left")]
2194    Left,
2195    #[serde(rename = "right")]
2196    Right,
2197    #[serde(rename = "start")]
2198    Start,
2199}
2200
2201impl std::fmt::Display for STJcTable {
2202    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2203        match self {
2204            Self::Center => write!(f, "center"),
2205            Self::End => write!(f, "end"),
2206            Self::Left => write!(f, "left"),
2207            Self::Right => write!(f, "right"),
2208            Self::Start => write!(f, "start"),
2209        }
2210    }
2211}
2212
2213impl std::str::FromStr for STJcTable {
2214    type Err = String;
2215
2216    fn from_str(s: &str) -> Result<Self, Self::Err> {
2217        match s {
2218            "center" => Ok(Self::Center),
2219            "end" => Ok(Self::End),
2220            "left" => Ok(Self::Left),
2221            "right" => Ok(Self::Right),
2222            "start" => Ok(Self::Start),
2223            _ => Err(format!("unknown STJcTable value: {}", s)),
2224        }
2225    }
2226}
2227
2228#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2229pub enum STView {
2230    #[serde(rename = "none")]
2231    None,
2232    #[serde(rename = "print")]
2233    Print,
2234    #[serde(rename = "outline")]
2235    Outline,
2236    #[serde(rename = "masterPages")]
2237    MasterPages,
2238    #[serde(rename = "normal")]
2239    Normal,
2240    #[serde(rename = "web")]
2241    Web,
2242}
2243
2244impl std::fmt::Display for STView {
2245    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2246        match self {
2247            Self::None => write!(f, "none"),
2248            Self::Print => write!(f, "print"),
2249            Self::Outline => write!(f, "outline"),
2250            Self::MasterPages => write!(f, "masterPages"),
2251            Self::Normal => write!(f, "normal"),
2252            Self::Web => write!(f, "web"),
2253        }
2254    }
2255}
2256
2257impl std::str::FromStr for STView {
2258    type Err = String;
2259
2260    fn from_str(s: &str) -> Result<Self, Self::Err> {
2261        match s {
2262            "none" => Ok(Self::None),
2263            "print" => Ok(Self::Print),
2264            "outline" => Ok(Self::Outline),
2265            "masterPages" => Ok(Self::MasterPages),
2266            "normal" => Ok(Self::Normal),
2267            "web" => Ok(Self::Web),
2268            _ => Err(format!("unknown STView value: {}", s)),
2269        }
2270    }
2271}
2272
2273#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2274pub enum STZoom {
2275    #[serde(rename = "none")]
2276    None,
2277    #[serde(rename = "fullPage")]
2278    FullPage,
2279    #[serde(rename = "bestFit")]
2280    BestFit,
2281    #[serde(rename = "textFit")]
2282    TextFit,
2283}
2284
2285impl std::fmt::Display for STZoom {
2286    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2287        match self {
2288            Self::None => write!(f, "none"),
2289            Self::FullPage => write!(f, "fullPage"),
2290            Self::BestFit => write!(f, "bestFit"),
2291            Self::TextFit => write!(f, "textFit"),
2292        }
2293    }
2294}
2295
2296impl std::str::FromStr for STZoom {
2297    type Err = String;
2298
2299    fn from_str(s: &str) -> Result<Self, Self::Err> {
2300        match s {
2301            "none" => Ok(Self::None),
2302            "fullPage" => Ok(Self::FullPage),
2303            "bestFit" => Ok(Self::BestFit),
2304            "textFit" => Ok(Self::TextFit),
2305            _ => Err(format!("unknown STZoom value: {}", s)),
2306        }
2307    }
2308}
2309
2310#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2311pub enum STProof {
2312    #[serde(rename = "clean")]
2313    Clean,
2314    #[serde(rename = "dirty")]
2315    Dirty,
2316}
2317
2318impl std::fmt::Display for STProof {
2319    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2320        match self {
2321            Self::Clean => write!(f, "clean"),
2322            Self::Dirty => write!(f, "dirty"),
2323        }
2324    }
2325}
2326
2327impl std::str::FromStr for STProof {
2328    type Err = String;
2329
2330    fn from_str(s: &str) -> Result<Self, Self::Err> {
2331        match s {
2332            "clean" => Ok(Self::Clean),
2333            "dirty" => Ok(Self::Dirty),
2334            _ => Err(format!("unknown STProof value: {}", s)),
2335        }
2336    }
2337}
2338
2339pub type STDocType = String;
2340
2341#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2342pub enum STDocProtect {
2343    #[serde(rename = "none")]
2344    None,
2345    #[serde(rename = "readOnly")]
2346    ReadOnly,
2347    #[serde(rename = "comments")]
2348    Comments,
2349    #[serde(rename = "trackedChanges")]
2350    TrackedChanges,
2351    #[serde(rename = "forms")]
2352    Forms,
2353}
2354
2355impl std::fmt::Display for STDocProtect {
2356    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2357        match self {
2358            Self::None => write!(f, "none"),
2359            Self::ReadOnly => write!(f, "readOnly"),
2360            Self::Comments => write!(f, "comments"),
2361            Self::TrackedChanges => write!(f, "trackedChanges"),
2362            Self::Forms => write!(f, "forms"),
2363        }
2364    }
2365}
2366
2367impl std::str::FromStr for STDocProtect {
2368    type Err = String;
2369
2370    fn from_str(s: &str) -> Result<Self, Self::Err> {
2371        match s {
2372            "none" => Ok(Self::None),
2373            "readOnly" => Ok(Self::ReadOnly),
2374            "comments" => Ok(Self::Comments),
2375            "trackedChanges" => Ok(Self::TrackedChanges),
2376            "forms" => Ok(Self::Forms),
2377            _ => Err(format!("unknown STDocProtect value: {}", s)),
2378        }
2379    }
2380}
2381
2382#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2383pub enum STMailMergeDocType {
2384    #[serde(rename = "catalog")]
2385    Catalog,
2386    #[serde(rename = "envelopes")]
2387    Envelopes,
2388    #[serde(rename = "mailingLabels")]
2389    MailingLabels,
2390    #[serde(rename = "formLetters")]
2391    FormLetters,
2392    #[serde(rename = "email")]
2393    Email,
2394    #[serde(rename = "fax")]
2395    Fax,
2396}
2397
2398impl std::fmt::Display for STMailMergeDocType {
2399    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2400        match self {
2401            Self::Catalog => write!(f, "catalog"),
2402            Self::Envelopes => write!(f, "envelopes"),
2403            Self::MailingLabels => write!(f, "mailingLabels"),
2404            Self::FormLetters => write!(f, "formLetters"),
2405            Self::Email => write!(f, "email"),
2406            Self::Fax => write!(f, "fax"),
2407        }
2408    }
2409}
2410
2411impl std::str::FromStr for STMailMergeDocType {
2412    type Err = String;
2413
2414    fn from_str(s: &str) -> Result<Self, Self::Err> {
2415        match s {
2416            "catalog" => Ok(Self::Catalog),
2417            "envelopes" => Ok(Self::Envelopes),
2418            "mailingLabels" => Ok(Self::MailingLabels),
2419            "formLetters" => Ok(Self::FormLetters),
2420            "email" => Ok(Self::Email),
2421            "fax" => Ok(Self::Fax),
2422            _ => Err(format!("unknown STMailMergeDocType value: {}", s)),
2423        }
2424    }
2425}
2426
2427pub type STMailMergeDataType = String;
2428
2429#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2430pub enum STMailMergeDest {
2431    #[serde(rename = "newDocument")]
2432    NewDocument,
2433    #[serde(rename = "printer")]
2434    Printer,
2435    #[serde(rename = "email")]
2436    Email,
2437    #[serde(rename = "fax")]
2438    Fax,
2439}
2440
2441impl std::fmt::Display for STMailMergeDest {
2442    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2443        match self {
2444            Self::NewDocument => write!(f, "newDocument"),
2445            Self::Printer => write!(f, "printer"),
2446            Self::Email => write!(f, "email"),
2447            Self::Fax => write!(f, "fax"),
2448        }
2449    }
2450}
2451
2452impl std::str::FromStr for STMailMergeDest {
2453    type Err = String;
2454
2455    fn from_str(s: &str) -> Result<Self, Self::Err> {
2456        match s {
2457            "newDocument" => Ok(Self::NewDocument),
2458            "printer" => Ok(Self::Printer),
2459            "email" => Ok(Self::Email),
2460            "fax" => Ok(Self::Fax),
2461            _ => Err(format!("unknown STMailMergeDest value: {}", s)),
2462        }
2463    }
2464}
2465
2466#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2467pub enum STMailMergeOdsoFMDFieldType {
2468    #[serde(rename = "null")]
2469    Null,
2470    #[serde(rename = "dbColumn")]
2471    DbColumn,
2472}
2473
2474impl std::fmt::Display for STMailMergeOdsoFMDFieldType {
2475    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2476        match self {
2477            Self::Null => write!(f, "null"),
2478            Self::DbColumn => write!(f, "dbColumn"),
2479        }
2480    }
2481}
2482
2483impl std::str::FromStr for STMailMergeOdsoFMDFieldType {
2484    type Err = String;
2485
2486    fn from_str(s: &str) -> Result<Self, Self::Err> {
2487        match s {
2488            "null" => Ok(Self::Null),
2489            "dbColumn" => Ok(Self::DbColumn),
2490            _ => Err(format!("unknown STMailMergeOdsoFMDFieldType value: {}", s)),
2491        }
2492    }
2493}
2494
2495#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2496pub enum STTextDirection {
2497    #[serde(rename = "tb")]
2498    Tb,
2499    #[serde(rename = "rl")]
2500    Rl,
2501    #[serde(rename = "lr")]
2502    Lr,
2503    #[serde(rename = "tbV")]
2504    TbV,
2505    #[serde(rename = "rlV")]
2506    RlV,
2507    #[serde(rename = "lrV")]
2508    LrV,
2509    #[serde(rename = "btLr")]
2510    BtLr,
2511    #[serde(rename = "lrTb")]
2512    LrTb,
2513    #[serde(rename = "lrTbV")]
2514    LrTbV,
2515    #[serde(rename = "tbLrV")]
2516    TbLrV,
2517    #[serde(rename = "tbRl")]
2518    TbRl,
2519    #[serde(rename = "tbRlV")]
2520    TbRlV,
2521}
2522
2523impl std::fmt::Display for STTextDirection {
2524    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2525        match self {
2526            Self::Tb => write!(f, "tb"),
2527            Self::Rl => write!(f, "rl"),
2528            Self::Lr => write!(f, "lr"),
2529            Self::TbV => write!(f, "tbV"),
2530            Self::RlV => write!(f, "rlV"),
2531            Self::LrV => write!(f, "lrV"),
2532            Self::BtLr => write!(f, "btLr"),
2533            Self::LrTb => write!(f, "lrTb"),
2534            Self::LrTbV => write!(f, "lrTbV"),
2535            Self::TbLrV => write!(f, "tbLrV"),
2536            Self::TbRl => write!(f, "tbRl"),
2537            Self::TbRlV => write!(f, "tbRlV"),
2538        }
2539    }
2540}
2541
2542impl std::str::FromStr for STTextDirection {
2543    type Err = String;
2544
2545    fn from_str(s: &str) -> Result<Self, Self::Err> {
2546        match s {
2547            "tb" => Ok(Self::Tb),
2548            "rl" => Ok(Self::Rl),
2549            "lr" => Ok(Self::Lr),
2550            "tbV" => Ok(Self::TbV),
2551            "rlV" => Ok(Self::RlV),
2552            "lrV" => Ok(Self::LrV),
2553            "btLr" => Ok(Self::BtLr),
2554            "lrTb" => Ok(Self::LrTb),
2555            "lrTbV" => Ok(Self::LrTbV),
2556            "tbLrV" => Ok(Self::TbLrV),
2557            "tbRl" => Ok(Self::TbRl),
2558            "tbRlV" => Ok(Self::TbRlV),
2559            _ => Err(format!("unknown STTextDirection value: {}", s)),
2560        }
2561    }
2562}
2563
2564#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2565pub enum STTextAlignment {
2566    #[serde(rename = "top")]
2567    Top,
2568    #[serde(rename = "center")]
2569    Center,
2570    #[serde(rename = "baseline")]
2571    Baseline,
2572    #[serde(rename = "bottom")]
2573    Bottom,
2574    #[serde(rename = "auto")]
2575    Auto,
2576}
2577
2578impl std::fmt::Display for STTextAlignment {
2579    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2580        match self {
2581            Self::Top => write!(f, "top"),
2582            Self::Center => write!(f, "center"),
2583            Self::Baseline => write!(f, "baseline"),
2584            Self::Bottom => write!(f, "bottom"),
2585            Self::Auto => write!(f, "auto"),
2586        }
2587    }
2588}
2589
2590impl std::str::FromStr for STTextAlignment {
2591    type Err = String;
2592
2593    fn from_str(s: &str) -> Result<Self, Self::Err> {
2594        match s {
2595            "top" => Ok(Self::Top),
2596            "center" => Ok(Self::Center),
2597            "baseline" => Ok(Self::Baseline),
2598            "bottom" => Ok(Self::Bottom),
2599            "auto" => Ok(Self::Auto),
2600            _ => Err(format!("unknown STTextAlignment value: {}", s)),
2601        }
2602    }
2603}
2604
2605#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2606pub enum STDisplacedByCustomXml {
2607    #[serde(rename = "next")]
2608    Next,
2609    #[serde(rename = "prev")]
2610    Prev,
2611}
2612
2613impl std::fmt::Display for STDisplacedByCustomXml {
2614    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2615        match self {
2616            Self::Next => write!(f, "next"),
2617            Self::Prev => write!(f, "prev"),
2618        }
2619    }
2620}
2621
2622impl std::str::FromStr for STDisplacedByCustomXml {
2623    type Err = String;
2624
2625    fn from_str(s: &str) -> Result<Self, Self::Err> {
2626        match s {
2627            "next" => Ok(Self::Next),
2628            "prev" => Ok(Self::Prev),
2629            _ => Err(format!("unknown STDisplacedByCustomXml value: {}", s)),
2630        }
2631    }
2632}
2633
2634#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2635pub enum STAnnotationVMerge {
2636    #[serde(rename = "cont")]
2637    Cont,
2638    #[serde(rename = "rest")]
2639    Rest,
2640}
2641
2642impl std::fmt::Display for STAnnotationVMerge {
2643    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2644        match self {
2645            Self::Cont => write!(f, "cont"),
2646            Self::Rest => write!(f, "rest"),
2647        }
2648    }
2649}
2650
2651impl std::str::FromStr for STAnnotationVMerge {
2652    type Err = String;
2653
2654    fn from_str(s: &str) -> Result<Self, Self::Err> {
2655        match s {
2656            "cont" => Ok(Self::Cont),
2657            "rest" => Ok(Self::Rest),
2658            _ => Err(format!("unknown STAnnotationVMerge value: {}", s)),
2659        }
2660    }
2661}
2662
2663#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2664pub enum STTextboxTightWrap {
2665    #[serde(rename = "none")]
2666    None,
2667    #[serde(rename = "allLines")]
2668    AllLines,
2669    #[serde(rename = "firstAndLastLine")]
2670    FirstAndLastLine,
2671    #[serde(rename = "firstLineOnly")]
2672    FirstLineOnly,
2673    #[serde(rename = "lastLineOnly")]
2674    LastLineOnly,
2675}
2676
2677impl std::fmt::Display for STTextboxTightWrap {
2678    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2679        match self {
2680            Self::None => write!(f, "none"),
2681            Self::AllLines => write!(f, "allLines"),
2682            Self::FirstAndLastLine => write!(f, "firstAndLastLine"),
2683            Self::FirstLineOnly => write!(f, "firstLineOnly"),
2684            Self::LastLineOnly => write!(f, "lastLineOnly"),
2685        }
2686    }
2687}
2688
2689impl std::str::FromStr for STTextboxTightWrap {
2690    type Err = String;
2691
2692    fn from_str(s: &str) -> Result<Self, Self::Err> {
2693        match s {
2694            "none" => Ok(Self::None),
2695            "allLines" => Ok(Self::AllLines),
2696            "firstAndLastLine" => Ok(Self::FirstAndLastLine),
2697            "firstLineOnly" => Ok(Self::FirstLineOnly),
2698            "lastLineOnly" => Ok(Self::LastLineOnly),
2699            _ => Err(format!("unknown STTextboxTightWrap value: {}", s)),
2700        }
2701    }
2702}
2703
2704#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2705pub enum STObjectDrawAspect {
2706    #[serde(rename = "content")]
2707    Content,
2708    #[serde(rename = "icon")]
2709    Icon,
2710}
2711
2712impl std::fmt::Display for STObjectDrawAspect {
2713    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2714        match self {
2715            Self::Content => write!(f, "content"),
2716            Self::Icon => write!(f, "icon"),
2717        }
2718    }
2719}
2720
2721impl std::str::FromStr for STObjectDrawAspect {
2722    type Err = String;
2723
2724    fn from_str(s: &str) -> Result<Self, Self::Err> {
2725        match s {
2726            "content" => Ok(Self::Content),
2727            "icon" => Ok(Self::Icon),
2728            _ => Err(format!("unknown STObjectDrawAspect value: {}", s)),
2729        }
2730    }
2731}
2732
2733#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2734pub enum STObjectUpdateMode {
2735    #[serde(rename = "always")]
2736    Always,
2737    #[serde(rename = "onCall")]
2738    OnCall,
2739}
2740
2741impl std::fmt::Display for STObjectUpdateMode {
2742    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2743        match self {
2744            Self::Always => write!(f, "always"),
2745            Self::OnCall => write!(f, "onCall"),
2746        }
2747    }
2748}
2749
2750impl std::str::FromStr for STObjectUpdateMode {
2751    type Err = String;
2752
2753    fn from_str(s: &str) -> Result<Self, Self::Err> {
2754        match s {
2755            "always" => Ok(Self::Always),
2756            "onCall" => Ok(Self::OnCall),
2757            _ => Err(format!("unknown STObjectUpdateMode value: {}", s)),
2758        }
2759    }
2760}
2761
2762#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2763pub enum STFldCharType {
2764    #[serde(rename = "begin")]
2765    Begin,
2766    #[serde(rename = "separate")]
2767    Separate,
2768    #[serde(rename = "end")]
2769    End,
2770}
2771
2772impl std::fmt::Display for STFldCharType {
2773    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2774        match self {
2775            Self::Begin => write!(f, "begin"),
2776            Self::Separate => write!(f, "separate"),
2777            Self::End => write!(f, "end"),
2778        }
2779    }
2780}
2781
2782impl std::str::FromStr for STFldCharType {
2783    type Err = String;
2784
2785    fn from_str(s: &str) -> Result<Self, Self::Err> {
2786        match s {
2787            "begin" => Ok(Self::Begin),
2788            "separate" => Ok(Self::Separate),
2789            "end" => Ok(Self::End),
2790            _ => Err(format!("unknown STFldCharType value: {}", s)),
2791        }
2792    }
2793}
2794
2795#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2796pub enum STInfoTextType {
2797    #[serde(rename = "text")]
2798    Text,
2799    #[serde(rename = "autoText")]
2800    AutoText,
2801}
2802
2803impl std::fmt::Display for STInfoTextType {
2804    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2805        match self {
2806            Self::Text => write!(f, "text"),
2807            Self::AutoText => write!(f, "autoText"),
2808        }
2809    }
2810}
2811
2812impl std::str::FromStr for STInfoTextType {
2813    type Err = String;
2814
2815    fn from_str(s: &str) -> Result<Self, Self::Err> {
2816        match s {
2817            "text" => Ok(Self::Text),
2818            "autoText" => Ok(Self::AutoText),
2819            _ => Err(format!("unknown STInfoTextType value: {}", s)),
2820        }
2821    }
2822}
2823
2824pub type STFFHelpTextVal = String;
2825
2826pub type STFFStatusTextVal = String;
2827
2828pub type STFFName = String;
2829
2830#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2831pub enum STFFTextType {
2832    #[serde(rename = "regular")]
2833    Regular,
2834    #[serde(rename = "number")]
2835    Number,
2836    #[serde(rename = "date")]
2837    Date,
2838    #[serde(rename = "currentTime")]
2839    CurrentTime,
2840    #[serde(rename = "currentDate")]
2841    CurrentDate,
2842    #[serde(rename = "calculated")]
2843    Calculated,
2844}
2845
2846impl std::fmt::Display for STFFTextType {
2847    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2848        match self {
2849            Self::Regular => write!(f, "regular"),
2850            Self::Number => write!(f, "number"),
2851            Self::Date => write!(f, "date"),
2852            Self::CurrentTime => write!(f, "currentTime"),
2853            Self::CurrentDate => write!(f, "currentDate"),
2854            Self::Calculated => write!(f, "calculated"),
2855        }
2856    }
2857}
2858
2859impl std::str::FromStr for STFFTextType {
2860    type Err = String;
2861
2862    fn from_str(s: &str) -> Result<Self, Self::Err> {
2863        match s {
2864            "regular" => Ok(Self::Regular),
2865            "number" => Ok(Self::Number),
2866            "date" => Ok(Self::Date),
2867            "currentTime" => Ok(Self::CurrentTime),
2868            "currentDate" => Ok(Self::CurrentDate),
2869            "calculated" => Ok(Self::Calculated),
2870            _ => Err(format!("unknown STFFTextType value: {}", s)),
2871        }
2872    }
2873}
2874
2875#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2876pub enum STSectionMark {
2877    #[serde(rename = "nextPage")]
2878    NextPage,
2879    #[serde(rename = "nextColumn")]
2880    NextColumn,
2881    #[serde(rename = "continuous")]
2882    Continuous,
2883    #[serde(rename = "evenPage")]
2884    EvenPage,
2885    #[serde(rename = "oddPage")]
2886    OddPage,
2887}
2888
2889impl std::fmt::Display for STSectionMark {
2890    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2891        match self {
2892            Self::NextPage => write!(f, "nextPage"),
2893            Self::NextColumn => write!(f, "nextColumn"),
2894            Self::Continuous => write!(f, "continuous"),
2895            Self::EvenPage => write!(f, "evenPage"),
2896            Self::OddPage => write!(f, "oddPage"),
2897        }
2898    }
2899}
2900
2901impl std::str::FromStr for STSectionMark {
2902    type Err = String;
2903
2904    fn from_str(s: &str) -> Result<Self, Self::Err> {
2905        match s {
2906            "nextPage" => Ok(Self::NextPage),
2907            "nextColumn" => Ok(Self::NextColumn),
2908            "continuous" => Ok(Self::Continuous),
2909            "evenPage" => Ok(Self::EvenPage),
2910            "oddPage" => Ok(Self::OddPage),
2911            _ => Err(format!("unknown STSectionMark value: {}", s)),
2912        }
2913    }
2914}
2915
2916#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2917pub enum STNumberFormat {
2918    #[serde(rename = "decimal")]
2919    Decimal,
2920    #[serde(rename = "upperRoman")]
2921    UpperRoman,
2922    #[serde(rename = "lowerRoman")]
2923    LowerRoman,
2924    #[serde(rename = "upperLetter")]
2925    UpperLetter,
2926    #[serde(rename = "lowerLetter")]
2927    LowerLetter,
2928    #[serde(rename = "ordinal")]
2929    Ordinal,
2930    #[serde(rename = "cardinalText")]
2931    CardinalText,
2932    #[serde(rename = "ordinalText")]
2933    OrdinalText,
2934    #[serde(rename = "hex")]
2935    Hex,
2936    #[serde(rename = "chicago")]
2937    Chicago,
2938    #[serde(rename = "ideographDigital")]
2939    IdeographDigital,
2940    #[serde(rename = "japaneseCounting")]
2941    JapaneseCounting,
2942    #[serde(rename = "aiueo")]
2943    Aiueo,
2944    #[serde(rename = "iroha")]
2945    Iroha,
2946    #[serde(rename = "decimalFullWidth")]
2947    DecimalFullWidth,
2948    #[serde(rename = "decimalHalfWidth")]
2949    DecimalHalfWidth,
2950    #[serde(rename = "japaneseLegal")]
2951    JapaneseLegal,
2952    #[serde(rename = "japaneseDigitalTenThousand")]
2953    JapaneseDigitalTenThousand,
2954    #[serde(rename = "decimalEnclosedCircle")]
2955    DecimalEnclosedCircle,
2956    #[serde(rename = "decimalFullWidth2")]
2957    DecimalFullWidth2,
2958    #[serde(rename = "aiueoFullWidth")]
2959    AiueoFullWidth,
2960    #[serde(rename = "irohaFullWidth")]
2961    IrohaFullWidth,
2962    #[serde(rename = "decimalZero")]
2963    DecimalZero,
2964    #[serde(rename = "bullet")]
2965    Bullet,
2966    #[serde(rename = "ganada")]
2967    Ganada,
2968    #[serde(rename = "chosung")]
2969    Chosung,
2970    #[serde(rename = "decimalEnclosedFullstop")]
2971    DecimalEnclosedFullstop,
2972    #[serde(rename = "decimalEnclosedParen")]
2973    DecimalEnclosedParen,
2974    #[serde(rename = "decimalEnclosedCircleChinese")]
2975    DecimalEnclosedCircleChinese,
2976    #[serde(rename = "ideographEnclosedCircle")]
2977    IdeographEnclosedCircle,
2978    #[serde(rename = "ideographTraditional")]
2979    IdeographTraditional,
2980    #[serde(rename = "ideographZodiac")]
2981    IdeographZodiac,
2982    #[serde(rename = "ideographZodiacTraditional")]
2983    IdeographZodiacTraditional,
2984    #[serde(rename = "taiwaneseCounting")]
2985    TaiwaneseCounting,
2986    #[serde(rename = "ideographLegalTraditional")]
2987    IdeographLegalTraditional,
2988    #[serde(rename = "taiwaneseCountingThousand")]
2989    TaiwaneseCountingThousand,
2990    #[serde(rename = "taiwaneseDigital")]
2991    TaiwaneseDigital,
2992    #[serde(rename = "chineseCounting")]
2993    ChineseCounting,
2994    #[serde(rename = "chineseLegalSimplified")]
2995    ChineseLegalSimplified,
2996    #[serde(rename = "chineseCountingThousand")]
2997    ChineseCountingThousand,
2998    #[serde(rename = "koreanDigital")]
2999    KoreanDigital,
3000    #[serde(rename = "koreanCounting")]
3001    KoreanCounting,
3002    #[serde(rename = "koreanLegal")]
3003    KoreanLegal,
3004    #[serde(rename = "koreanDigital2")]
3005    KoreanDigital2,
3006    #[serde(rename = "vietnameseCounting")]
3007    VietnameseCounting,
3008    #[serde(rename = "russianLower")]
3009    RussianLower,
3010    #[serde(rename = "russianUpper")]
3011    RussianUpper,
3012    #[serde(rename = "none")]
3013    None,
3014    #[serde(rename = "numberInDash")]
3015    NumberInDash,
3016    #[serde(rename = "hebrew1")]
3017    Hebrew1,
3018    #[serde(rename = "hebrew2")]
3019    Hebrew2,
3020    #[serde(rename = "arabicAlpha")]
3021    ArabicAlpha,
3022    #[serde(rename = "arabicAbjad")]
3023    ArabicAbjad,
3024    #[serde(rename = "hindiVowels")]
3025    HindiVowels,
3026    #[serde(rename = "hindiConsonants")]
3027    HindiConsonants,
3028    #[serde(rename = "hindiNumbers")]
3029    HindiNumbers,
3030    #[serde(rename = "hindiCounting")]
3031    HindiCounting,
3032    #[serde(rename = "thaiLetters")]
3033    ThaiLetters,
3034    #[serde(rename = "thaiNumbers")]
3035    ThaiNumbers,
3036    #[serde(rename = "thaiCounting")]
3037    ThaiCounting,
3038    #[serde(rename = "bahtText")]
3039    BahtText,
3040    #[serde(rename = "dollarText")]
3041    DollarText,
3042    #[serde(rename = "custom")]
3043    Custom,
3044}
3045
3046impl std::fmt::Display for STNumberFormat {
3047    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3048        match self {
3049            Self::Decimal => write!(f, "decimal"),
3050            Self::UpperRoman => write!(f, "upperRoman"),
3051            Self::LowerRoman => write!(f, "lowerRoman"),
3052            Self::UpperLetter => write!(f, "upperLetter"),
3053            Self::LowerLetter => write!(f, "lowerLetter"),
3054            Self::Ordinal => write!(f, "ordinal"),
3055            Self::CardinalText => write!(f, "cardinalText"),
3056            Self::OrdinalText => write!(f, "ordinalText"),
3057            Self::Hex => write!(f, "hex"),
3058            Self::Chicago => write!(f, "chicago"),
3059            Self::IdeographDigital => write!(f, "ideographDigital"),
3060            Self::JapaneseCounting => write!(f, "japaneseCounting"),
3061            Self::Aiueo => write!(f, "aiueo"),
3062            Self::Iroha => write!(f, "iroha"),
3063            Self::DecimalFullWidth => write!(f, "decimalFullWidth"),
3064            Self::DecimalHalfWidth => write!(f, "decimalHalfWidth"),
3065            Self::JapaneseLegal => write!(f, "japaneseLegal"),
3066            Self::JapaneseDigitalTenThousand => write!(f, "japaneseDigitalTenThousand"),
3067            Self::DecimalEnclosedCircle => write!(f, "decimalEnclosedCircle"),
3068            Self::DecimalFullWidth2 => write!(f, "decimalFullWidth2"),
3069            Self::AiueoFullWidth => write!(f, "aiueoFullWidth"),
3070            Self::IrohaFullWidth => write!(f, "irohaFullWidth"),
3071            Self::DecimalZero => write!(f, "decimalZero"),
3072            Self::Bullet => write!(f, "bullet"),
3073            Self::Ganada => write!(f, "ganada"),
3074            Self::Chosung => write!(f, "chosung"),
3075            Self::DecimalEnclosedFullstop => write!(f, "decimalEnclosedFullstop"),
3076            Self::DecimalEnclosedParen => write!(f, "decimalEnclosedParen"),
3077            Self::DecimalEnclosedCircleChinese => write!(f, "decimalEnclosedCircleChinese"),
3078            Self::IdeographEnclosedCircle => write!(f, "ideographEnclosedCircle"),
3079            Self::IdeographTraditional => write!(f, "ideographTraditional"),
3080            Self::IdeographZodiac => write!(f, "ideographZodiac"),
3081            Self::IdeographZodiacTraditional => write!(f, "ideographZodiacTraditional"),
3082            Self::TaiwaneseCounting => write!(f, "taiwaneseCounting"),
3083            Self::IdeographLegalTraditional => write!(f, "ideographLegalTraditional"),
3084            Self::TaiwaneseCountingThousand => write!(f, "taiwaneseCountingThousand"),
3085            Self::TaiwaneseDigital => write!(f, "taiwaneseDigital"),
3086            Self::ChineseCounting => write!(f, "chineseCounting"),
3087            Self::ChineseLegalSimplified => write!(f, "chineseLegalSimplified"),
3088            Self::ChineseCountingThousand => write!(f, "chineseCountingThousand"),
3089            Self::KoreanDigital => write!(f, "koreanDigital"),
3090            Self::KoreanCounting => write!(f, "koreanCounting"),
3091            Self::KoreanLegal => write!(f, "koreanLegal"),
3092            Self::KoreanDigital2 => write!(f, "koreanDigital2"),
3093            Self::VietnameseCounting => write!(f, "vietnameseCounting"),
3094            Self::RussianLower => write!(f, "russianLower"),
3095            Self::RussianUpper => write!(f, "russianUpper"),
3096            Self::None => write!(f, "none"),
3097            Self::NumberInDash => write!(f, "numberInDash"),
3098            Self::Hebrew1 => write!(f, "hebrew1"),
3099            Self::Hebrew2 => write!(f, "hebrew2"),
3100            Self::ArabicAlpha => write!(f, "arabicAlpha"),
3101            Self::ArabicAbjad => write!(f, "arabicAbjad"),
3102            Self::HindiVowels => write!(f, "hindiVowels"),
3103            Self::HindiConsonants => write!(f, "hindiConsonants"),
3104            Self::HindiNumbers => write!(f, "hindiNumbers"),
3105            Self::HindiCounting => write!(f, "hindiCounting"),
3106            Self::ThaiLetters => write!(f, "thaiLetters"),
3107            Self::ThaiNumbers => write!(f, "thaiNumbers"),
3108            Self::ThaiCounting => write!(f, "thaiCounting"),
3109            Self::BahtText => write!(f, "bahtText"),
3110            Self::DollarText => write!(f, "dollarText"),
3111            Self::Custom => write!(f, "custom"),
3112        }
3113    }
3114}
3115
3116impl std::str::FromStr for STNumberFormat {
3117    type Err = String;
3118
3119    fn from_str(s: &str) -> Result<Self, Self::Err> {
3120        match s {
3121            "decimal" => Ok(Self::Decimal),
3122            "upperRoman" => Ok(Self::UpperRoman),
3123            "lowerRoman" => Ok(Self::LowerRoman),
3124            "upperLetter" => Ok(Self::UpperLetter),
3125            "lowerLetter" => Ok(Self::LowerLetter),
3126            "ordinal" => Ok(Self::Ordinal),
3127            "cardinalText" => Ok(Self::CardinalText),
3128            "ordinalText" => Ok(Self::OrdinalText),
3129            "hex" => Ok(Self::Hex),
3130            "chicago" => Ok(Self::Chicago),
3131            "ideographDigital" => Ok(Self::IdeographDigital),
3132            "japaneseCounting" => Ok(Self::JapaneseCounting),
3133            "aiueo" => Ok(Self::Aiueo),
3134            "iroha" => Ok(Self::Iroha),
3135            "decimalFullWidth" => Ok(Self::DecimalFullWidth),
3136            "decimalHalfWidth" => Ok(Self::DecimalHalfWidth),
3137            "japaneseLegal" => Ok(Self::JapaneseLegal),
3138            "japaneseDigitalTenThousand" => Ok(Self::JapaneseDigitalTenThousand),
3139            "decimalEnclosedCircle" => Ok(Self::DecimalEnclosedCircle),
3140            "decimalFullWidth2" => Ok(Self::DecimalFullWidth2),
3141            "aiueoFullWidth" => Ok(Self::AiueoFullWidth),
3142            "irohaFullWidth" => Ok(Self::IrohaFullWidth),
3143            "decimalZero" => Ok(Self::DecimalZero),
3144            "bullet" => Ok(Self::Bullet),
3145            "ganada" => Ok(Self::Ganada),
3146            "chosung" => Ok(Self::Chosung),
3147            "decimalEnclosedFullstop" => Ok(Self::DecimalEnclosedFullstop),
3148            "decimalEnclosedParen" => Ok(Self::DecimalEnclosedParen),
3149            "decimalEnclosedCircleChinese" => Ok(Self::DecimalEnclosedCircleChinese),
3150            "ideographEnclosedCircle" => Ok(Self::IdeographEnclosedCircle),
3151            "ideographTraditional" => Ok(Self::IdeographTraditional),
3152            "ideographZodiac" => Ok(Self::IdeographZodiac),
3153            "ideographZodiacTraditional" => Ok(Self::IdeographZodiacTraditional),
3154            "taiwaneseCounting" => Ok(Self::TaiwaneseCounting),
3155            "ideographLegalTraditional" => Ok(Self::IdeographLegalTraditional),
3156            "taiwaneseCountingThousand" => Ok(Self::TaiwaneseCountingThousand),
3157            "taiwaneseDigital" => Ok(Self::TaiwaneseDigital),
3158            "chineseCounting" => Ok(Self::ChineseCounting),
3159            "chineseLegalSimplified" => Ok(Self::ChineseLegalSimplified),
3160            "chineseCountingThousand" => Ok(Self::ChineseCountingThousand),
3161            "koreanDigital" => Ok(Self::KoreanDigital),
3162            "koreanCounting" => Ok(Self::KoreanCounting),
3163            "koreanLegal" => Ok(Self::KoreanLegal),
3164            "koreanDigital2" => Ok(Self::KoreanDigital2),
3165            "vietnameseCounting" => Ok(Self::VietnameseCounting),
3166            "russianLower" => Ok(Self::RussianLower),
3167            "russianUpper" => Ok(Self::RussianUpper),
3168            "none" => Ok(Self::None),
3169            "numberInDash" => Ok(Self::NumberInDash),
3170            "hebrew1" => Ok(Self::Hebrew1),
3171            "hebrew2" => Ok(Self::Hebrew2),
3172            "arabicAlpha" => Ok(Self::ArabicAlpha),
3173            "arabicAbjad" => Ok(Self::ArabicAbjad),
3174            "hindiVowels" => Ok(Self::HindiVowels),
3175            "hindiConsonants" => Ok(Self::HindiConsonants),
3176            "hindiNumbers" => Ok(Self::HindiNumbers),
3177            "hindiCounting" => Ok(Self::HindiCounting),
3178            "thaiLetters" => Ok(Self::ThaiLetters),
3179            "thaiNumbers" => Ok(Self::ThaiNumbers),
3180            "thaiCounting" => Ok(Self::ThaiCounting),
3181            "bahtText" => Ok(Self::BahtText),
3182            "dollarText" => Ok(Self::DollarText),
3183            "custom" => Ok(Self::Custom),
3184            _ => Err(format!("unknown STNumberFormat value: {}", s)),
3185        }
3186    }
3187}
3188
3189#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3190pub enum STPageOrientation {
3191    #[serde(rename = "portrait")]
3192    Portrait,
3193    #[serde(rename = "landscape")]
3194    Landscape,
3195}
3196
3197impl std::fmt::Display for STPageOrientation {
3198    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3199        match self {
3200            Self::Portrait => write!(f, "portrait"),
3201            Self::Landscape => write!(f, "landscape"),
3202        }
3203    }
3204}
3205
3206impl std::str::FromStr for STPageOrientation {
3207    type Err = String;
3208
3209    fn from_str(s: &str) -> Result<Self, Self::Err> {
3210        match s {
3211            "portrait" => Ok(Self::Portrait),
3212            "landscape" => Ok(Self::Landscape),
3213            _ => Err(format!("unknown STPageOrientation value: {}", s)),
3214        }
3215    }
3216}
3217
3218#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3219pub enum STPageBorderZOrder {
3220    #[serde(rename = "front")]
3221    Front,
3222    #[serde(rename = "back")]
3223    Back,
3224}
3225
3226impl std::fmt::Display for STPageBorderZOrder {
3227    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3228        match self {
3229            Self::Front => write!(f, "front"),
3230            Self::Back => write!(f, "back"),
3231        }
3232    }
3233}
3234
3235impl std::str::FromStr for STPageBorderZOrder {
3236    type Err = String;
3237
3238    fn from_str(s: &str) -> Result<Self, Self::Err> {
3239        match s {
3240            "front" => Ok(Self::Front),
3241            "back" => Ok(Self::Back),
3242            _ => Err(format!("unknown STPageBorderZOrder value: {}", s)),
3243        }
3244    }
3245}
3246
3247#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3248pub enum STPageBorderDisplay {
3249    #[serde(rename = "allPages")]
3250    AllPages,
3251    #[serde(rename = "firstPage")]
3252    FirstPage,
3253    #[serde(rename = "notFirstPage")]
3254    NotFirstPage,
3255}
3256
3257impl std::fmt::Display for STPageBorderDisplay {
3258    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3259        match self {
3260            Self::AllPages => write!(f, "allPages"),
3261            Self::FirstPage => write!(f, "firstPage"),
3262            Self::NotFirstPage => write!(f, "notFirstPage"),
3263        }
3264    }
3265}
3266
3267impl std::str::FromStr for STPageBorderDisplay {
3268    type Err = String;
3269
3270    fn from_str(s: &str) -> Result<Self, Self::Err> {
3271        match s {
3272            "allPages" => Ok(Self::AllPages),
3273            "firstPage" => Ok(Self::FirstPage),
3274            "notFirstPage" => Ok(Self::NotFirstPage),
3275            _ => Err(format!("unknown STPageBorderDisplay value: {}", s)),
3276        }
3277    }
3278}
3279
3280#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3281pub enum STPageBorderOffset {
3282    #[serde(rename = "page")]
3283    Page,
3284    #[serde(rename = "text")]
3285    Text,
3286}
3287
3288impl std::fmt::Display for STPageBorderOffset {
3289    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3290        match self {
3291            Self::Page => write!(f, "page"),
3292            Self::Text => write!(f, "text"),
3293        }
3294    }
3295}
3296
3297impl std::str::FromStr for STPageBorderOffset {
3298    type Err = String;
3299
3300    fn from_str(s: &str) -> Result<Self, Self::Err> {
3301        match s {
3302            "page" => Ok(Self::Page),
3303            "text" => Ok(Self::Text),
3304            _ => Err(format!("unknown STPageBorderOffset value: {}", s)),
3305        }
3306    }
3307}
3308
3309#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3310pub enum STChapterSep {
3311    #[serde(rename = "hyphen")]
3312    Hyphen,
3313    #[serde(rename = "period")]
3314    Period,
3315    #[serde(rename = "colon")]
3316    Colon,
3317    #[serde(rename = "emDash")]
3318    EmDash,
3319    #[serde(rename = "enDash")]
3320    EnDash,
3321}
3322
3323impl std::fmt::Display for STChapterSep {
3324    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3325        match self {
3326            Self::Hyphen => write!(f, "hyphen"),
3327            Self::Period => write!(f, "period"),
3328            Self::Colon => write!(f, "colon"),
3329            Self::EmDash => write!(f, "emDash"),
3330            Self::EnDash => write!(f, "enDash"),
3331        }
3332    }
3333}
3334
3335impl std::str::FromStr for STChapterSep {
3336    type Err = String;
3337
3338    fn from_str(s: &str) -> Result<Self, Self::Err> {
3339        match s {
3340            "hyphen" => Ok(Self::Hyphen),
3341            "period" => Ok(Self::Period),
3342            "colon" => Ok(Self::Colon),
3343            "emDash" => Ok(Self::EmDash),
3344            "enDash" => Ok(Self::EnDash),
3345            _ => Err(format!("unknown STChapterSep value: {}", s)),
3346        }
3347    }
3348}
3349
3350#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3351pub enum STLineNumberRestart {
3352    #[serde(rename = "newPage")]
3353    NewPage,
3354    #[serde(rename = "newSection")]
3355    NewSection,
3356    #[serde(rename = "continuous")]
3357    Continuous,
3358}
3359
3360impl std::fmt::Display for STLineNumberRestart {
3361    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3362        match self {
3363            Self::NewPage => write!(f, "newPage"),
3364            Self::NewSection => write!(f, "newSection"),
3365            Self::Continuous => write!(f, "continuous"),
3366        }
3367    }
3368}
3369
3370impl std::str::FromStr for STLineNumberRestart {
3371    type Err = String;
3372
3373    fn from_str(s: &str) -> Result<Self, Self::Err> {
3374        match s {
3375            "newPage" => Ok(Self::NewPage),
3376            "newSection" => Ok(Self::NewSection),
3377            "continuous" => Ok(Self::Continuous),
3378            _ => Err(format!("unknown STLineNumberRestart value: {}", s)),
3379        }
3380    }
3381}
3382
3383#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3384pub enum STVerticalJc {
3385    #[serde(rename = "top")]
3386    Top,
3387    #[serde(rename = "center")]
3388    Center,
3389    #[serde(rename = "both")]
3390    Both,
3391    #[serde(rename = "bottom")]
3392    Bottom,
3393}
3394
3395impl std::fmt::Display for STVerticalJc {
3396    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3397        match self {
3398            Self::Top => write!(f, "top"),
3399            Self::Center => write!(f, "center"),
3400            Self::Both => write!(f, "both"),
3401            Self::Bottom => write!(f, "bottom"),
3402        }
3403    }
3404}
3405
3406impl std::str::FromStr for STVerticalJc {
3407    type Err = String;
3408
3409    fn from_str(s: &str) -> Result<Self, Self::Err> {
3410        match s {
3411            "top" => Ok(Self::Top),
3412            "center" => Ok(Self::Center),
3413            "both" => Ok(Self::Both),
3414            "bottom" => Ok(Self::Bottom),
3415            _ => Err(format!("unknown STVerticalJc value: {}", s)),
3416        }
3417    }
3418}
3419
3420#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3421pub enum STDocGrid {
3422    #[serde(rename = "default")]
3423    Default,
3424    #[serde(rename = "lines")]
3425    Lines,
3426    #[serde(rename = "linesAndChars")]
3427    LinesAndChars,
3428    #[serde(rename = "snapToChars")]
3429    SnapToChars,
3430}
3431
3432impl std::fmt::Display for STDocGrid {
3433    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3434        match self {
3435            Self::Default => write!(f, "default"),
3436            Self::Lines => write!(f, "lines"),
3437            Self::LinesAndChars => write!(f, "linesAndChars"),
3438            Self::SnapToChars => write!(f, "snapToChars"),
3439        }
3440    }
3441}
3442
3443impl std::str::FromStr for STDocGrid {
3444    type Err = String;
3445
3446    fn from_str(s: &str) -> Result<Self, Self::Err> {
3447        match s {
3448            "default" => Ok(Self::Default),
3449            "lines" => Ok(Self::Lines),
3450            "linesAndChars" => Ok(Self::LinesAndChars),
3451            "snapToChars" => Ok(Self::SnapToChars),
3452            _ => Err(format!("unknown STDocGrid value: {}", s)),
3453        }
3454    }
3455}
3456
3457#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3458pub enum STHdrFtr {
3459    #[serde(rename = "even")]
3460    Even,
3461    #[serde(rename = "default")]
3462    Default,
3463    #[serde(rename = "first")]
3464    First,
3465}
3466
3467impl std::fmt::Display for STHdrFtr {
3468    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3469        match self {
3470            Self::Even => write!(f, "even"),
3471            Self::Default => write!(f, "default"),
3472            Self::First => write!(f, "first"),
3473        }
3474    }
3475}
3476
3477impl std::str::FromStr for STHdrFtr {
3478    type Err = String;
3479
3480    fn from_str(s: &str) -> Result<Self, Self::Err> {
3481        match s {
3482            "even" => Ok(Self::Even),
3483            "default" => Ok(Self::Default),
3484            "first" => Ok(Self::First),
3485            _ => Err(format!("unknown STHdrFtr value: {}", s)),
3486        }
3487    }
3488}
3489
3490#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3491pub enum STFtnEdn {
3492    #[serde(rename = "normal")]
3493    Normal,
3494    #[serde(rename = "separator")]
3495    Separator,
3496    #[serde(rename = "continuationSeparator")]
3497    ContinuationSeparator,
3498    #[serde(rename = "continuationNotice")]
3499    ContinuationNotice,
3500}
3501
3502impl std::fmt::Display for STFtnEdn {
3503    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3504        match self {
3505            Self::Normal => write!(f, "normal"),
3506            Self::Separator => write!(f, "separator"),
3507            Self::ContinuationSeparator => write!(f, "continuationSeparator"),
3508            Self::ContinuationNotice => write!(f, "continuationNotice"),
3509        }
3510    }
3511}
3512
3513impl std::str::FromStr for STFtnEdn {
3514    type Err = String;
3515
3516    fn from_str(s: &str) -> Result<Self, Self::Err> {
3517        match s {
3518            "normal" => Ok(Self::Normal),
3519            "separator" => Ok(Self::Separator),
3520            "continuationSeparator" => Ok(Self::ContinuationSeparator),
3521            "continuationNotice" => Ok(Self::ContinuationNotice),
3522            _ => Err(format!("unknown STFtnEdn value: {}", s)),
3523        }
3524    }
3525}
3526
3527#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3528pub enum STBrType {
3529    #[serde(rename = "page")]
3530    Page,
3531    #[serde(rename = "column")]
3532    Column,
3533    #[serde(rename = "textWrapping")]
3534    TextWrapping,
3535}
3536
3537impl std::fmt::Display for STBrType {
3538    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3539        match self {
3540            Self::Page => write!(f, "page"),
3541            Self::Column => write!(f, "column"),
3542            Self::TextWrapping => write!(f, "textWrapping"),
3543        }
3544    }
3545}
3546
3547impl std::str::FromStr for STBrType {
3548    type Err = String;
3549
3550    fn from_str(s: &str) -> Result<Self, Self::Err> {
3551        match s {
3552            "page" => Ok(Self::Page),
3553            "column" => Ok(Self::Column),
3554            "textWrapping" => Ok(Self::TextWrapping),
3555            _ => Err(format!("unknown STBrType value: {}", s)),
3556        }
3557    }
3558}
3559
3560#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3561pub enum STBrClear {
3562    #[serde(rename = "none")]
3563    None,
3564    #[serde(rename = "left")]
3565    Left,
3566    #[serde(rename = "right")]
3567    Right,
3568    #[serde(rename = "all")]
3569    All,
3570}
3571
3572impl std::fmt::Display for STBrClear {
3573    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3574        match self {
3575            Self::None => write!(f, "none"),
3576            Self::Left => write!(f, "left"),
3577            Self::Right => write!(f, "right"),
3578            Self::All => write!(f, "all"),
3579        }
3580    }
3581}
3582
3583impl std::str::FromStr for STBrClear {
3584    type Err = String;
3585
3586    fn from_str(s: &str) -> Result<Self, Self::Err> {
3587        match s {
3588            "none" => Ok(Self::None),
3589            "left" => Ok(Self::Left),
3590            "right" => Ok(Self::Right),
3591            "all" => Ok(Self::All),
3592            _ => Err(format!("unknown STBrClear value: {}", s)),
3593        }
3594    }
3595}
3596
3597#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3598pub enum STPTabAlignment {
3599    #[serde(rename = "left")]
3600    Left,
3601    #[serde(rename = "center")]
3602    Center,
3603    #[serde(rename = "right")]
3604    Right,
3605}
3606
3607impl std::fmt::Display for STPTabAlignment {
3608    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3609        match self {
3610            Self::Left => write!(f, "left"),
3611            Self::Center => write!(f, "center"),
3612            Self::Right => write!(f, "right"),
3613        }
3614    }
3615}
3616
3617impl std::str::FromStr for STPTabAlignment {
3618    type Err = String;
3619
3620    fn from_str(s: &str) -> Result<Self, Self::Err> {
3621        match s {
3622            "left" => Ok(Self::Left),
3623            "center" => Ok(Self::Center),
3624            "right" => Ok(Self::Right),
3625            _ => Err(format!("unknown STPTabAlignment value: {}", s)),
3626        }
3627    }
3628}
3629
3630#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3631pub enum STPTabRelativeTo {
3632    #[serde(rename = "margin")]
3633    Margin,
3634    #[serde(rename = "indent")]
3635    Indent,
3636}
3637
3638impl std::fmt::Display for STPTabRelativeTo {
3639    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3640        match self {
3641            Self::Margin => write!(f, "margin"),
3642            Self::Indent => write!(f, "indent"),
3643        }
3644    }
3645}
3646
3647impl std::str::FromStr for STPTabRelativeTo {
3648    type Err = String;
3649
3650    fn from_str(s: &str) -> Result<Self, Self::Err> {
3651        match s {
3652            "margin" => Ok(Self::Margin),
3653            "indent" => Ok(Self::Indent),
3654            _ => Err(format!("unknown STPTabRelativeTo value: {}", s)),
3655        }
3656    }
3657}
3658
3659#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3660pub enum STPTabLeader {
3661    #[serde(rename = "none")]
3662    None,
3663    #[serde(rename = "dot")]
3664    Dot,
3665    #[serde(rename = "hyphen")]
3666    Hyphen,
3667    #[serde(rename = "underscore")]
3668    Underscore,
3669    #[serde(rename = "middleDot")]
3670    MiddleDot,
3671}
3672
3673impl std::fmt::Display for STPTabLeader {
3674    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3675        match self {
3676            Self::None => write!(f, "none"),
3677            Self::Dot => write!(f, "dot"),
3678            Self::Hyphen => write!(f, "hyphen"),
3679            Self::Underscore => write!(f, "underscore"),
3680            Self::MiddleDot => write!(f, "middleDot"),
3681        }
3682    }
3683}
3684
3685impl std::str::FromStr for STPTabLeader {
3686    type Err = String;
3687
3688    fn from_str(s: &str) -> Result<Self, Self::Err> {
3689        match s {
3690            "none" => Ok(Self::None),
3691            "dot" => Ok(Self::Dot),
3692            "hyphen" => Ok(Self::Hyphen),
3693            "underscore" => Ok(Self::Underscore),
3694            "middleDot" => Ok(Self::MiddleDot),
3695            _ => Err(format!("unknown STPTabLeader value: {}", s)),
3696        }
3697    }
3698}
3699
3700#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3701pub enum STProofErr {
3702    #[serde(rename = "spellStart")]
3703    SpellStart,
3704    #[serde(rename = "spellEnd")]
3705    SpellEnd,
3706    #[serde(rename = "gramStart")]
3707    GramStart,
3708    #[serde(rename = "gramEnd")]
3709    GramEnd,
3710}
3711
3712impl std::fmt::Display for STProofErr {
3713    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3714        match self {
3715            Self::SpellStart => write!(f, "spellStart"),
3716            Self::SpellEnd => write!(f, "spellEnd"),
3717            Self::GramStart => write!(f, "gramStart"),
3718            Self::GramEnd => write!(f, "gramEnd"),
3719        }
3720    }
3721}
3722
3723impl std::str::FromStr for STProofErr {
3724    type Err = String;
3725
3726    fn from_str(s: &str) -> Result<Self, Self::Err> {
3727        match s {
3728            "spellStart" => Ok(Self::SpellStart),
3729            "spellEnd" => Ok(Self::SpellEnd),
3730            "gramStart" => Ok(Self::GramStart),
3731            "gramEnd" => Ok(Self::GramEnd),
3732            _ => Err(format!("unknown STProofErr value: {}", s)),
3733        }
3734    }
3735}
3736
3737#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3738pub enum STEdGrp {
3739    #[serde(rename = "none")]
3740    None,
3741    #[serde(rename = "everyone")]
3742    Everyone,
3743    #[serde(rename = "administrators")]
3744    Administrators,
3745    #[serde(rename = "contributors")]
3746    Contributors,
3747    #[serde(rename = "editors")]
3748    Editors,
3749    #[serde(rename = "owners")]
3750    Owners,
3751    #[serde(rename = "current")]
3752    Current,
3753}
3754
3755impl std::fmt::Display for STEdGrp {
3756    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3757        match self {
3758            Self::None => write!(f, "none"),
3759            Self::Everyone => write!(f, "everyone"),
3760            Self::Administrators => write!(f, "administrators"),
3761            Self::Contributors => write!(f, "contributors"),
3762            Self::Editors => write!(f, "editors"),
3763            Self::Owners => write!(f, "owners"),
3764            Self::Current => write!(f, "current"),
3765        }
3766    }
3767}
3768
3769impl std::str::FromStr for STEdGrp {
3770    type Err = String;
3771
3772    fn from_str(s: &str) -> Result<Self, Self::Err> {
3773        match s {
3774            "none" => Ok(Self::None),
3775            "everyone" => Ok(Self::Everyone),
3776            "administrators" => Ok(Self::Administrators),
3777            "contributors" => Ok(Self::Contributors),
3778            "editors" => Ok(Self::Editors),
3779            "owners" => Ok(Self::Owners),
3780            "current" => Ok(Self::Current),
3781            _ => Err(format!("unknown STEdGrp value: {}", s)),
3782        }
3783    }
3784}
3785
3786#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3787pub enum STHint {
3788    #[serde(rename = "default")]
3789    Default,
3790    #[serde(rename = "eastAsia")]
3791    EastAsia,
3792}
3793
3794impl std::fmt::Display for STHint {
3795    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3796        match self {
3797            Self::Default => write!(f, "default"),
3798            Self::EastAsia => write!(f, "eastAsia"),
3799        }
3800    }
3801}
3802
3803impl std::str::FromStr for STHint {
3804    type Err = String;
3805
3806    fn from_str(s: &str) -> Result<Self, Self::Err> {
3807        match s {
3808            "default" => Ok(Self::Default),
3809            "eastAsia" => Ok(Self::EastAsia),
3810            _ => Err(format!("unknown STHint value: {}", s)),
3811        }
3812    }
3813}
3814
3815#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3816pub enum STTheme {
3817    #[serde(rename = "majorEastAsia")]
3818    MajorEastAsia,
3819    #[serde(rename = "majorBidi")]
3820    MajorBidi,
3821    #[serde(rename = "majorAscii")]
3822    MajorAscii,
3823    #[serde(rename = "majorHAnsi")]
3824    MajorHAnsi,
3825    #[serde(rename = "minorEastAsia")]
3826    MinorEastAsia,
3827    #[serde(rename = "minorBidi")]
3828    MinorBidi,
3829    #[serde(rename = "minorAscii")]
3830    MinorAscii,
3831    #[serde(rename = "minorHAnsi")]
3832    MinorHAnsi,
3833}
3834
3835impl std::fmt::Display for STTheme {
3836    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3837        match self {
3838            Self::MajorEastAsia => write!(f, "majorEastAsia"),
3839            Self::MajorBidi => write!(f, "majorBidi"),
3840            Self::MajorAscii => write!(f, "majorAscii"),
3841            Self::MajorHAnsi => write!(f, "majorHAnsi"),
3842            Self::MinorEastAsia => write!(f, "minorEastAsia"),
3843            Self::MinorBidi => write!(f, "minorBidi"),
3844            Self::MinorAscii => write!(f, "minorAscii"),
3845            Self::MinorHAnsi => write!(f, "minorHAnsi"),
3846        }
3847    }
3848}
3849
3850impl std::str::FromStr for STTheme {
3851    type Err = String;
3852
3853    fn from_str(s: &str) -> Result<Self, Self::Err> {
3854        match s {
3855            "majorEastAsia" => Ok(Self::MajorEastAsia),
3856            "majorBidi" => Ok(Self::MajorBidi),
3857            "majorAscii" => Ok(Self::MajorAscii),
3858            "majorHAnsi" => Ok(Self::MajorHAnsi),
3859            "minorEastAsia" => Ok(Self::MinorEastAsia),
3860            "minorBidi" => Ok(Self::MinorBidi),
3861            "minorAscii" => Ok(Self::MinorAscii),
3862            "minorHAnsi" => Ok(Self::MinorHAnsi),
3863            _ => Err(format!("unknown STTheme value: {}", s)),
3864        }
3865    }
3866}
3867
3868#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3869pub enum STRubyAlign {
3870    #[serde(rename = "center")]
3871    Center,
3872    #[serde(rename = "distributeLetter")]
3873    DistributeLetter,
3874    #[serde(rename = "distributeSpace")]
3875    DistributeSpace,
3876    #[serde(rename = "left")]
3877    Left,
3878    #[serde(rename = "right")]
3879    Right,
3880    #[serde(rename = "rightVertical")]
3881    RightVertical,
3882}
3883
3884impl std::fmt::Display for STRubyAlign {
3885    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3886        match self {
3887            Self::Center => write!(f, "center"),
3888            Self::DistributeLetter => write!(f, "distributeLetter"),
3889            Self::DistributeSpace => write!(f, "distributeSpace"),
3890            Self::Left => write!(f, "left"),
3891            Self::Right => write!(f, "right"),
3892            Self::RightVertical => write!(f, "rightVertical"),
3893        }
3894    }
3895}
3896
3897impl std::str::FromStr for STRubyAlign {
3898    type Err = String;
3899
3900    fn from_str(s: &str) -> Result<Self, Self::Err> {
3901        match s {
3902            "center" => Ok(Self::Center),
3903            "distributeLetter" => Ok(Self::DistributeLetter),
3904            "distributeSpace" => Ok(Self::DistributeSpace),
3905            "left" => Ok(Self::Left),
3906            "right" => Ok(Self::Right),
3907            "rightVertical" => Ok(Self::RightVertical),
3908            _ => Err(format!("unknown STRubyAlign value: {}", s)),
3909        }
3910    }
3911}
3912
3913#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3914pub enum STLock {
3915    #[serde(rename = "sdtLocked")]
3916    SdtLocked,
3917    #[serde(rename = "contentLocked")]
3918    ContentLocked,
3919    #[serde(rename = "unlocked")]
3920    Unlocked,
3921    #[serde(rename = "sdtContentLocked")]
3922    SdtContentLocked,
3923}
3924
3925impl std::fmt::Display for STLock {
3926    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3927        match self {
3928            Self::SdtLocked => write!(f, "sdtLocked"),
3929            Self::ContentLocked => write!(f, "contentLocked"),
3930            Self::Unlocked => write!(f, "unlocked"),
3931            Self::SdtContentLocked => write!(f, "sdtContentLocked"),
3932        }
3933    }
3934}
3935
3936impl std::str::FromStr for STLock {
3937    type Err = String;
3938
3939    fn from_str(s: &str) -> Result<Self, Self::Err> {
3940        match s {
3941            "sdtLocked" => Ok(Self::SdtLocked),
3942            "contentLocked" => Ok(Self::ContentLocked),
3943            "unlocked" => Ok(Self::Unlocked),
3944            "sdtContentLocked" => Ok(Self::SdtContentLocked),
3945            _ => Err(format!("unknown STLock value: {}", s)),
3946        }
3947    }
3948}
3949
3950#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3951pub enum STSdtDateMappingType {
3952    #[serde(rename = "text")]
3953    Text,
3954    #[serde(rename = "date")]
3955    Date,
3956    #[serde(rename = "dateTime")]
3957    DateTime,
3958}
3959
3960impl std::fmt::Display for STSdtDateMappingType {
3961    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3962        match self {
3963            Self::Text => write!(f, "text"),
3964            Self::Date => write!(f, "date"),
3965            Self::DateTime => write!(f, "dateTime"),
3966        }
3967    }
3968}
3969
3970impl std::str::FromStr for STSdtDateMappingType {
3971    type Err = String;
3972
3973    fn from_str(s: &str) -> Result<Self, Self::Err> {
3974        match s {
3975            "text" => Ok(Self::Text),
3976            "date" => Ok(Self::Date),
3977            "dateTime" => Ok(Self::DateTime),
3978            _ => Err(format!("unknown STSdtDateMappingType value: {}", s)),
3979        }
3980    }
3981}
3982
3983#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3984pub enum STDirection {
3985    #[serde(rename = "ltr")]
3986    Ltr,
3987    #[serde(rename = "rtl")]
3988    Rtl,
3989}
3990
3991impl std::fmt::Display for STDirection {
3992    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3993        match self {
3994            Self::Ltr => write!(f, "ltr"),
3995            Self::Rtl => write!(f, "rtl"),
3996        }
3997    }
3998}
3999
4000impl std::str::FromStr for STDirection {
4001    type Err = String;
4002
4003    fn from_str(s: &str) -> Result<Self, Self::Err> {
4004        match s {
4005            "ltr" => Ok(Self::Ltr),
4006            "rtl" => Ok(Self::Rtl),
4007            _ => Err(format!("unknown STDirection value: {}", s)),
4008        }
4009    }
4010}
4011
4012#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4013pub enum STTblWidth {
4014    #[serde(rename = "nil")]
4015    Nil,
4016    #[serde(rename = "pct")]
4017    Pct,
4018    #[serde(rename = "dxa")]
4019    Dxa,
4020    #[serde(rename = "auto")]
4021    Auto,
4022}
4023
4024impl std::fmt::Display for STTblWidth {
4025    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4026        match self {
4027            Self::Nil => write!(f, "nil"),
4028            Self::Pct => write!(f, "pct"),
4029            Self::Dxa => write!(f, "dxa"),
4030            Self::Auto => write!(f, "auto"),
4031        }
4032    }
4033}
4034
4035impl std::str::FromStr for STTblWidth {
4036    type Err = String;
4037
4038    fn from_str(s: &str) -> Result<Self, Self::Err> {
4039        match s {
4040            "nil" => Ok(Self::Nil),
4041            "pct" => Ok(Self::Pct),
4042            "dxa" => Ok(Self::Dxa),
4043            "auto" => Ok(Self::Auto),
4044            _ => Err(format!("unknown STTblWidth value: {}", s)),
4045        }
4046    }
4047}
4048
4049pub type STMeasurementOrPercent = String;
4050
4051#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4052pub enum STMerge {
4053    #[serde(rename = "continue")]
4054    Continue,
4055    #[serde(rename = "restart")]
4056    Restart,
4057}
4058
4059impl std::fmt::Display for STMerge {
4060    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4061        match self {
4062            Self::Continue => write!(f, "continue"),
4063            Self::Restart => write!(f, "restart"),
4064        }
4065    }
4066}
4067
4068impl std::str::FromStr for STMerge {
4069    type Err = String;
4070
4071    fn from_str(s: &str) -> Result<Self, Self::Err> {
4072        match s {
4073            "continue" => Ok(Self::Continue),
4074            "restart" => Ok(Self::Restart),
4075            _ => Err(format!("unknown STMerge value: {}", s)),
4076        }
4077    }
4078}
4079
4080pub type STCnf = String;
4081
4082#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4083pub enum STTblLayoutType {
4084    #[serde(rename = "fixed")]
4085    Fixed,
4086    #[serde(rename = "autofit")]
4087    Autofit,
4088}
4089
4090impl std::fmt::Display for STTblLayoutType {
4091    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4092        match self {
4093            Self::Fixed => write!(f, "fixed"),
4094            Self::Autofit => write!(f, "autofit"),
4095        }
4096    }
4097}
4098
4099impl std::str::FromStr for STTblLayoutType {
4100    type Err = String;
4101
4102    fn from_str(s: &str) -> Result<Self, Self::Err> {
4103        match s {
4104            "fixed" => Ok(Self::Fixed),
4105            "autofit" => Ok(Self::Autofit),
4106            _ => Err(format!("unknown STTblLayoutType value: {}", s)),
4107        }
4108    }
4109}
4110
4111#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4112pub enum STTblOverlap {
4113    #[serde(rename = "never")]
4114    Never,
4115    #[serde(rename = "overlap")]
4116    Overlap,
4117}
4118
4119impl std::fmt::Display for STTblOverlap {
4120    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4121        match self {
4122            Self::Never => write!(f, "never"),
4123            Self::Overlap => write!(f, "overlap"),
4124        }
4125    }
4126}
4127
4128impl std::str::FromStr for STTblOverlap {
4129    type Err = String;
4130
4131    fn from_str(s: &str) -> Result<Self, Self::Err> {
4132        match s {
4133            "never" => Ok(Self::Never),
4134            "overlap" => Ok(Self::Overlap),
4135            _ => Err(format!("unknown STTblOverlap value: {}", s)),
4136        }
4137    }
4138}
4139
4140#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4141pub enum STFtnPos {
4142    #[serde(rename = "pageBottom")]
4143    PageBottom,
4144    #[serde(rename = "beneathText")]
4145    BeneathText,
4146    #[serde(rename = "sectEnd")]
4147    SectEnd,
4148    #[serde(rename = "docEnd")]
4149    DocEnd,
4150}
4151
4152impl std::fmt::Display for STFtnPos {
4153    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4154        match self {
4155            Self::PageBottom => write!(f, "pageBottom"),
4156            Self::BeneathText => write!(f, "beneathText"),
4157            Self::SectEnd => write!(f, "sectEnd"),
4158            Self::DocEnd => write!(f, "docEnd"),
4159        }
4160    }
4161}
4162
4163impl std::str::FromStr for STFtnPos {
4164    type Err = String;
4165
4166    fn from_str(s: &str) -> Result<Self, Self::Err> {
4167        match s {
4168            "pageBottom" => Ok(Self::PageBottom),
4169            "beneathText" => Ok(Self::BeneathText),
4170            "sectEnd" => Ok(Self::SectEnd),
4171            "docEnd" => Ok(Self::DocEnd),
4172            _ => Err(format!("unknown STFtnPos value: {}", s)),
4173        }
4174    }
4175}
4176
4177#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4178pub enum STEdnPos {
4179    #[serde(rename = "sectEnd")]
4180    SectEnd,
4181    #[serde(rename = "docEnd")]
4182    DocEnd,
4183}
4184
4185impl std::fmt::Display for STEdnPos {
4186    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4187        match self {
4188            Self::SectEnd => write!(f, "sectEnd"),
4189            Self::DocEnd => write!(f, "docEnd"),
4190        }
4191    }
4192}
4193
4194impl std::str::FromStr for STEdnPos {
4195    type Err = String;
4196
4197    fn from_str(s: &str) -> Result<Self, Self::Err> {
4198        match s {
4199            "sectEnd" => Ok(Self::SectEnd),
4200            "docEnd" => Ok(Self::DocEnd),
4201            _ => Err(format!("unknown STEdnPos value: {}", s)),
4202        }
4203    }
4204}
4205
4206#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4207pub enum STRestartNumber {
4208    #[serde(rename = "continuous")]
4209    Continuous,
4210    #[serde(rename = "eachSect")]
4211    EachSect,
4212    #[serde(rename = "eachPage")]
4213    EachPage,
4214}
4215
4216impl std::fmt::Display for STRestartNumber {
4217    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4218        match self {
4219            Self::Continuous => write!(f, "continuous"),
4220            Self::EachSect => write!(f, "eachSect"),
4221            Self::EachPage => write!(f, "eachPage"),
4222        }
4223    }
4224}
4225
4226impl std::str::FromStr for STRestartNumber {
4227    type Err = String;
4228
4229    fn from_str(s: &str) -> Result<Self, Self::Err> {
4230        match s {
4231            "continuous" => Ok(Self::Continuous),
4232            "eachSect" => Ok(Self::EachSect),
4233            "eachPage" => Ok(Self::EachPage),
4234            _ => Err(format!("unknown STRestartNumber value: {}", s)),
4235        }
4236    }
4237}
4238
4239#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4240pub enum STMailMergeSourceType {
4241    #[serde(rename = "database")]
4242    Database,
4243    #[serde(rename = "addressBook")]
4244    AddressBook,
4245    #[serde(rename = "document1")]
4246    Document1,
4247    #[serde(rename = "document2")]
4248    Document2,
4249    #[serde(rename = "text")]
4250    Text,
4251    #[serde(rename = "email")]
4252    Email,
4253    #[serde(rename = "native")]
4254    Native,
4255    #[serde(rename = "legacy")]
4256    Legacy,
4257    #[serde(rename = "master")]
4258    Master,
4259}
4260
4261impl std::fmt::Display for STMailMergeSourceType {
4262    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4263        match self {
4264            Self::Database => write!(f, "database"),
4265            Self::AddressBook => write!(f, "addressBook"),
4266            Self::Document1 => write!(f, "document1"),
4267            Self::Document2 => write!(f, "document2"),
4268            Self::Text => write!(f, "text"),
4269            Self::Email => write!(f, "email"),
4270            Self::Native => write!(f, "native"),
4271            Self::Legacy => write!(f, "legacy"),
4272            Self::Master => write!(f, "master"),
4273        }
4274    }
4275}
4276
4277impl std::str::FromStr for STMailMergeSourceType {
4278    type Err = String;
4279
4280    fn from_str(s: &str) -> Result<Self, Self::Err> {
4281        match s {
4282            "database" => Ok(Self::Database),
4283            "addressBook" => Ok(Self::AddressBook),
4284            "document1" => Ok(Self::Document1),
4285            "document2" => Ok(Self::Document2),
4286            "text" => Ok(Self::Text),
4287            "email" => Ok(Self::Email),
4288            "native" => Ok(Self::Native),
4289            "legacy" => Ok(Self::Legacy),
4290            "master" => Ok(Self::Master),
4291            _ => Err(format!("unknown STMailMergeSourceType value: {}", s)),
4292        }
4293    }
4294}
4295
4296#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4297pub enum STTargetScreenSz {
4298    #[serde(rename = "544x376")]
4299    _544x376,
4300    #[serde(rename = "640x480")]
4301    _640x480,
4302    #[serde(rename = "720x512")]
4303    _720x512,
4304    #[serde(rename = "800x600")]
4305    _800x600,
4306    #[serde(rename = "1024x768")]
4307    _1024x768,
4308    #[serde(rename = "1152x882")]
4309    _1152x882,
4310    #[serde(rename = "1152x900")]
4311    _1152x900,
4312    #[serde(rename = "1280x1024")]
4313    _1280x1024,
4314    #[serde(rename = "1600x1200")]
4315    _1600x1200,
4316    #[serde(rename = "1800x1440")]
4317    _1800x1440,
4318    #[serde(rename = "1920x1200")]
4319    _1920x1200,
4320}
4321
4322impl std::fmt::Display for STTargetScreenSz {
4323    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4324        match self {
4325            Self::_544x376 => write!(f, "544x376"),
4326            Self::_640x480 => write!(f, "640x480"),
4327            Self::_720x512 => write!(f, "720x512"),
4328            Self::_800x600 => write!(f, "800x600"),
4329            Self::_1024x768 => write!(f, "1024x768"),
4330            Self::_1152x882 => write!(f, "1152x882"),
4331            Self::_1152x900 => write!(f, "1152x900"),
4332            Self::_1280x1024 => write!(f, "1280x1024"),
4333            Self::_1600x1200 => write!(f, "1600x1200"),
4334            Self::_1800x1440 => write!(f, "1800x1440"),
4335            Self::_1920x1200 => write!(f, "1920x1200"),
4336        }
4337    }
4338}
4339
4340impl std::str::FromStr for STTargetScreenSz {
4341    type Err = String;
4342
4343    fn from_str(s: &str) -> Result<Self, Self::Err> {
4344        match s {
4345            "544x376" => Ok(Self::_544x376),
4346            "640x480" => Ok(Self::_640x480),
4347            "720x512" => Ok(Self::_720x512),
4348            "800x600" => Ok(Self::_800x600),
4349            "1024x768" => Ok(Self::_1024x768),
4350            "1152x882" => Ok(Self::_1152x882),
4351            "1152x900" => Ok(Self::_1152x900),
4352            "1280x1024" => Ok(Self::_1280x1024),
4353            "1600x1200" => Ok(Self::_1600x1200),
4354            "1800x1440" => Ok(Self::_1800x1440),
4355            "1920x1200" => Ok(Self::_1920x1200),
4356            _ => Err(format!("unknown STTargetScreenSz value: {}", s)),
4357        }
4358    }
4359}
4360
4361#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4362pub enum STCharacterSpacing {
4363    #[serde(rename = "doNotCompress")]
4364    DoNotCompress,
4365    #[serde(rename = "compressPunctuation")]
4366    CompressPunctuation,
4367    #[serde(rename = "compressPunctuationAndJapaneseKana")]
4368    CompressPunctuationAndJapaneseKana,
4369}
4370
4371impl std::fmt::Display for STCharacterSpacing {
4372    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4373        match self {
4374            Self::DoNotCompress => write!(f, "doNotCompress"),
4375            Self::CompressPunctuation => write!(f, "compressPunctuation"),
4376            Self::CompressPunctuationAndJapaneseKana => {
4377                write!(f, "compressPunctuationAndJapaneseKana")
4378            }
4379        }
4380    }
4381}
4382
4383impl std::str::FromStr for STCharacterSpacing {
4384    type Err = String;
4385
4386    fn from_str(s: &str) -> Result<Self, Self::Err> {
4387        match s {
4388            "doNotCompress" => Ok(Self::DoNotCompress),
4389            "compressPunctuation" => Ok(Self::CompressPunctuation),
4390            "compressPunctuationAndJapaneseKana" => Ok(Self::CompressPunctuationAndJapaneseKana),
4391            _ => Err(format!("unknown STCharacterSpacing value: {}", s)),
4392        }
4393    }
4394}
4395
4396#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4397pub enum STWmlColorSchemeIndex {
4398    #[serde(rename = "dark1")]
4399    Dark1,
4400    #[serde(rename = "light1")]
4401    Light1,
4402    #[serde(rename = "dark2")]
4403    Dark2,
4404    #[serde(rename = "light2")]
4405    Light2,
4406    #[serde(rename = "accent1")]
4407    Accent1,
4408    #[serde(rename = "accent2")]
4409    Accent2,
4410    #[serde(rename = "accent3")]
4411    Accent3,
4412    #[serde(rename = "accent4")]
4413    Accent4,
4414    #[serde(rename = "accent5")]
4415    Accent5,
4416    #[serde(rename = "accent6")]
4417    Accent6,
4418    #[serde(rename = "hyperlink")]
4419    Hyperlink,
4420    #[serde(rename = "followedHyperlink")]
4421    FollowedHyperlink,
4422}
4423
4424impl std::fmt::Display for STWmlColorSchemeIndex {
4425    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4426        match self {
4427            Self::Dark1 => write!(f, "dark1"),
4428            Self::Light1 => write!(f, "light1"),
4429            Self::Dark2 => write!(f, "dark2"),
4430            Self::Light2 => write!(f, "light2"),
4431            Self::Accent1 => write!(f, "accent1"),
4432            Self::Accent2 => write!(f, "accent2"),
4433            Self::Accent3 => write!(f, "accent3"),
4434            Self::Accent4 => write!(f, "accent4"),
4435            Self::Accent5 => write!(f, "accent5"),
4436            Self::Accent6 => write!(f, "accent6"),
4437            Self::Hyperlink => write!(f, "hyperlink"),
4438            Self::FollowedHyperlink => write!(f, "followedHyperlink"),
4439        }
4440    }
4441}
4442
4443impl std::str::FromStr for STWmlColorSchemeIndex {
4444    type Err = String;
4445
4446    fn from_str(s: &str) -> Result<Self, Self::Err> {
4447        match s {
4448            "dark1" => Ok(Self::Dark1),
4449            "light1" => Ok(Self::Light1),
4450            "dark2" => Ok(Self::Dark2),
4451            "light2" => Ok(Self::Light2),
4452            "accent1" => Ok(Self::Accent1),
4453            "accent2" => Ok(Self::Accent2),
4454            "accent3" => Ok(Self::Accent3),
4455            "accent4" => Ok(Self::Accent4),
4456            "accent5" => Ok(Self::Accent5),
4457            "accent6" => Ok(Self::Accent6),
4458            "hyperlink" => Ok(Self::Hyperlink),
4459            "followedHyperlink" => Ok(Self::FollowedHyperlink),
4460            _ => Err(format!("unknown STWmlColorSchemeIndex value: {}", s)),
4461        }
4462    }
4463}
4464
4465#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4466pub enum STStyleSort {
4467    #[serde(rename = "name")]
4468    Name,
4469    #[serde(rename = "priority")]
4470    Priority,
4471    #[serde(rename = "default")]
4472    Default,
4473    #[serde(rename = "font")]
4474    Font,
4475    #[serde(rename = "basedOn")]
4476    BasedOn,
4477    #[serde(rename = "type")]
4478    Type,
4479    #[serde(rename = "0000")]
4480    _0000,
4481    #[serde(rename = "0001")]
4482    _0001,
4483    #[serde(rename = "0002")]
4484    _0002,
4485    #[serde(rename = "0003")]
4486    _0003,
4487    #[serde(rename = "0004")]
4488    _0004,
4489    #[serde(rename = "0005")]
4490    _0005,
4491}
4492
4493impl std::fmt::Display for STStyleSort {
4494    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4495        match self {
4496            Self::Name => write!(f, "name"),
4497            Self::Priority => write!(f, "priority"),
4498            Self::Default => write!(f, "default"),
4499            Self::Font => write!(f, "font"),
4500            Self::BasedOn => write!(f, "basedOn"),
4501            Self::Type => write!(f, "type"),
4502            Self::_0000 => write!(f, "0000"),
4503            Self::_0001 => write!(f, "0001"),
4504            Self::_0002 => write!(f, "0002"),
4505            Self::_0003 => write!(f, "0003"),
4506            Self::_0004 => write!(f, "0004"),
4507            Self::_0005 => write!(f, "0005"),
4508        }
4509    }
4510}
4511
4512impl std::str::FromStr for STStyleSort {
4513    type Err = String;
4514
4515    fn from_str(s: &str) -> Result<Self, Self::Err> {
4516        match s {
4517            "name" => Ok(Self::Name),
4518            "priority" => Ok(Self::Priority),
4519            "default" => Ok(Self::Default),
4520            "font" => Ok(Self::Font),
4521            "basedOn" => Ok(Self::BasedOn),
4522            "type" => Ok(Self::Type),
4523            "0000" => Ok(Self::_0000),
4524            "0001" => Ok(Self::_0001),
4525            "0002" => Ok(Self::_0002),
4526            "0003" => Ok(Self::_0003),
4527            "0004" => Ok(Self::_0004),
4528            "0005" => Ok(Self::_0005),
4529            _ => Err(format!("unknown STStyleSort value: {}", s)),
4530        }
4531    }
4532}
4533
4534#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4535pub enum STFrameScrollbar {
4536    #[serde(rename = "on")]
4537    On,
4538    #[serde(rename = "off")]
4539    Off,
4540    #[serde(rename = "auto")]
4541    Auto,
4542}
4543
4544impl std::fmt::Display for STFrameScrollbar {
4545    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4546        match self {
4547            Self::On => write!(f, "on"),
4548            Self::Off => write!(f, "off"),
4549            Self::Auto => write!(f, "auto"),
4550        }
4551    }
4552}
4553
4554impl std::str::FromStr for STFrameScrollbar {
4555    type Err = String;
4556
4557    fn from_str(s: &str) -> Result<Self, Self::Err> {
4558        match s {
4559            "on" => Ok(Self::On),
4560            "off" => Ok(Self::Off),
4561            "auto" => Ok(Self::Auto),
4562            _ => Err(format!("unknown STFrameScrollbar value: {}", s)),
4563        }
4564    }
4565}
4566
4567#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4568pub enum STFrameLayout {
4569    #[serde(rename = "rows")]
4570    Rows,
4571    #[serde(rename = "cols")]
4572    Cols,
4573    #[serde(rename = "none")]
4574    None,
4575}
4576
4577impl std::fmt::Display for STFrameLayout {
4578    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4579        match self {
4580            Self::Rows => write!(f, "rows"),
4581            Self::Cols => write!(f, "cols"),
4582            Self::None => write!(f, "none"),
4583        }
4584    }
4585}
4586
4587impl std::str::FromStr for STFrameLayout {
4588    type Err = String;
4589
4590    fn from_str(s: &str) -> Result<Self, Self::Err> {
4591        match s {
4592            "rows" => Ok(Self::Rows),
4593            "cols" => Ok(Self::Cols),
4594            "none" => Ok(Self::None),
4595            _ => Err(format!("unknown STFrameLayout value: {}", s)),
4596        }
4597    }
4598}
4599
4600#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4601pub enum STLevelSuffix {
4602    #[serde(rename = "tab")]
4603    Tab,
4604    #[serde(rename = "space")]
4605    Space,
4606    #[serde(rename = "nothing")]
4607    Nothing,
4608}
4609
4610impl std::fmt::Display for STLevelSuffix {
4611    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4612        match self {
4613            Self::Tab => write!(f, "tab"),
4614            Self::Space => write!(f, "space"),
4615            Self::Nothing => write!(f, "nothing"),
4616        }
4617    }
4618}
4619
4620impl std::str::FromStr for STLevelSuffix {
4621    type Err = String;
4622
4623    fn from_str(s: &str) -> Result<Self, Self::Err> {
4624        match s {
4625            "tab" => Ok(Self::Tab),
4626            "space" => Ok(Self::Space),
4627            "nothing" => Ok(Self::Nothing),
4628            _ => Err(format!("unknown STLevelSuffix value: {}", s)),
4629        }
4630    }
4631}
4632
4633#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4634pub enum STMultiLevelType {
4635    #[serde(rename = "singleLevel")]
4636    SingleLevel,
4637    #[serde(rename = "multilevel")]
4638    Multilevel,
4639    #[serde(rename = "hybridMultilevel")]
4640    HybridMultilevel,
4641}
4642
4643impl std::fmt::Display for STMultiLevelType {
4644    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4645        match self {
4646            Self::SingleLevel => write!(f, "singleLevel"),
4647            Self::Multilevel => write!(f, "multilevel"),
4648            Self::HybridMultilevel => write!(f, "hybridMultilevel"),
4649        }
4650    }
4651}
4652
4653impl std::str::FromStr for STMultiLevelType {
4654    type Err = String;
4655
4656    fn from_str(s: &str) -> Result<Self, Self::Err> {
4657        match s {
4658            "singleLevel" => Ok(Self::SingleLevel),
4659            "multilevel" => Ok(Self::Multilevel),
4660            "hybridMultilevel" => Ok(Self::HybridMultilevel),
4661            _ => Err(format!("unknown STMultiLevelType value: {}", s)),
4662        }
4663    }
4664}
4665
4666#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4667pub enum STTblStyleOverrideType {
4668    #[serde(rename = "wholeTable")]
4669    WholeTable,
4670    #[serde(rename = "firstRow")]
4671    FirstRow,
4672    #[serde(rename = "lastRow")]
4673    LastRow,
4674    #[serde(rename = "firstCol")]
4675    FirstCol,
4676    #[serde(rename = "lastCol")]
4677    LastCol,
4678    #[serde(rename = "band1Vert")]
4679    Band1Vert,
4680    #[serde(rename = "band2Vert")]
4681    Band2Vert,
4682    #[serde(rename = "band1Horz")]
4683    Band1Horz,
4684    #[serde(rename = "band2Horz")]
4685    Band2Horz,
4686    #[serde(rename = "neCell")]
4687    NeCell,
4688    #[serde(rename = "nwCell")]
4689    NwCell,
4690    #[serde(rename = "seCell")]
4691    SeCell,
4692    #[serde(rename = "swCell")]
4693    SwCell,
4694}
4695
4696impl std::fmt::Display for STTblStyleOverrideType {
4697    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4698        match self {
4699            Self::WholeTable => write!(f, "wholeTable"),
4700            Self::FirstRow => write!(f, "firstRow"),
4701            Self::LastRow => write!(f, "lastRow"),
4702            Self::FirstCol => write!(f, "firstCol"),
4703            Self::LastCol => write!(f, "lastCol"),
4704            Self::Band1Vert => write!(f, "band1Vert"),
4705            Self::Band2Vert => write!(f, "band2Vert"),
4706            Self::Band1Horz => write!(f, "band1Horz"),
4707            Self::Band2Horz => write!(f, "band2Horz"),
4708            Self::NeCell => write!(f, "neCell"),
4709            Self::NwCell => write!(f, "nwCell"),
4710            Self::SeCell => write!(f, "seCell"),
4711            Self::SwCell => write!(f, "swCell"),
4712        }
4713    }
4714}
4715
4716impl std::str::FromStr for STTblStyleOverrideType {
4717    type Err = String;
4718
4719    fn from_str(s: &str) -> Result<Self, Self::Err> {
4720        match s {
4721            "wholeTable" => Ok(Self::WholeTable),
4722            "firstRow" => Ok(Self::FirstRow),
4723            "lastRow" => Ok(Self::LastRow),
4724            "firstCol" => Ok(Self::FirstCol),
4725            "lastCol" => Ok(Self::LastCol),
4726            "band1Vert" => Ok(Self::Band1Vert),
4727            "band2Vert" => Ok(Self::Band2Vert),
4728            "band1Horz" => Ok(Self::Band1Horz),
4729            "band2Horz" => Ok(Self::Band2Horz),
4730            "neCell" => Ok(Self::NeCell),
4731            "nwCell" => Ok(Self::NwCell),
4732            "seCell" => Ok(Self::SeCell),
4733            "swCell" => Ok(Self::SwCell),
4734            _ => Err(format!("unknown STTblStyleOverrideType value: {}", s)),
4735        }
4736    }
4737}
4738
4739#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4740pub enum STStyleType {
4741    #[serde(rename = "paragraph")]
4742    Paragraph,
4743    #[serde(rename = "character")]
4744    Character,
4745    #[serde(rename = "table")]
4746    Table,
4747    #[serde(rename = "numbering")]
4748    Numbering,
4749}
4750
4751impl std::fmt::Display for STStyleType {
4752    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4753        match self {
4754            Self::Paragraph => write!(f, "paragraph"),
4755            Self::Character => write!(f, "character"),
4756            Self::Table => write!(f, "table"),
4757            Self::Numbering => write!(f, "numbering"),
4758        }
4759    }
4760}
4761
4762impl std::str::FromStr for STStyleType {
4763    type Err = String;
4764
4765    fn from_str(s: &str) -> Result<Self, Self::Err> {
4766        match s {
4767            "paragraph" => Ok(Self::Paragraph),
4768            "character" => Ok(Self::Character),
4769            "table" => Ok(Self::Table),
4770            "numbering" => Ok(Self::Numbering),
4771            _ => Err(format!("unknown STStyleType value: {}", s)),
4772        }
4773    }
4774}
4775
4776#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4777pub enum STFontFamily {
4778    #[serde(rename = "decorative")]
4779    Decorative,
4780    #[serde(rename = "modern")]
4781    Modern,
4782    #[serde(rename = "roman")]
4783    Roman,
4784    #[serde(rename = "script")]
4785    Script,
4786    #[serde(rename = "swiss")]
4787    Swiss,
4788    #[serde(rename = "auto")]
4789    Auto,
4790}
4791
4792impl std::fmt::Display for STFontFamily {
4793    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4794        match self {
4795            Self::Decorative => write!(f, "decorative"),
4796            Self::Modern => write!(f, "modern"),
4797            Self::Roman => write!(f, "roman"),
4798            Self::Script => write!(f, "script"),
4799            Self::Swiss => write!(f, "swiss"),
4800            Self::Auto => write!(f, "auto"),
4801        }
4802    }
4803}
4804
4805impl std::str::FromStr for STFontFamily {
4806    type Err = String;
4807
4808    fn from_str(s: &str) -> Result<Self, Self::Err> {
4809        match s {
4810            "decorative" => Ok(Self::Decorative),
4811            "modern" => Ok(Self::Modern),
4812            "roman" => Ok(Self::Roman),
4813            "script" => Ok(Self::Script),
4814            "swiss" => Ok(Self::Swiss),
4815            "auto" => Ok(Self::Auto),
4816            _ => Err(format!("unknown STFontFamily value: {}", s)),
4817        }
4818    }
4819}
4820
4821#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4822pub enum STPitch {
4823    #[serde(rename = "fixed")]
4824    Fixed,
4825    #[serde(rename = "variable")]
4826    Variable,
4827    #[serde(rename = "default")]
4828    Default,
4829}
4830
4831impl std::fmt::Display for STPitch {
4832    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4833        match self {
4834            Self::Fixed => write!(f, "fixed"),
4835            Self::Variable => write!(f, "variable"),
4836            Self::Default => write!(f, "default"),
4837        }
4838    }
4839}
4840
4841impl std::str::FromStr for STPitch {
4842    type Err = String;
4843
4844    fn from_str(s: &str) -> Result<Self, Self::Err> {
4845        match s {
4846            "fixed" => Ok(Self::Fixed),
4847            "variable" => Ok(Self::Variable),
4848            "default" => Ok(Self::Default),
4849            _ => Err(format!("unknown STPitch value: {}", s)),
4850        }
4851    }
4852}
4853
4854#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4855pub enum STThemeColor {
4856    #[serde(rename = "dark1")]
4857    Dark1,
4858    #[serde(rename = "light1")]
4859    Light1,
4860    #[serde(rename = "dark2")]
4861    Dark2,
4862    #[serde(rename = "light2")]
4863    Light2,
4864    #[serde(rename = "accent1")]
4865    Accent1,
4866    #[serde(rename = "accent2")]
4867    Accent2,
4868    #[serde(rename = "accent3")]
4869    Accent3,
4870    #[serde(rename = "accent4")]
4871    Accent4,
4872    #[serde(rename = "accent5")]
4873    Accent5,
4874    #[serde(rename = "accent6")]
4875    Accent6,
4876    #[serde(rename = "hyperlink")]
4877    Hyperlink,
4878    #[serde(rename = "followedHyperlink")]
4879    FollowedHyperlink,
4880    #[serde(rename = "none")]
4881    None,
4882    #[serde(rename = "background1")]
4883    Background1,
4884    #[serde(rename = "text1")]
4885    Text1,
4886    #[serde(rename = "background2")]
4887    Background2,
4888    #[serde(rename = "text2")]
4889    Text2,
4890}
4891
4892impl std::fmt::Display for STThemeColor {
4893    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4894        match self {
4895            Self::Dark1 => write!(f, "dark1"),
4896            Self::Light1 => write!(f, "light1"),
4897            Self::Dark2 => write!(f, "dark2"),
4898            Self::Light2 => write!(f, "light2"),
4899            Self::Accent1 => write!(f, "accent1"),
4900            Self::Accent2 => write!(f, "accent2"),
4901            Self::Accent3 => write!(f, "accent3"),
4902            Self::Accent4 => write!(f, "accent4"),
4903            Self::Accent5 => write!(f, "accent5"),
4904            Self::Accent6 => write!(f, "accent6"),
4905            Self::Hyperlink => write!(f, "hyperlink"),
4906            Self::FollowedHyperlink => write!(f, "followedHyperlink"),
4907            Self::None => write!(f, "none"),
4908            Self::Background1 => write!(f, "background1"),
4909            Self::Text1 => write!(f, "text1"),
4910            Self::Background2 => write!(f, "background2"),
4911            Self::Text2 => write!(f, "text2"),
4912        }
4913    }
4914}
4915
4916impl std::str::FromStr for STThemeColor {
4917    type Err = String;
4918
4919    fn from_str(s: &str) -> Result<Self, Self::Err> {
4920        match s {
4921            "dark1" => Ok(Self::Dark1),
4922            "light1" => Ok(Self::Light1),
4923            "dark2" => Ok(Self::Dark2),
4924            "light2" => Ok(Self::Light2),
4925            "accent1" => Ok(Self::Accent1),
4926            "accent2" => Ok(Self::Accent2),
4927            "accent3" => Ok(Self::Accent3),
4928            "accent4" => Ok(Self::Accent4),
4929            "accent5" => Ok(Self::Accent5),
4930            "accent6" => Ok(Self::Accent6),
4931            "hyperlink" => Ok(Self::Hyperlink),
4932            "followedHyperlink" => Ok(Self::FollowedHyperlink),
4933            "none" => Ok(Self::None),
4934            "background1" => Ok(Self::Background1),
4935            "text1" => Ok(Self::Text1),
4936            "background2" => Ok(Self::Background2),
4937            "text2" => Ok(Self::Text2),
4938            _ => Err(format!("unknown STThemeColor value: {}", s)),
4939        }
4940    }
4941}
4942
4943#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4944pub enum STDocPartBehavior {
4945    #[serde(rename = "content")]
4946    Content,
4947    #[serde(rename = "p")]
4948    P,
4949    #[serde(rename = "pg")]
4950    Pg,
4951}
4952
4953impl std::fmt::Display for STDocPartBehavior {
4954    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4955        match self {
4956            Self::Content => write!(f, "content"),
4957            Self::P => write!(f, "p"),
4958            Self::Pg => write!(f, "pg"),
4959        }
4960    }
4961}
4962
4963impl std::str::FromStr for STDocPartBehavior {
4964    type Err = String;
4965
4966    fn from_str(s: &str) -> Result<Self, Self::Err> {
4967        match s {
4968            "content" => Ok(Self::Content),
4969            "p" => Ok(Self::P),
4970            "pg" => Ok(Self::Pg),
4971            _ => Err(format!("unknown STDocPartBehavior value: {}", s)),
4972        }
4973    }
4974}
4975
4976#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4977pub enum STDocPartType {
4978    #[serde(rename = "none")]
4979    None,
4980    #[serde(rename = "normal")]
4981    Normal,
4982    #[serde(rename = "autoExp")]
4983    AutoExp,
4984    #[serde(rename = "toolbar")]
4985    Toolbar,
4986    #[serde(rename = "speller")]
4987    Speller,
4988    #[serde(rename = "formFld")]
4989    FormFld,
4990    #[serde(rename = "bbPlcHdr")]
4991    BbPlcHdr,
4992}
4993
4994impl std::fmt::Display for STDocPartType {
4995    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4996        match self {
4997            Self::None => write!(f, "none"),
4998            Self::Normal => write!(f, "normal"),
4999            Self::AutoExp => write!(f, "autoExp"),
5000            Self::Toolbar => write!(f, "toolbar"),
5001            Self::Speller => write!(f, "speller"),
5002            Self::FormFld => write!(f, "formFld"),
5003            Self::BbPlcHdr => write!(f, "bbPlcHdr"),
5004        }
5005    }
5006}
5007
5008impl std::str::FromStr for STDocPartType {
5009    type Err = String;
5010
5011    fn from_str(s: &str) -> Result<Self, Self::Err> {
5012        match s {
5013            "none" => Ok(Self::None),
5014            "normal" => Ok(Self::Normal),
5015            "autoExp" => Ok(Self::AutoExp),
5016            "toolbar" => Ok(Self::Toolbar),
5017            "speller" => Ok(Self::Speller),
5018            "formFld" => Ok(Self::FormFld),
5019            "bbPlcHdr" => Ok(Self::BbPlcHdr),
5020            _ => Err(format!("unknown STDocPartType value: {}", s)),
5021        }
5022    }
5023}
5024
5025#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5026pub enum STDocPartGallery {
5027    #[serde(rename = "placeholder")]
5028    Placeholder,
5029    #[serde(rename = "any")]
5030    Any,
5031    #[serde(rename = "default")]
5032    Default,
5033    #[serde(rename = "docParts")]
5034    DocParts,
5035    #[serde(rename = "coverPg")]
5036    CoverPg,
5037    #[serde(rename = "eq")]
5038    Eq,
5039    #[serde(rename = "ftrs")]
5040    Ftrs,
5041    #[serde(rename = "hdrs")]
5042    Hdrs,
5043    #[serde(rename = "pgNum")]
5044    PgNum,
5045    #[serde(rename = "tbls")]
5046    Tbls,
5047    #[serde(rename = "watermarks")]
5048    Watermarks,
5049    #[serde(rename = "autoTxt")]
5050    AutoTxt,
5051    #[serde(rename = "txtBox")]
5052    TxtBox,
5053    #[serde(rename = "pgNumT")]
5054    PgNumT,
5055    #[serde(rename = "pgNumB")]
5056    PgNumB,
5057    #[serde(rename = "pgNumMargins")]
5058    PgNumMargins,
5059    #[serde(rename = "tblOfContents")]
5060    TblOfContents,
5061    #[serde(rename = "bib")]
5062    Bib,
5063    #[serde(rename = "custQuickParts")]
5064    CustQuickParts,
5065    #[serde(rename = "custCoverPg")]
5066    CustCoverPg,
5067    #[serde(rename = "custEq")]
5068    CustEq,
5069    #[serde(rename = "custFtrs")]
5070    CustFtrs,
5071    #[serde(rename = "custHdrs")]
5072    CustHdrs,
5073    #[serde(rename = "custPgNum")]
5074    CustPgNum,
5075    #[serde(rename = "custTbls")]
5076    CustTbls,
5077    #[serde(rename = "custWatermarks")]
5078    CustWatermarks,
5079    #[serde(rename = "custAutoTxt")]
5080    CustAutoTxt,
5081    #[serde(rename = "custTxtBox")]
5082    CustTxtBox,
5083    #[serde(rename = "custPgNumT")]
5084    CustPgNumT,
5085    #[serde(rename = "custPgNumB")]
5086    CustPgNumB,
5087    #[serde(rename = "custPgNumMargins")]
5088    CustPgNumMargins,
5089    #[serde(rename = "custTblOfContents")]
5090    CustTblOfContents,
5091    #[serde(rename = "custBib")]
5092    CustBib,
5093    #[serde(rename = "custom1")]
5094    Custom1,
5095    #[serde(rename = "custom2")]
5096    Custom2,
5097    #[serde(rename = "custom3")]
5098    Custom3,
5099    #[serde(rename = "custom4")]
5100    Custom4,
5101    #[serde(rename = "custom5")]
5102    Custom5,
5103}
5104
5105impl std::fmt::Display for STDocPartGallery {
5106    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5107        match self {
5108            Self::Placeholder => write!(f, "placeholder"),
5109            Self::Any => write!(f, "any"),
5110            Self::Default => write!(f, "default"),
5111            Self::DocParts => write!(f, "docParts"),
5112            Self::CoverPg => write!(f, "coverPg"),
5113            Self::Eq => write!(f, "eq"),
5114            Self::Ftrs => write!(f, "ftrs"),
5115            Self::Hdrs => write!(f, "hdrs"),
5116            Self::PgNum => write!(f, "pgNum"),
5117            Self::Tbls => write!(f, "tbls"),
5118            Self::Watermarks => write!(f, "watermarks"),
5119            Self::AutoTxt => write!(f, "autoTxt"),
5120            Self::TxtBox => write!(f, "txtBox"),
5121            Self::PgNumT => write!(f, "pgNumT"),
5122            Self::PgNumB => write!(f, "pgNumB"),
5123            Self::PgNumMargins => write!(f, "pgNumMargins"),
5124            Self::TblOfContents => write!(f, "tblOfContents"),
5125            Self::Bib => write!(f, "bib"),
5126            Self::CustQuickParts => write!(f, "custQuickParts"),
5127            Self::CustCoverPg => write!(f, "custCoverPg"),
5128            Self::CustEq => write!(f, "custEq"),
5129            Self::CustFtrs => write!(f, "custFtrs"),
5130            Self::CustHdrs => write!(f, "custHdrs"),
5131            Self::CustPgNum => write!(f, "custPgNum"),
5132            Self::CustTbls => write!(f, "custTbls"),
5133            Self::CustWatermarks => write!(f, "custWatermarks"),
5134            Self::CustAutoTxt => write!(f, "custAutoTxt"),
5135            Self::CustTxtBox => write!(f, "custTxtBox"),
5136            Self::CustPgNumT => write!(f, "custPgNumT"),
5137            Self::CustPgNumB => write!(f, "custPgNumB"),
5138            Self::CustPgNumMargins => write!(f, "custPgNumMargins"),
5139            Self::CustTblOfContents => write!(f, "custTblOfContents"),
5140            Self::CustBib => write!(f, "custBib"),
5141            Self::Custom1 => write!(f, "custom1"),
5142            Self::Custom2 => write!(f, "custom2"),
5143            Self::Custom3 => write!(f, "custom3"),
5144            Self::Custom4 => write!(f, "custom4"),
5145            Self::Custom5 => write!(f, "custom5"),
5146        }
5147    }
5148}
5149
5150impl std::str::FromStr for STDocPartGallery {
5151    type Err = String;
5152
5153    fn from_str(s: &str) -> Result<Self, Self::Err> {
5154        match s {
5155            "placeholder" => Ok(Self::Placeholder),
5156            "any" => Ok(Self::Any),
5157            "default" => Ok(Self::Default),
5158            "docParts" => Ok(Self::DocParts),
5159            "coverPg" => Ok(Self::CoverPg),
5160            "eq" => Ok(Self::Eq),
5161            "ftrs" => Ok(Self::Ftrs),
5162            "hdrs" => Ok(Self::Hdrs),
5163            "pgNum" => Ok(Self::PgNum),
5164            "tbls" => Ok(Self::Tbls),
5165            "watermarks" => Ok(Self::Watermarks),
5166            "autoTxt" => Ok(Self::AutoTxt),
5167            "txtBox" => Ok(Self::TxtBox),
5168            "pgNumT" => Ok(Self::PgNumT),
5169            "pgNumB" => Ok(Self::PgNumB),
5170            "pgNumMargins" => Ok(Self::PgNumMargins),
5171            "tblOfContents" => Ok(Self::TblOfContents),
5172            "bib" => Ok(Self::Bib),
5173            "custQuickParts" => Ok(Self::CustQuickParts),
5174            "custCoverPg" => Ok(Self::CustCoverPg),
5175            "custEq" => Ok(Self::CustEq),
5176            "custFtrs" => Ok(Self::CustFtrs),
5177            "custHdrs" => Ok(Self::CustHdrs),
5178            "custPgNum" => Ok(Self::CustPgNum),
5179            "custTbls" => Ok(Self::CustTbls),
5180            "custWatermarks" => Ok(Self::CustWatermarks),
5181            "custAutoTxt" => Ok(Self::CustAutoTxt),
5182            "custTxtBox" => Ok(Self::CustTxtBox),
5183            "custPgNumT" => Ok(Self::CustPgNumT),
5184            "custPgNumB" => Ok(Self::CustPgNumB),
5185            "custPgNumMargins" => Ok(Self::CustPgNumMargins),
5186            "custTblOfContents" => Ok(Self::CustTblOfContents),
5187            "custBib" => Ok(Self::CustBib),
5188            "custom1" => Ok(Self::Custom1),
5189            "custom2" => Ok(Self::Custom2),
5190            "custom3" => Ok(Self::Custom3),
5191            "custom4" => Ok(Self::Custom4),
5192            "custom5" => Ok(Self::Custom5),
5193            _ => Err(format!("unknown STDocPartGallery value: {}", s)),
5194        }
5195    }
5196}
5197
5198#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5199pub enum STCaptionPos {
5200    #[serde(rename = "above")]
5201    Above,
5202    #[serde(rename = "below")]
5203    Below,
5204    #[serde(rename = "left")]
5205    Left,
5206    #[serde(rename = "right")]
5207    Right,
5208}
5209
5210impl std::fmt::Display for STCaptionPos {
5211    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5212        match self {
5213            Self::Above => write!(f, "above"),
5214            Self::Below => write!(f, "below"),
5215            Self::Left => write!(f, "left"),
5216            Self::Right => write!(f, "right"),
5217        }
5218    }
5219}
5220
5221impl std::str::FromStr for STCaptionPos {
5222    type Err = String;
5223
5224    fn from_str(s: &str) -> Result<Self, Self::Err> {
5225        match s {
5226            "above" => Ok(Self::Above),
5227            "below" => Ok(Self::Below),
5228            "left" => Ok(Self::Left),
5229            "right" => Ok(Self::Right),
5230            _ => Err(format!("unknown STCaptionPos value: {}", s)),
5231        }
5232    }
5233}
5234
5235#[derive(Debug, Clone, Serialize, Deserialize)]
5236pub enum ParagraphContentBase {
5237    #[serde(rename = "customXml")]
5238    CustomXml(Box<CTCustomXmlRun>),
5239    #[serde(rename = "fldSimple")]
5240    FldSimple(Box<CTSimpleField>),
5241    #[serde(rename = "hyperlink")]
5242    Hyperlink(Box<Hyperlink>),
5243}
5244
5245#[derive(Debug, Clone, Serialize, Deserialize)]
5246pub enum RunContentBase {
5247    #[serde(rename = "smartTag")]
5248    SmartTag(Box<CTSmartTagRun>),
5249    #[serde(rename = "sdt")]
5250    Sdt(Box<CTSdtRun>),
5251    #[serde(rename = "proofErr")]
5252    ProofErr(Box<CTProofErr>),
5253    #[serde(rename = "permStart")]
5254    PermStart(Box<CTPermStart>),
5255    #[serde(rename = "permEnd")]
5256    PermEnd(Box<CTPerm>),
5257    #[serde(rename = "bookmarkStart")]
5258    BookmarkStart(Box<Bookmark>),
5259    #[serde(rename = "bookmarkEnd")]
5260    BookmarkEnd(Box<CTMarkupRange>),
5261    #[serde(rename = "moveFromRangeStart")]
5262    MoveFromRangeStart(Box<CTMoveBookmark>),
5263    #[serde(rename = "moveFromRangeEnd")]
5264    MoveFromRangeEnd(Box<CTMarkupRange>),
5265    #[serde(rename = "moveToRangeStart")]
5266    MoveToRangeStart(Box<CTMoveBookmark>),
5267    #[serde(rename = "moveToRangeEnd")]
5268    MoveToRangeEnd(Box<CTMarkupRange>),
5269    #[serde(rename = "commentRangeStart")]
5270    CommentRangeStart(Box<CTMarkupRange>),
5271    #[serde(rename = "commentRangeEnd")]
5272    CommentRangeEnd(Box<CTMarkupRange>),
5273    #[serde(rename = "customXmlInsRangeStart")]
5274    CustomXmlInsRangeStart(Box<CTTrackChange>),
5275    #[serde(rename = "customXmlInsRangeEnd")]
5276    CustomXmlInsRangeEnd(Box<CTMarkup>),
5277    #[serde(rename = "customXmlDelRangeStart")]
5278    CustomXmlDelRangeStart(Box<CTTrackChange>),
5279    #[serde(rename = "customXmlDelRangeEnd")]
5280    CustomXmlDelRangeEnd(Box<CTMarkup>),
5281    #[serde(rename = "customXmlMoveFromRangeStart")]
5282    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5283    #[serde(rename = "customXmlMoveFromRangeEnd")]
5284    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5285    #[serde(rename = "customXmlMoveToRangeStart")]
5286    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5287    #[serde(rename = "customXmlMoveToRangeEnd")]
5288    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5289    #[serde(rename = "ins")]
5290    Ins(Box<CTRunTrackChange>),
5291    #[serde(rename = "del")]
5292    Del(Box<CTRunTrackChange>),
5293    #[serde(rename = "moveFrom")]
5294    MoveFrom(Box<CTRunTrackChange>),
5295    #[serde(rename = "moveTo")]
5296    MoveTo(Box<CTRunTrackChange>),
5297}
5298
5299#[derive(Debug, Clone, Serialize, Deserialize)]
5300pub enum CellMarkup {
5301    #[serde(rename = "cellIns")]
5302    CellIns(Box<CTTrackChange>),
5303    #[serde(rename = "cellDel")]
5304    CellDel(Box<CTTrackChange>),
5305    #[serde(rename = "cellMerge")]
5306    CellMerge(Box<CTCellMergeTrackChange>),
5307}
5308
5309#[derive(Debug, Clone, Serialize, Deserialize)]
5310pub enum RangeMarkup {
5311    #[serde(rename = "bookmarkStart")]
5312    BookmarkStart(Box<Bookmark>),
5313    #[serde(rename = "bookmarkEnd")]
5314    BookmarkEnd(Box<CTMarkupRange>),
5315    #[serde(rename = "moveFromRangeStart")]
5316    MoveFromRangeStart(Box<CTMoveBookmark>),
5317    #[serde(rename = "moveFromRangeEnd")]
5318    MoveFromRangeEnd(Box<CTMarkupRange>),
5319    #[serde(rename = "moveToRangeStart")]
5320    MoveToRangeStart(Box<CTMoveBookmark>),
5321    #[serde(rename = "moveToRangeEnd")]
5322    MoveToRangeEnd(Box<CTMarkupRange>),
5323    #[serde(rename = "commentRangeStart")]
5324    CommentRangeStart(Box<CTMarkupRange>),
5325    #[serde(rename = "commentRangeEnd")]
5326    CommentRangeEnd(Box<CTMarkupRange>),
5327    #[serde(rename = "customXmlInsRangeStart")]
5328    CustomXmlInsRangeStart(Box<CTTrackChange>),
5329    #[serde(rename = "customXmlInsRangeEnd")]
5330    CustomXmlInsRangeEnd(Box<CTMarkup>),
5331    #[serde(rename = "customXmlDelRangeStart")]
5332    CustomXmlDelRangeStart(Box<CTTrackChange>),
5333    #[serde(rename = "customXmlDelRangeEnd")]
5334    CustomXmlDelRangeEnd(Box<CTMarkup>),
5335    #[serde(rename = "customXmlMoveFromRangeStart")]
5336    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5337    #[serde(rename = "customXmlMoveFromRangeEnd")]
5338    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5339    #[serde(rename = "customXmlMoveToRangeStart")]
5340    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5341    #[serde(rename = "customXmlMoveToRangeEnd")]
5342    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5343}
5344
5345#[derive(Debug, Clone, Serialize, Deserialize)]
5346pub enum HeaderFooterRef {
5347    #[serde(rename = "headerReference")]
5348    HeaderReference(Box<HeaderFooterReference>),
5349    #[serde(rename = "footerReference")]
5350    FooterReference(Box<HeaderFooterReference>),
5351}
5352
5353#[derive(Debug, Clone, Serialize, Deserialize)]
5354pub enum RunContent {
5355    #[serde(rename = "br")]
5356    Br(Box<CTBr>),
5357    #[serde(rename = "t")]
5358    T(Box<Text>),
5359    #[serde(rename = "contentPart")]
5360    ContentPart(Box<CTRel>),
5361    #[serde(rename = "delText")]
5362    DelText(Box<Text>),
5363    #[serde(rename = "instrText")]
5364    InstrText(Box<Text>),
5365    #[serde(rename = "delInstrText")]
5366    DelInstrText(Box<Text>),
5367    #[serde(rename = "noBreakHyphen")]
5368    NoBreakHyphen(Box<CTEmpty>),
5369    #[serde(rename = "softHyphen")]
5370    SoftHyphen(Box<CTEmpty>),
5371    #[serde(rename = "dayShort")]
5372    DayShort(Box<CTEmpty>),
5373    #[serde(rename = "monthShort")]
5374    MonthShort(Box<CTEmpty>),
5375    #[serde(rename = "yearShort")]
5376    YearShort(Box<CTEmpty>),
5377    #[serde(rename = "dayLong")]
5378    DayLong(Box<CTEmpty>),
5379    #[serde(rename = "monthLong")]
5380    MonthLong(Box<CTEmpty>),
5381    #[serde(rename = "yearLong")]
5382    YearLong(Box<CTEmpty>),
5383    #[serde(rename = "annotationRef")]
5384    AnnotationRef(Box<CTEmpty>),
5385    #[serde(rename = "footnoteRef")]
5386    FootnoteRef(Box<CTEmpty>),
5387    #[serde(rename = "endnoteRef")]
5388    EndnoteRef(Box<CTEmpty>),
5389    #[serde(rename = "separator")]
5390    Separator(Box<CTEmpty>),
5391    #[serde(rename = "continuationSeparator")]
5392    ContinuationSeparator(Box<CTEmpty>),
5393    #[serde(rename = "sym")]
5394    Sym(Box<CTSym>),
5395    #[serde(rename = "pgNum")]
5396    PgNum(Box<CTEmpty>),
5397    #[serde(rename = "cr")]
5398    Cr(Box<CTEmpty>),
5399    #[serde(rename = "tab")]
5400    Tab(Box<CTEmpty>),
5401    #[serde(rename = "object")]
5402    Object(Box<CTObject>),
5403    #[serde(rename = "pict")]
5404    Pict(Box<CTPicture>),
5405    #[serde(rename = "fldChar")]
5406    FldChar(Box<CTFldChar>),
5407    #[serde(rename = "ruby")]
5408    Ruby(Box<CTRuby>),
5409    #[serde(rename = "footnoteReference")]
5410    FootnoteReference(Box<FootnoteEndnoteRef>),
5411    #[serde(rename = "endnoteReference")]
5412    EndnoteReference(Box<FootnoteEndnoteRef>),
5413    #[serde(rename = "commentReference")]
5414    CommentReference(Box<CTMarkup>),
5415    #[serde(rename = "drawing")]
5416    Drawing(Box<CTDrawing>),
5417    #[serde(rename = "ptab")]
5418    Ptab(Box<CTPTab>),
5419    #[serde(rename = "lastRenderedPageBreak")]
5420    LastRenderedPageBreak(Box<CTEmpty>),
5421}
5422
5423#[derive(Debug, Clone, Serialize, Deserialize)]
5424pub enum MathRunProperties {
5425    #[serde(rename = "rPr")]
5426    RPr(Box<RunProperties>),
5427    #[serde(rename = "ins")]
5428    Ins(Box<CTMathCtrlIns>),
5429    #[serde(rename = "del")]
5430    Del(Box<CTMathCtrlDel>),
5431}
5432
5433#[derive(Debug, Clone, Serialize, Deserialize)]
5434pub enum RubyContent {
5435    #[serde(rename = "r")]
5436    R(Box<Run>),
5437    #[serde(rename = "proofErr")]
5438    ProofErr(Box<CTProofErr>),
5439    #[serde(rename = "permStart")]
5440    PermStart(Box<CTPermStart>),
5441    #[serde(rename = "permEnd")]
5442    PermEnd(Box<CTPerm>),
5443    #[serde(rename = "bookmarkStart")]
5444    BookmarkStart(Box<Bookmark>),
5445    #[serde(rename = "bookmarkEnd")]
5446    BookmarkEnd(Box<CTMarkupRange>),
5447    #[serde(rename = "moveFromRangeStart")]
5448    MoveFromRangeStart(Box<CTMoveBookmark>),
5449    #[serde(rename = "moveFromRangeEnd")]
5450    MoveFromRangeEnd(Box<CTMarkupRange>),
5451    #[serde(rename = "moveToRangeStart")]
5452    MoveToRangeStart(Box<CTMoveBookmark>),
5453    #[serde(rename = "moveToRangeEnd")]
5454    MoveToRangeEnd(Box<CTMarkupRange>),
5455    #[serde(rename = "commentRangeStart")]
5456    CommentRangeStart(Box<CTMarkupRange>),
5457    #[serde(rename = "commentRangeEnd")]
5458    CommentRangeEnd(Box<CTMarkupRange>),
5459    #[serde(rename = "customXmlInsRangeStart")]
5460    CustomXmlInsRangeStart(Box<CTTrackChange>),
5461    #[serde(rename = "customXmlInsRangeEnd")]
5462    CustomXmlInsRangeEnd(Box<CTMarkup>),
5463    #[serde(rename = "customXmlDelRangeStart")]
5464    CustomXmlDelRangeStart(Box<CTTrackChange>),
5465    #[serde(rename = "customXmlDelRangeEnd")]
5466    CustomXmlDelRangeEnd(Box<CTMarkup>),
5467    #[serde(rename = "customXmlMoveFromRangeStart")]
5468    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5469    #[serde(rename = "customXmlMoveFromRangeEnd")]
5470    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5471    #[serde(rename = "customXmlMoveToRangeStart")]
5472    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5473    #[serde(rename = "customXmlMoveToRangeEnd")]
5474    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5475    #[serde(rename = "ins")]
5476    Ins(Box<CTRunTrackChange>),
5477    #[serde(rename = "del")]
5478    Del(Box<CTRunTrackChange>),
5479    #[serde(rename = "moveFrom")]
5480    MoveFrom(Box<CTRunTrackChange>),
5481    #[serde(rename = "moveTo")]
5482    MoveTo(Box<CTRunTrackChange>),
5483}
5484
5485#[derive(Debug, Clone, Serialize, Deserialize)]
5486pub enum RunContentChoice {
5487    #[serde(rename = "customXml")]
5488    CustomXml(Box<CTCustomXmlRun>),
5489    #[serde(rename = "smartTag")]
5490    SmartTag(Box<CTSmartTagRun>),
5491    #[serde(rename = "sdt")]
5492    Sdt(Box<CTSdtRun>),
5493    #[serde(rename = "dir")]
5494    Dir(Box<CTDirContentRun>),
5495    #[serde(rename = "bdo")]
5496    Bdo(Box<CTBdoContentRun>),
5497    #[serde(rename = "r")]
5498    R(Box<Run>),
5499    #[serde(rename = "proofErr")]
5500    ProofErr(Box<CTProofErr>),
5501    #[serde(rename = "permStart")]
5502    PermStart(Box<CTPermStart>),
5503    #[serde(rename = "permEnd")]
5504    PermEnd(Box<CTPerm>),
5505    #[serde(rename = "bookmarkStart")]
5506    BookmarkStart(Box<Bookmark>),
5507    #[serde(rename = "bookmarkEnd")]
5508    BookmarkEnd(Box<CTMarkupRange>),
5509    #[serde(rename = "moveFromRangeStart")]
5510    MoveFromRangeStart(Box<CTMoveBookmark>),
5511    #[serde(rename = "moveFromRangeEnd")]
5512    MoveFromRangeEnd(Box<CTMarkupRange>),
5513    #[serde(rename = "moveToRangeStart")]
5514    MoveToRangeStart(Box<CTMoveBookmark>),
5515    #[serde(rename = "moveToRangeEnd")]
5516    MoveToRangeEnd(Box<CTMarkupRange>),
5517    #[serde(rename = "commentRangeStart")]
5518    CommentRangeStart(Box<CTMarkupRange>),
5519    #[serde(rename = "commentRangeEnd")]
5520    CommentRangeEnd(Box<CTMarkupRange>),
5521    #[serde(rename = "customXmlInsRangeStart")]
5522    CustomXmlInsRangeStart(Box<CTTrackChange>),
5523    #[serde(rename = "customXmlInsRangeEnd")]
5524    CustomXmlInsRangeEnd(Box<CTMarkup>),
5525    #[serde(rename = "customXmlDelRangeStart")]
5526    CustomXmlDelRangeStart(Box<CTTrackChange>),
5527    #[serde(rename = "customXmlDelRangeEnd")]
5528    CustomXmlDelRangeEnd(Box<CTMarkup>),
5529    #[serde(rename = "customXmlMoveFromRangeStart")]
5530    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5531    #[serde(rename = "customXmlMoveFromRangeEnd")]
5532    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5533    #[serde(rename = "customXmlMoveToRangeStart")]
5534    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5535    #[serde(rename = "customXmlMoveToRangeEnd")]
5536    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5537    #[serde(rename = "ins")]
5538    Ins(Box<CTRunTrackChange>),
5539    #[serde(rename = "del")]
5540    Del(Box<CTRunTrackChange>),
5541    #[serde(rename = "moveFrom")]
5542    MoveFrom(Box<CTRunTrackChange>),
5543    #[serde(rename = "moveTo")]
5544    MoveTo(Box<CTRunTrackChange>),
5545}
5546
5547#[derive(Debug, Clone, Serialize, Deserialize)]
5548pub enum BlockContentChoice {
5549    #[serde(rename = "customXml")]
5550    CustomXml(Box<CTCustomXmlBlock>),
5551    #[serde(rename = "sdt")]
5552    Sdt(Box<CTSdtBlock>),
5553    #[serde(rename = "p")]
5554    P(Box<Paragraph>),
5555    #[serde(rename = "tbl")]
5556    Tbl(Box<Table>),
5557    #[serde(rename = "proofErr")]
5558    ProofErr(Box<CTProofErr>),
5559    #[serde(rename = "permStart")]
5560    PermStart(Box<CTPermStart>),
5561    #[serde(rename = "permEnd")]
5562    PermEnd(Box<CTPerm>),
5563    #[serde(rename = "bookmarkStart")]
5564    BookmarkStart(Box<Bookmark>),
5565    #[serde(rename = "bookmarkEnd")]
5566    BookmarkEnd(Box<CTMarkupRange>),
5567    #[serde(rename = "moveFromRangeStart")]
5568    MoveFromRangeStart(Box<CTMoveBookmark>),
5569    #[serde(rename = "moveFromRangeEnd")]
5570    MoveFromRangeEnd(Box<CTMarkupRange>),
5571    #[serde(rename = "moveToRangeStart")]
5572    MoveToRangeStart(Box<CTMoveBookmark>),
5573    #[serde(rename = "moveToRangeEnd")]
5574    MoveToRangeEnd(Box<CTMarkupRange>),
5575    #[serde(rename = "commentRangeStart")]
5576    CommentRangeStart(Box<CTMarkupRange>),
5577    #[serde(rename = "commentRangeEnd")]
5578    CommentRangeEnd(Box<CTMarkupRange>),
5579    #[serde(rename = "customXmlInsRangeStart")]
5580    CustomXmlInsRangeStart(Box<CTTrackChange>),
5581    #[serde(rename = "customXmlInsRangeEnd")]
5582    CustomXmlInsRangeEnd(Box<CTMarkup>),
5583    #[serde(rename = "customXmlDelRangeStart")]
5584    CustomXmlDelRangeStart(Box<CTTrackChange>),
5585    #[serde(rename = "customXmlDelRangeEnd")]
5586    CustomXmlDelRangeEnd(Box<CTMarkup>),
5587    #[serde(rename = "customXmlMoveFromRangeStart")]
5588    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5589    #[serde(rename = "customXmlMoveFromRangeEnd")]
5590    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5591    #[serde(rename = "customXmlMoveToRangeStart")]
5592    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5593    #[serde(rename = "customXmlMoveToRangeEnd")]
5594    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5595    #[serde(rename = "ins")]
5596    Ins(Box<CTRunTrackChange>),
5597    #[serde(rename = "del")]
5598    Del(Box<CTRunTrackChange>),
5599    #[serde(rename = "moveFrom")]
5600    MoveFrom(Box<CTRunTrackChange>),
5601    #[serde(rename = "moveTo")]
5602    MoveTo(Box<CTRunTrackChange>),
5603}
5604
5605#[derive(Debug, Clone, Serialize, Deserialize)]
5606pub enum RowContent {
5607    #[serde(rename = "tr")]
5608    Tr(Box<CTRow>),
5609    #[serde(rename = "customXml")]
5610    CustomXml(Box<CTCustomXmlRow>),
5611    #[serde(rename = "sdt")]
5612    Sdt(Box<CTSdtRow>),
5613    #[serde(rename = "proofErr")]
5614    ProofErr(Box<CTProofErr>),
5615    #[serde(rename = "permStart")]
5616    PermStart(Box<CTPermStart>),
5617    #[serde(rename = "permEnd")]
5618    PermEnd(Box<CTPerm>),
5619    #[serde(rename = "bookmarkStart")]
5620    BookmarkStart(Box<Bookmark>),
5621    #[serde(rename = "bookmarkEnd")]
5622    BookmarkEnd(Box<CTMarkupRange>),
5623    #[serde(rename = "moveFromRangeStart")]
5624    MoveFromRangeStart(Box<CTMoveBookmark>),
5625    #[serde(rename = "moveFromRangeEnd")]
5626    MoveFromRangeEnd(Box<CTMarkupRange>),
5627    #[serde(rename = "moveToRangeStart")]
5628    MoveToRangeStart(Box<CTMoveBookmark>),
5629    #[serde(rename = "moveToRangeEnd")]
5630    MoveToRangeEnd(Box<CTMarkupRange>),
5631    #[serde(rename = "commentRangeStart")]
5632    CommentRangeStart(Box<CTMarkupRange>),
5633    #[serde(rename = "commentRangeEnd")]
5634    CommentRangeEnd(Box<CTMarkupRange>),
5635    #[serde(rename = "customXmlInsRangeStart")]
5636    CustomXmlInsRangeStart(Box<CTTrackChange>),
5637    #[serde(rename = "customXmlInsRangeEnd")]
5638    CustomXmlInsRangeEnd(Box<CTMarkup>),
5639    #[serde(rename = "customXmlDelRangeStart")]
5640    CustomXmlDelRangeStart(Box<CTTrackChange>),
5641    #[serde(rename = "customXmlDelRangeEnd")]
5642    CustomXmlDelRangeEnd(Box<CTMarkup>),
5643    #[serde(rename = "customXmlMoveFromRangeStart")]
5644    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5645    #[serde(rename = "customXmlMoveFromRangeEnd")]
5646    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5647    #[serde(rename = "customXmlMoveToRangeStart")]
5648    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5649    #[serde(rename = "customXmlMoveToRangeEnd")]
5650    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5651    #[serde(rename = "ins")]
5652    Ins(Box<CTRunTrackChange>),
5653    #[serde(rename = "del")]
5654    Del(Box<CTRunTrackChange>),
5655    #[serde(rename = "moveFrom")]
5656    MoveFrom(Box<CTRunTrackChange>),
5657    #[serde(rename = "moveTo")]
5658    MoveTo(Box<CTRunTrackChange>),
5659}
5660
5661#[derive(Debug, Clone, Serialize, Deserialize)]
5662pub enum CellContent {
5663    #[serde(rename = "tc")]
5664    Tc(Box<TableCell>),
5665    #[serde(rename = "customXml")]
5666    CustomXml(Box<CTCustomXmlCell>),
5667    #[serde(rename = "sdt")]
5668    Sdt(Box<CTSdtCell>),
5669    #[serde(rename = "proofErr")]
5670    ProofErr(Box<CTProofErr>),
5671    #[serde(rename = "permStart")]
5672    PermStart(Box<CTPermStart>),
5673    #[serde(rename = "permEnd")]
5674    PermEnd(Box<CTPerm>),
5675    #[serde(rename = "bookmarkStart")]
5676    BookmarkStart(Box<Bookmark>),
5677    #[serde(rename = "bookmarkEnd")]
5678    BookmarkEnd(Box<CTMarkupRange>),
5679    #[serde(rename = "moveFromRangeStart")]
5680    MoveFromRangeStart(Box<CTMoveBookmark>),
5681    #[serde(rename = "moveFromRangeEnd")]
5682    MoveFromRangeEnd(Box<CTMarkupRange>),
5683    #[serde(rename = "moveToRangeStart")]
5684    MoveToRangeStart(Box<CTMoveBookmark>),
5685    #[serde(rename = "moveToRangeEnd")]
5686    MoveToRangeEnd(Box<CTMarkupRange>),
5687    #[serde(rename = "commentRangeStart")]
5688    CommentRangeStart(Box<CTMarkupRange>),
5689    #[serde(rename = "commentRangeEnd")]
5690    CommentRangeEnd(Box<CTMarkupRange>),
5691    #[serde(rename = "customXmlInsRangeStart")]
5692    CustomXmlInsRangeStart(Box<CTTrackChange>),
5693    #[serde(rename = "customXmlInsRangeEnd")]
5694    CustomXmlInsRangeEnd(Box<CTMarkup>),
5695    #[serde(rename = "customXmlDelRangeStart")]
5696    CustomXmlDelRangeStart(Box<CTTrackChange>),
5697    #[serde(rename = "customXmlDelRangeEnd")]
5698    CustomXmlDelRangeEnd(Box<CTMarkup>),
5699    #[serde(rename = "customXmlMoveFromRangeStart")]
5700    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5701    #[serde(rename = "customXmlMoveFromRangeEnd")]
5702    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5703    #[serde(rename = "customXmlMoveToRangeStart")]
5704    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5705    #[serde(rename = "customXmlMoveToRangeEnd")]
5706    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5707    #[serde(rename = "ins")]
5708    Ins(Box<CTRunTrackChange>),
5709    #[serde(rename = "del")]
5710    Del(Box<CTRunTrackChange>),
5711    #[serde(rename = "moveFrom")]
5712    MoveFrom(Box<CTRunTrackChange>),
5713    #[serde(rename = "moveTo")]
5714    MoveTo(Box<CTRunTrackChange>),
5715}
5716
5717#[derive(Debug, Clone, Serialize, Deserialize)]
5718pub enum ParagraphContent {
5719    #[serde(rename = "customXml")]
5720    CustomXml(Box<CTCustomXmlRun>),
5721    #[serde(rename = "smartTag")]
5722    SmartTag(Box<CTSmartTagRun>),
5723    #[serde(rename = "sdt")]
5724    Sdt(Box<CTSdtRun>),
5725    #[serde(rename = "dir")]
5726    Dir(Box<CTDirContentRun>),
5727    #[serde(rename = "bdo")]
5728    Bdo(Box<CTBdoContentRun>),
5729    #[serde(rename = "r")]
5730    R(Box<Run>),
5731    #[serde(rename = "proofErr")]
5732    ProofErr(Box<CTProofErr>),
5733    #[serde(rename = "permStart")]
5734    PermStart(Box<CTPermStart>),
5735    #[serde(rename = "permEnd")]
5736    PermEnd(Box<CTPerm>),
5737    #[serde(rename = "bookmarkStart")]
5738    BookmarkStart(Box<Bookmark>),
5739    #[serde(rename = "bookmarkEnd")]
5740    BookmarkEnd(Box<CTMarkupRange>),
5741    #[serde(rename = "moveFromRangeStart")]
5742    MoveFromRangeStart(Box<CTMoveBookmark>),
5743    #[serde(rename = "moveFromRangeEnd")]
5744    MoveFromRangeEnd(Box<CTMarkupRange>),
5745    #[serde(rename = "moveToRangeStart")]
5746    MoveToRangeStart(Box<CTMoveBookmark>),
5747    #[serde(rename = "moveToRangeEnd")]
5748    MoveToRangeEnd(Box<CTMarkupRange>),
5749    #[serde(rename = "commentRangeStart")]
5750    CommentRangeStart(Box<CTMarkupRange>),
5751    #[serde(rename = "commentRangeEnd")]
5752    CommentRangeEnd(Box<CTMarkupRange>),
5753    #[serde(rename = "customXmlInsRangeStart")]
5754    CustomXmlInsRangeStart(Box<CTTrackChange>),
5755    #[serde(rename = "customXmlInsRangeEnd")]
5756    CustomXmlInsRangeEnd(Box<CTMarkup>),
5757    #[serde(rename = "customXmlDelRangeStart")]
5758    CustomXmlDelRangeStart(Box<CTTrackChange>),
5759    #[serde(rename = "customXmlDelRangeEnd")]
5760    CustomXmlDelRangeEnd(Box<CTMarkup>),
5761    #[serde(rename = "customXmlMoveFromRangeStart")]
5762    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5763    #[serde(rename = "customXmlMoveFromRangeEnd")]
5764    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5765    #[serde(rename = "customXmlMoveToRangeStart")]
5766    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5767    #[serde(rename = "customXmlMoveToRangeEnd")]
5768    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5769    #[serde(rename = "ins")]
5770    Ins(Box<CTRunTrackChange>),
5771    #[serde(rename = "del")]
5772    Del(Box<CTRunTrackChange>),
5773    #[serde(rename = "moveFrom")]
5774    MoveFrom(Box<CTRunTrackChange>),
5775    #[serde(rename = "moveTo")]
5776    MoveTo(Box<CTRunTrackChange>),
5777    #[serde(rename = "fldSimple")]
5778    FldSimple(Box<CTSimpleField>),
5779    #[serde(rename = "hyperlink")]
5780    Hyperlink(Box<Hyperlink>),
5781    #[serde(rename = "subDoc")]
5782    SubDoc(Box<CTRel>),
5783}
5784
5785#[derive(Debug, Clone, Serialize, Deserialize)]
5786pub enum BlockContent {
5787    #[serde(rename = "customXml")]
5788    CustomXml(Box<CTCustomXmlBlock>),
5789    #[serde(rename = "sdt")]
5790    Sdt(Box<CTSdtBlock>),
5791    #[serde(rename = "p")]
5792    P(Box<Paragraph>),
5793    #[serde(rename = "tbl")]
5794    Tbl(Box<Table>),
5795    #[serde(rename = "proofErr")]
5796    ProofErr(Box<CTProofErr>),
5797    #[serde(rename = "permStart")]
5798    PermStart(Box<CTPermStart>),
5799    #[serde(rename = "permEnd")]
5800    PermEnd(Box<CTPerm>),
5801    #[serde(rename = "bookmarkStart")]
5802    BookmarkStart(Box<Bookmark>),
5803    #[serde(rename = "bookmarkEnd")]
5804    BookmarkEnd(Box<CTMarkupRange>),
5805    #[serde(rename = "moveFromRangeStart")]
5806    MoveFromRangeStart(Box<CTMoveBookmark>),
5807    #[serde(rename = "moveFromRangeEnd")]
5808    MoveFromRangeEnd(Box<CTMarkupRange>),
5809    #[serde(rename = "moveToRangeStart")]
5810    MoveToRangeStart(Box<CTMoveBookmark>),
5811    #[serde(rename = "moveToRangeEnd")]
5812    MoveToRangeEnd(Box<CTMarkupRange>),
5813    #[serde(rename = "commentRangeStart")]
5814    CommentRangeStart(Box<CTMarkupRange>),
5815    #[serde(rename = "commentRangeEnd")]
5816    CommentRangeEnd(Box<CTMarkupRange>),
5817    #[serde(rename = "customXmlInsRangeStart")]
5818    CustomXmlInsRangeStart(Box<CTTrackChange>),
5819    #[serde(rename = "customXmlInsRangeEnd")]
5820    CustomXmlInsRangeEnd(Box<CTMarkup>),
5821    #[serde(rename = "customXmlDelRangeStart")]
5822    CustomXmlDelRangeStart(Box<CTTrackChange>),
5823    #[serde(rename = "customXmlDelRangeEnd")]
5824    CustomXmlDelRangeEnd(Box<CTMarkup>),
5825    #[serde(rename = "customXmlMoveFromRangeStart")]
5826    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5827    #[serde(rename = "customXmlMoveFromRangeEnd")]
5828    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5829    #[serde(rename = "customXmlMoveToRangeStart")]
5830    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5831    #[serde(rename = "customXmlMoveToRangeEnd")]
5832    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5833    #[serde(rename = "ins")]
5834    Ins(Box<CTRunTrackChange>),
5835    #[serde(rename = "del")]
5836    Del(Box<CTRunTrackChange>),
5837    #[serde(rename = "moveFrom")]
5838    MoveFrom(Box<CTRunTrackChange>),
5839    #[serde(rename = "moveTo")]
5840    MoveTo(Box<CTRunTrackChange>),
5841    #[serde(rename = "altChunk")]
5842    AltChunk(Box<CTAltChunk>),
5843}
5844
5845#[derive(Debug, Clone, Serialize, Deserialize)]
5846pub enum RunLevelContent {
5847    #[serde(rename = "proofErr")]
5848    ProofErr(Box<CTProofErr>),
5849    #[serde(rename = "permStart")]
5850    PermStart(Box<CTPermStart>),
5851    #[serde(rename = "permEnd")]
5852    PermEnd(Box<CTPerm>),
5853    #[serde(rename = "bookmarkStart")]
5854    BookmarkStart(Box<Bookmark>),
5855    #[serde(rename = "bookmarkEnd")]
5856    BookmarkEnd(Box<CTMarkupRange>),
5857    #[serde(rename = "moveFromRangeStart")]
5858    MoveFromRangeStart(Box<CTMoveBookmark>),
5859    #[serde(rename = "moveFromRangeEnd")]
5860    MoveFromRangeEnd(Box<CTMarkupRange>),
5861    #[serde(rename = "moveToRangeStart")]
5862    MoveToRangeStart(Box<CTMoveBookmark>),
5863    #[serde(rename = "moveToRangeEnd")]
5864    MoveToRangeEnd(Box<CTMarkupRange>),
5865    #[serde(rename = "commentRangeStart")]
5866    CommentRangeStart(Box<CTMarkupRange>),
5867    #[serde(rename = "commentRangeEnd")]
5868    CommentRangeEnd(Box<CTMarkupRange>),
5869    #[serde(rename = "customXmlInsRangeStart")]
5870    CustomXmlInsRangeStart(Box<CTTrackChange>),
5871    #[serde(rename = "customXmlInsRangeEnd")]
5872    CustomXmlInsRangeEnd(Box<CTMarkup>),
5873    #[serde(rename = "customXmlDelRangeStart")]
5874    CustomXmlDelRangeStart(Box<CTTrackChange>),
5875    #[serde(rename = "customXmlDelRangeEnd")]
5876    CustomXmlDelRangeEnd(Box<CTMarkup>),
5877    #[serde(rename = "customXmlMoveFromRangeStart")]
5878    CustomXmlMoveFromRangeStart(Box<CTTrackChange>),
5879    #[serde(rename = "customXmlMoveFromRangeEnd")]
5880    CustomXmlMoveFromRangeEnd(Box<CTMarkup>),
5881    #[serde(rename = "customXmlMoveToRangeStart")]
5882    CustomXmlMoveToRangeStart(Box<CTTrackChange>),
5883    #[serde(rename = "customXmlMoveToRangeEnd")]
5884    CustomXmlMoveToRangeEnd(Box<CTMarkup>),
5885    #[serde(rename = "ins")]
5886    Ins(Box<CTRunTrackChange>),
5887    #[serde(rename = "del")]
5888    Del(Box<CTRunTrackChange>),
5889    #[serde(rename = "moveFrom")]
5890    MoveFrom(Box<CTRunTrackChange>),
5891    #[serde(rename = "moveTo")]
5892    MoveTo(Box<CTRunTrackChange>),
5893}
5894
5895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5896pub struct CTEmpty;
5897
5898#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5899pub struct OnOffElement {
5900    #[serde(rename = "@w:val")]
5901    #[serde(default, skip_serializing_if = "Option::is_none")]
5902    pub value: Option<OnOff>,
5903    /// Unknown attributes captured for roundtrip fidelity.
5904    #[cfg(feature = "extra-attrs")]
5905    #[serde(skip)]
5906    #[cfg(feature = "extra-attrs")]
5907    #[serde(default)]
5908    #[cfg(feature = "extra-attrs")]
5909    pub extra_attrs: std::collections::HashMap<String, String>,
5910}
5911
5912#[derive(Debug, Clone, Serialize, Deserialize)]
5913pub struct LongHexNumberElement {
5914    #[serde(rename = "@w:val")]
5915    pub value: STLongHexNumber,
5916    /// Unknown attributes captured for roundtrip fidelity.
5917    #[cfg(feature = "extra-attrs")]
5918    #[serde(skip)]
5919    #[cfg(feature = "extra-attrs")]
5920    #[serde(default)]
5921    #[cfg(feature = "extra-attrs")]
5922    pub extra_attrs: std::collections::HashMap<String, String>,
5923}
5924
5925#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5926pub struct CTCharset {
5927    #[serde(rename = "@w:val")]
5928    #[serde(default, skip_serializing_if = "Option::is_none")]
5929    pub value: Option<STUcharHexNumber>,
5930    #[cfg(feature = "wml-styling")]
5931    #[serde(rename = "@w:characterSet")]
5932    #[serde(default, skip_serializing_if = "Option::is_none")]
5933    pub character_set: Option<STString>,
5934    /// Unknown attributes captured for roundtrip fidelity.
5935    #[cfg(feature = "extra-attrs")]
5936    #[serde(skip)]
5937    #[cfg(feature = "extra-attrs")]
5938    #[serde(default)]
5939    #[cfg(feature = "extra-attrs")]
5940    pub extra_attrs: std::collections::HashMap<String, String>,
5941}
5942
5943#[derive(Debug, Clone, Serialize, Deserialize)]
5944pub struct CTDecimalNumber {
5945    #[serde(rename = "@w:val")]
5946    pub value: STDecimalNumber,
5947    /// Unknown attributes captured for roundtrip fidelity.
5948    #[cfg(feature = "extra-attrs")]
5949    #[serde(skip)]
5950    #[cfg(feature = "extra-attrs")]
5951    #[serde(default)]
5952    #[cfg(feature = "extra-attrs")]
5953    pub extra_attrs: std::collections::HashMap<String, String>,
5954}
5955
5956#[derive(Debug, Clone, Serialize, Deserialize)]
5957pub struct UnsignedDecimalNumberElement {
5958    #[serde(rename = "@w:val")]
5959    pub value: STUnsignedDecimalNumber,
5960    /// Unknown attributes captured for roundtrip fidelity.
5961    #[cfg(feature = "extra-attrs")]
5962    #[serde(skip)]
5963    #[cfg(feature = "extra-attrs")]
5964    #[serde(default)]
5965    #[cfg(feature = "extra-attrs")]
5966    pub extra_attrs: std::collections::HashMap<String, String>,
5967}
5968
5969#[derive(Debug, Clone, Serialize, Deserialize)]
5970pub struct CTDecimalNumberOrPrecent {
5971    #[serde(rename = "@w:val")]
5972    pub value: STDecimalNumberOrPercent,
5973    /// Unknown attributes captured for roundtrip fidelity.
5974    #[cfg(feature = "extra-attrs")]
5975    #[serde(skip)]
5976    #[cfg(feature = "extra-attrs")]
5977    #[serde(default)]
5978    #[cfg(feature = "extra-attrs")]
5979    pub extra_attrs: std::collections::HashMap<String, String>,
5980}
5981
5982#[derive(Debug, Clone, Serialize, Deserialize)]
5983pub struct TwipsMeasureElement {
5984    #[serde(rename = "@w:val")]
5985    pub value: STTwipsMeasure,
5986    /// Unknown attributes captured for roundtrip fidelity.
5987    #[cfg(feature = "extra-attrs")]
5988    #[serde(skip)]
5989    #[cfg(feature = "extra-attrs")]
5990    #[serde(default)]
5991    #[cfg(feature = "extra-attrs")]
5992    pub extra_attrs: std::collections::HashMap<String, String>,
5993}
5994
5995#[derive(Debug, Clone, Serialize, Deserialize)]
5996pub struct SignedTwipsMeasureElement {
5997    #[serde(rename = "@w:val")]
5998    pub value: STSignedTwipsMeasure,
5999    /// Unknown attributes captured for roundtrip fidelity.
6000    #[cfg(feature = "extra-attrs")]
6001    #[serde(skip)]
6002    #[cfg(feature = "extra-attrs")]
6003    #[serde(default)]
6004    #[cfg(feature = "extra-attrs")]
6005    pub extra_attrs: std::collections::HashMap<String, String>,
6006}
6007
6008#[derive(Debug, Clone, Serialize, Deserialize)]
6009pub struct PixelsMeasureElement {
6010    #[serde(rename = "@w:val")]
6011    pub value: STPixelsMeasure,
6012    /// Unknown attributes captured for roundtrip fidelity.
6013    #[cfg(feature = "extra-attrs")]
6014    #[serde(skip)]
6015    #[cfg(feature = "extra-attrs")]
6016    #[serde(default)]
6017    #[cfg(feature = "extra-attrs")]
6018    pub extra_attrs: std::collections::HashMap<String, String>,
6019}
6020
6021#[derive(Debug, Clone, Serialize, Deserialize)]
6022pub struct HpsMeasureElement {
6023    #[serde(rename = "@w:val")]
6024    pub value: STHpsMeasure,
6025    /// Unknown attributes captured for roundtrip fidelity.
6026    #[cfg(feature = "extra-attrs")]
6027    #[serde(skip)]
6028    #[cfg(feature = "extra-attrs")]
6029    #[serde(default)]
6030    #[cfg(feature = "extra-attrs")]
6031    pub extra_attrs: std::collections::HashMap<String, String>,
6032}
6033
6034#[derive(Debug, Clone, Serialize, Deserialize)]
6035pub struct SignedHpsMeasureElement {
6036    #[serde(rename = "@w:val")]
6037    pub value: STSignedHpsMeasure,
6038    /// Unknown attributes captured for roundtrip fidelity.
6039    #[cfg(feature = "extra-attrs")]
6040    #[serde(skip)]
6041    #[cfg(feature = "extra-attrs")]
6042    #[serde(default)]
6043    #[cfg(feature = "extra-attrs")]
6044    pub extra_attrs: std::collections::HashMap<String, String>,
6045}
6046
6047#[derive(Debug, Clone, Serialize, Deserialize)]
6048pub struct MacroNameElement {
6049    #[serde(rename = "@w:val")]
6050    pub value: STMacroName,
6051    /// Unknown attributes captured for roundtrip fidelity.
6052    #[cfg(feature = "extra-attrs")]
6053    #[serde(skip)]
6054    #[cfg(feature = "extra-attrs")]
6055    #[serde(default)]
6056    #[cfg(feature = "extra-attrs")]
6057    pub extra_attrs: std::collections::HashMap<String, String>,
6058}
6059
6060#[derive(Debug, Clone, Serialize, Deserialize)]
6061pub struct CTString {
6062    #[serde(rename = "@w:val")]
6063    pub value: STString,
6064    /// Unknown attributes captured for roundtrip fidelity.
6065    #[cfg(feature = "extra-attrs")]
6066    #[serde(skip)]
6067    #[cfg(feature = "extra-attrs")]
6068    #[serde(default)]
6069    #[cfg(feature = "extra-attrs")]
6070    pub extra_attrs: std::collections::HashMap<String, String>,
6071}
6072
6073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6074pub struct TextScaleElement {
6075    #[serde(rename = "@w:val")]
6076    #[serde(default, skip_serializing_if = "Option::is_none")]
6077    pub value: Option<STTextScale>,
6078    /// Unknown attributes captured for roundtrip fidelity.
6079    #[cfg(feature = "extra-attrs")]
6080    #[serde(skip)]
6081    #[cfg(feature = "extra-attrs")]
6082    #[serde(default)]
6083    #[cfg(feature = "extra-attrs")]
6084    pub extra_attrs: std::collections::HashMap<String, String>,
6085}
6086
6087#[derive(Debug, Clone, Serialize, Deserialize)]
6088pub struct CTHighlight {
6089    #[serde(rename = "@w:val")]
6090    pub value: STHighlightColor,
6091    /// Unknown attributes captured for roundtrip fidelity.
6092    #[cfg(feature = "extra-attrs")]
6093    #[serde(skip)]
6094    #[cfg(feature = "extra-attrs")]
6095    #[serde(default)]
6096    #[cfg(feature = "extra-attrs")]
6097    pub extra_attrs: std::collections::HashMap<String, String>,
6098}
6099
6100#[derive(Debug, Clone, Serialize, Deserialize)]
6101pub struct CTColor {
6102    #[serde(rename = "@w:val")]
6103    pub value: STHexColor,
6104    #[cfg(feature = "wml-styling")]
6105    #[serde(rename = "@w:themeColor")]
6106    #[serde(default, skip_serializing_if = "Option::is_none")]
6107    pub theme_color: Option<STThemeColor>,
6108    #[cfg(feature = "wml-styling")]
6109    #[serde(rename = "@w:themeTint")]
6110    #[serde(default, skip_serializing_if = "Option::is_none")]
6111    pub theme_tint: Option<STUcharHexNumber>,
6112    #[cfg(feature = "wml-styling")]
6113    #[serde(rename = "@w:themeShade")]
6114    #[serde(default, skip_serializing_if = "Option::is_none")]
6115    pub theme_shade: Option<STUcharHexNumber>,
6116    /// Unknown attributes captured for roundtrip fidelity.
6117    #[cfg(feature = "extra-attrs")]
6118    #[serde(skip)]
6119    #[cfg(feature = "extra-attrs")]
6120    #[serde(default)]
6121    #[cfg(feature = "extra-attrs")]
6122    pub extra_attrs: std::collections::HashMap<String, String>,
6123}
6124
6125#[derive(Debug, Clone, Serialize, Deserialize)]
6126pub struct CTLang {
6127    #[serde(rename = "@w:val")]
6128    pub value: Language,
6129    /// Unknown attributes captured for roundtrip fidelity.
6130    #[cfg(feature = "extra-attrs")]
6131    #[serde(skip)]
6132    #[cfg(feature = "extra-attrs")]
6133    #[serde(default)]
6134    #[cfg(feature = "extra-attrs")]
6135    pub extra_attrs: std::collections::HashMap<String, String>,
6136}
6137
6138#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6139pub struct GuidElement {
6140    #[serde(rename = "@w:val")]
6141    #[serde(default, skip_serializing_if = "Option::is_none")]
6142    pub value: Option<Guid>,
6143    /// Unknown attributes captured for roundtrip fidelity.
6144    #[cfg(feature = "extra-attrs")]
6145    #[serde(skip)]
6146    #[cfg(feature = "extra-attrs")]
6147    #[serde(default)]
6148    #[cfg(feature = "extra-attrs")]
6149    pub extra_attrs: std::collections::HashMap<String, String>,
6150}
6151
6152#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6153pub struct CTUnderline {
6154    #[serde(rename = "@w:val")]
6155    #[serde(default, skip_serializing_if = "Option::is_none")]
6156    pub value: Option<STUnderline>,
6157    #[cfg(feature = "wml-styling")]
6158    #[serde(rename = "@w:color")]
6159    #[serde(default, skip_serializing_if = "Option::is_none")]
6160    pub color: Option<STHexColor>,
6161    #[cfg(feature = "wml-styling")]
6162    #[serde(rename = "@w:themeColor")]
6163    #[serde(default, skip_serializing_if = "Option::is_none")]
6164    pub theme_color: Option<STThemeColor>,
6165    #[cfg(feature = "wml-styling")]
6166    #[serde(rename = "@w:themeTint")]
6167    #[serde(default, skip_serializing_if = "Option::is_none")]
6168    pub theme_tint: Option<STUcharHexNumber>,
6169    #[cfg(feature = "wml-styling")]
6170    #[serde(rename = "@w:themeShade")]
6171    #[serde(default, skip_serializing_if = "Option::is_none")]
6172    pub theme_shade: Option<STUcharHexNumber>,
6173    /// Unknown attributes captured for roundtrip fidelity.
6174    #[cfg(feature = "extra-attrs")]
6175    #[serde(skip)]
6176    #[cfg(feature = "extra-attrs")]
6177    #[serde(default)]
6178    #[cfg(feature = "extra-attrs")]
6179    pub extra_attrs: std::collections::HashMap<String, String>,
6180}
6181
6182#[derive(Debug, Clone, Serialize, Deserialize)]
6183pub struct CTTextEffect {
6184    #[serde(rename = "@w:val")]
6185    pub value: STTextEffect,
6186    /// Unknown attributes captured for roundtrip fidelity.
6187    #[cfg(feature = "extra-attrs")]
6188    #[serde(skip)]
6189    #[cfg(feature = "extra-attrs")]
6190    #[serde(default)]
6191    #[cfg(feature = "extra-attrs")]
6192    pub extra_attrs: std::collections::HashMap<String, String>,
6193}
6194
6195#[derive(Debug, Clone, Serialize, Deserialize)]
6196pub struct CTBorder {
6197    #[serde(rename = "@w:val")]
6198    pub value: STBorder,
6199    #[cfg(feature = "wml-styling")]
6200    #[serde(rename = "@w:color")]
6201    #[serde(default, skip_serializing_if = "Option::is_none")]
6202    pub color: Option<STHexColor>,
6203    #[cfg(feature = "wml-styling")]
6204    #[serde(rename = "@w:themeColor")]
6205    #[serde(default, skip_serializing_if = "Option::is_none")]
6206    pub theme_color: Option<STThemeColor>,
6207    #[cfg(feature = "wml-styling")]
6208    #[serde(rename = "@w:themeTint")]
6209    #[serde(default, skip_serializing_if = "Option::is_none")]
6210    pub theme_tint: Option<STUcharHexNumber>,
6211    #[cfg(feature = "wml-styling")]
6212    #[serde(rename = "@w:themeShade")]
6213    #[serde(default, skip_serializing_if = "Option::is_none")]
6214    pub theme_shade: Option<STUcharHexNumber>,
6215    #[cfg(feature = "wml-styling")]
6216    #[serde(rename = "@w:sz")]
6217    #[serde(default, skip_serializing_if = "Option::is_none")]
6218    pub size: Option<STEighthPointMeasure>,
6219    #[cfg(feature = "wml-styling")]
6220    #[serde(rename = "@w:space")]
6221    #[serde(default, skip_serializing_if = "Option::is_none")]
6222    pub space: Option<STPointMeasure>,
6223    #[cfg(feature = "wml-styling")]
6224    #[serde(rename = "@w:shadow")]
6225    #[serde(default, skip_serializing_if = "Option::is_none")]
6226    pub shadow: Option<OnOff>,
6227    #[cfg(feature = "wml-styling")]
6228    #[serde(rename = "@w:frame")]
6229    #[serde(default, skip_serializing_if = "Option::is_none")]
6230    pub frame: Option<OnOff>,
6231    /// Unknown attributes captured for roundtrip fidelity.
6232    #[cfg(feature = "extra-attrs")]
6233    #[serde(skip)]
6234    #[cfg(feature = "extra-attrs")]
6235    #[serde(default)]
6236    #[cfg(feature = "extra-attrs")]
6237    pub extra_attrs: std::collections::HashMap<String, String>,
6238}
6239
6240#[derive(Debug, Clone, Serialize, Deserialize)]
6241pub struct CTShd {
6242    #[serde(rename = "@w:val")]
6243    pub value: STShd,
6244    #[cfg(feature = "wml-styling")]
6245    #[serde(rename = "@w:color")]
6246    #[serde(default, skip_serializing_if = "Option::is_none")]
6247    pub color: Option<STHexColor>,
6248    #[cfg(feature = "wml-styling")]
6249    #[serde(rename = "@w:themeColor")]
6250    #[serde(default, skip_serializing_if = "Option::is_none")]
6251    pub theme_color: Option<STThemeColor>,
6252    #[cfg(feature = "wml-styling")]
6253    #[serde(rename = "@w:themeTint")]
6254    #[serde(default, skip_serializing_if = "Option::is_none")]
6255    pub theme_tint: Option<STUcharHexNumber>,
6256    #[cfg(feature = "wml-styling")]
6257    #[serde(rename = "@w:themeShade")]
6258    #[serde(default, skip_serializing_if = "Option::is_none")]
6259    pub theme_shade: Option<STUcharHexNumber>,
6260    #[cfg(feature = "wml-styling")]
6261    #[serde(rename = "@w:fill")]
6262    #[serde(default, skip_serializing_if = "Option::is_none")]
6263    pub fill: Option<STHexColor>,
6264    #[cfg(feature = "wml-styling")]
6265    #[serde(rename = "@w:themeFill")]
6266    #[serde(default, skip_serializing_if = "Option::is_none")]
6267    pub theme_fill: Option<STThemeColor>,
6268    #[cfg(feature = "wml-styling")]
6269    #[serde(rename = "@w:themeFillTint")]
6270    #[serde(default, skip_serializing_if = "Option::is_none")]
6271    pub theme_fill_tint: Option<STUcharHexNumber>,
6272    #[cfg(feature = "wml-styling")]
6273    #[serde(rename = "@w:themeFillShade")]
6274    #[serde(default, skip_serializing_if = "Option::is_none")]
6275    pub theme_fill_shade: Option<STUcharHexNumber>,
6276    /// Unknown attributes captured for roundtrip fidelity.
6277    #[cfg(feature = "extra-attrs")]
6278    #[serde(skip)]
6279    #[cfg(feature = "extra-attrs")]
6280    #[serde(default)]
6281    #[cfg(feature = "extra-attrs")]
6282    pub extra_attrs: std::collections::HashMap<String, String>,
6283}
6284
6285#[derive(Debug, Clone, Serialize, Deserialize)]
6286pub struct CTVerticalAlignRun {
6287    #[serde(rename = "@w:val")]
6288    pub value: STVerticalAlignRun,
6289    /// Unknown attributes captured for roundtrip fidelity.
6290    #[cfg(feature = "extra-attrs")]
6291    #[serde(skip)]
6292    #[cfg(feature = "extra-attrs")]
6293    #[serde(default)]
6294    #[cfg(feature = "extra-attrs")]
6295    pub extra_attrs: std::collections::HashMap<String, String>,
6296}
6297
6298#[derive(Debug, Clone, Serialize, Deserialize)]
6299pub struct CTFitText {
6300    #[cfg(feature = "wml-styling")]
6301    #[serde(rename = "@w:val")]
6302    pub value: STTwipsMeasure,
6303    #[cfg(feature = "wml-styling")]
6304    #[serde(rename = "@w:id")]
6305    #[serde(default, skip_serializing_if = "Option::is_none")]
6306    pub id: Option<STDecimalNumber>,
6307    /// Unknown attributes captured for roundtrip fidelity.
6308    #[cfg(feature = "extra-attrs")]
6309    #[serde(skip)]
6310    #[cfg(feature = "extra-attrs")]
6311    #[serde(default)]
6312    #[cfg(feature = "extra-attrs")]
6313    pub extra_attrs: std::collections::HashMap<String, String>,
6314}
6315
6316#[derive(Debug, Clone, Serialize, Deserialize)]
6317pub struct CTEm {
6318    #[serde(rename = "@w:val")]
6319    pub value: STEm,
6320    /// Unknown attributes captured for roundtrip fidelity.
6321    #[cfg(feature = "extra-attrs")]
6322    #[serde(skip)]
6323    #[cfg(feature = "extra-attrs")]
6324    #[serde(default)]
6325    #[cfg(feature = "extra-attrs")]
6326    pub extra_attrs: std::collections::HashMap<String, String>,
6327}
6328
6329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6330pub struct LanguageElement {
6331    #[serde(rename = "@w:val")]
6332    #[serde(default, skip_serializing_if = "Option::is_none")]
6333    pub value: Option<Language>,
6334    #[serde(rename = "@w:eastAsia")]
6335    #[serde(default, skip_serializing_if = "Option::is_none")]
6336    pub east_asia: Option<Language>,
6337    #[serde(rename = "@w:bidi")]
6338    #[serde(default, skip_serializing_if = "Option::is_none")]
6339    pub bidi: Option<Language>,
6340    /// Unknown attributes captured for roundtrip fidelity.
6341    #[cfg(feature = "extra-attrs")]
6342    #[serde(skip)]
6343    #[cfg(feature = "extra-attrs")]
6344    #[serde(default)]
6345    #[cfg(feature = "extra-attrs")]
6346    pub extra_attrs: std::collections::HashMap<String, String>,
6347}
6348
6349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6350pub struct CTEastAsianLayout {
6351    #[cfg(feature = "wml-styling")]
6352    #[serde(rename = "@w:id")]
6353    #[serde(default, skip_serializing_if = "Option::is_none")]
6354    pub id: Option<STDecimalNumber>,
6355    #[cfg(feature = "wml-styling")]
6356    #[serde(rename = "@w:combine")]
6357    #[serde(default, skip_serializing_if = "Option::is_none")]
6358    pub combine: Option<OnOff>,
6359    #[cfg(feature = "wml-styling")]
6360    #[serde(rename = "@w:combineBrackets")]
6361    #[serde(default, skip_serializing_if = "Option::is_none")]
6362    pub combine_brackets: Option<STCombineBrackets>,
6363    #[cfg(feature = "wml-styling")]
6364    #[serde(rename = "@w:vert")]
6365    #[serde(default, skip_serializing_if = "Option::is_none")]
6366    pub vert: Option<OnOff>,
6367    #[cfg(feature = "wml-styling")]
6368    #[serde(rename = "@w:vertCompress")]
6369    #[serde(default, skip_serializing_if = "Option::is_none")]
6370    pub vert_compress: Option<OnOff>,
6371    /// Unknown attributes captured for roundtrip fidelity.
6372    #[cfg(feature = "extra-attrs")]
6373    #[serde(skip)]
6374    #[cfg(feature = "extra-attrs")]
6375    #[serde(default)]
6376    #[cfg(feature = "extra-attrs")]
6377    pub extra_attrs: std::collections::HashMap<String, String>,
6378}
6379
6380#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6381pub struct CTFramePr {
6382    #[cfg(feature = "wml-layout")]
6383    #[serde(rename = "@w:dropCap")]
6384    #[serde(default, skip_serializing_if = "Option::is_none")]
6385    pub drop_cap: Option<STDropCap>,
6386    #[cfg(feature = "wml-layout")]
6387    #[serde(rename = "@w:lines")]
6388    #[serde(default, skip_serializing_if = "Option::is_none")]
6389    pub lines: Option<STDecimalNumber>,
6390    #[cfg(feature = "wml-layout")]
6391    #[serde(rename = "@w:w")]
6392    #[serde(default, skip_serializing_if = "Option::is_none")]
6393    pub width: Option<STTwipsMeasure>,
6394    #[cfg(feature = "wml-layout")]
6395    #[serde(rename = "@w:h")]
6396    #[serde(default, skip_serializing_if = "Option::is_none")]
6397    pub height: Option<STTwipsMeasure>,
6398    #[cfg(feature = "wml-layout")]
6399    #[serde(rename = "@w:vSpace")]
6400    #[serde(default, skip_serializing_if = "Option::is_none")]
6401    pub v_space: Option<STTwipsMeasure>,
6402    #[cfg(feature = "wml-layout")]
6403    #[serde(rename = "@w:hSpace")]
6404    #[serde(default, skip_serializing_if = "Option::is_none")]
6405    pub h_space: Option<STTwipsMeasure>,
6406    #[cfg(feature = "wml-layout")]
6407    #[serde(rename = "@w:wrap")]
6408    #[serde(default, skip_serializing_if = "Option::is_none")]
6409    pub wrap: Option<STWrap>,
6410    #[cfg(feature = "wml-layout")]
6411    #[serde(rename = "@w:hAnchor")]
6412    #[serde(default, skip_serializing_if = "Option::is_none")]
6413    pub h_anchor: Option<STHAnchor>,
6414    #[cfg(feature = "wml-layout")]
6415    #[serde(rename = "@w:vAnchor")]
6416    #[serde(default, skip_serializing_if = "Option::is_none")]
6417    pub v_anchor: Option<STVAnchor>,
6418    #[cfg(feature = "wml-layout")]
6419    #[serde(rename = "@w:x")]
6420    #[serde(default, skip_serializing_if = "Option::is_none")]
6421    pub x: Option<STSignedTwipsMeasure>,
6422    #[cfg(feature = "wml-layout")]
6423    #[serde(rename = "@w:xAlign")]
6424    #[serde(default, skip_serializing_if = "Option::is_none")]
6425    pub x_align: Option<STXAlign>,
6426    #[cfg(feature = "wml-layout")]
6427    #[serde(rename = "@w:y")]
6428    #[serde(default, skip_serializing_if = "Option::is_none")]
6429    pub y: Option<STSignedTwipsMeasure>,
6430    #[cfg(feature = "wml-layout")]
6431    #[serde(rename = "@w:yAlign")]
6432    #[serde(default, skip_serializing_if = "Option::is_none")]
6433    pub y_align: Option<STYAlign>,
6434    #[cfg(feature = "wml-layout")]
6435    #[serde(rename = "@w:hRule")]
6436    #[serde(default, skip_serializing_if = "Option::is_none")]
6437    pub h_rule: Option<STHeightRule>,
6438    #[cfg(feature = "wml-layout")]
6439    #[serde(rename = "@w:anchorLock")]
6440    #[serde(default, skip_serializing_if = "Option::is_none")]
6441    pub anchor_lock: Option<OnOff>,
6442    /// Unknown attributes captured for roundtrip fidelity.
6443    #[cfg(feature = "extra-attrs")]
6444    #[serde(skip)]
6445    #[cfg(feature = "extra-attrs")]
6446    #[serde(default)]
6447    #[cfg(feature = "extra-attrs")]
6448    pub extra_attrs: std::collections::HashMap<String, String>,
6449}
6450
6451#[derive(Debug, Clone, Serialize, Deserialize)]
6452pub struct CTTabStop {
6453    #[serde(rename = "@w:val")]
6454    pub value: STTabJc,
6455    #[cfg(feature = "wml-styling")]
6456    #[serde(rename = "@w:leader")]
6457    #[serde(default, skip_serializing_if = "Option::is_none")]
6458    pub leader: Option<STTabTlc>,
6459    #[serde(rename = "@w:pos")]
6460    pub pos: STSignedTwipsMeasure,
6461    /// Unknown attributes captured for roundtrip fidelity.
6462    #[cfg(feature = "extra-attrs")]
6463    #[serde(skip)]
6464    #[cfg(feature = "extra-attrs")]
6465    #[serde(default)]
6466    #[cfg(feature = "extra-attrs")]
6467    pub extra_attrs: std::collections::HashMap<String, String>,
6468}
6469
6470#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6471pub struct CTSpacing {
6472    #[cfg(feature = "wml-styling")]
6473    #[serde(rename = "@w:before")]
6474    #[serde(default, skip_serializing_if = "Option::is_none")]
6475    pub before: Option<STTwipsMeasure>,
6476    #[cfg(feature = "wml-styling")]
6477    #[serde(rename = "@w:beforeLines")]
6478    #[serde(default, skip_serializing_if = "Option::is_none")]
6479    pub before_lines: Option<STDecimalNumber>,
6480    #[cfg(feature = "wml-styling")]
6481    #[serde(rename = "@w:beforeAutospacing")]
6482    #[serde(default, skip_serializing_if = "Option::is_none")]
6483    pub before_autospacing: Option<OnOff>,
6484    #[cfg(feature = "wml-styling")]
6485    #[serde(rename = "@w:after")]
6486    #[serde(default, skip_serializing_if = "Option::is_none")]
6487    pub after: Option<STTwipsMeasure>,
6488    #[cfg(feature = "wml-styling")]
6489    #[serde(rename = "@w:afterLines")]
6490    #[serde(default, skip_serializing_if = "Option::is_none")]
6491    pub after_lines: Option<STDecimalNumber>,
6492    #[cfg(feature = "wml-styling")]
6493    #[serde(rename = "@w:afterAutospacing")]
6494    #[serde(default, skip_serializing_if = "Option::is_none")]
6495    pub after_autospacing: Option<OnOff>,
6496    #[cfg(feature = "wml-styling")]
6497    #[serde(rename = "@w:line")]
6498    #[serde(default, skip_serializing_if = "Option::is_none")]
6499    pub line: Option<STSignedTwipsMeasure>,
6500    #[cfg(feature = "wml-styling")]
6501    #[serde(rename = "@w:lineRule")]
6502    #[serde(default, skip_serializing_if = "Option::is_none")]
6503    pub line_rule: Option<STLineSpacingRule>,
6504    /// Unknown attributes captured for roundtrip fidelity.
6505    #[cfg(feature = "extra-attrs")]
6506    #[serde(skip)]
6507    #[cfg(feature = "extra-attrs")]
6508    #[serde(default)]
6509    #[cfg(feature = "extra-attrs")]
6510    pub extra_attrs: std::collections::HashMap<String, String>,
6511}
6512
6513#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6514pub struct CTInd {
6515    #[cfg(feature = "wml-styling")]
6516    #[serde(rename = "@w:start")]
6517    #[serde(default, skip_serializing_if = "Option::is_none")]
6518    pub start: Option<STSignedTwipsMeasure>,
6519    #[cfg(feature = "wml-styling")]
6520    #[serde(rename = "@w:startChars")]
6521    #[serde(default, skip_serializing_if = "Option::is_none")]
6522    pub start_chars: Option<STDecimalNumber>,
6523    #[cfg(feature = "wml-styling")]
6524    #[serde(rename = "@w:end")]
6525    #[serde(default, skip_serializing_if = "Option::is_none")]
6526    pub end: Option<STSignedTwipsMeasure>,
6527    #[cfg(feature = "wml-styling")]
6528    #[serde(rename = "@w:endChars")]
6529    #[serde(default, skip_serializing_if = "Option::is_none")]
6530    pub end_chars: Option<STDecimalNumber>,
6531    #[cfg(feature = "wml-styling")]
6532    #[serde(rename = "@w:left")]
6533    #[serde(default, skip_serializing_if = "Option::is_none")]
6534    pub left: Option<STSignedTwipsMeasure>,
6535    #[cfg(feature = "wml-styling")]
6536    #[serde(rename = "@w:leftChars")]
6537    #[serde(default, skip_serializing_if = "Option::is_none")]
6538    pub left_chars: Option<STDecimalNumber>,
6539    #[cfg(feature = "wml-styling")]
6540    #[serde(rename = "@w:right")]
6541    #[serde(default, skip_serializing_if = "Option::is_none")]
6542    pub right: Option<STSignedTwipsMeasure>,
6543    #[cfg(feature = "wml-styling")]
6544    #[serde(rename = "@w:rightChars")]
6545    #[serde(default, skip_serializing_if = "Option::is_none")]
6546    pub right_chars: Option<STDecimalNumber>,
6547    #[cfg(feature = "wml-styling")]
6548    #[serde(rename = "@w:hanging")]
6549    #[serde(default, skip_serializing_if = "Option::is_none")]
6550    pub hanging: Option<STTwipsMeasure>,
6551    #[cfg(feature = "wml-styling")]
6552    #[serde(rename = "@w:hangingChars")]
6553    #[serde(default, skip_serializing_if = "Option::is_none")]
6554    pub hanging_chars: Option<STDecimalNumber>,
6555    #[cfg(feature = "wml-styling")]
6556    #[serde(rename = "@w:firstLine")]
6557    #[serde(default, skip_serializing_if = "Option::is_none")]
6558    pub first_line: Option<STTwipsMeasure>,
6559    #[cfg(feature = "wml-styling")]
6560    #[serde(rename = "@w:firstLineChars")]
6561    #[serde(default, skip_serializing_if = "Option::is_none")]
6562    pub first_line_chars: Option<STDecimalNumber>,
6563    /// Unknown attributes captured for roundtrip fidelity.
6564    #[cfg(feature = "extra-attrs")]
6565    #[serde(skip)]
6566    #[cfg(feature = "extra-attrs")]
6567    #[serde(default)]
6568    #[cfg(feature = "extra-attrs")]
6569    pub extra_attrs: std::collections::HashMap<String, String>,
6570}
6571
6572#[derive(Debug, Clone, Serialize, Deserialize)]
6573pub struct CTJc {
6574    #[serde(rename = "@w:val")]
6575    pub value: STJc,
6576    /// Unknown attributes captured for roundtrip fidelity.
6577    #[cfg(feature = "extra-attrs")]
6578    #[serde(skip)]
6579    #[cfg(feature = "extra-attrs")]
6580    #[serde(default)]
6581    #[cfg(feature = "extra-attrs")]
6582    pub extra_attrs: std::collections::HashMap<String, String>,
6583}
6584
6585#[derive(Debug, Clone, Serialize, Deserialize)]
6586pub struct CTJcTable {
6587    #[serde(rename = "@w:val")]
6588    pub value: STJcTable,
6589    /// Unknown attributes captured for roundtrip fidelity.
6590    #[cfg(feature = "extra-attrs")]
6591    #[serde(skip)]
6592    #[cfg(feature = "extra-attrs")]
6593    #[serde(default)]
6594    #[cfg(feature = "extra-attrs")]
6595    pub extra_attrs: std::collections::HashMap<String, String>,
6596}
6597
6598#[derive(Debug, Clone, Serialize, Deserialize)]
6599pub struct CTView {
6600    #[serde(rename = "@w:val")]
6601    pub value: STView,
6602    /// Unknown attributes captured for roundtrip fidelity.
6603    #[cfg(feature = "extra-attrs")]
6604    #[serde(skip)]
6605    #[cfg(feature = "extra-attrs")]
6606    #[serde(default)]
6607    #[cfg(feature = "extra-attrs")]
6608    pub extra_attrs: std::collections::HashMap<String, String>,
6609}
6610
6611#[derive(Debug, Clone, Serialize, Deserialize)]
6612pub struct CTZoom {
6613    #[cfg(feature = "wml-settings")]
6614    #[serde(rename = "@w:val")]
6615    #[serde(default, skip_serializing_if = "Option::is_none")]
6616    pub value: Option<STZoom>,
6617    #[serde(rename = "@w:percent")]
6618    pub percent: STDecimalNumberOrPercent,
6619    /// Unknown attributes captured for roundtrip fidelity.
6620    #[cfg(feature = "extra-attrs")]
6621    #[serde(skip)]
6622    #[cfg(feature = "extra-attrs")]
6623    #[serde(default)]
6624    #[cfg(feature = "extra-attrs")]
6625    pub extra_attrs: std::collections::HashMap<String, String>,
6626}
6627
6628#[derive(Debug, Clone, Serialize, Deserialize)]
6629pub struct CTWritingStyle {
6630    #[cfg(feature = "wml-settings")]
6631    #[serde(rename = "@w:lang")]
6632    pub lang: Language,
6633    #[cfg(feature = "wml-settings")]
6634    #[serde(rename = "@w:vendorID")]
6635    pub vendor_i_d: STString,
6636    #[cfg(feature = "wml-settings")]
6637    #[serde(rename = "@w:dllVersion")]
6638    pub dll_version: STString,
6639    #[cfg(feature = "wml-settings")]
6640    #[serde(rename = "@w:nlCheck")]
6641    #[serde(default, skip_serializing_if = "Option::is_none")]
6642    pub nl_check: Option<OnOff>,
6643    #[cfg(feature = "wml-settings")]
6644    #[serde(rename = "@w:checkStyle")]
6645    pub check_style: OnOff,
6646    #[cfg(feature = "wml-settings")]
6647    #[serde(rename = "@w:appName")]
6648    pub app_name: STString,
6649    /// Unknown attributes captured for roundtrip fidelity.
6650    #[cfg(feature = "extra-attrs")]
6651    #[serde(skip)]
6652    #[cfg(feature = "extra-attrs")]
6653    #[serde(default)]
6654    #[cfg(feature = "extra-attrs")]
6655    pub extra_attrs: std::collections::HashMap<String, String>,
6656}
6657
6658#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6659pub struct CTProof {
6660    #[cfg(feature = "wml-settings")]
6661    #[serde(rename = "@w:spelling")]
6662    #[serde(default, skip_serializing_if = "Option::is_none")]
6663    pub spelling: Option<STProof>,
6664    #[cfg(feature = "wml-settings")]
6665    #[serde(rename = "@w:grammar")]
6666    #[serde(default, skip_serializing_if = "Option::is_none")]
6667    pub grammar: Option<STProof>,
6668    /// Unknown attributes captured for roundtrip fidelity.
6669    #[cfg(feature = "extra-attrs")]
6670    #[serde(skip)]
6671    #[cfg(feature = "extra-attrs")]
6672    #[serde(default)]
6673    #[cfg(feature = "extra-attrs")]
6674    pub extra_attrs: std::collections::HashMap<String, String>,
6675}
6676
6677#[derive(Debug, Clone, Serialize, Deserialize)]
6678pub struct DocTypeElement {
6679    #[serde(rename = "@w:val")]
6680    pub value: STDocType,
6681    /// Unknown attributes captured for roundtrip fidelity.
6682    #[cfg(feature = "extra-attrs")]
6683    #[serde(skip)]
6684    #[cfg(feature = "extra-attrs")]
6685    #[serde(default)]
6686    #[cfg(feature = "extra-attrs")]
6687    pub extra_attrs: std::collections::HashMap<String, String>,
6688}
6689
6690#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6691pub struct WAGPassword {
6692    #[serde(rename = "@w:algorithmName")]
6693    #[serde(default, skip_serializing_if = "Option::is_none")]
6694    pub algorithm_name: Option<STString>,
6695    #[serde(rename = "@w:hashValue")]
6696    #[serde(default, skip_serializing_if = "Option::is_none")]
6697    pub hash_value: Option<Vec<u8>>,
6698    #[serde(rename = "@w:saltValue")]
6699    #[serde(default, skip_serializing_if = "Option::is_none")]
6700    pub salt_value: Option<Vec<u8>>,
6701    #[serde(rename = "@w:spinCount")]
6702    #[serde(default, skip_serializing_if = "Option::is_none")]
6703    pub spin_count: Option<STDecimalNumber>,
6704    /// Unknown attributes captured for roundtrip fidelity.
6705    #[cfg(feature = "extra-attrs")]
6706    #[serde(skip)]
6707    #[cfg(feature = "extra-attrs")]
6708    #[serde(default)]
6709    #[cfg(feature = "extra-attrs")]
6710    pub extra_attrs: std::collections::HashMap<String, String>,
6711}
6712
6713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6714pub struct WAGTransitionalPassword {
6715    #[serde(rename = "@w:cryptProviderType")]
6716    #[serde(default, skip_serializing_if = "Option::is_none")]
6717    pub crypt_provider_type: Option<STCryptProv>,
6718    #[serde(rename = "@w:cryptAlgorithmClass")]
6719    #[serde(default, skip_serializing_if = "Option::is_none")]
6720    pub crypt_algorithm_class: Option<STAlgClass>,
6721    #[serde(rename = "@w:cryptAlgorithmType")]
6722    #[serde(default, skip_serializing_if = "Option::is_none")]
6723    pub crypt_algorithm_type: Option<STAlgType>,
6724    #[serde(rename = "@w:cryptAlgorithmSid")]
6725    #[serde(default, skip_serializing_if = "Option::is_none")]
6726    pub crypt_algorithm_sid: Option<STDecimalNumber>,
6727    #[serde(rename = "@w:cryptSpinCount")]
6728    #[serde(default, skip_serializing_if = "Option::is_none")]
6729    pub crypt_spin_count: Option<STDecimalNumber>,
6730    #[serde(rename = "@w:cryptProvider")]
6731    #[serde(default, skip_serializing_if = "Option::is_none")]
6732    pub crypt_provider: Option<STString>,
6733    #[serde(rename = "@w:algIdExt")]
6734    #[serde(default, skip_serializing_if = "Option::is_none")]
6735    pub alg_id_ext: Option<STLongHexNumber>,
6736    #[serde(rename = "@w:algIdExtSource")]
6737    #[serde(default, skip_serializing_if = "Option::is_none")]
6738    pub alg_id_ext_source: Option<STString>,
6739    #[serde(rename = "@w:cryptProviderTypeExt")]
6740    #[serde(default, skip_serializing_if = "Option::is_none")]
6741    pub crypt_provider_type_ext: Option<STLongHexNumber>,
6742    #[serde(rename = "@w:cryptProviderTypeExtSource")]
6743    #[serde(default, skip_serializing_if = "Option::is_none")]
6744    pub crypt_provider_type_ext_source: Option<STString>,
6745    #[serde(rename = "@w:hash")]
6746    #[serde(default, skip_serializing_if = "Option::is_none")]
6747    pub hash: Option<Vec<u8>>,
6748    #[serde(rename = "@w:salt")]
6749    #[serde(default, skip_serializing_if = "Option::is_none")]
6750    pub salt: Option<Vec<u8>>,
6751    /// Unknown attributes captured for roundtrip fidelity.
6752    #[cfg(feature = "extra-attrs")]
6753    #[serde(skip)]
6754    #[cfg(feature = "extra-attrs")]
6755    #[serde(default)]
6756    #[cfg(feature = "extra-attrs")]
6757    pub extra_attrs: std::collections::HashMap<String, String>,
6758}
6759
6760#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6761pub struct CTDocProtect {
6762    #[cfg(feature = "wml-settings")]
6763    #[serde(rename = "@w:edit")]
6764    #[serde(default, skip_serializing_if = "Option::is_none")]
6765    pub edit: Option<STDocProtect>,
6766    #[cfg(feature = "wml-settings")]
6767    #[serde(rename = "@w:formatting")]
6768    #[serde(default, skip_serializing_if = "Option::is_none")]
6769    pub formatting: Option<OnOff>,
6770    #[cfg(feature = "wml-settings")]
6771    #[serde(rename = "@w:enforcement")]
6772    #[serde(default, skip_serializing_if = "Option::is_none")]
6773    pub enforcement: Option<OnOff>,
6774    #[cfg(feature = "wml-settings")]
6775    #[serde(rename = "@w:algorithmName")]
6776    #[serde(default, skip_serializing_if = "Option::is_none")]
6777    pub algorithm_name: Option<STString>,
6778    #[cfg(feature = "wml-settings")]
6779    #[serde(rename = "@w:hashValue")]
6780    #[serde(default, skip_serializing_if = "Option::is_none")]
6781    pub hash_value: Option<Vec<u8>>,
6782    #[cfg(feature = "wml-settings")]
6783    #[serde(rename = "@w:saltValue")]
6784    #[serde(default, skip_serializing_if = "Option::is_none")]
6785    pub salt_value: Option<Vec<u8>>,
6786    #[cfg(feature = "wml-settings")]
6787    #[serde(rename = "@w:spinCount")]
6788    #[serde(default, skip_serializing_if = "Option::is_none")]
6789    pub spin_count: Option<STDecimalNumber>,
6790    #[cfg(feature = "wml-settings")]
6791    #[serde(rename = "@w:cryptProviderType")]
6792    #[serde(default, skip_serializing_if = "Option::is_none")]
6793    pub crypt_provider_type: Option<STCryptProv>,
6794    #[cfg(feature = "wml-settings")]
6795    #[serde(rename = "@w:cryptAlgorithmClass")]
6796    #[serde(default, skip_serializing_if = "Option::is_none")]
6797    pub crypt_algorithm_class: Option<STAlgClass>,
6798    #[cfg(feature = "wml-settings")]
6799    #[serde(rename = "@w:cryptAlgorithmType")]
6800    #[serde(default, skip_serializing_if = "Option::is_none")]
6801    pub crypt_algorithm_type: Option<STAlgType>,
6802    #[cfg(feature = "wml-settings")]
6803    #[serde(rename = "@w:cryptAlgorithmSid")]
6804    #[serde(default, skip_serializing_if = "Option::is_none")]
6805    pub crypt_algorithm_sid: Option<STDecimalNumber>,
6806    #[cfg(feature = "wml-settings")]
6807    #[serde(rename = "@w:cryptSpinCount")]
6808    #[serde(default, skip_serializing_if = "Option::is_none")]
6809    pub crypt_spin_count: Option<STDecimalNumber>,
6810    #[cfg(feature = "wml-settings")]
6811    #[serde(rename = "@w:cryptProvider")]
6812    #[serde(default, skip_serializing_if = "Option::is_none")]
6813    pub crypt_provider: Option<STString>,
6814    #[cfg(feature = "wml-settings")]
6815    #[serde(rename = "@w:algIdExt")]
6816    #[serde(default, skip_serializing_if = "Option::is_none")]
6817    pub alg_id_ext: Option<STLongHexNumber>,
6818    #[cfg(feature = "wml-settings")]
6819    #[serde(rename = "@w:algIdExtSource")]
6820    #[serde(default, skip_serializing_if = "Option::is_none")]
6821    pub alg_id_ext_source: Option<STString>,
6822    #[cfg(feature = "wml-settings")]
6823    #[serde(rename = "@w:cryptProviderTypeExt")]
6824    #[serde(default, skip_serializing_if = "Option::is_none")]
6825    pub crypt_provider_type_ext: Option<STLongHexNumber>,
6826    #[cfg(feature = "wml-settings")]
6827    #[serde(rename = "@w:cryptProviderTypeExtSource")]
6828    #[serde(default, skip_serializing_if = "Option::is_none")]
6829    pub crypt_provider_type_ext_source: Option<STString>,
6830    #[cfg(feature = "wml-settings")]
6831    #[serde(rename = "@w:hash")]
6832    #[serde(default, skip_serializing_if = "Option::is_none")]
6833    pub hash: Option<Vec<u8>>,
6834    #[cfg(feature = "wml-settings")]
6835    #[serde(rename = "@w:salt")]
6836    #[serde(default, skip_serializing_if = "Option::is_none")]
6837    pub salt: Option<Vec<u8>>,
6838    /// Unknown attributes captured for roundtrip fidelity.
6839    #[cfg(feature = "extra-attrs")]
6840    #[serde(skip)]
6841    #[cfg(feature = "extra-attrs")]
6842    #[serde(default)]
6843    #[cfg(feature = "extra-attrs")]
6844    pub extra_attrs: std::collections::HashMap<String, String>,
6845}
6846
6847#[derive(Debug, Clone, Serialize, Deserialize)]
6848pub struct CTMailMergeDocType {
6849    #[serde(rename = "@w:val")]
6850    pub value: STMailMergeDocType,
6851    /// Unknown attributes captured for roundtrip fidelity.
6852    #[cfg(feature = "extra-attrs")]
6853    #[serde(skip)]
6854    #[cfg(feature = "extra-attrs")]
6855    #[serde(default)]
6856    #[cfg(feature = "extra-attrs")]
6857    pub extra_attrs: std::collections::HashMap<String, String>,
6858}
6859
6860#[derive(Debug, Clone, Serialize, Deserialize)]
6861pub struct MailMergeDataTypeElement {
6862    #[serde(rename = "@w:val")]
6863    pub value: STMailMergeDataType,
6864    /// Unknown attributes captured for roundtrip fidelity.
6865    #[cfg(feature = "extra-attrs")]
6866    #[serde(skip)]
6867    #[cfg(feature = "extra-attrs")]
6868    #[serde(default)]
6869    #[cfg(feature = "extra-attrs")]
6870    pub extra_attrs: std::collections::HashMap<String, String>,
6871}
6872
6873#[derive(Debug, Clone, Serialize, Deserialize)]
6874pub struct CTMailMergeDest {
6875    #[serde(rename = "@w:val")]
6876    pub value: STMailMergeDest,
6877    /// Unknown attributes captured for roundtrip fidelity.
6878    #[cfg(feature = "extra-attrs")]
6879    #[serde(skip)]
6880    #[cfg(feature = "extra-attrs")]
6881    #[serde(default)]
6882    #[cfg(feature = "extra-attrs")]
6883    pub extra_attrs: std::collections::HashMap<String, String>,
6884}
6885
6886#[derive(Debug, Clone, Serialize, Deserialize)]
6887pub struct CTMailMergeOdsoFMDFieldType {
6888    #[serde(rename = "@w:val")]
6889    pub value: STMailMergeOdsoFMDFieldType,
6890    /// Unknown attributes captured for roundtrip fidelity.
6891    #[cfg(feature = "extra-attrs")]
6892    #[serde(skip)]
6893    #[cfg(feature = "extra-attrs")]
6894    #[serde(default)]
6895    #[cfg(feature = "extra-attrs")]
6896    pub extra_attrs: std::collections::HashMap<String, String>,
6897}
6898
6899#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6900pub struct CTTrackChangesView {
6901    #[cfg(feature = "wml-settings")]
6902    #[serde(rename = "@w:markup")]
6903    #[serde(default, skip_serializing_if = "Option::is_none")]
6904    pub markup: Option<OnOff>,
6905    #[cfg(feature = "wml-settings")]
6906    #[serde(rename = "@w:comments")]
6907    #[serde(default, skip_serializing_if = "Option::is_none")]
6908    pub comments: Option<OnOff>,
6909    #[cfg(feature = "wml-settings")]
6910    #[serde(rename = "@w:insDel")]
6911    #[serde(default, skip_serializing_if = "Option::is_none")]
6912    pub ins_del: Option<OnOff>,
6913    #[cfg(feature = "wml-settings")]
6914    #[serde(rename = "@w:formatting")]
6915    #[serde(default, skip_serializing_if = "Option::is_none")]
6916    pub formatting: Option<OnOff>,
6917    #[cfg(feature = "wml-settings")]
6918    #[serde(rename = "@w:inkAnnotations")]
6919    #[serde(default, skip_serializing_if = "Option::is_none")]
6920    pub ink_annotations: Option<OnOff>,
6921    /// Unknown attributes captured for roundtrip fidelity.
6922    #[cfg(feature = "extra-attrs")]
6923    #[serde(skip)]
6924    #[cfg(feature = "extra-attrs")]
6925    #[serde(default)]
6926    #[cfg(feature = "extra-attrs")]
6927    pub extra_attrs: std::collections::HashMap<String, String>,
6928}
6929
6930#[derive(Debug, Clone, Serialize, Deserialize)]
6931pub struct CTKinsoku {
6932    #[cfg(feature = "wml-styling")]
6933    #[serde(rename = "@w:lang")]
6934    pub lang: Language,
6935    #[cfg(feature = "wml-styling")]
6936    #[serde(rename = "@w:val")]
6937    pub value: STString,
6938    /// Unknown attributes captured for roundtrip fidelity.
6939    #[cfg(feature = "extra-attrs")]
6940    #[serde(skip)]
6941    #[cfg(feature = "extra-attrs")]
6942    #[serde(default)]
6943    #[cfg(feature = "extra-attrs")]
6944    pub extra_attrs: std::collections::HashMap<String, String>,
6945}
6946
6947#[derive(Debug, Clone, Serialize, Deserialize)]
6948pub struct CTTextDirection {
6949    #[serde(rename = "@w:val")]
6950    pub value: STTextDirection,
6951    /// Unknown attributes captured for roundtrip fidelity.
6952    #[cfg(feature = "extra-attrs")]
6953    #[serde(skip)]
6954    #[cfg(feature = "extra-attrs")]
6955    #[serde(default)]
6956    #[cfg(feature = "extra-attrs")]
6957    pub extra_attrs: std::collections::HashMap<String, String>,
6958}
6959
6960#[derive(Debug, Clone, Serialize, Deserialize)]
6961pub struct CTTextAlignment {
6962    #[serde(rename = "@w:val")]
6963    pub value: STTextAlignment,
6964    /// Unknown attributes captured for roundtrip fidelity.
6965    #[cfg(feature = "extra-attrs")]
6966    #[serde(skip)]
6967    #[cfg(feature = "extra-attrs")]
6968    #[serde(default)]
6969    #[cfg(feature = "extra-attrs")]
6970    pub extra_attrs: std::collections::HashMap<String, String>,
6971}
6972
6973#[derive(Debug, Clone, Serialize, Deserialize)]
6974pub struct CTMarkup {
6975    #[serde(rename = "@w:id")]
6976    pub id: STDecimalNumber,
6977    /// Unknown attributes captured for roundtrip fidelity.
6978    #[cfg(feature = "extra-attrs")]
6979    #[serde(skip)]
6980    #[cfg(feature = "extra-attrs")]
6981    #[serde(default)]
6982    #[cfg(feature = "extra-attrs")]
6983    pub extra_attrs: std::collections::HashMap<String, String>,
6984}
6985
6986#[derive(Debug, Clone, Serialize, Deserialize)]
6987pub struct CTTrackChange {
6988    #[serde(rename = "@w:id")]
6989    pub id: STDecimalNumber,
6990    #[serde(rename = "@w:author")]
6991    pub author: STString,
6992    #[cfg(feature = "wml-track-changes")]
6993    #[serde(rename = "@w:date")]
6994    #[serde(default, skip_serializing_if = "Option::is_none")]
6995    pub date: Option<STDateTime>,
6996    /// Unknown attributes captured for roundtrip fidelity.
6997    #[cfg(feature = "extra-attrs")]
6998    #[serde(skip)]
6999    #[cfg(feature = "extra-attrs")]
7000    #[serde(default)]
7001    #[cfg(feature = "extra-attrs")]
7002    pub extra_attrs: std::collections::HashMap<String, String>,
7003}
7004
7005#[derive(Debug, Clone, Serialize, Deserialize)]
7006pub struct CTCellMergeTrackChange {
7007    #[serde(rename = "@w:id")]
7008    pub id: STDecimalNumber,
7009    #[serde(rename = "@w:author")]
7010    pub author: STString,
7011    #[serde(rename = "@w:date")]
7012    #[serde(default, skip_serializing_if = "Option::is_none")]
7013    pub date: Option<STDateTime>,
7014    #[cfg(feature = "wml-track-changes")]
7015    #[serde(rename = "@w:vMerge")]
7016    #[serde(default, skip_serializing_if = "Option::is_none")]
7017    pub vertical_merge: Option<STAnnotationVMerge>,
7018    #[cfg(feature = "wml-track-changes")]
7019    #[serde(rename = "@w:vMergeOrig")]
7020    #[serde(default, skip_serializing_if = "Option::is_none")]
7021    pub v_merge_orig: Option<STAnnotationVMerge>,
7022    /// Unknown attributes captured for roundtrip fidelity.
7023    #[cfg(feature = "extra-attrs")]
7024    #[serde(skip)]
7025    #[cfg(feature = "extra-attrs")]
7026    #[serde(default)]
7027    #[cfg(feature = "extra-attrs")]
7028    pub extra_attrs: std::collections::HashMap<String, String>,
7029}
7030
7031#[derive(Debug, Clone, Serialize, Deserialize)]
7032pub struct CTTrackChangeRange {
7033    #[serde(rename = "@w:id")]
7034    pub id: STDecimalNumber,
7035    #[serde(rename = "@w:author")]
7036    pub author: STString,
7037    #[serde(rename = "@w:date")]
7038    #[serde(default, skip_serializing_if = "Option::is_none")]
7039    pub date: Option<STDateTime>,
7040    #[cfg(feature = "wml-settings")]
7041    #[serde(rename = "@w:displacedByCustomXml")]
7042    #[serde(default, skip_serializing_if = "Option::is_none")]
7043    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
7044    /// Unknown attributes captured for roundtrip fidelity.
7045    #[cfg(feature = "extra-attrs")]
7046    #[serde(skip)]
7047    #[cfg(feature = "extra-attrs")]
7048    #[serde(default)]
7049    #[cfg(feature = "extra-attrs")]
7050    pub extra_attrs: std::collections::HashMap<String, String>,
7051}
7052
7053#[derive(Debug, Clone, Serialize, Deserialize)]
7054pub struct CTMarkupRange {
7055    #[serde(rename = "@w:id")]
7056    pub id: STDecimalNumber,
7057    #[cfg(feature = "wml-settings")]
7058    #[serde(rename = "@w:displacedByCustomXml")]
7059    #[serde(default, skip_serializing_if = "Option::is_none")]
7060    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
7061    /// Unknown attributes captured for roundtrip fidelity.
7062    #[cfg(feature = "extra-attrs")]
7063    #[serde(skip)]
7064    #[cfg(feature = "extra-attrs")]
7065    #[serde(default)]
7066    #[cfg(feature = "extra-attrs")]
7067    pub extra_attrs: std::collections::HashMap<String, String>,
7068}
7069
7070#[derive(Debug, Clone, Serialize, Deserialize)]
7071pub struct CTBookmarkRange {
7072    #[serde(rename = "@w:id")]
7073    pub id: STDecimalNumber,
7074    #[serde(rename = "@w:displacedByCustomXml")]
7075    #[serde(default, skip_serializing_if = "Option::is_none")]
7076    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
7077    #[cfg(feature = "wml-tables")]
7078    #[serde(rename = "@w:colFirst")]
7079    #[serde(default, skip_serializing_if = "Option::is_none")]
7080    pub col_first: Option<STDecimalNumber>,
7081    #[cfg(feature = "wml-tables")]
7082    #[serde(rename = "@w:colLast")]
7083    #[serde(default, skip_serializing_if = "Option::is_none")]
7084    pub col_last: Option<STDecimalNumber>,
7085    /// Unknown attributes captured for roundtrip fidelity.
7086    #[cfg(feature = "extra-attrs")]
7087    #[serde(skip)]
7088    #[cfg(feature = "extra-attrs")]
7089    #[serde(default)]
7090    #[cfg(feature = "extra-attrs")]
7091    pub extra_attrs: std::collections::HashMap<String, String>,
7092}
7093
7094#[derive(Debug, Clone, Serialize, Deserialize)]
7095pub struct Bookmark {
7096    #[serde(rename = "@w:id")]
7097    pub id: STDecimalNumber,
7098    #[cfg(feature = "wml-settings")]
7099    #[serde(rename = "@w:displacedByCustomXml")]
7100    #[serde(default, skip_serializing_if = "Option::is_none")]
7101    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
7102    #[cfg(feature = "wml-tables")]
7103    #[serde(rename = "@w:colFirst")]
7104    #[serde(default, skip_serializing_if = "Option::is_none")]
7105    pub col_first: Option<STDecimalNumber>,
7106    #[cfg(feature = "wml-tables")]
7107    #[serde(rename = "@w:colLast")]
7108    #[serde(default, skip_serializing_if = "Option::is_none")]
7109    pub col_last: Option<STDecimalNumber>,
7110    #[serde(rename = "@w:name")]
7111    pub name: STString,
7112    /// Unknown attributes captured for roundtrip fidelity.
7113    #[cfg(feature = "extra-attrs")]
7114    #[serde(skip)]
7115    #[cfg(feature = "extra-attrs")]
7116    #[serde(default)]
7117    #[cfg(feature = "extra-attrs")]
7118    pub extra_attrs: std::collections::HashMap<String, String>,
7119}
7120
7121#[derive(Debug, Clone, Serialize, Deserialize)]
7122pub struct CTMoveBookmark {
7123    #[serde(rename = "@w:id")]
7124    pub id: STDecimalNumber,
7125    #[serde(rename = "@w:displacedByCustomXml")]
7126    #[serde(default, skip_serializing_if = "Option::is_none")]
7127    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
7128    #[serde(rename = "@w:colFirst")]
7129    #[serde(default, skip_serializing_if = "Option::is_none")]
7130    pub col_first: Option<STDecimalNumber>,
7131    #[serde(rename = "@w:colLast")]
7132    #[serde(default, skip_serializing_if = "Option::is_none")]
7133    pub col_last: Option<STDecimalNumber>,
7134    #[serde(rename = "@w:name")]
7135    pub name: STString,
7136    #[cfg(feature = "wml-track-changes")]
7137    #[serde(rename = "@w:author")]
7138    pub author: STString,
7139    #[cfg(feature = "wml-track-changes")]
7140    #[serde(rename = "@w:date")]
7141    pub date: STDateTime,
7142    /// Unknown attributes captured for roundtrip fidelity.
7143    #[cfg(feature = "extra-attrs")]
7144    #[serde(skip)]
7145    #[cfg(feature = "extra-attrs")]
7146    #[serde(default)]
7147    #[cfg(feature = "extra-attrs")]
7148    pub extra_attrs: std::collections::HashMap<String, String>,
7149}
7150
7151#[derive(Debug, Clone, Serialize, Deserialize)]
7152pub struct Comment {
7153    #[serde(rename = "@w:id")]
7154    pub id: STDecimalNumber,
7155    #[serde(rename = "@w:author")]
7156    pub author: STString,
7157    #[cfg(feature = "wml-comments")]
7158    #[serde(rename = "@w:date")]
7159    #[serde(default, skip_serializing_if = "Option::is_none")]
7160    pub date: Option<STDateTime>,
7161    #[serde(skip)]
7162    #[serde(default)]
7163    pub block_content: Vec<BlockContent>,
7164    #[cfg(feature = "wml-comments")]
7165    #[serde(rename = "@w:initials")]
7166    #[serde(default, skip_serializing_if = "Option::is_none")]
7167    pub initials: Option<STString>,
7168    /// Unknown attributes captured for roundtrip fidelity.
7169    #[cfg(feature = "extra-attrs")]
7170    #[serde(skip)]
7171    #[cfg(feature = "extra-attrs")]
7172    #[serde(default)]
7173    #[cfg(feature = "extra-attrs")]
7174    pub extra_attrs: std::collections::HashMap<String, String>,
7175    /// Unknown child elements captured for roundtrip fidelity.
7176    #[cfg(feature = "extra-children")]
7177    #[serde(skip)]
7178    #[cfg(feature = "extra-children")]
7179    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7180}
7181
7182#[derive(Debug, Clone, Serialize, Deserialize)]
7183pub struct CTTrackChangeNumbering {
7184    #[serde(rename = "@w:id")]
7185    pub id: STDecimalNumber,
7186    #[serde(rename = "@w:author")]
7187    pub author: STString,
7188    #[serde(rename = "@w:date")]
7189    #[serde(default, skip_serializing_if = "Option::is_none")]
7190    pub date: Option<STDateTime>,
7191    #[cfg(feature = "wml-track-changes")]
7192    #[serde(rename = "@w:original")]
7193    #[serde(default, skip_serializing_if = "Option::is_none")]
7194    pub original: Option<STString>,
7195    /// Unknown attributes captured for roundtrip fidelity.
7196    #[cfg(feature = "extra-attrs")]
7197    #[serde(skip)]
7198    #[cfg(feature = "extra-attrs")]
7199    #[serde(default)]
7200    #[cfg(feature = "extra-attrs")]
7201    pub extra_attrs: std::collections::HashMap<String, String>,
7202}
7203
7204#[derive(Debug, Clone, Serialize, Deserialize)]
7205pub struct CTTblPrExChange {
7206    #[serde(rename = "@w:id")]
7207    pub id: STDecimalNumber,
7208    #[serde(rename = "@w:author")]
7209    pub author: STString,
7210    #[serde(rename = "@w:date")]
7211    #[serde(default, skip_serializing_if = "Option::is_none")]
7212    pub date: Option<STDateTime>,
7213    #[cfg(feature = "wml-track-changes")]
7214    #[serde(rename = "tblPrEx")]
7215    pub tbl_pr_ex: Box<CTTblPrExBase>,
7216    /// Unknown attributes captured for roundtrip fidelity.
7217    #[cfg(feature = "extra-attrs")]
7218    #[serde(skip)]
7219    #[cfg(feature = "extra-attrs")]
7220    #[serde(default)]
7221    #[cfg(feature = "extra-attrs")]
7222    pub extra_attrs: std::collections::HashMap<String, String>,
7223    /// Unknown child elements captured for roundtrip fidelity.
7224    #[cfg(feature = "extra-children")]
7225    #[serde(skip)]
7226    #[cfg(feature = "extra-children")]
7227    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7228}
7229
7230#[derive(Debug, Clone, Serialize, Deserialize)]
7231pub struct CTTcPrChange {
7232    #[serde(rename = "@w:id")]
7233    pub id: STDecimalNumber,
7234    #[serde(rename = "@w:author")]
7235    pub author: STString,
7236    #[serde(rename = "@w:date")]
7237    #[serde(default, skip_serializing_if = "Option::is_none")]
7238    pub date: Option<STDateTime>,
7239    #[cfg(feature = "wml-track-changes")]
7240    #[serde(rename = "tcPr")]
7241    pub cell_properties: Box<CTTcPrInner>,
7242    /// Unknown attributes captured for roundtrip fidelity.
7243    #[cfg(feature = "extra-attrs")]
7244    #[serde(skip)]
7245    #[cfg(feature = "extra-attrs")]
7246    #[serde(default)]
7247    #[cfg(feature = "extra-attrs")]
7248    pub extra_attrs: std::collections::HashMap<String, String>,
7249    /// Unknown child elements captured for roundtrip fidelity.
7250    #[cfg(feature = "extra-children")]
7251    #[serde(skip)]
7252    #[cfg(feature = "extra-children")]
7253    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7254}
7255
7256#[derive(Debug, Clone, Serialize, Deserialize)]
7257pub struct CTTrPrChange {
7258    #[serde(rename = "@w:id")]
7259    pub id: STDecimalNumber,
7260    #[serde(rename = "@w:author")]
7261    pub author: STString,
7262    #[serde(rename = "@w:date")]
7263    #[serde(default, skip_serializing_if = "Option::is_none")]
7264    pub date: Option<STDateTime>,
7265    #[cfg(feature = "wml-track-changes")]
7266    #[serde(rename = "trPr")]
7267    pub row_properties: Box<CTTrPrBase>,
7268    /// Unknown attributes captured for roundtrip fidelity.
7269    #[cfg(feature = "extra-attrs")]
7270    #[serde(skip)]
7271    #[cfg(feature = "extra-attrs")]
7272    #[serde(default)]
7273    #[cfg(feature = "extra-attrs")]
7274    pub extra_attrs: std::collections::HashMap<String, String>,
7275    /// Unknown child elements captured for roundtrip fidelity.
7276    #[cfg(feature = "extra-children")]
7277    #[serde(skip)]
7278    #[cfg(feature = "extra-children")]
7279    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7280}
7281
7282#[derive(Debug, Clone, Serialize, Deserialize)]
7283pub struct CTTblGridChange {
7284    #[serde(rename = "@w:id")]
7285    pub id: STDecimalNumber,
7286    #[cfg(feature = "wml-track-changes")]
7287    #[serde(rename = "tblGrid")]
7288    pub tbl_grid: Box<CTTblGridBase>,
7289    /// Unknown attributes captured for roundtrip fidelity.
7290    #[cfg(feature = "extra-attrs")]
7291    #[serde(skip)]
7292    #[cfg(feature = "extra-attrs")]
7293    #[serde(default)]
7294    #[cfg(feature = "extra-attrs")]
7295    pub extra_attrs: std::collections::HashMap<String, String>,
7296    /// Unknown child elements captured for roundtrip fidelity.
7297    #[cfg(feature = "extra-children")]
7298    #[serde(skip)]
7299    #[cfg(feature = "extra-children")]
7300    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7301}
7302
7303#[derive(Debug, Clone, Serialize, Deserialize)]
7304pub struct CTTblPrChange {
7305    #[serde(rename = "@w:id")]
7306    pub id: STDecimalNumber,
7307    #[serde(rename = "@w:author")]
7308    pub author: STString,
7309    #[serde(rename = "@w:date")]
7310    #[serde(default, skip_serializing_if = "Option::is_none")]
7311    pub date: Option<STDateTime>,
7312    #[cfg(feature = "wml-track-changes")]
7313    #[serde(rename = "tblPr")]
7314    pub table_properties: Box<CTTblPrBase>,
7315    /// Unknown attributes captured for roundtrip fidelity.
7316    #[cfg(feature = "extra-attrs")]
7317    #[serde(skip)]
7318    #[cfg(feature = "extra-attrs")]
7319    #[serde(default)]
7320    #[cfg(feature = "extra-attrs")]
7321    pub extra_attrs: std::collections::HashMap<String, String>,
7322    /// Unknown child elements captured for roundtrip fidelity.
7323    #[cfg(feature = "extra-children")]
7324    #[serde(skip)]
7325    #[cfg(feature = "extra-children")]
7326    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7327}
7328
7329#[derive(Debug, Clone, Serialize, Deserialize)]
7330pub struct CTSectPrChange {
7331    #[serde(rename = "@w:id")]
7332    pub id: STDecimalNumber,
7333    #[serde(rename = "@w:author")]
7334    pub author: STString,
7335    #[serde(rename = "@w:date")]
7336    #[serde(default, skip_serializing_if = "Option::is_none")]
7337    pub date: Option<STDateTime>,
7338    #[cfg(feature = "wml-track-changes")]
7339    #[serde(rename = "sectPr")]
7340    #[serde(default, skip_serializing_if = "Option::is_none")]
7341    pub sect_pr: Option<Box<CTSectPrBase>>,
7342    /// Unknown attributes captured for roundtrip fidelity.
7343    #[cfg(feature = "extra-attrs")]
7344    #[serde(skip)]
7345    #[cfg(feature = "extra-attrs")]
7346    #[serde(default)]
7347    #[cfg(feature = "extra-attrs")]
7348    pub extra_attrs: std::collections::HashMap<String, String>,
7349    /// Unknown child elements captured for roundtrip fidelity.
7350    #[cfg(feature = "extra-children")]
7351    #[serde(skip)]
7352    #[cfg(feature = "extra-children")]
7353    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7354}
7355
7356#[derive(Debug, Clone, Serialize, Deserialize)]
7357pub struct CTPPrChange {
7358    #[serde(rename = "@w:id")]
7359    pub id: STDecimalNumber,
7360    #[serde(rename = "@w:author")]
7361    pub author: STString,
7362    #[serde(rename = "@w:date")]
7363    #[serde(default, skip_serializing_if = "Option::is_none")]
7364    pub date: Option<STDateTime>,
7365    #[cfg(feature = "wml-track-changes")]
7366    #[serde(rename = "pPr")]
7367    pub p_pr: Box<CTPPrBase>,
7368    /// Unknown attributes captured for roundtrip fidelity.
7369    #[cfg(feature = "extra-attrs")]
7370    #[serde(skip)]
7371    #[cfg(feature = "extra-attrs")]
7372    #[serde(default)]
7373    #[cfg(feature = "extra-attrs")]
7374    pub extra_attrs: std::collections::HashMap<String, String>,
7375    /// Unknown child elements captured for roundtrip fidelity.
7376    #[cfg(feature = "extra-children")]
7377    #[serde(skip)]
7378    #[cfg(feature = "extra-children")]
7379    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7380}
7381
7382#[derive(Debug, Clone, Serialize, Deserialize)]
7383pub struct CTRPrChange {
7384    #[serde(rename = "@w:id")]
7385    pub id: STDecimalNumber,
7386    #[serde(rename = "@w:author")]
7387    pub author: STString,
7388    #[serde(rename = "@w:date")]
7389    #[serde(default, skip_serializing_if = "Option::is_none")]
7390    pub date: Option<STDateTime>,
7391    #[cfg(feature = "wml-track-changes")]
7392    #[serde(rename = "rPr")]
7393    pub r_pr: Box<CTRPrOriginal>,
7394    /// Unknown attributes captured for roundtrip fidelity.
7395    #[cfg(feature = "extra-attrs")]
7396    #[serde(skip)]
7397    #[cfg(feature = "extra-attrs")]
7398    #[serde(default)]
7399    #[cfg(feature = "extra-attrs")]
7400    pub extra_attrs: std::collections::HashMap<String, String>,
7401    /// Unknown child elements captured for roundtrip fidelity.
7402    #[cfg(feature = "extra-children")]
7403    #[serde(skip)]
7404    #[cfg(feature = "extra-children")]
7405    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7406}
7407
7408#[derive(Debug, Clone, Serialize, Deserialize)]
7409pub struct CTParaRPrChange {
7410    #[serde(rename = "@w:id")]
7411    pub id: STDecimalNumber,
7412    #[serde(rename = "@w:author")]
7413    pub author: STString,
7414    #[serde(rename = "@w:date")]
7415    #[serde(default, skip_serializing_if = "Option::is_none")]
7416    pub date: Option<STDateTime>,
7417    #[cfg(feature = "wml-track-changes")]
7418    #[serde(rename = "rPr")]
7419    pub r_pr: Box<CTParaRPrOriginal>,
7420    /// Unknown attributes captured for roundtrip fidelity.
7421    #[cfg(feature = "extra-attrs")]
7422    #[serde(skip)]
7423    #[cfg(feature = "extra-attrs")]
7424    #[serde(default)]
7425    #[cfg(feature = "extra-attrs")]
7426    pub extra_attrs: std::collections::HashMap<String, String>,
7427    /// Unknown child elements captured for roundtrip fidelity.
7428    #[cfg(feature = "extra-children")]
7429    #[serde(skip)]
7430    #[cfg(feature = "extra-children")]
7431    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7432}
7433
7434#[derive(Debug, Clone, Serialize, Deserialize)]
7435pub struct CTRunTrackChange {
7436    #[cfg(feature = "wml-track-changes")]
7437    #[serde(rename = "@w:id")]
7438    pub id: STDecimalNumber,
7439    #[cfg(feature = "wml-track-changes")]
7440    #[serde(rename = "@w:author")]
7441    pub author: STString,
7442    #[cfg(feature = "wml-track-changes")]
7443    #[serde(rename = "@w:date")]
7444    #[serde(default, skip_serializing_if = "Option::is_none")]
7445    pub date: Option<STDateTime>,
7446    #[cfg(feature = "wml-track-changes")]
7447    #[serde(skip)]
7448    #[serde(default)]
7449    pub run_content: Vec<RunContentChoice>,
7450    /// Unknown attributes captured for roundtrip fidelity.
7451    #[cfg(feature = "extra-attrs")]
7452    #[serde(skip)]
7453    #[cfg(feature = "extra-attrs")]
7454    #[serde(default)]
7455    #[cfg(feature = "extra-attrs")]
7456    pub extra_attrs: std::collections::HashMap<String, String>,
7457    /// Unknown child elements captured for roundtrip fidelity.
7458    #[cfg(feature = "extra-children")]
7459    #[serde(skip)]
7460    #[cfg(feature = "extra-children")]
7461    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7462}
7463
7464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7465pub struct MathContent {
7466    #[serde(skip)]
7467    #[serde(default)]
7468    pub p_content_base: Vec<ParagraphContentBase>,
7469    #[serde(skip)]
7470    #[serde(default)]
7471    pub content_run_content_base: Vec<RunContentBase>,
7472    /// Unknown child elements captured for roundtrip fidelity.
7473    #[cfg(feature = "extra-children")]
7474    #[serde(skip)]
7475    #[cfg(feature = "extra-children")]
7476    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7477}
7478
7479#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7480pub struct NumberingProperties {
7481    #[cfg(feature = "wml-numbering")]
7482    #[serde(rename = "ilvl")]
7483    #[serde(default, skip_serializing_if = "Option::is_none")]
7484    pub ilvl: Option<Box<CTDecimalNumber>>,
7485    #[cfg(feature = "wml-numbering")]
7486    #[serde(rename = "numId")]
7487    #[serde(default, skip_serializing_if = "Option::is_none")]
7488    pub num_id: Option<Box<CTDecimalNumber>>,
7489    #[cfg(feature = "wml-track-changes")]
7490    #[serde(rename = "numberingChange")]
7491    #[serde(default, skip_serializing_if = "Option::is_none")]
7492    pub numbering_change: Option<Box<CTTrackChangeNumbering>>,
7493    #[cfg(feature = "wml-track-changes")]
7494    #[serde(rename = "ins")]
7495    #[serde(default, skip_serializing_if = "Option::is_none")]
7496    pub ins: Option<Box<CTTrackChange>>,
7497    /// Unknown child elements captured for roundtrip fidelity.
7498    #[cfg(feature = "extra-children")]
7499    #[serde(skip)]
7500    #[cfg(feature = "extra-children")]
7501    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7502}
7503
7504#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7505pub struct CTPBdr {
7506    #[cfg(feature = "wml-styling")]
7507    #[serde(rename = "top")]
7508    #[serde(default, skip_serializing_if = "Option::is_none")]
7509    pub top: Option<Box<CTBorder>>,
7510    #[cfg(feature = "wml-styling")]
7511    #[serde(rename = "left")]
7512    #[serde(default, skip_serializing_if = "Option::is_none")]
7513    pub left: Option<Box<CTBorder>>,
7514    #[cfg(feature = "wml-styling")]
7515    #[serde(rename = "bottom")]
7516    #[serde(default, skip_serializing_if = "Option::is_none")]
7517    pub bottom: Option<Box<CTBorder>>,
7518    #[cfg(feature = "wml-styling")]
7519    #[serde(rename = "right")]
7520    #[serde(default, skip_serializing_if = "Option::is_none")]
7521    pub right: Option<Box<CTBorder>>,
7522    #[cfg(feature = "wml-styling")]
7523    #[serde(rename = "between")]
7524    #[serde(default, skip_serializing_if = "Option::is_none")]
7525    pub between: Option<Box<CTBorder>>,
7526    #[cfg(feature = "wml-styling")]
7527    #[serde(rename = "bar")]
7528    #[serde(default, skip_serializing_if = "Option::is_none")]
7529    pub bar: Option<Box<CTBorder>>,
7530    /// Unknown child elements captured for roundtrip fidelity.
7531    #[cfg(feature = "extra-children")]
7532    #[serde(skip)]
7533    #[cfg(feature = "extra-children")]
7534    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7535}
7536
7537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7538pub struct CTTabs {
7539    #[serde(rename = "tab")]
7540    #[serde(default, skip_serializing_if = "Vec::is_empty")]
7541    pub tab: Vec<CTTabStop>,
7542    /// Unknown child elements captured for roundtrip fidelity.
7543    #[cfg(feature = "extra-children")]
7544    #[serde(skip)]
7545    #[cfg(feature = "extra-children")]
7546    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7547}
7548
7549#[derive(Debug, Clone, Serialize, Deserialize)]
7550pub struct CTTextboxTightWrap {
7551    #[serde(rename = "@w:val")]
7552    pub value: STTextboxTightWrap,
7553    /// Unknown attributes captured for roundtrip fidelity.
7554    #[cfg(feature = "extra-attrs")]
7555    #[serde(skip)]
7556    #[cfg(feature = "extra-attrs")]
7557    #[serde(default)]
7558    #[cfg(feature = "extra-attrs")]
7559    pub extra_attrs: std::collections::HashMap<String, String>,
7560}
7561
7562#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7563pub struct ParagraphProperties {
7564    #[serde(rename = "pStyle")]
7565    #[serde(default, skip_serializing_if = "Option::is_none")]
7566    pub paragraph_style: Option<Box<CTString>>,
7567    #[cfg(feature = "wml-layout")]
7568    #[serde(rename = "keepNext")]
7569    #[serde(default, skip_serializing_if = "Option::is_none")]
7570    pub keep_next: Option<Box<OnOffElement>>,
7571    #[cfg(feature = "wml-layout")]
7572    #[serde(rename = "keepLines")]
7573    #[serde(default, skip_serializing_if = "Option::is_none")]
7574    pub keep_lines: Option<Box<OnOffElement>>,
7575    #[cfg(feature = "wml-layout")]
7576    #[serde(rename = "pageBreakBefore")]
7577    #[serde(default, skip_serializing_if = "Option::is_none")]
7578    pub page_break_before: Option<Box<OnOffElement>>,
7579    #[cfg(feature = "wml-layout")]
7580    #[serde(rename = "framePr")]
7581    #[serde(default, skip_serializing_if = "Option::is_none")]
7582    pub frame_pr: Option<Box<CTFramePr>>,
7583    #[cfg(feature = "wml-layout")]
7584    #[serde(rename = "widowControl")]
7585    #[serde(default, skip_serializing_if = "Option::is_none")]
7586    pub widow_control: Option<Box<OnOffElement>>,
7587    #[cfg(feature = "wml-numbering")]
7588    #[serde(rename = "numPr")]
7589    #[serde(default, skip_serializing_if = "Option::is_none")]
7590    pub num_pr: Option<Box<NumberingProperties>>,
7591    #[cfg(feature = "wml-layout")]
7592    #[serde(rename = "suppressLineNumbers")]
7593    #[serde(default, skip_serializing_if = "Option::is_none")]
7594    pub suppress_line_numbers: Option<Box<OnOffElement>>,
7595    #[cfg(feature = "wml-styling")]
7596    #[serde(rename = "pBdr")]
7597    #[serde(default, skip_serializing_if = "Option::is_none")]
7598    pub paragraph_border: Option<Box<CTPBdr>>,
7599    #[cfg(feature = "wml-styling")]
7600    #[serde(rename = "shd")]
7601    #[serde(default, skip_serializing_if = "Option::is_none")]
7602    pub shading: Option<Box<CTShd>>,
7603    #[cfg(feature = "wml-styling")]
7604    #[serde(rename = "tabs")]
7605    #[serde(default, skip_serializing_if = "Option::is_none")]
7606    pub tabs: Option<Box<CTTabs>>,
7607    #[cfg(feature = "wml-styling")]
7608    #[serde(rename = "suppressAutoHyphens")]
7609    #[serde(default, skip_serializing_if = "Option::is_none")]
7610    pub suppress_auto_hyphens: Option<Box<OnOffElement>>,
7611    #[cfg(feature = "wml-styling")]
7612    #[serde(rename = "kinsoku")]
7613    #[serde(default, skip_serializing_if = "Option::is_none")]
7614    pub kinsoku: Option<Box<OnOffElement>>,
7615    #[cfg(feature = "wml-styling")]
7616    #[serde(rename = "wordWrap")]
7617    #[serde(default, skip_serializing_if = "Option::is_none")]
7618    pub word_wrap: Option<Box<OnOffElement>>,
7619    #[cfg(feature = "wml-styling")]
7620    #[serde(rename = "overflowPunct")]
7621    #[serde(default, skip_serializing_if = "Option::is_none")]
7622    pub overflow_punct: Option<Box<OnOffElement>>,
7623    #[cfg(feature = "wml-styling")]
7624    #[serde(rename = "topLinePunct")]
7625    #[serde(default, skip_serializing_if = "Option::is_none")]
7626    pub top_line_punct: Option<Box<OnOffElement>>,
7627    #[cfg(feature = "wml-styling")]
7628    #[serde(rename = "autoSpaceDE")]
7629    #[serde(default, skip_serializing_if = "Option::is_none")]
7630    pub auto_space_d_e: Option<Box<OnOffElement>>,
7631    #[cfg(feature = "wml-styling")]
7632    #[serde(rename = "autoSpaceDN")]
7633    #[serde(default, skip_serializing_if = "Option::is_none")]
7634    pub auto_space_d_n: Option<Box<OnOffElement>>,
7635    #[cfg(feature = "wml-styling")]
7636    #[serde(rename = "bidi")]
7637    #[serde(default, skip_serializing_if = "Option::is_none")]
7638    pub bidi: Option<Box<OnOffElement>>,
7639    #[cfg(feature = "wml-styling")]
7640    #[serde(rename = "adjustRightInd")]
7641    #[serde(default, skip_serializing_if = "Option::is_none")]
7642    pub adjust_right_ind: Option<Box<OnOffElement>>,
7643    #[cfg(feature = "wml-layout")]
7644    #[serde(rename = "snapToGrid")]
7645    #[serde(default, skip_serializing_if = "Option::is_none")]
7646    pub snap_to_grid: Option<Box<OnOffElement>>,
7647    #[cfg(feature = "wml-styling")]
7648    #[serde(rename = "spacing")]
7649    #[serde(default, skip_serializing_if = "Option::is_none")]
7650    pub spacing: Option<Box<CTSpacing>>,
7651    #[cfg(feature = "wml-styling")]
7652    #[serde(rename = "ind")]
7653    #[serde(default, skip_serializing_if = "Option::is_none")]
7654    pub indentation: Option<Box<CTInd>>,
7655    #[cfg(feature = "wml-styling")]
7656    #[serde(rename = "contextualSpacing")]
7657    #[serde(default, skip_serializing_if = "Option::is_none")]
7658    pub contextual_spacing: Option<Box<OnOffElement>>,
7659    #[cfg(feature = "wml-styling")]
7660    #[serde(rename = "mirrorIndents")]
7661    #[serde(default, skip_serializing_if = "Option::is_none")]
7662    pub mirror_indents: Option<Box<OnOffElement>>,
7663    #[cfg(feature = "wml-layout")]
7664    #[serde(rename = "suppressOverlap")]
7665    #[serde(default, skip_serializing_if = "Option::is_none")]
7666    pub suppress_overlap: Option<Box<OnOffElement>>,
7667    #[cfg(feature = "wml-styling")]
7668    #[serde(rename = "jc")]
7669    #[serde(default, skip_serializing_if = "Option::is_none")]
7670    pub justification: Option<Box<CTJc>>,
7671    #[cfg(feature = "wml-styling")]
7672    #[serde(rename = "textDirection")]
7673    #[serde(default, skip_serializing_if = "Option::is_none")]
7674    pub text_direction: Option<Box<CTTextDirection>>,
7675    #[cfg(feature = "wml-styling")]
7676    #[serde(rename = "textAlignment")]
7677    #[serde(default, skip_serializing_if = "Option::is_none")]
7678    pub text_alignment: Option<Box<CTTextAlignment>>,
7679    #[cfg(feature = "wml-styling")]
7680    #[serde(rename = "textboxTightWrap")]
7681    #[serde(default, skip_serializing_if = "Option::is_none")]
7682    pub textbox_tight_wrap: Option<Box<CTTextboxTightWrap>>,
7683    #[cfg(feature = "wml-styling")]
7684    #[serde(rename = "outlineLvl")]
7685    #[serde(default, skip_serializing_if = "Option::is_none")]
7686    pub outline_lvl: Option<Box<CTDecimalNumber>>,
7687    #[cfg(feature = "wml-styling")]
7688    #[serde(rename = "divId")]
7689    #[serde(default, skip_serializing_if = "Option::is_none")]
7690    pub div_id: Option<Box<CTDecimalNumber>>,
7691    #[cfg(feature = "wml-styling")]
7692    #[serde(rename = "cnfStyle")]
7693    #[serde(default, skip_serializing_if = "Option::is_none")]
7694    pub cnf_style: Option<Box<CTCnf>>,
7695    #[cfg(feature = "wml-styling")]
7696    #[serde(rename = "rPr")]
7697    #[serde(default, skip_serializing_if = "Option::is_none")]
7698    pub r_pr: Option<Box<CTParaRPr>>,
7699    #[cfg(feature = "wml-layout")]
7700    #[serde(rename = "sectPr")]
7701    #[serde(default, skip_serializing_if = "Option::is_none")]
7702    pub sect_pr: Option<Box<SectionProperties>>,
7703    #[cfg(feature = "wml-track-changes")]
7704    #[serde(rename = "pPrChange")]
7705    #[serde(default, skip_serializing_if = "Option::is_none")]
7706    pub p_pr_change: Option<Box<CTPPrChange>>,
7707    /// Unknown child elements captured for roundtrip fidelity.
7708    #[cfg(feature = "extra-children")]
7709    #[serde(skip)]
7710    #[cfg(feature = "extra-children")]
7711    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7712}
7713
7714#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7715pub struct CTPPrBase {
7716    #[serde(rename = "pStyle")]
7717    #[serde(default, skip_serializing_if = "Option::is_none")]
7718    pub paragraph_style: Option<Box<CTString>>,
7719    #[cfg(feature = "wml-layout")]
7720    #[serde(rename = "keepNext")]
7721    #[serde(default, skip_serializing_if = "Option::is_none")]
7722    pub keep_next: Option<Box<OnOffElement>>,
7723    #[cfg(feature = "wml-layout")]
7724    #[serde(rename = "keepLines")]
7725    #[serde(default, skip_serializing_if = "Option::is_none")]
7726    pub keep_lines: Option<Box<OnOffElement>>,
7727    #[cfg(feature = "wml-layout")]
7728    #[serde(rename = "pageBreakBefore")]
7729    #[serde(default, skip_serializing_if = "Option::is_none")]
7730    pub page_break_before: Option<Box<OnOffElement>>,
7731    #[cfg(feature = "wml-layout")]
7732    #[serde(rename = "framePr")]
7733    #[serde(default, skip_serializing_if = "Option::is_none")]
7734    pub frame_pr: Option<Box<CTFramePr>>,
7735    #[cfg(feature = "wml-layout")]
7736    #[serde(rename = "widowControl")]
7737    #[serde(default, skip_serializing_if = "Option::is_none")]
7738    pub widow_control: Option<Box<OnOffElement>>,
7739    #[cfg(feature = "wml-numbering")]
7740    #[serde(rename = "numPr")]
7741    #[serde(default, skip_serializing_if = "Option::is_none")]
7742    pub num_pr: Option<Box<NumberingProperties>>,
7743    #[cfg(feature = "wml-layout")]
7744    #[serde(rename = "suppressLineNumbers")]
7745    #[serde(default, skip_serializing_if = "Option::is_none")]
7746    pub suppress_line_numbers: Option<Box<OnOffElement>>,
7747    #[cfg(feature = "wml-styling")]
7748    #[serde(rename = "pBdr")]
7749    #[serde(default, skip_serializing_if = "Option::is_none")]
7750    pub paragraph_border: Option<Box<CTPBdr>>,
7751    #[cfg(feature = "wml-styling")]
7752    #[serde(rename = "shd")]
7753    #[serde(default, skip_serializing_if = "Option::is_none")]
7754    pub shading: Option<Box<CTShd>>,
7755    #[cfg(feature = "wml-styling")]
7756    #[serde(rename = "tabs")]
7757    #[serde(default, skip_serializing_if = "Option::is_none")]
7758    pub tabs: Option<Box<CTTabs>>,
7759    #[cfg(feature = "wml-styling")]
7760    #[serde(rename = "suppressAutoHyphens")]
7761    #[serde(default, skip_serializing_if = "Option::is_none")]
7762    pub suppress_auto_hyphens: Option<Box<OnOffElement>>,
7763    #[cfg(feature = "wml-styling")]
7764    #[serde(rename = "kinsoku")]
7765    #[serde(default, skip_serializing_if = "Option::is_none")]
7766    pub kinsoku: Option<Box<OnOffElement>>,
7767    #[cfg(feature = "wml-styling")]
7768    #[serde(rename = "wordWrap")]
7769    #[serde(default, skip_serializing_if = "Option::is_none")]
7770    pub word_wrap: Option<Box<OnOffElement>>,
7771    #[cfg(feature = "wml-styling")]
7772    #[serde(rename = "overflowPunct")]
7773    #[serde(default, skip_serializing_if = "Option::is_none")]
7774    pub overflow_punct: Option<Box<OnOffElement>>,
7775    #[cfg(feature = "wml-styling")]
7776    #[serde(rename = "topLinePunct")]
7777    #[serde(default, skip_serializing_if = "Option::is_none")]
7778    pub top_line_punct: Option<Box<OnOffElement>>,
7779    #[cfg(feature = "wml-styling")]
7780    #[serde(rename = "autoSpaceDE")]
7781    #[serde(default, skip_serializing_if = "Option::is_none")]
7782    pub auto_space_d_e: Option<Box<OnOffElement>>,
7783    #[cfg(feature = "wml-styling")]
7784    #[serde(rename = "autoSpaceDN")]
7785    #[serde(default, skip_serializing_if = "Option::is_none")]
7786    pub auto_space_d_n: Option<Box<OnOffElement>>,
7787    #[cfg(feature = "wml-styling")]
7788    #[serde(rename = "bidi")]
7789    #[serde(default, skip_serializing_if = "Option::is_none")]
7790    pub bidi: Option<Box<OnOffElement>>,
7791    #[cfg(feature = "wml-styling")]
7792    #[serde(rename = "adjustRightInd")]
7793    #[serde(default, skip_serializing_if = "Option::is_none")]
7794    pub adjust_right_ind: Option<Box<OnOffElement>>,
7795    #[cfg(feature = "wml-layout")]
7796    #[serde(rename = "snapToGrid")]
7797    #[serde(default, skip_serializing_if = "Option::is_none")]
7798    pub snap_to_grid: Option<Box<OnOffElement>>,
7799    #[cfg(feature = "wml-styling")]
7800    #[serde(rename = "spacing")]
7801    #[serde(default, skip_serializing_if = "Option::is_none")]
7802    pub spacing: Option<Box<CTSpacing>>,
7803    #[cfg(feature = "wml-styling")]
7804    #[serde(rename = "ind")]
7805    #[serde(default, skip_serializing_if = "Option::is_none")]
7806    pub indentation: Option<Box<CTInd>>,
7807    #[cfg(feature = "wml-styling")]
7808    #[serde(rename = "contextualSpacing")]
7809    #[serde(default, skip_serializing_if = "Option::is_none")]
7810    pub contextual_spacing: Option<Box<OnOffElement>>,
7811    #[cfg(feature = "wml-styling")]
7812    #[serde(rename = "mirrorIndents")]
7813    #[serde(default, skip_serializing_if = "Option::is_none")]
7814    pub mirror_indents: Option<Box<OnOffElement>>,
7815    #[cfg(feature = "wml-layout")]
7816    #[serde(rename = "suppressOverlap")]
7817    #[serde(default, skip_serializing_if = "Option::is_none")]
7818    pub suppress_overlap: Option<Box<OnOffElement>>,
7819    #[cfg(feature = "wml-styling")]
7820    #[serde(rename = "jc")]
7821    #[serde(default, skip_serializing_if = "Option::is_none")]
7822    pub justification: Option<Box<CTJc>>,
7823    #[cfg(feature = "wml-styling")]
7824    #[serde(rename = "textDirection")]
7825    #[serde(default, skip_serializing_if = "Option::is_none")]
7826    pub text_direction: Option<Box<CTTextDirection>>,
7827    #[cfg(feature = "wml-styling")]
7828    #[serde(rename = "textAlignment")]
7829    #[serde(default, skip_serializing_if = "Option::is_none")]
7830    pub text_alignment: Option<Box<CTTextAlignment>>,
7831    #[cfg(feature = "wml-styling")]
7832    #[serde(rename = "textboxTightWrap")]
7833    #[serde(default, skip_serializing_if = "Option::is_none")]
7834    pub textbox_tight_wrap: Option<Box<CTTextboxTightWrap>>,
7835    #[cfg(feature = "wml-styling")]
7836    #[serde(rename = "outlineLvl")]
7837    #[serde(default, skip_serializing_if = "Option::is_none")]
7838    pub outline_lvl: Option<Box<CTDecimalNumber>>,
7839    #[cfg(feature = "wml-styling")]
7840    #[serde(rename = "divId")]
7841    #[serde(default, skip_serializing_if = "Option::is_none")]
7842    pub div_id: Option<Box<CTDecimalNumber>>,
7843    #[cfg(feature = "wml-styling")]
7844    #[serde(rename = "cnfStyle")]
7845    #[serde(default, skip_serializing_if = "Option::is_none")]
7846    pub cnf_style: Option<Box<CTCnf>>,
7847    /// Unknown child elements captured for roundtrip fidelity.
7848    #[cfg(feature = "extra-children")]
7849    #[serde(skip)]
7850    #[cfg(feature = "extra-children")]
7851    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7852}
7853
7854#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7855pub struct CTPPrGeneral {
7856    #[serde(rename = "pStyle")]
7857    #[serde(default, skip_serializing_if = "Option::is_none")]
7858    pub paragraph_style: Option<Box<CTString>>,
7859    #[serde(rename = "keepNext")]
7860    #[serde(default, skip_serializing_if = "Option::is_none")]
7861    pub keep_next: Option<Box<OnOffElement>>,
7862    #[serde(rename = "keepLines")]
7863    #[serde(default, skip_serializing_if = "Option::is_none")]
7864    pub keep_lines: Option<Box<OnOffElement>>,
7865    #[serde(rename = "pageBreakBefore")]
7866    #[serde(default, skip_serializing_if = "Option::is_none")]
7867    pub page_break_before: Option<Box<OnOffElement>>,
7868    #[serde(rename = "framePr")]
7869    #[serde(default, skip_serializing_if = "Option::is_none")]
7870    pub frame_pr: Option<Box<CTFramePr>>,
7871    #[serde(rename = "widowControl")]
7872    #[serde(default, skip_serializing_if = "Option::is_none")]
7873    pub widow_control: Option<Box<OnOffElement>>,
7874    #[serde(rename = "numPr")]
7875    #[serde(default, skip_serializing_if = "Option::is_none")]
7876    pub num_pr: Option<Box<NumberingProperties>>,
7877    #[serde(rename = "suppressLineNumbers")]
7878    #[serde(default, skip_serializing_if = "Option::is_none")]
7879    pub suppress_line_numbers: Option<Box<OnOffElement>>,
7880    #[serde(rename = "pBdr")]
7881    #[serde(default, skip_serializing_if = "Option::is_none")]
7882    pub paragraph_border: Option<Box<CTPBdr>>,
7883    #[serde(rename = "shd")]
7884    #[serde(default, skip_serializing_if = "Option::is_none")]
7885    pub shading: Option<Box<CTShd>>,
7886    #[serde(rename = "tabs")]
7887    #[serde(default, skip_serializing_if = "Option::is_none")]
7888    pub tabs: Option<Box<CTTabs>>,
7889    #[serde(rename = "suppressAutoHyphens")]
7890    #[serde(default, skip_serializing_if = "Option::is_none")]
7891    pub suppress_auto_hyphens: Option<Box<OnOffElement>>,
7892    #[serde(rename = "kinsoku")]
7893    #[serde(default, skip_serializing_if = "Option::is_none")]
7894    pub kinsoku: Option<Box<OnOffElement>>,
7895    #[serde(rename = "wordWrap")]
7896    #[serde(default, skip_serializing_if = "Option::is_none")]
7897    pub word_wrap: Option<Box<OnOffElement>>,
7898    #[serde(rename = "overflowPunct")]
7899    #[serde(default, skip_serializing_if = "Option::is_none")]
7900    pub overflow_punct: Option<Box<OnOffElement>>,
7901    #[serde(rename = "topLinePunct")]
7902    #[serde(default, skip_serializing_if = "Option::is_none")]
7903    pub top_line_punct: Option<Box<OnOffElement>>,
7904    #[serde(rename = "autoSpaceDE")]
7905    #[serde(default, skip_serializing_if = "Option::is_none")]
7906    pub auto_space_d_e: Option<Box<OnOffElement>>,
7907    #[serde(rename = "autoSpaceDN")]
7908    #[serde(default, skip_serializing_if = "Option::is_none")]
7909    pub auto_space_d_n: Option<Box<OnOffElement>>,
7910    #[serde(rename = "bidi")]
7911    #[serde(default, skip_serializing_if = "Option::is_none")]
7912    pub bidi: Option<Box<OnOffElement>>,
7913    #[serde(rename = "adjustRightInd")]
7914    #[serde(default, skip_serializing_if = "Option::is_none")]
7915    pub adjust_right_ind: Option<Box<OnOffElement>>,
7916    #[serde(rename = "snapToGrid")]
7917    #[serde(default, skip_serializing_if = "Option::is_none")]
7918    pub snap_to_grid: Option<Box<OnOffElement>>,
7919    #[serde(rename = "spacing")]
7920    #[serde(default, skip_serializing_if = "Option::is_none")]
7921    pub spacing: Option<Box<CTSpacing>>,
7922    #[serde(rename = "ind")]
7923    #[serde(default, skip_serializing_if = "Option::is_none")]
7924    pub indentation: Option<Box<CTInd>>,
7925    #[serde(rename = "contextualSpacing")]
7926    #[serde(default, skip_serializing_if = "Option::is_none")]
7927    pub contextual_spacing: Option<Box<OnOffElement>>,
7928    #[serde(rename = "mirrorIndents")]
7929    #[serde(default, skip_serializing_if = "Option::is_none")]
7930    pub mirror_indents: Option<Box<OnOffElement>>,
7931    #[serde(rename = "suppressOverlap")]
7932    #[serde(default, skip_serializing_if = "Option::is_none")]
7933    pub suppress_overlap: Option<Box<OnOffElement>>,
7934    #[serde(rename = "jc")]
7935    #[serde(default, skip_serializing_if = "Option::is_none")]
7936    pub justification: Option<Box<CTJc>>,
7937    #[serde(rename = "textDirection")]
7938    #[serde(default, skip_serializing_if = "Option::is_none")]
7939    pub text_direction: Option<Box<CTTextDirection>>,
7940    #[serde(rename = "textAlignment")]
7941    #[serde(default, skip_serializing_if = "Option::is_none")]
7942    pub text_alignment: Option<Box<CTTextAlignment>>,
7943    #[serde(rename = "textboxTightWrap")]
7944    #[serde(default, skip_serializing_if = "Option::is_none")]
7945    pub textbox_tight_wrap: Option<Box<CTTextboxTightWrap>>,
7946    #[serde(rename = "outlineLvl")]
7947    #[serde(default, skip_serializing_if = "Option::is_none")]
7948    pub outline_lvl: Option<Box<CTDecimalNumber>>,
7949    #[serde(rename = "divId")]
7950    #[serde(default, skip_serializing_if = "Option::is_none")]
7951    pub div_id: Option<Box<CTDecimalNumber>>,
7952    #[serde(rename = "cnfStyle")]
7953    #[serde(default, skip_serializing_if = "Option::is_none")]
7954    pub cnf_style: Option<Box<CTCnf>>,
7955    #[cfg(feature = "wml-track-changes")]
7956    #[serde(rename = "pPrChange")]
7957    #[serde(default, skip_serializing_if = "Option::is_none")]
7958    pub p_pr_change: Option<Box<CTPPrChange>>,
7959    /// Unknown child elements captured for roundtrip fidelity.
7960    #[cfg(feature = "extra-children")]
7961    #[serde(skip)]
7962    #[cfg(feature = "extra-children")]
7963    pub extra_children: Vec<ooxml_xml::PositionedNode>,
7964}
7965
7966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7967pub struct CTControl {
7968    #[cfg(feature = "wml-drawings")]
7969    #[serde(rename = "@w:name")]
7970    #[serde(default, skip_serializing_if = "Option::is_none")]
7971    pub name: Option<STString>,
7972    #[cfg(feature = "wml-drawings")]
7973    #[serde(rename = "@w:shapeid")]
7974    #[serde(default, skip_serializing_if = "Option::is_none")]
7975    pub shapeid: Option<STString>,
7976    #[cfg(feature = "wml-drawings")]
7977    #[serde(rename = "@r:id")]
7978    #[serde(default, skip_serializing_if = "Option::is_none")]
7979    pub id: Option<STRelationshipId>,
7980    /// Unknown attributes captured for roundtrip fidelity.
7981    #[cfg(feature = "extra-attrs")]
7982    #[serde(skip)]
7983    #[cfg(feature = "extra-attrs")]
7984    #[serde(default)]
7985    #[cfg(feature = "extra-attrs")]
7986    pub extra_attrs: std::collections::HashMap<String, String>,
7987}
7988
7989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7990pub struct CTBackground {
7991    #[cfg(feature = "wml-styling")]
7992    #[serde(rename = "@w:color")]
7993    #[serde(default, skip_serializing_if = "Option::is_none")]
7994    pub color: Option<STHexColor>,
7995    #[cfg(feature = "wml-styling")]
7996    #[serde(rename = "@w:themeColor")]
7997    #[serde(default, skip_serializing_if = "Option::is_none")]
7998    pub theme_color: Option<STThemeColor>,
7999    #[cfg(feature = "wml-styling")]
8000    #[serde(rename = "@w:themeTint")]
8001    #[serde(default, skip_serializing_if = "Option::is_none")]
8002    pub theme_tint: Option<STUcharHexNumber>,
8003    #[cfg(feature = "wml-styling")]
8004    #[serde(rename = "@w:themeShade")]
8005    #[serde(default, skip_serializing_if = "Option::is_none")]
8006    pub theme_shade: Option<STUcharHexNumber>,
8007    #[cfg(feature = "wml-drawings")]
8008    #[serde(rename = "drawing")]
8009    #[serde(default, skip_serializing_if = "Option::is_none")]
8010    pub drawing: Option<Box<CTDrawing>>,
8011    /// Unknown attributes captured for roundtrip fidelity.
8012    #[cfg(feature = "extra-attrs")]
8013    #[serde(skip)]
8014    #[cfg(feature = "extra-attrs")]
8015    #[serde(default)]
8016    #[cfg(feature = "extra-attrs")]
8017    pub extra_attrs: std::collections::HashMap<String, String>,
8018    /// Unknown child elements captured for roundtrip fidelity.
8019    #[cfg(feature = "extra-children")]
8020    #[serde(skip)]
8021    #[cfg(feature = "extra-children")]
8022    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8023}
8024
8025#[derive(Debug, Clone, Serialize, Deserialize)]
8026pub struct CTRel {
8027    #[serde(rename = "@r:id")]
8028    pub id: STRelationshipId,
8029    /// Unknown attributes captured for roundtrip fidelity.
8030    #[cfg(feature = "extra-attrs")]
8031    #[serde(skip)]
8032    #[cfg(feature = "extra-attrs")]
8033    #[serde(default)]
8034    #[cfg(feature = "extra-attrs")]
8035    pub extra_attrs: std::collections::HashMap<String, String>,
8036}
8037
8038#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8039pub struct CTObject {
8040    #[cfg(feature = "wml-drawings")]
8041    #[serde(rename = "@w:dxaOrig")]
8042    #[serde(default, skip_serializing_if = "Option::is_none")]
8043    pub dxa_orig: Option<STTwipsMeasure>,
8044    #[cfg(feature = "wml-drawings")]
8045    #[serde(rename = "@w:dyaOrig")]
8046    #[serde(default, skip_serializing_if = "Option::is_none")]
8047    pub dya_orig: Option<STTwipsMeasure>,
8048    #[cfg(feature = "wml-drawings")]
8049    #[serde(rename = "drawing")]
8050    #[serde(default, skip_serializing_if = "Option::is_none")]
8051    pub drawing: Option<Box<CTDrawing>>,
8052    #[cfg(feature = "wml-drawings")]
8053    #[serde(rename = "control")]
8054    #[serde(default, skip_serializing_if = "Option::is_none")]
8055    pub control: Option<Box<CTControl>>,
8056    #[cfg(feature = "wml-drawings")]
8057    #[serde(rename = "objectLink")]
8058    #[serde(default, skip_serializing_if = "Option::is_none")]
8059    pub object_link: Option<Box<CTObjectLink>>,
8060    #[cfg(feature = "wml-drawings")]
8061    #[serde(rename = "objectEmbed")]
8062    #[serde(default, skip_serializing_if = "Option::is_none")]
8063    pub object_embed: Option<Box<CTObjectEmbed>>,
8064    #[cfg(feature = "wml-drawings")]
8065    #[serde(rename = "movie")]
8066    #[serde(default, skip_serializing_if = "Option::is_none")]
8067    pub movie: Option<Box<CTRel>>,
8068    /// Unknown attributes captured for roundtrip fidelity.
8069    #[cfg(feature = "extra-attrs")]
8070    #[serde(skip)]
8071    #[cfg(feature = "extra-attrs")]
8072    #[serde(default)]
8073    #[cfg(feature = "extra-attrs")]
8074    pub extra_attrs: std::collections::HashMap<String, String>,
8075    /// Unknown child elements captured for roundtrip fidelity.
8076    #[cfg(feature = "extra-children")]
8077    #[serde(skip)]
8078    #[cfg(feature = "extra-children")]
8079    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8080}
8081
8082#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8083pub struct CTPicture {
8084    #[cfg(feature = "wml-drawings")]
8085    #[serde(rename = "movie")]
8086    #[serde(default, skip_serializing_if = "Option::is_none")]
8087    pub movie: Option<Box<CTRel>>,
8088    #[cfg(feature = "wml-drawings")]
8089    #[serde(rename = "control")]
8090    #[serde(default, skip_serializing_if = "Option::is_none")]
8091    pub control: Option<Box<CTControl>>,
8092    /// Unknown child elements captured for roundtrip fidelity.
8093    #[cfg(feature = "extra-children")]
8094    #[serde(skip)]
8095    #[cfg(feature = "extra-children")]
8096    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8097}
8098
8099#[derive(Debug, Clone, Serialize, Deserialize)]
8100pub struct CTObjectEmbed {
8101    #[cfg(feature = "wml-drawings")]
8102    #[serde(rename = "@w:drawAspect")]
8103    #[serde(default, skip_serializing_if = "Option::is_none")]
8104    pub draw_aspect: Option<STObjectDrawAspect>,
8105    #[cfg(feature = "wml-drawings")]
8106    #[serde(rename = "@r:id")]
8107    pub id: STRelationshipId,
8108    #[cfg(feature = "wml-drawings")]
8109    #[serde(rename = "@w:progId")]
8110    #[serde(default, skip_serializing_if = "Option::is_none")]
8111    pub prog_id: Option<STString>,
8112    #[cfg(feature = "wml-drawings")]
8113    #[serde(rename = "@w:shapeId")]
8114    #[serde(default, skip_serializing_if = "Option::is_none")]
8115    pub shape_id: Option<STString>,
8116    #[cfg(feature = "wml-drawings")]
8117    #[serde(rename = "@w:fieldCodes")]
8118    #[serde(default, skip_serializing_if = "Option::is_none")]
8119    pub field_codes: Option<STString>,
8120    /// Unknown attributes captured for roundtrip fidelity.
8121    #[cfg(feature = "extra-attrs")]
8122    #[serde(skip)]
8123    #[cfg(feature = "extra-attrs")]
8124    #[serde(default)]
8125    #[cfg(feature = "extra-attrs")]
8126    pub extra_attrs: std::collections::HashMap<String, String>,
8127}
8128
8129#[derive(Debug, Clone, Serialize, Deserialize)]
8130pub struct CTObjectLink {
8131    #[cfg(feature = "wml-drawings")]
8132    #[serde(rename = "@w:drawAspect")]
8133    #[serde(default, skip_serializing_if = "Option::is_none")]
8134    pub draw_aspect: Option<STObjectDrawAspect>,
8135    #[cfg(feature = "wml-drawings")]
8136    #[serde(rename = "@r:id")]
8137    pub id: STRelationshipId,
8138    #[cfg(feature = "wml-drawings")]
8139    #[serde(rename = "@w:progId")]
8140    #[serde(default, skip_serializing_if = "Option::is_none")]
8141    pub prog_id: Option<STString>,
8142    #[cfg(feature = "wml-drawings")]
8143    #[serde(rename = "@w:shapeId")]
8144    #[serde(default, skip_serializing_if = "Option::is_none")]
8145    pub shape_id: Option<STString>,
8146    #[cfg(feature = "wml-drawings")]
8147    #[serde(rename = "@w:fieldCodes")]
8148    #[serde(default, skip_serializing_if = "Option::is_none")]
8149    pub field_codes: Option<STString>,
8150    #[cfg(feature = "wml-drawings")]
8151    #[serde(rename = "@w:updateMode")]
8152    pub update_mode: STObjectUpdateMode,
8153    #[cfg(feature = "wml-drawings")]
8154    #[serde(rename = "@w:lockedField")]
8155    #[serde(default, skip_serializing_if = "Option::is_none")]
8156    pub locked_field: Option<OnOff>,
8157    /// Unknown attributes captured for roundtrip fidelity.
8158    #[cfg(feature = "extra-attrs")]
8159    #[serde(skip)]
8160    #[cfg(feature = "extra-attrs")]
8161    #[serde(default)]
8162    #[cfg(feature = "extra-attrs")]
8163    pub extra_attrs: std::collections::HashMap<String, String>,
8164}
8165
8166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8167pub struct CTDrawing {
8168    /// Unknown child elements captured for roundtrip fidelity.
8169    #[cfg(feature = "extra-children")]
8170    #[serde(skip)]
8171    #[cfg(feature = "extra-children")]
8172    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8173}
8174
8175#[derive(Debug, Clone, Serialize, Deserialize)]
8176pub struct CTSimpleField {
8177    #[serde(rename = "@w:instr")]
8178    pub instr: STString,
8179    #[cfg(feature = "wml-fields")]
8180    #[serde(rename = "@w:fldLock")]
8181    #[serde(default, skip_serializing_if = "Option::is_none")]
8182    pub fld_lock: Option<OnOff>,
8183    #[cfg(feature = "wml-fields")]
8184    #[serde(rename = "@w:dirty")]
8185    #[serde(default, skip_serializing_if = "Option::is_none")]
8186    pub dirty: Option<OnOff>,
8187    #[cfg(feature = "wml-fields")]
8188    #[serde(rename = "fldData")]
8189    #[serde(default, skip_serializing_if = "Option::is_none")]
8190    pub fld_data: Option<Box<Text>>,
8191    #[serde(skip)]
8192    #[serde(default)]
8193    pub paragraph_content: Vec<ParagraphContent>,
8194    /// Unknown attributes captured for roundtrip fidelity.
8195    #[cfg(feature = "extra-attrs")]
8196    #[serde(skip)]
8197    #[cfg(feature = "extra-attrs")]
8198    #[serde(default)]
8199    #[cfg(feature = "extra-attrs")]
8200    pub extra_attrs: std::collections::HashMap<String, String>,
8201    /// Unknown child elements captured for roundtrip fidelity.
8202    #[cfg(feature = "extra-children")]
8203    #[serde(skip)]
8204    #[cfg(feature = "extra-children")]
8205    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8206}
8207
8208#[derive(Debug, Clone, Serialize, Deserialize)]
8209pub struct CTFFTextType {
8210    #[serde(rename = "@w:val")]
8211    pub value: STFFTextType,
8212    /// Unknown attributes captured for roundtrip fidelity.
8213    #[cfg(feature = "extra-attrs")]
8214    #[serde(skip)]
8215    #[cfg(feature = "extra-attrs")]
8216    #[serde(default)]
8217    #[cfg(feature = "extra-attrs")]
8218    pub extra_attrs: std::collections::HashMap<String, String>,
8219}
8220
8221#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8222pub struct FFNameElement {
8223    #[serde(rename = "@w:val")]
8224    #[serde(default, skip_serializing_if = "Option::is_none")]
8225    pub value: Option<STFFName>,
8226    /// Unknown attributes captured for roundtrip fidelity.
8227    #[cfg(feature = "extra-attrs")]
8228    #[serde(skip)]
8229    #[cfg(feature = "extra-attrs")]
8230    #[serde(default)]
8231    #[cfg(feature = "extra-attrs")]
8232    pub extra_attrs: std::collections::HashMap<String, String>,
8233}
8234
8235#[derive(Debug, Clone, Serialize, Deserialize)]
8236pub struct CTFldChar {
8237    #[serde(rename = "@w:fldCharType")]
8238    pub fld_char_type: STFldCharType,
8239    #[cfg(feature = "wml-fields")]
8240    #[serde(rename = "@w:fldLock")]
8241    #[serde(default, skip_serializing_if = "Option::is_none")]
8242    pub fld_lock: Option<OnOff>,
8243    #[cfg(feature = "wml-fields")]
8244    #[serde(rename = "@w:dirty")]
8245    #[serde(default, skip_serializing_if = "Option::is_none")]
8246    pub dirty: Option<OnOff>,
8247    #[cfg(feature = "wml-fields")]
8248    #[serde(rename = "fldData")]
8249    #[serde(default, skip_serializing_if = "Option::is_none")]
8250    pub fld_data: Option<Box<Text>>,
8251    #[cfg(feature = "wml-fields")]
8252    #[serde(rename = "ffData")]
8253    #[serde(default, skip_serializing_if = "Option::is_none")]
8254    pub ff_data: Option<Box<CTFFData>>,
8255    #[cfg(feature = "wml-track-changes")]
8256    #[serde(rename = "numberingChange")]
8257    #[serde(default, skip_serializing_if = "Option::is_none")]
8258    pub numbering_change: Option<Box<CTTrackChangeNumbering>>,
8259    /// Unknown attributes captured for roundtrip fidelity.
8260    #[cfg(feature = "extra-attrs")]
8261    #[serde(skip)]
8262    #[cfg(feature = "extra-attrs")]
8263    #[serde(default)]
8264    #[cfg(feature = "extra-attrs")]
8265    pub extra_attrs: std::collections::HashMap<String, String>,
8266    /// Unknown child elements captured for roundtrip fidelity.
8267    #[cfg(feature = "extra-children")]
8268    #[serde(skip)]
8269    #[cfg(feature = "extra-children")]
8270    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8271}
8272
8273#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8274pub struct Hyperlink {
8275    #[cfg(feature = "wml-hyperlinks")]
8276    #[serde(rename = "@w:tgtFrame")]
8277    #[serde(default, skip_serializing_if = "Option::is_none")]
8278    pub tgt_frame: Option<STString>,
8279    #[cfg(feature = "wml-hyperlinks")]
8280    #[serde(rename = "@w:tooltip")]
8281    #[serde(default, skip_serializing_if = "Option::is_none")]
8282    pub tooltip: Option<STString>,
8283    #[cfg(feature = "wml-hyperlinks")]
8284    #[serde(rename = "@w:docLocation")]
8285    #[serde(default, skip_serializing_if = "Option::is_none")]
8286    pub doc_location: Option<STString>,
8287    #[cfg(feature = "wml-hyperlinks")]
8288    #[serde(rename = "@w:history")]
8289    #[serde(default, skip_serializing_if = "Option::is_none")]
8290    pub history: Option<OnOff>,
8291    #[cfg(feature = "wml-hyperlinks")]
8292    #[serde(rename = "@w:anchor")]
8293    #[serde(default, skip_serializing_if = "Option::is_none")]
8294    pub anchor: Option<STString>,
8295    #[cfg(feature = "wml-hyperlinks")]
8296    #[serde(rename = "@r:id")]
8297    #[serde(default, skip_serializing_if = "Option::is_none")]
8298    pub id: Option<STRelationshipId>,
8299    #[serde(skip)]
8300    #[serde(default)]
8301    pub paragraph_content: Vec<ParagraphContent>,
8302    /// Unknown attributes captured for roundtrip fidelity.
8303    #[cfg(feature = "extra-attrs")]
8304    #[serde(skip)]
8305    #[cfg(feature = "extra-attrs")]
8306    #[serde(default)]
8307    #[cfg(feature = "extra-attrs")]
8308    pub extra_attrs: std::collections::HashMap<String, String>,
8309    /// Unknown child elements captured for roundtrip fidelity.
8310    #[cfg(feature = "extra-children")]
8311    #[serde(skip)]
8312    #[cfg(feature = "extra-children")]
8313    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8314}
8315
8316#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8317pub struct CTFFData {
8318    #[cfg(feature = "wml-fields")]
8319    #[serde(rename = "name")]
8320    #[serde(default, skip_serializing_if = "Vec::is_empty")]
8321    pub name: Vec<FFNameElement>,
8322    #[cfg(feature = "wml-fields")]
8323    #[serde(rename = "label")]
8324    #[serde(default, skip_serializing_if = "Option::is_none")]
8325    pub label: Option<Box<CTDecimalNumber>>,
8326    #[cfg(feature = "wml-fields")]
8327    #[serde(rename = "tabIndex")]
8328    #[serde(default, skip_serializing_if = "Option::is_none")]
8329    pub tab_index: Option<Box<UnsignedDecimalNumberElement>>,
8330    #[cfg(feature = "wml-fields")]
8331    #[serde(rename = "enabled")]
8332    #[serde(default, skip_serializing_if = "Vec::is_empty")]
8333    pub enabled: Vec<OnOffElement>,
8334    #[cfg(feature = "wml-fields")]
8335    #[serde(rename = "calcOnExit")]
8336    #[serde(default, skip_serializing_if = "Vec::is_empty")]
8337    pub calc_on_exit: Vec<OnOffElement>,
8338    #[cfg(feature = "wml-fields")]
8339    #[serde(rename = "entryMacro")]
8340    #[serde(default, skip_serializing_if = "Option::is_none")]
8341    pub entry_macro: Option<Box<MacroNameElement>>,
8342    #[cfg(feature = "wml-fields")]
8343    #[serde(rename = "exitMacro")]
8344    #[serde(default, skip_serializing_if = "Option::is_none")]
8345    pub exit_macro: Option<Box<MacroNameElement>>,
8346    #[cfg(feature = "wml-fields")]
8347    #[serde(rename = "helpText")]
8348    #[serde(default, skip_serializing_if = "Option::is_none")]
8349    pub help_text: Option<Box<CTFFHelpText>>,
8350    #[cfg(feature = "wml-fields")]
8351    #[serde(rename = "statusText")]
8352    #[serde(default, skip_serializing_if = "Option::is_none")]
8353    pub status_text: Option<Box<CTFFStatusText>>,
8354    /// Unknown child elements captured for roundtrip fidelity.
8355    #[cfg(feature = "extra-children")]
8356    #[serde(skip)]
8357    #[cfg(feature = "extra-children")]
8358    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8359}
8360
8361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8362pub struct CTFFHelpText {
8363    #[serde(rename = "@w:type")]
8364    #[serde(default, skip_serializing_if = "Option::is_none")]
8365    pub r#type: Option<STInfoTextType>,
8366    #[serde(rename = "@w:val")]
8367    #[serde(default, skip_serializing_if = "Option::is_none")]
8368    pub value: Option<STFFHelpTextVal>,
8369    /// Unknown attributes captured for roundtrip fidelity.
8370    #[cfg(feature = "extra-attrs")]
8371    #[serde(skip)]
8372    #[cfg(feature = "extra-attrs")]
8373    #[serde(default)]
8374    #[cfg(feature = "extra-attrs")]
8375    pub extra_attrs: std::collections::HashMap<String, String>,
8376}
8377
8378#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8379pub struct CTFFStatusText {
8380    #[serde(rename = "@w:type")]
8381    #[serde(default, skip_serializing_if = "Option::is_none")]
8382    pub r#type: Option<STInfoTextType>,
8383    #[serde(rename = "@w:val")]
8384    #[serde(default, skip_serializing_if = "Option::is_none")]
8385    pub value: Option<STFFStatusTextVal>,
8386    /// Unknown attributes captured for roundtrip fidelity.
8387    #[cfg(feature = "extra-attrs")]
8388    #[serde(skip)]
8389    #[cfg(feature = "extra-attrs")]
8390    #[serde(default)]
8391    #[cfg(feature = "extra-attrs")]
8392    pub extra_attrs: std::collections::HashMap<String, String>,
8393}
8394
8395#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8396pub struct CTFFCheckBox {
8397    #[cfg(feature = "wml-fields")]
8398    #[serde(rename = "size")]
8399    #[serde(default, skip_serializing_if = "Option::is_none")]
8400    pub size: Option<Box<HpsMeasureElement>>,
8401    #[cfg(feature = "wml-fields")]
8402    #[serde(rename = "sizeAuto")]
8403    #[serde(default, skip_serializing_if = "Option::is_none")]
8404    pub size_auto: Option<Box<OnOffElement>>,
8405    #[cfg(feature = "wml-fields")]
8406    #[serde(rename = "default")]
8407    #[serde(default, skip_serializing_if = "Option::is_none")]
8408    pub default: Option<Box<OnOffElement>>,
8409    #[cfg(feature = "wml-fields")]
8410    #[serde(rename = "checked")]
8411    #[serde(default, skip_serializing_if = "Option::is_none")]
8412    pub checked: Option<Box<OnOffElement>>,
8413    /// Unknown child elements captured for roundtrip fidelity.
8414    #[cfg(feature = "extra-children")]
8415    #[serde(skip)]
8416    #[cfg(feature = "extra-children")]
8417    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8418}
8419
8420#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8421pub struct CTFFDDList {
8422    #[cfg(feature = "wml-fields")]
8423    #[serde(rename = "result")]
8424    #[serde(default, skip_serializing_if = "Option::is_none")]
8425    pub result: Option<Box<CTDecimalNumber>>,
8426    #[cfg(feature = "wml-fields")]
8427    #[serde(rename = "default")]
8428    #[serde(default, skip_serializing_if = "Option::is_none")]
8429    pub default: Option<Box<CTDecimalNumber>>,
8430    #[cfg(feature = "wml-fields")]
8431    #[serde(rename = "listEntry")]
8432    #[serde(default, skip_serializing_if = "Vec::is_empty")]
8433    pub list_entry: Vec<CTString>,
8434    /// Unknown child elements captured for roundtrip fidelity.
8435    #[cfg(feature = "extra-children")]
8436    #[serde(skip)]
8437    #[cfg(feature = "extra-children")]
8438    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8439}
8440
8441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8442pub struct CTFFTextInput {
8443    #[cfg(feature = "wml-fields")]
8444    #[serde(rename = "type")]
8445    #[serde(default, skip_serializing_if = "Option::is_none")]
8446    pub r#type: Option<Box<CTFFTextType>>,
8447    #[cfg(feature = "wml-fields")]
8448    #[serde(rename = "default")]
8449    #[serde(default, skip_serializing_if = "Option::is_none")]
8450    pub default: Option<Box<CTString>>,
8451    #[cfg(feature = "wml-fields")]
8452    #[serde(rename = "maxLength")]
8453    #[serde(default, skip_serializing_if = "Option::is_none")]
8454    pub max_length: Option<Box<CTDecimalNumber>>,
8455    #[cfg(feature = "wml-fields")]
8456    #[serde(rename = "format")]
8457    #[serde(default, skip_serializing_if = "Option::is_none")]
8458    pub format: Option<Box<CTString>>,
8459    /// Unknown child elements captured for roundtrip fidelity.
8460    #[cfg(feature = "extra-children")]
8461    #[serde(skip)]
8462    #[cfg(feature = "extra-children")]
8463    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8464}
8465
8466#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8467pub struct CTSectType {
8468    #[serde(rename = "@w:val")]
8469    #[serde(default, skip_serializing_if = "Option::is_none")]
8470    pub value: Option<STSectionMark>,
8471    /// Unknown attributes captured for roundtrip fidelity.
8472    #[cfg(feature = "extra-attrs")]
8473    #[serde(skip)]
8474    #[cfg(feature = "extra-attrs")]
8475    #[serde(default)]
8476    #[cfg(feature = "extra-attrs")]
8477    pub extra_attrs: std::collections::HashMap<String, String>,
8478}
8479
8480#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8481pub struct CTPaperSource {
8482    #[cfg(feature = "wml-layout")]
8483    #[serde(rename = "@w:first")]
8484    #[serde(default, skip_serializing_if = "Option::is_none")]
8485    pub first: Option<STDecimalNumber>,
8486    #[cfg(feature = "wml-layout")]
8487    #[serde(rename = "@w:other")]
8488    #[serde(default, skip_serializing_if = "Option::is_none")]
8489    pub other: Option<STDecimalNumber>,
8490    /// Unknown attributes captured for roundtrip fidelity.
8491    #[cfg(feature = "extra-attrs")]
8492    #[serde(skip)]
8493    #[cfg(feature = "extra-attrs")]
8494    #[serde(default)]
8495    #[cfg(feature = "extra-attrs")]
8496    pub extra_attrs: std::collections::HashMap<String, String>,
8497}
8498
8499#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8500pub struct PageSize {
8501    #[cfg(feature = "wml-layout")]
8502    #[serde(rename = "@w:w")]
8503    #[serde(default, skip_serializing_if = "Option::is_none")]
8504    pub width: Option<STTwipsMeasure>,
8505    #[cfg(feature = "wml-layout")]
8506    #[serde(rename = "@w:h")]
8507    #[serde(default, skip_serializing_if = "Option::is_none")]
8508    pub height: Option<STTwipsMeasure>,
8509    #[cfg(feature = "wml-layout")]
8510    #[serde(rename = "@w:orient")]
8511    #[serde(default, skip_serializing_if = "Option::is_none")]
8512    pub orient: Option<STPageOrientation>,
8513    #[cfg(feature = "wml-layout")]
8514    #[serde(rename = "@w:code")]
8515    #[serde(default, skip_serializing_if = "Option::is_none")]
8516    pub code: Option<STDecimalNumber>,
8517    /// Unknown attributes captured for roundtrip fidelity.
8518    #[cfg(feature = "extra-attrs")]
8519    #[serde(skip)]
8520    #[cfg(feature = "extra-attrs")]
8521    #[serde(default)]
8522    #[cfg(feature = "extra-attrs")]
8523    pub extra_attrs: std::collections::HashMap<String, String>,
8524}
8525
8526#[derive(Debug, Clone, Serialize, Deserialize)]
8527pub struct PageMargins {
8528    #[cfg(feature = "wml-layout")]
8529    #[serde(rename = "@w:top")]
8530    pub top: STSignedTwipsMeasure,
8531    #[cfg(feature = "wml-layout")]
8532    #[serde(rename = "@w:right")]
8533    pub right: STTwipsMeasure,
8534    #[cfg(feature = "wml-layout")]
8535    #[serde(rename = "@w:bottom")]
8536    pub bottom: STSignedTwipsMeasure,
8537    #[cfg(feature = "wml-layout")]
8538    #[serde(rename = "@w:left")]
8539    pub left: STTwipsMeasure,
8540    #[cfg(feature = "wml-layout")]
8541    #[serde(rename = "@w:header")]
8542    pub header: STTwipsMeasure,
8543    #[cfg(feature = "wml-layout")]
8544    #[serde(rename = "@w:footer")]
8545    pub footer: STTwipsMeasure,
8546    #[cfg(feature = "wml-layout")]
8547    #[serde(rename = "@w:gutter")]
8548    pub gutter: STTwipsMeasure,
8549    /// Unknown attributes captured for roundtrip fidelity.
8550    #[cfg(feature = "extra-attrs")]
8551    #[serde(skip)]
8552    #[cfg(feature = "extra-attrs")]
8553    #[serde(default)]
8554    #[cfg(feature = "extra-attrs")]
8555    pub extra_attrs: std::collections::HashMap<String, String>,
8556}
8557
8558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8559pub struct CTPageBorders {
8560    #[cfg(feature = "wml-layout")]
8561    #[serde(rename = "@w:zOrder")]
8562    #[serde(default, skip_serializing_if = "Option::is_none")]
8563    pub z_order: Option<STPageBorderZOrder>,
8564    #[cfg(feature = "wml-layout")]
8565    #[serde(rename = "@w:display")]
8566    #[serde(default, skip_serializing_if = "Option::is_none")]
8567    pub display: Option<STPageBorderDisplay>,
8568    #[cfg(feature = "wml-layout")]
8569    #[serde(rename = "@w:offsetFrom")]
8570    #[serde(default, skip_serializing_if = "Option::is_none")]
8571    pub offset_from: Option<STPageBorderOffset>,
8572    #[cfg(feature = "wml-layout")]
8573    #[serde(rename = "top")]
8574    #[serde(default, skip_serializing_if = "Option::is_none")]
8575    pub top: Option<Box<CTTopPageBorder>>,
8576    #[cfg(feature = "wml-layout")]
8577    #[serde(rename = "left")]
8578    #[serde(default, skip_serializing_if = "Option::is_none")]
8579    pub left: Option<Box<CTPageBorder>>,
8580    #[cfg(feature = "wml-layout")]
8581    #[serde(rename = "bottom")]
8582    #[serde(default, skip_serializing_if = "Option::is_none")]
8583    pub bottom: Option<Box<CTBottomPageBorder>>,
8584    #[cfg(feature = "wml-layout")]
8585    #[serde(rename = "right")]
8586    #[serde(default, skip_serializing_if = "Option::is_none")]
8587    pub right: Option<Box<CTPageBorder>>,
8588    /// Unknown attributes captured for roundtrip fidelity.
8589    #[cfg(feature = "extra-attrs")]
8590    #[serde(skip)]
8591    #[cfg(feature = "extra-attrs")]
8592    #[serde(default)]
8593    #[cfg(feature = "extra-attrs")]
8594    pub extra_attrs: std::collections::HashMap<String, String>,
8595    /// Unknown child elements captured for roundtrip fidelity.
8596    #[cfg(feature = "extra-children")]
8597    #[serde(skip)]
8598    #[cfg(feature = "extra-children")]
8599    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8600}
8601
8602#[derive(Debug, Clone, Serialize, Deserialize)]
8603pub struct CTPageBorder {
8604    #[serde(rename = "@w:val")]
8605    pub value: STBorder,
8606    #[serde(rename = "@w:color")]
8607    #[serde(default, skip_serializing_if = "Option::is_none")]
8608    pub color: Option<STHexColor>,
8609    #[serde(rename = "@w:themeColor")]
8610    #[serde(default, skip_serializing_if = "Option::is_none")]
8611    pub theme_color: Option<STThemeColor>,
8612    #[serde(rename = "@w:themeTint")]
8613    #[serde(default, skip_serializing_if = "Option::is_none")]
8614    pub theme_tint: Option<STUcharHexNumber>,
8615    #[serde(rename = "@w:themeShade")]
8616    #[serde(default, skip_serializing_if = "Option::is_none")]
8617    pub theme_shade: Option<STUcharHexNumber>,
8618    #[serde(rename = "@w:sz")]
8619    #[serde(default, skip_serializing_if = "Option::is_none")]
8620    pub size: Option<STEighthPointMeasure>,
8621    #[serde(rename = "@w:space")]
8622    #[serde(default, skip_serializing_if = "Option::is_none")]
8623    pub space: Option<STPointMeasure>,
8624    #[serde(rename = "@w:shadow")]
8625    #[serde(default, skip_serializing_if = "Option::is_none")]
8626    pub shadow: Option<OnOff>,
8627    #[serde(rename = "@w:frame")]
8628    #[serde(default, skip_serializing_if = "Option::is_none")]
8629    pub frame: Option<OnOff>,
8630    #[cfg(feature = "wml-layout")]
8631    #[serde(rename = "@r:id")]
8632    #[serde(default, skip_serializing_if = "Option::is_none")]
8633    pub id: Option<STRelationshipId>,
8634    /// Unknown attributes captured for roundtrip fidelity.
8635    #[cfg(feature = "extra-attrs")]
8636    #[serde(skip)]
8637    #[cfg(feature = "extra-attrs")]
8638    #[serde(default)]
8639    #[cfg(feature = "extra-attrs")]
8640    pub extra_attrs: std::collections::HashMap<String, String>,
8641}
8642
8643#[derive(Debug, Clone, Serialize, Deserialize)]
8644pub struct CTBottomPageBorder {
8645    #[serde(rename = "@w:val")]
8646    pub value: STBorder,
8647    #[serde(rename = "@w:color")]
8648    #[serde(default, skip_serializing_if = "Option::is_none")]
8649    pub color: Option<STHexColor>,
8650    #[serde(rename = "@w:themeColor")]
8651    #[serde(default, skip_serializing_if = "Option::is_none")]
8652    pub theme_color: Option<STThemeColor>,
8653    #[serde(rename = "@w:themeTint")]
8654    #[serde(default, skip_serializing_if = "Option::is_none")]
8655    pub theme_tint: Option<STUcharHexNumber>,
8656    #[serde(rename = "@w:themeShade")]
8657    #[serde(default, skip_serializing_if = "Option::is_none")]
8658    pub theme_shade: Option<STUcharHexNumber>,
8659    #[serde(rename = "@w:sz")]
8660    #[serde(default, skip_serializing_if = "Option::is_none")]
8661    pub size: Option<STEighthPointMeasure>,
8662    #[serde(rename = "@w:space")]
8663    #[serde(default, skip_serializing_if = "Option::is_none")]
8664    pub space: Option<STPointMeasure>,
8665    #[serde(rename = "@w:shadow")]
8666    #[serde(default, skip_serializing_if = "Option::is_none")]
8667    pub shadow: Option<OnOff>,
8668    #[serde(rename = "@w:frame")]
8669    #[serde(default, skip_serializing_if = "Option::is_none")]
8670    pub frame: Option<OnOff>,
8671    #[serde(rename = "@r:id")]
8672    #[serde(default, skip_serializing_if = "Option::is_none")]
8673    pub id: Option<STRelationshipId>,
8674    #[cfg(feature = "wml-layout")]
8675    #[serde(rename = "@r:bottomLeft")]
8676    #[serde(default, skip_serializing_if = "Option::is_none")]
8677    pub bottom_left: Option<STRelationshipId>,
8678    #[cfg(feature = "wml-layout")]
8679    #[serde(rename = "@r:bottomRight")]
8680    #[serde(default, skip_serializing_if = "Option::is_none")]
8681    pub bottom_right: Option<STRelationshipId>,
8682    /// Unknown attributes captured for roundtrip fidelity.
8683    #[cfg(feature = "extra-attrs")]
8684    #[serde(skip)]
8685    #[cfg(feature = "extra-attrs")]
8686    #[serde(default)]
8687    #[cfg(feature = "extra-attrs")]
8688    pub extra_attrs: std::collections::HashMap<String, String>,
8689}
8690
8691#[derive(Debug, Clone, Serialize, Deserialize)]
8692pub struct CTTopPageBorder {
8693    #[serde(rename = "@w:val")]
8694    pub value: STBorder,
8695    #[serde(rename = "@w:color")]
8696    #[serde(default, skip_serializing_if = "Option::is_none")]
8697    pub color: Option<STHexColor>,
8698    #[serde(rename = "@w:themeColor")]
8699    #[serde(default, skip_serializing_if = "Option::is_none")]
8700    pub theme_color: Option<STThemeColor>,
8701    #[serde(rename = "@w:themeTint")]
8702    #[serde(default, skip_serializing_if = "Option::is_none")]
8703    pub theme_tint: Option<STUcharHexNumber>,
8704    #[serde(rename = "@w:themeShade")]
8705    #[serde(default, skip_serializing_if = "Option::is_none")]
8706    pub theme_shade: Option<STUcharHexNumber>,
8707    #[serde(rename = "@w:sz")]
8708    #[serde(default, skip_serializing_if = "Option::is_none")]
8709    pub size: Option<STEighthPointMeasure>,
8710    #[serde(rename = "@w:space")]
8711    #[serde(default, skip_serializing_if = "Option::is_none")]
8712    pub space: Option<STPointMeasure>,
8713    #[serde(rename = "@w:shadow")]
8714    #[serde(default, skip_serializing_if = "Option::is_none")]
8715    pub shadow: Option<OnOff>,
8716    #[serde(rename = "@w:frame")]
8717    #[serde(default, skip_serializing_if = "Option::is_none")]
8718    pub frame: Option<OnOff>,
8719    #[serde(rename = "@r:id")]
8720    #[serde(default, skip_serializing_if = "Option::is_none")]
8721    pub id: Option<STRelationshipId>,
8722    #[cfg(feature = "wml-layout")]
8723    #[serde(rename = "@r:topLeft")]
8724    #[serde(default, skip_serializing_if = "Option::is_none")]
8725    pub top_left: Option<STRelationshipId>,
8726    #[cfg(feature = "wml-layout")]
8727    #[serde(rename = "@r:topRight")]
8728    #[serde(default, skip_serializing_if = "Option::is_none")]
8729    pub top_right: Option<STRelationshipId>,
8730    /// Unknown attributes captured for roundtrip fidelity.
8731    #[cfg(feature = "extra-attrs")]
8732    #[serde(skip)]
8733    #[cfg(feature = "extra-attrs")]
8734    #[serde(default)]
8735    #[cfg(feature = "extra-attrs")]
8736    pub extra_attrs: std::collections::HashMap<String, String>,
8737}
8738
8739#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8740pub struct CTLineNumber {
8741    #[cfg(feature = "wml-layout")]
8742    #[serde(rename = "@w:countBy")]
8743    #[serde(default, skip_serializing_if = "Option::is_none")]
8744    pub count_by: Option<STDecimalNumber>,
8745    #[cfg(feature = "wml-layout")]
8746    #[serde(rename = "@w:start")]
8747    #[serde(default, skip_serializing_if = "Option::is_none")]
8748    pub start: Option<STDecimalNumber>,
8749    #[cfg(feature = "wml-layout")]
8750    #[serde(rename = "@w:distance")]
8751    #[serde(default, skip_serializing_if = "Option::is_none")]
8752    pub distance: Option<STTwipsMeasure>,
8753    #[cfg(feature = "wml-layout")]
8754    #[serde(rename = "@w:restart")]
8755    #[serde(default, skip_serializing_if = "Option::is_none")]
8756    pub restart: Option<STLineNumberRestart>,
8757    /// Unknown attributes captured for roundtrip fidelity.
8758    #[cfg(feature = "extra-attrs")]
8759    #[serde(skip)]
8760    #[cfg(feature = "extra-attrs")]
8761    #[serde(default)]
8762    #[cfg(feature = "extra-attrs")]
8763    pub extra_attrs: std::collections::HashMap<String, String>,
8764}
8765
8766#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8767pub struct CTPageNumber {
8768    #[cfg(feature = "wml-layout")]
8769    #[serde(rename = "@w:fmt")]
8770    #[serde(default, skip_serializing_if = "Option::is_none")]
8771    pub fmt: Option<STNumberFormat>,
8772    #[cfg(feature = "wml-layout")]
8773    #[serde(rename = "@w:start")]
8774    #[serde(default, skip_serializing_if = "Option::is_none")]
8775    pub start: Option<STDecimalNumber>,
8776    #[cfg(feature = "wml-layout")]
8777    #[serde(rename = "@w:chapStyle")]
8778    #[serde(default, skip_serializing_if = "Option::is_none")]
8779    pub chap_style: Option<STDecimalNumber>,
8780    #[cfg(feature = "wml-layout")]
8781    #[serde(rename = "@w:chapSep")]
8782    #[serde(default, skip_serializing_if = "Option::is_none")]
8783    pub chap_sep: Option<STChapterSep>,
8784    /// Unknown attributes captured for roundtrip fidelity.
8785    #[cfg(feature = "extra-attrs")]
8786    #[serde(skip)]
8787    #[cfg(feature = "extra-attrs")]
8788    #[serde(default)]
8789    #[cfg(feature = "extra-attrs")]
8790    pub extra_attrs: std::collections::HashMap<String, String>,
8791}
8792
8793#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8794pub struct CTColumn {
8795    #[cfg(feature = "wml-layout")]
8796    #[serde(rename = "@w:w")]
8797    #[serde(default, skip_serializing_if = "Option::is_none")]
8798    pub width: Option<STTwipsMeasure>,
8799    #[cfg(feature = "wml-layout")]
8800    #[serde(rename = "@w:space")]
8801    #[serde(default, skip_serializing_if = "Option::is_none")]
8802    pub space: Option<STTwipsMeasure>,
8803    /// Unknown attributes captured for roundtrip fidelity.
8804    #[cfg(feature = "extra-attrs")]
8805    #[serde(skip)]
8806    #[cfg(feature = "extra-attrs")]
8807    #[serde(default)]
8808    #[cfg(feature = "extra-attrs")]
8809    pub extra_attrs: std::collections::HashMap<String, String>,
8810}
8811
8812#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8813pub struct Columns {
8814    #[cfg(feature = "wml-layout")]
8815    #[serde(rename = "@w:equalWidth")]
8816    #[serde(default, skip_serializing_if = "Option::is_none")]
8817    pub equal_width: Option<OnOff>,
8818    #[cfg(feature = "wml-layout")]
8819    #[serde(rename = "@w:space")]
8820    #[serde(default, skip_serializing_if = "Option::is_none")]
8821    pub space: Option<STTwipsMeasure>,
8822    #[cfg(feature = "wml-layout")]
8823    #[serde(rename = "@w:num")]
8824    #[serde(default, skip_serializing_if = "Option::is_none")]
8825    pub num: Option<STDecimalNumber>,
8826    #[cfg(feature = "wml-layout")]
8827    #[serde(rename = "@w:sep")]
8828    #[serde(default, skip_serializing_if = "Option::is_none")]
8829    pub sep: Option<OnOff>,
8830    #[cfg(feature = "wml-layout")]
8831    #[serde(rename = "col")]
8832    #[serde(default, skip_serializing_if = "Vec::is_empty")]
8833    pub col: Vec<CTColumn>,
8834    /// Unknown attributes captured for roundtrip fidelity.
8835    #[cfg(feature = "extra-attrs")]
8836    #[serde(skip)]
8837    #[cfg(feature = "extra-attrs")]
8838    #[serde(default)]
8839    #[cfg(feature = "extra-attrs")]
8840    pub extra_attrs: std::collections::HashMap<String, String>,
8841    /// Unknown child elements captured for roundtrip fidelity.
8842    #[cfg(feature = "extra-children")]
8843    #[serde(skip)]
8844    #[cfg(feature = "extra-children")]
8845    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8846}
8847
8848#[derive(Debug, Clone, Serialize, Deserialize)]
8849pub struct CTVerticalJc {
8850    #[serde(rename = "@w:val")]
8851    pub value: STVerticalJc,
8852    /// Unknown attributes captured for roundtrip fidelity.
8853    #[cfg(feature = "extra-attrs")]
8854    #[serde(skip)]
8855    #[cfg(feature = "extra-attrs")]
8856    #[serde(default)]
8857    #[cfg(feature = "extra-attrs")]
8858    pub extra_attrs: std::collections::HashMap<String, String>,
8859}
8860
8861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8862pub struct DocumentGrid {
8863    #[cfg(feature = "wml-layout")]
8864    #[serde(rename = "@w:type")]
8865    #[serde(default, skip_serializing_if = "Option::is_none")]
8866    pub r#type: Option<STDocGrid>,
8867    #[cfg(feature = "wml-layout")]
8868    #[serde(rename = "@w:linePitch")]
8869    #[serde(default, skip_serializing_if = "Option::is_none")]
8870    pub line_pitch: Option<STDecimalNumber>,
8871    #[cfg(feature = "wml-layout")]
8872    #[serde(rename = "@w:charSpace")]
8873    #[serde(default, skip_serializing_if = "Option::is_none")]
8874    pub char_space: Option<STDecimalNumber>,
8875    /// Unknown attributes captured for roundtrip fidelity.
8876    #[cfg(feature = "extra-attrs")]
8877    #[serde(skip)]
8878    #[cfg(feature = "extra-attrs")]
8879    #[serde(default)]
8880    #[cfg(feature = "extra-attrs")]
8881    pub extra_attrs: std::collections::HashMap<String, String>,
8882}
8883
8884#[derive(Debug, Clone, Serialize, Deserialize)]
8885pub struct HeaderFooterReference {
8886    #[serde(rename = "@r:id")]
8887    pub id: STRelationshipId,
8888    #[serde(rename = "@w:type")]
8889    pub r#type: STHdrFtr,
8890    /// Unknown attributes captured for roundtrip fidelity.
8891    #[cfg(feature = "extra-attrs")]
8892    #[serde(skip)]
8893    #[cfg(feature = "extra-attrs")]
8894    #[serde(default)]
8895    #[cfg(feature = "extra-attrs")]
8896    pub extra_attrs: std::collections::HashMap<String, String>,
8897}
8898
8899#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8900pub struct HeaderFooter {
8901    #[serde(skip)]
8902    #[serde(default)]
8903    pub block_content: Vec<BlockContent>,
8904    /// Unknown child elements captured for roundtrip fidelity.
8905    #[cfg(feature = "extra-children")]
8906    #[serde(skip)]
8907    #[cfg(feature = "extra-children")]
8908    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8909}
8910
8911#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8912pub struct EGSectPrContents {
8913    #[serde(rename = "footnotePr")]
8914    #[serde(default, skip_serializing_if = "Option::is_none")]
8915    pub footnote_pr: Option<Box<CTFtnProps>>,
8916    #[serde(rename = "endnotePr")]
8917    #[serde(default, skip_serializing_if = "Option::is_none")]
8918    pub endnote_pr: Option<Box<CTEdnProps>>,
8919    #[serde(rename = "type")]
8920    #[serde(default, skip_serializing_if = "Option::is_none")]
8921    pub r#type: Option<Box<CTSectType>>,
8922    #[serde(rename = "pgSz")]
8923    #[serde(default, skip_serializing_if = "Option::is_none")]
8924    pub pg_sz: Option<Box<PageSize>>,
8925    #[serde(rename = "pgMar")]
8926    #[serde(default, skip_serializing_if = "Option::is_none")]
8927    pub pg_mar: Option<Box<PageMargins>>,
8928    #[serde(rename = "paperSrc")]
8929    #[serde(default, skip_serializing_if = "Option::is_none")]
8930    pub paper_src: Option<Box<CTPaperSource>>,
8931    #[serde(rename = "pgBorders")]
8932    #[serde(default, skip_serializing_if = "Option::is_none")]
8933    pub pg_borders: Option<Box<CTPageBorders>>,
8934    #[serde(rename = "lnNumType")]
8935    #[serde(default, skip_serializing_if = "Option::is_none")]
8936    pub ln_num_type: Option<Box<CTLineNumber>>,
8937    #[serde(rename = "pgNumType")]
8938    #[serde(default, skip_serializing_if = "Option::is_none")]
8939    pub pg_num_type: Option<Box<CTPageNumber>>,
8940    #[serde(rename = "cols")]
8941    #[serde(default, skip_serializing_if = "Option::is_none")]
8942    pub cols: Option<Box<Columns>>,
8943    #[serde(rename = "formProt")]
8944    #[serde(default, skip_serializing_if = "Option::is_none")]
8945    pub form_prot: Option<Box<OnOffElement>>,
8946    #[serde(rename = "vAlign")]
8947    #[serde(default, skip_serializing_if = "Option::is_none")]
8948    pub v_align: Option<Box<CTVerticalJc>>,
8949    #[serde(rename = "noEndnote")]
8950    #[serde(default, skip_serializing_if = "Option::is_none")]
8951    pub no_endnote: Option<Box<OnOffElement>>,
8952    #[serde(rename = "titlePg")]
8953    #[serde(default, skip_serializing_if = "Option::is_none")]
8954    pub title_pg: Option<Box<OnOffElement>>,
8955    #[serde(rename = "textDirection")]
8956    #[serde(default, skip_serializing_if = "Option::is_none")]
8957    pub text_direction: Option<Box<CTTextDirection>>,
8958    #[serde(rename = "bidi")]
8959    #[serde(default, skip_serializing_if = "Option::is_none")]
8960    pub bidi: Option<Box<OnOffElement>>,
8961    #[serde(rename = "rtlGutter")]
8962    #[serde(default, skip_serializing_if = "Option::is_none")]
8963    pub rtl_gutter: Option<Box<OnOffElement>>,
8964    #[serde(rename = "docGrid")]
8965    #[serde(default, skip_serializing_if = "Option::is_none")]
8966    pub doc_grid: Option<Box<DocumentGrid>>,
8967    #[serde(rename = "printerSettings")]
8968    #[serde(default, skip_serializing_if = "Option::is_none")]
8969    pub printer_settings: Option<Box<CTRel>>,
8970    /// Unknown child elements captured for roundtrip fidelity.
8971    #[cfg(feature = "extra-children")]
8972    #[serde(skip)]
8973    #[cfg(feature = "extra-children")]
8974    pub extra_children: Vec<ooxml_xml::PositionedNode>,
8975}
8976
8977#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8978pub struct WAGSectPrAttributes {
8979    #[serde(rename = "@w:rsidRPr")]
8980    #[serde(default, skip_serializing_if = "Option::is_none")]
8981    pub rsid_r_pr: Option<STLongHexNumber>,
8982    #[serde(rename = "@w:rsidDel")]
8983    #[serde(default, skip_serializing_if = "Option::is_none")]
8984    pub rsid_del: Option<STLongHexNumber>,
8985    #[serde(rename = "@w:rsidR")]
8986    #[serde(default, skip_serializing_if = "Option::is_none")]
8987    pub rsid_r: Option<STLongHexNumber>,
8988    #[serde(rename = "@w:rsidSect")]
8989    #[serde(default, skip_serializing_if = "Option::is_none")]
8990    pub rsid_sect: Option<STLongHexNumber>,
8991    /// Unknown attributes captured for roundtrip fidelity.
8992    #[cfg(feature = "extra-attrs")]
8993    #[serde(skip)]
8994    #[cfg(feature = "extra-attrs")]
8995    #[serde(default)]
8996    #[cfg(feature = "extra-attrs")]
8997    pub extra_attrs: std::collections::HashMap<String, String>,
8998}
8999
9000#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9001pub struct CTSectPrBase {
9002    #[cfg(feature = "wml-track-changes")]
9003    #[serde(rename = "@w:rsidRPr")]
9004    #[serde(default, skip_serializing_if = "Option::is_none")]
9005    pub rsid_r_pr: Option<STLongHexNumber>,
9006    #[cfg(feature = "wml-track-changes")]
9007    #[serde(rename = "@w:rsidDel")]
9008    #[serde(default, skip_serializing_if = "Option::is_none")]
9009    pub rsid_del: Option<STLongHexNumber>,
9010    #[cfg(feature = "wml-track-changes")]
9011    #[serde(rename = "@w:rsidR")]
9012    #[serde(default, skip_serializing_if = "Option::is_none")]
9013    pub rsid_r: Option<STLongHexNumber>,
9014    #[cfg(feature = "wml-track-changes")]
9015    #[serde(rename = "@w:rsidSect")]
9016    #[serde(default, skip_serializing_if = "Option::is_none")]
9017    pub rsid_sect: Option<STLongHexNumber>,
9018    #[serde(rename = "footnotePr")]
9019    #[serde(default, skip_serializing_if = "Option::is_none")]
9020    pub footnote_pr: Option<Box<CTFtnProps>>,
9021    #[serde(rename = "endnotePr")]
9022    #[serde(default, skip_serializing_if = "Option::is_none")]
9023    pub endnote_pr: Option<Box<CTEdnProps>>,
9024    #[serde(rename = "type")]
9025    #[serde(default, skip_serializing_if = "Option::is_none")]
9026    pub r#type: Option<Box<CTSectType>>,
9027    #[serde(rename = "pgSz")]
9028    #[serde(default, skip_serializing_if = "Option::is_none")]
9029    pub pg_sz: Option<Box<PageSize>>,
9030    #[serde(rename = "pgMar")]
9031    #[serde(default, skip_serializing_if = "Option::is_none")]
9032    pub pg_mar: Option<Box<PageMargins>>,
9033    #[serde(rename = "paperSrc")]
9034    #[serde(default, skip_serializing_if = "Option::is_none")]
9035    pub paper_src: Option<Box<CTPaperSource>>,
9036    #[serde(rename = "pgBorders")]
9037    #[serde(default, skip_serializing_if = "Option::is_none")]
9038    pub pg_borders: Option<Box<CTPageBorders>>,
9039    #[serde(rename = "lnNumType")]
9040    #[serde(default, skip_serializing_if = "Option::is_none")]
9041    pub ln_num_type: Option<Box<CTLineNumber>>,
9042    #[serde(rename = "pgNumType")]
9043    #[serde(default, skip_serializing_if = "Option::is_none")]
9044    pub pg_num_type: Option<Box<CTPageNumber>>,
9045    #[serde(rename = "cols")]
9046    #[serde(default, skip_serializing_if = "Option::is_none")]
9047    pub cols: Option<Box<Columns>>,
9048    #[serde(rename = "formProt")]
9049    #[serde(default, skip_serializing_if = "Option::is_none")]
9050    pub form_prot: Option<Box<OnOffElement>>,
9051    #[serde(rename = "vAlign")]
9052    #[serde(default, skip_serializing_if = "Option::is_none")]
9053    pub v_align: Option<Box<CTVerticalJc>>,
9054    #[serde(rename = "noEndnote")]
9055    #[serde(default, skip_serializing_if = "Option::is_none")]
9056    pub no_endnote: Option<Box<OnOffElement>>,
9057    #[serde(rename = "titlePg")]
9058    #[serde(default, skip_serializing_if = "Option::is_none")]
9059    pub title_pg: Option<Box<OnOffElement>>,
9060    #[serde(rename = "textDirection")]
9061    #[serde(default, skip_serializing_if = "Option::is_none")]
9062    pub text_direction: Option<Box<CTTextDirection>>,
9063    #[serde(rename = "bidi")]
9064    #[serde(default, skip_serializing_if = "Option::is_none")]
9065    pub bidi: Option<Box<OnOffElement>>,
9066    #[serde(rename = "rtlGutter")]
9067    #[serde(default, skip_serializing_if = "Option::is_none")]
9068    pub rtl_gutter: Option<Box<OnOffElement>>,
9069    #[serde(rename = "docGrid")]
9070    #[serde(default, skip_serializing_if = "Option::is_none")]
9071    pub doc_grid: Option<Box<DocumentGrid>>,
9072    #[serde(rename = "printerSettings")]
9073    #[serde(default, skip_serializing_if = "Option::is_none")]
9074    pub printer_settings: Option<Box<CTRel>>,
9075    /// Unknown attributes captured for roundtrip fidelity.
9076    #[cfg(feature = "extra-attrs")]
9077    #[serde(skip)]
9078    #[cfg(feature = "extra-attrs")]
9079    #[serde(default)]
9080    #[cfg(feature = "extra-attrs")]
9081    pub extra_attrs: std::collections::HashMap<String, String>,
9082    /// Unknown child elements captured for roundtrip fidelity.
9083    #[cfg(feature = "extra-children")]
9084    #[serde(skip)]
9085    #[cfg(feature = "extra-children")]
9086    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9087}
9088
9089#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9090pub struct SectionProperties {
9091    #[cfg(feature = "wml-track-changes")]
9092    #[serde(rename = "@w:rsidRPr")]
9093    #[serde(default, skip_serializing_if = "Option::is_none")]
9094    pub rsid_r_pr: Option<STLongHexNumber>,
9095    #[cfg(feature = "wml-track-changes")]
9096    #[serde(rename = "@w:rsidDel")]
9097    #[serde(default, skip_serializing_if = "Option::is_none")]
9098    pub rsid_del: Option<STLongHexNumber>,
9099    #[cfg(feature = "wml-track-changes")]
9100    #[serde(rename = "@w:rsidR")]
9101    #[serde(default, skip_serializing_if = "Option::is_none")]
9102    pub rsid_r: Option<STLongHexNumber>,
9103    #[cfg(feature = "wml-track-changes")]
9104    #[serde(rename = "@w:rsidSect")]
9105    #[serde(default, skip_serializing_if = "Option::is_none")]
9106    pub rsid_sect: Option<STLongHexNumber>,
9107    #[serde(skip)]
9108    #[serde(default)]
9109    pub header_footer_refs: Vec<HeaderFooterRef>,
9110    #[cfg(feature = "wml-comments")]
9111    #[serde(rename = "footnotePr")]
9112    #[serde(default, skip_serializing_if = "Option::is_none")]
9113    pub footnote_pr: Option<Box<CTFtnProps>>,
9114    #[cfg(feature = "wml-comments")]
9115    #[serde(rename = "endnotePr")]
9116    #[serde(default, skip_serializing_if = "Option::is_none")]
9117    pub endnote_pr: Option<Box<CTEdnProps>>,
9118    #[cfg(feature = "wml-layout")]
9119    #[serde(rename = "type")]
9120    #[serde(default, skip_serializing_if = "Option::is_none")]
9121    pub r#type: Option<Box<CTSectType>>,
9122    #[cfg(feature = "wml-layout")]
9123    #[serde(rename = "pgSz")]
9124    #[serde(default, skip_serializing_if = "Option::is_none")]
9125    pub pg_sz: Option<Box<PageSize>>,
9126    #[cfg(feature = "wml-layout")]
9127    #[serde(rename = "pgMar")]
9128    #[serde(default, skip_serializing_if = "Option::is_none")]
9129    pub pg_mar: Option<Box<PageMargins>>,
9130    #[cfg(feature = "wml-layout")]
9131    #[serde(rename = "paperSrc")]
9132    #[serde(default, skip_serializing_if = "Option::is_none")]
9133    pub paper_src: Option<Box<CTPaperSource>>,
9134    #[cfg(feature = "wml-layout")]
9135    #[serde(rename = "pgBorders")]
9136    #[serde(default, skip_serializing_if = "Option::is_none")]
9137    pub pg_borders: Option<Box<CTPageBorders>>,
9138    #[cfg(feature = "wml-layout")]
9139    #[serde(rename = "lnNumType")]
9140    #[serde(default, skip_serializing_if = "Option::is_none")]
9141    pub ln_num_type: Option<Box<CTLineNumber>>,
9142    #[cfg(feature = "wml-layout")]
9143    #[serde(rename = "pgNumType")]
9144    #[serde(default, skip_serializing_if = "Option::is_none")]
9145    pub pg_num_type: Option<Box<CTPageNumber>>,
9146    #[cfg(feature = "wml-layout")]
9147    #[serde(rename = "cols")]
9148    #[serde(default, skip_serializing_if = "Option::is_none")]
9149    pub cols: Option<Box<Columns>>,
9150    #[cfg(feature = "wml-layout")]
9151    #[serde(rename = "formProt")]
9152    #[serde(default, skip_serializing_if = "Option::is_none")]
9153    pub form_prot: Option<Box<OnOffElement>>,
9154    #[cfg(feature = "wml-layout")]
9155    #[serde(rename = "vAlign")]
9156    #[serde(default, skip_serializing_if = "Option::is_none")]
9157    pub v_align: Option<Box<CTVerticalJc>>,
9158    #[cfg(feature = "wml-comments")]
9159    #[serde(rename = "noEndnote")]
9160    #[serde(default, skip_serializing_if = "Option::is_none")]
9161    pub no_endnote: Option<Box<OnOffElement>>,
9162    #[cfg(feature = "wml-layout")]
9163    #[serde(rename = "titlePg")]
9164    #[serde(default, skip_serializing_if = "Option::is_none")]
9165    pub title_pg: Option<Box<OnOffElement>>,
9166    #[cfg(feature = "wml-layout")]
9167    #[serde(rename = "textDirection")]
9168    #[serde(default, skip_serializing_if = "Option::is_none")]
9169    pub text_direction: Option<Box<CTTextDirection>>,
9170    #[cfg(feature = "wml-layout")]
9171    #[serde(rename = "bidi")]
9172    #[serde(default, skip_serializing_if = "Option::is_none")]
9173    pub bidi: Option<Box<OnOffElement>>,
9174    #[cfg(feature = "wml-layout")]
9175    #[serde(rename = "rtlGutter")]
9176    #[serde(default, skip_serializing_if = "Option::is_none")]
9177    pub rtl_gutter: Option<Box<OnOffElement>>,
9178    #[cfg(feature = "wml-layout")]
9179    #[serde(rename = "docGrid")]
9180    #[serde(default, skip_serializing_if = "Option::is_none")]
9181    pub doc_grid: Option<Box<DocumentGrid>>,
9182    #[cfg(feature = "wml-layout")]
9183    #[serde(rename = "printerSettings")]
9184    #[serde(default, skip_serializing_if = "Option::is_none")]
9185    pub printer_settings: Option<Box<CTRel>>,
9186    #[cfg(feature = "wml-track-changes")]
9187    #[serde(rename = "sectPrChange")]
9188    #[serde(default, skip_serializing_if = "Option::is_none")]
9189    pub sect_pr_change: Option<Box<CTSectPrChange>>,
9190    /// Unknown attributes captured for roundtrip fidelity.
9191    #[cfg(feature = "extra-attrs")]
9192    #[serde(skip)]
9193    #[cfg(feature = "extra-attrs")]
9194    #[serde(default)]
9195    #[cfg(feature = "extra-attrs")]
9196    pub extra_attrs: std::collections::HashMap<String, String>,
9197    /// Unknown child elements captured for roundtrip fidelity.
9198    #[cfg(feature = "extra-children")]
9199    #[serde(skip)]
9200    #[cfg(feature = "extra-children")]
9201    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9202}
9203
9204#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9205pub struct CTBr {
9206    #[serde(rename = "@w:type")]
9207    #[serde(default, skip_serializing_if = "Option::is_none")]
9208    pub r#type: Option<STBrType>,
9209    #[serde(rename = "@w:clear")]
9210    #[serde(default, skip_serializing_if = "Option::is_none")]
9211    pub clear: Option<STBrClear>,
9212    /// Unknown attributes captured for roundtrip fidelity.
9213    #[cfg(feature = "extra-attrs")]
9214    #[serde(skip)]
9215    #[cfg(feature = "extra-attrs")]
9216    #[serde(default)]
9217    #[cfg(feature = "extra-attrs")]
9218    pub extra_attrs: std::collections::HashMap<String, String>,
9219}
9220
9221#[derive(Debug, Clone, Serialize, Deserialize)]
9222pub struct CTPTab {
9223    #[serde(rename = "@w:alignment")]
9224    pub alignment: STPTabAlignment,
9225    #[serde(rename = "@w:relativeTo")]
9226    pub relative_to: STPTabRelativeTo,
9227    #[cfg(feature = "wml-styling")]
9228    #[serde(rename = "@w:leader")]
9229    pub leader: STPTabLeader,
9230    /// Unknown attributes captured for roundtrip fidelity.
9231    #[cfg(feature = "extra-attrs")]
9232    #[serde(skip)]
9233    #[cfg(feature = "extra-attrs")]
9234    #[serde(default)]
9235    #[cfg(feature = "extra-attrs")]
9236    pub extra_attrs: std::collections::HashMap<String, String>,
9237}
9238
9239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9240pub struct CTSym {
9241    #[cfg(feature = "wml-styling")]
9242    #[serde(rename = "@w:font")]
9243    #[serde(default, skip_serializing_if = "Option::is_none")]
9244    pub font: Option<STString>,
9245    #[serde(rename = "@w:char")]
9246    #[serde(default, skip_serializing_if = "Option::is_none")]
9247    pub char: Option<STShortHexNumber>,
9248    /// Unknown attributes captured for roundtrip fidelity.
9249    #[cfg(feature = "extra-attrs")]
9250    #[serde(skip)]
9251    #[cfg(feature = "extra-attrs")]
9252    #[serde(default)]
9253    #[cfg(feature = "extra-attrs")]
9254    pub extra_attrs: std::collections::HashMap<String, String>,
9255}
9256
9257#[derive(Debug, Clone, Serialize, Deserialize)]
9258pub struct CTProofErr {
9259    #[serde(rename = "@w:type")]
9260    pub r#type: STProofErr,
9261    /// Unknown attributes captured for roundtrip fidelity.
9262    #[cfg(feature = "extra-attrs")]
9263    #[serde(skip)]
9264    #[cfg(feature = "extra-attrs")]
9265    #[serde(default)]
9266    #[cfg(feature = "extra-attrs")]
9267    pub extra_attrs: std::collections::HashMap<String, String>,
9268}
9269
9270#[derive(Debug, Clone, Serialize, Deserialize)]
9271pub struct CTPerm {
9272    #[serde(rename = "@w:id")]
9273    pub id: STString,
9274    #[cfg(feature = "wml-settings")]
9275    #[serde(rename = "@w:displacedByCustomXml")]
9276    #[serde(default, skip_serializing_if = "Option::is_none")]
9277    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
9278    /// Unknown attributes captured for roundtrip fidelity.
9279    #[cfg(feature = "extra-attrs")]
9280    #[serde(skip)]
9281    #[cfg(feature = "extra-attrs")]
9282    #[serde(default)]
9283    #[cfg(feature = "extra-attrs")]
9284    pub extra_attrs: std::collections::HashMap<String, String>,
9285}
9286
9287#[derive(Debug, Clone, Serialize, Deserialize)]
9288pub struct CTPermStart {
9289    #[serde(rename = "@w:id")]
9290    pub id: STString,
9291    #[serde(rename = "@w:displacedByCustomXml")]
9292    #[serde(default, skip_serializing_if = "Option::is_none")]
9293    pub displaced_by_custom_xml: Option<STDisplacedByCustomXml>,
9294    #[cfg(feature = "wml-settings")]
9295    #[serde(rename = "@w:edGrp")]
9296    #[serde(default, skip_serializing_if = "Option::is_none")]
9297    pub ed_grp: Option<STEdGrp>,
9298    #[cfg(feature = "wml-settings")]
9299    #[serde(rename = "@w:ed")]
9300    #[serde(default, skip_serializing_if = "Option::is_none")]
9301    pub ed: Option<STString>,
9302    #[cfg(feature = "wml-tables")]
9303    #[serde(rename = "@w:colFirst")]
9304    #[serde(default, skip_serializing_if = "Option::is_none")]
9305    pub col_first: Option<STDecimalNumber>,
9306    #[cfg(feature = "wml-tables")]
9307    #[serde(rename = "@w:colLast")]
9308    #[serde(default, skip_serializing_if = "Option::is_none")]
9309    pub col_last: Option<STDecimalNumber>,
9310    /// Unknown attributes captured for roundtrip fidelity.
9311    #[cfg(feature = "extra-attrs")]
9312    #[serde(skip)]
9313    #[cfg(feature = "extra-attrs")]
9314    #[serde(default)]
9315    #[cfg(feature = "extra-attrs")]
9316    pub extra_attrs: std::collections::HashMap<String, String>,
9317}
9318
9319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9320pub struct Text {
9321    #[serde(rename = "$text")]
9322    #[serde(default, skip_serializing_if = "Option::is_none")]
9323    pub text: Option<String>,
9324    /// Unknown child elements captured for roundtrip fidelity.
9325    #[cfg(feature = "extra-children")]
9326    #[serde(skip)]
9327    #[cfg(feature = "extra-children")]
9328    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9329}
9330
9331#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9332pub struct Run {
9333    #[cfg(feature = "wml-track-changes")]
9334    #[serde(rename = "@w:rsidRPr")]
9335    #[serde(default, skip_serializing_if = "Option::is_none")]
9336    pub rsid_r_pr: Option<STLongHexNumber>,
9337    #[cfg(feature = "wml-track-changes")]
9338    #[serde(rename = "@w:rsidDel")]
9339    #[serde(default, skip_serializing_if = "Option::is_none")]
9340    pub rsid_del: Option<STLongHexNumber>,
9341    #[cfg(feature = "wml-track-changes")]
9342    #[serde(rename = "@w:rsidR")]
9343    #[serde(default, skip_serializing_if = "Option::is_none")]
9344    pub rsid_r: Option<STLongHexNumber>,
9345    #[cfg(feature = "wml-styling")]
9346    #[serde(rename = "rPr")]
9347    #[serde(default, skip_serializing_if = "Option::is_none")]
9348    pub r_pr: Option<Box<RunProperties>>,
9349    #[serde(skip)]
9350    #[serde(default)]
9351    pub run_content: Vec<RunContent>,
9352    /// Unknown attributes captured for roundtrip fidelity.
9353    #[cfg(feature = "extra-attrs")]
9354    #[serde(skip)]
9355    #[cfg(feature = "extra-attrs")]
9356    #[serde(default)]
9357    #[cfg(feature = "extra-attrs")]
9358    pub extra_attrs: std::collections::HashMap<String, String>,
9359    /// Unknown child elements captured for roundtrip fidelity.
9360    #[cfg(feature = "extra-children")]
9361    #[serde(skip)]
9362    #[cfg(feature = "extra-children")]
9363    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9364}
9365
9366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9367pub struct Fonts {
9368    #[cfg(feature = "wml-styling")]
9369    #[serde(rename = "@w:hint")]
9370    #[serde(default, skip_serializing_if = "Option::is_none")]
9371    pub hint: Option<STHint>,
9372    #[cfg(feature = "wml-styling")]
9373    #[serde(rename = "@w:ascii")]
9374    #[serde(default, skip_serializing_if = "Option::is_none")]
9375    pub ascii: Option<STString>,
9376    #[cfg(feature = "wml-styling")]
9377    #[serde(rename = "@w:hAnsi")]
9378    #[serde(default, skip_serializing_if = "Option::is_none")]
9379    pub h_ansi: Option<STString>,
9380    #[cfg(feature = "wml-styling")]
9381    #[serde(rename = "@w:eastAsia")]
9382    #[serde(default, skip_serializing_if = "Option::is_none")]
9383    pub east_asia: Option<STString>,
9384    #[cfg(feature = "wml-styling")]
9385    #[serde(rename = "@w:cs")]
9386    #[serde(default, skip_serializing_if = "Option::is_none")]
9387    pub cs: Option<STString>,
9388    #[cfg(feature = "wml-styling")]
9389    #[serde(rename = "@w:asciiTheme")]
9390    #[serde(default, skip_serializing_if = "Option::is_none")]
9391    pub ascii_theme: Option<STTheme>,
9392    #[cfg(feature = "wml-styling")]
9393    #[serde(rename = "@w:hAnsiTheme")]
9394    #[serde(default, skip_serializing_if = "Option::is_none")]
9395    pub h_ansi_theme: Option<STTheme>,
9396    #[cfg(feature = "wml-styling")]
9397    #[serde(rename = "@w:eastAsiaTheme")]
9398    #[serde(default, skip_serializing_if = "Option::is_none")]
9399    pub east_asia_theme: Option<STTheme>,
9400    #[cfg(feature = "wml-styling")]
9401    #[serde(rename = "@w:cstheme")]
9402    #[serde(default, skip_serializing_if = "Option::is_none")]
9403    pub cstheme: Option<STTheme>,
9404    /// Unknown attributes captured for roundtrip fidelity.
9405    #[cfg(feature = "extra-attrs")]
9406    #[serde(skip)]
9407    #[cfg(feature = "extra-attrs")]
9408    #[serde(default)]
9409    #[cfg(feature = "extra-attrs")]
9410    pub extra_attrs: std::collections::HashMap<String, String>,
9411}
9412
9413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9414pub struct EGRPrBase {
9415    #[serde(rename = "rStyle")]
9416    #[serde(default, skip_serializing_if = "Option::is_none")]
9417    pub run_style: Option<Box<CTString>>,
9418    #[serde(rename = "rFonts")]
9419    #[serde(default, skip_serializing_if = "Option::is_none")]
9420    pub fonts: Option<Box<Fonts>>,
9421    #[serde(rename = "b")]
9422    #[serde(default, skip_serializing_if = "Option::is_none")]
9423    pub bold: Option<Box<OnOffElement>>,
9424    #[serde(rename = "bCs")]
9425    #[serde(default, skip_serializing_if = "Option::is_none")]
9426    pub b_cs: Option<Box<OnOffElement>>,
9427    #[serde(rename = "i")]
9428    #[serde(default, skip_serializing_if = "Option::is_none")]
9429    pub italic: Option<Box<OnOffElement>>,
9430    #[serde(rename = "iCs")]
9431    #[serde(default, skip_serializing_if = "Option::is_none")]
9432    pub i_cs: Option<Box<OnOffElement>>,
9433    #[serde(rename = "caps")]
9434    #[serde(default, skip_serializing_if = "Option::is_none")]
9435    pub caps: Option<Box<OnOffElement>>,
9436    #[serde(rename = "smallCaps")]
9437    #[serde(default, skip_serializing_if = "Option::is_none")]
9438    pub small_caps: Option<Box<OnOffElement>>,
9439    #[serde(rename = "strike")]
9440    #[serde(default, skip_serializing_if = "Option::is_none")]
9441    pub strikethrough: Option<Box<OnOffElement>>,
9442    #[serde(rename = "dstrike")]
9443    #[serde(default, skip_serializing_if = "Option::is_none")]
9444    pub dstrike: Option<Box<OnOffElement>>,
9445    #[serde(rename = "outline")]
9446    #[serde(default, skip_serializing_if = "Option::is_none")]
9447    pub outline: Option<Box<OnOffElement>>,
9448    #[serde(rename = "shadow")]
9449    #[serde(default, skip_serializing_if = "Option::is_none")]
9450    pub shadow: Option<Box<OnOffElement>>,
9451    #[serde(rename = "emboss")]
9452    #[serde(default, skip_serializing_if = "Option::is_none")]
9453    pub emboss: Option<Box<OnOffElement>>,
9454    #[serde(rename = "imprint")]
9455    #[serde(default, skip_serializing_if = "Option::is_none")]
9456    pub imprint: Option<Box<OnOffElement>>,
9457    #[serde(rename = "noProof")]
9458    #[serde(default, skip_serializing_if = "Option::is_none")]
9459    pub no_proof: Option<Box<OnOffElement>>,
9460    #[serde(rename = "snapToGrid")]
9461    #[serde(default, skip_serializing_if = "Option::is_none")]
9462    pub snap_to_grid: Option<Box<OnOffElement>>,
9463    #[serde(rename = "vanish")]
9464    #[serde(default, skip_serializing_if = "Option::is_none")]
9465    pub vanish: Option<Box<OnOffElement>>,
9466    #[serde(rename = "webHidden")]
9467    #[serde(default, skip_serializing_if = "Option::is_none")]
9468    pub web_hidden: Option<Box<OnOffElement>>,
9469    #[serde(rename = "color")]
9470    #[serde(default, skip_serializing_if = "Option::is_none")]
9471    pub color: Option<Box<CTColor>>,
9472    #[serde(rename = "spacing")]
9473    #[serde(default, skip_serializing_if = "Option::is_none")]
9474    pub spacing: Option<Box<SignedTwipsMeasureElement>>,
9475    #[serde(rename = "w")]
9476    #[serde(default, skip_serializing_if = "Option::is_none")]
9477    pub width: Option<Box<TextScaleElement>>,
9478    #[serde(rename = "kern")]
9479    #[serde(default, skip_serializing_if = "Option::is_none")]
9480    pub kern: Option<Box<HpsMeasureElement>>,
9481    #[serde(rename = "position")]
9482    #[serde(default, skip_serializing_if = "Option::is_none")]
9483    pub position: Option<Box<SignedHpsMeasureElement>>,
9484    #[serde(rename = "sz")]
9485    #[serde(default, skip_serializing_if = "Option::is_none")]
9486    pub size: Option<Box<HpsMeasureElement>>,
9487    #[serde(rename = "szCs")]
9488    #[serde(default, skip_serializing_if = "Option::is_none")]
9489    pub size_complex_script: Option<Box<HpsMeasureElement>>,
9490    #[serde(rename = "highlight")]
9491    #[serde(default, skip_serializing_if = "Option::is_none")]
9492    pub highlight: Option<Box<CTHighlight>>,
9493    #[serde(rename = "u")]
9494    #[serde(default, skip_serializing_if = "Option::is_none")]
9495    pub underline: Option<Box<CTUnderline>>,
9496    #[serde(rename = "effect")]
9497    #[serde(default, skip_serializing_if = "Option::is_none")]
9498    pub effect: Option<Box<CTTextEffect>>,
9499    #[serde(rename = "bdr")]
9500    #[serde(default, skip_serializing_if = "Option::is_none")]
9501    pub bdr: Option<Box<CTBorder>>,
9502    #[serde(rename = "shd")]
9503    #[serde(default, skip_serializing_if = "Option::is_none")]
9504    pub shading: Option<Box<CTShd>>,
9505    #[serde(rename = "fitText")]
9506    #[serde(default, skip_serializing_if = "Option::is_none")]
9507    pub fit_text: Option<Box<CTFitText>>,
9508    #[serde(rename = "vertAlign")]
9509    #[serde(default, skip_serializing_if = "Option::is_none")]
9510    pub vert_align: Option<Box<CTVerticalAlignRun>>,
9511    #[serde(rename = "rtl")]
9512    #[serde(default, skip_serializing_if = "Option::is_none")]
9513    pub rtl: Option<Box<OnOffElement>>,
9514    #[serde(rename = "cs")]
9515    #[serde(default, skip_serializing_if = "Option::is_none")]
9516    pub cs: Option<Box<OnOffElement>>,
9517    #[serde(rename = "em")]
9518    #[serde(default, skip_serializing_if = "Option::is_none")]
9519    pub em: Option<Box<CTEm>>,
9520    #[serde(rename = "lang")]
9521    #[serde(default, skip_serializing_if = "Option::is_none")]
9522    pub lang: Option<Box<LanguageElement>>,
9523    #[serde(rename = "eastAsianLayout")]
9524    #[serde(default, skip_serializing_if = "Option::is_none")]
9525    pub east_asian_layout: Option<Box<CTEastAsianLayout>>,
9526    #[serde(rename = "specVanish")]
9527    #[serde(default, skip_serializing_if = "Option::is_none")]
9528    pub spec_vanish: Option<Box<OnOffElement>>,
9529    #[serde(rename = "oMath")]
9530    #[serde(default, skip_serializing_if = "Option::is_none")]
9531    pub o_math: Option<Box<OnOffElement>>,
9532    /// Unknown child elements captured for roundtrip fidelity.
9533    #[cfg(feature = "extra-children")]
9534    #[serde(skip)]
9535    #[cfg(feature = "extra-children")]
9536    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9537}
9538
9539#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9540pub struct EGRPrContent {
9541    #[serde(rename = "rStyle")]
9542    #[serde(default, skip_serializing_if = "Option::is_none")]
9543    pub run_style: Option<Box<CTString>>,
9544    #[serde(rename = "rFonts")]
9545    #[serde(default, skip_serializing_if = "Option::is_none")]
9546    pub fonts: Option<Box<Fonts>>,
9547    #[serde(rename = "b")]
9548    #[serde(default, skip_serializing_if = "Option::is_none")]
9549    pub bold: Option<Box<OnOffElement>>,
9550    #[serde(rename = "bCs")]
9551    #[serde(default, skip_serializing_if = "Option::is_none")]
9552    pub b_cs: Option<Box<OnOffElement>>,
9553    #[serde(rename = "i")]
9554    #[serde(default, skip_serializing_if = "Option::is_none")]
9555    pub italic: Option<Box<OnOffElement>>,
9556    #[serde(rename = "iCs")]
9557    #[serde(default, skip_serializing_if = "Option::is_none")]
9558    pub i_cs: Option<Box<OnOffElement>>,
9559    #[serde(rename = "caps")]
9560    #[serde(default, skip_serializing_if = "Option::is_none")]
9561    pub caps: Option<Box<OnOffElement>>,
9562    #[serde(rename = "smallCaps")]
9563    #[serde(default, skip_serializing_if = "Option::is_none")]
9564    pub small_caps: Option<Box<OnOffElement>>,
9565    #[serde(rename = "strike")]
9566    #[serde(default, skip_serializing_if = "Option::is_none")]
9567    pub strikethrough: Option<Box<OnOffElement>>,
9568    #[serde(rename = "dstrike")]
9569    #[serde(default, skip_serializing_if = "Option::is_none")]
9570    pub dstrike: Option<Box<OnOffElement>>,
9571    #[serde(rename = "outline")]
9572    #[serde(default, skip_serializing_if = "Option::is_none")]
9573    pub outline: Option<Box<OnOffElement>>,
9574    #[serde(rename = "shadow")]
9575    #[serde(default, skip_serializing_if = "Option::is_none")]
9576    pub shadow: Option<Box<OnOffElement>>,
9577    #[serde(rename = "emboss")]
9578    #[serde(default, skip_serializing_if = "Option::is_none")]
9579    pub emboss: Option<Box<OnOffElement>>,
9580    #[serde(rename = "imprint")]
9581    #[serde(default, skip_serializing_if = "Option::is_none")]
9582    pub imprint: Option<Box<OnOffElement>>,
9583    #[serde(rename = "noProof")]
9584    #[serde(default, skip_serializing_if = "Option::is_none")]
9585    pub no_proof: Option<Box<OnOffElement>>,
9586    #[serde(rename = "snapToGrid")]
9587    #[serde(default, skip_serializing_if = "Option::is_none")]
9588    pub snap_to_grid: Option<Box<OnOffElement>>,
9589    #[serde(rename = "vanish")]
9590    #[serde(default, skip_serializing_if = "Option::is_none")]
9591    pub vanish: Option<Box<OnOffElement>>,
9592    #[serde(rename = "webHidden")]
9593    #[serde(default, skip_serializing_if = "Option::is_none")]
9594    pub web_hidden: Option<Box<OnOffElement>>,
9595    #[serde(rename = "color")]
9596    #[serde(default, skip_serializing_if = "Option::is_none")]
9597    pub color: Option<Box<CTColor>>,
9598    #[serde(rename = "spacing")]
9599    #[serde(default, skip_serializing_if = "Option::is_none")]
9600    pub spacing: Option<Box<SignedTwipsMeasureElement>>,
9601    #[serde(rename = "w")]
9602    #[serde(default, skip_serializing_if = "Option::is_none")]
9603    pub width: Option<Box<TextScaleElement>>,
9604    #[serde(rename = "kern")]
9605    #[serde(default, skip_serializing_if = "Option::is_none")]
9606    pub kern: Option<Box<HpsMeasureElement>>,
9607    #[serde(rename = "position")]
9608    #[serde(default, skip_serializing_if = "Option::is_none")]
9609    pub position: Option<Box<SignedHpsMeasureElement>>,
9610    #[serde(rename = "sz")]
9611    #[serde(default, skip_serializing_if = "Option::is_none")]
9612    pub size: Option<Box<HpsMeasureElement>>,
9613    #[serde(rename = "szCs")]
9614    #[serde(default, skip_serializing_if = "Option::is_none")]
9615    pub size_complex_script: Option<Box<HpsMeasureElement>>,
9616    #[serde(rename = "highlight")]
9617    #[serde(default, skip_serializing_if = "Option::is_none")]
9618    pub highlight: Option<Box<CTHighlight>>,
9619    #[serde(rename = "u")]
9620    #[serde(default, skip_serializing_if = "Option::is_none")]
9621    pub underline: Option<Box<CTUnderline>>,
9622    #[serde(rename = "effect")]
9623    #[serde(default, skip_serializing_if = "Option::is_none")]
9624    pub effect: Option<Box<CTTextEffect>>,
9625    #[serde(rename = "bdr")]
9626    #[serde(default, skip_serializing_if = "Option::is_none")]
9627    pub bdr: Option<Box<CTBorder>>,
9628    #[serde(rename = "shd")]
9629    #[serde(default, skip_serializing_if = "Option::is_none")]
9630    pub shading: Option<Box<CTShd>>,
9631    #[serde(rename = "fitText")]
9632    #[serde(default, skip_serializing_if = "Option::is_none")]
9633    pub fit_text: Option<Box<CTFitText>>,
9634    #[serde(rename = "vertAlign")]
9635    #[serde(default, skip_serializing_if = "Option::is_none")]
9636    pub vert_align: Option<Box<CTVerticalAlignRun>>,
9637    #[serde(rename = "rtl")]
9638    #[serde(default, skip_serializing_if = "Option::is_none")]
9639    pub rtl: Option<Box<OnOffElement>>,
9640    #[serde(rename = "cs")]
9641    #[serde(default, skip_serializing_if = "Option::is_none")]
9642    pub cs: Option<Box<OnOffElement>>,
9643    #[serde(rename = "em")]
9644    #[serde(default, skip_serializing_if = "Option::is_none")]
9645    pub em: Option<Box<CTEm>>,
9646    #[serde(rename = "lang")]
9647    #[serde(default, skip_serializing_if = "Option::is_none")]
9648    pub lang: Option<Box<LanguageElement>>,
9649    #[serde(rename = "eastAsianLayout")]
9650    #[serde(default, skip_serializing_if = "Option::is_none")]
9651    pub east_asian_layout: Option<Box<CTEastAsianLayout>>,
9652    #[serde(rename = "specVanish")]
9653    #[serde(default, skip_serializing_if = "Option::is_none")]
9654    pub spec_vanish: Option<Box<OnOffElement>>,
9655    #[serde(rename = "oMath")]
9656    #[serde(default, skip_serializing_if = "Option::is_none")]
9657    pub o_math: Option<Box<OnOffElement>>,
9658    #[serde(rename = "rPrChange")]
9659    #[serde(default, skip_serializing_if = "Option::is_none")]
9660    pub r_pr_change: Option<Box<CTRPrChange>>,
9661    /// Unknown child elements captured for roundtrip fidelity.
9662    #[cfg(feature = "extra-children")]
9663    #[serde(skip)]
9664    #[cfg(feature = "extra-children")]
9665    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9666}
9667
9668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9669pub struct RunProperties {
9670    #[serde(rename = "rStyle")]
9671    #[serde(default, skip_serializing_if = "Option::is_none")]
9672    pub run_style: Option<Box<CTString>>,
9673    #[cfg(feature = "wml-styling")]
9674    #[serde(rename = "rFonts")]
9675    #[serde(default, skip_serializing_if = "Option::is_none")]
9676    pub fonts: Option<Box<Fonts>>,
9677    #[cfg(feature = "wml-styling")]
9678    #[serde(rename = "b")]
9679    #[serde(default, skip_serializing_if = "Option::is_none")]
9680    pub bold: Option<Box<OnOffElement>>,
9681    #[cfg(feature = "wml-styling")]
9682    #[serde(rename = "bCs")]
9683    #[serde(default, skip_serializing_if = "Option::is_none")]
9684    pub b_cs: Option<Box<OnOffElement>>,
9685    #[cfg(feature = "wml-styling")]
9686    #[serde(rename = "i")]
9687    #[serde(default, skip_serializing_if = "Option::is_none")]
9688    pub italic: Option<Box<OnOffElement>>,
9689    #[cfg(feature = "wml-styling")]
9690    #[serde(rename = "iCs")]
9691    #[serde(default, skip_serializing_if = "Option::is_none")]
9692    pub i_cs: Option<Box<OnOffElement>>,
9693    #[cfg(feature = "wml-styling")]
9694    #[serde(rename = "caps")]
9695    #[serde(default, skip_serializing_if = "Option::is_none")]
9696    pub caps: Option<Box<OnOffElement>>,
9697    #[cfg(feature = "wml-styling")]
9698    #[serde(rename = "smallCaps")]
9699    #[serde(default, skip_serializing_if = "Option::is_none")]
9700    pub small_caps: Option<Box<OnOffElement>>,
9701    #[cfg(feature = "wml-styling")]
9702    #[serde(rename = "strike")]
9703    #[serde(default, skip_serializing_if = "Option::is_none")]
9704    pub strikethrough: Option<Box<OnOffElement>>,
9705    #[cfg(feature = "wml-styling")]
9706    #[serde(rename = "dstrike")]
9707    #[serde(default, skip_serializing_if = "Option::is_none")]
9708    pub dstrike: Option<Box<OnOffElement>>,
9709    #[cfg(feature = "wml-styling")]
9710    #[serde(rename = "outline")]
9711    #[serde(default, skip_serializing_if = "Option::is_none")]
9712    pub outline: Option<Box<OnOffElement>>,
9713    #[cfg(feature = "wml-styling")]
9714    #[serde(rename = "shadow")]
9715    #[serde(default, skip_serializing_if = "Option::is_none")]
9716    pub shadow: Option<Box<OnOffElement>>,
9717    #[cfg(feature = "wml-styling")]
9718    #[serde(rename = "emboss")]
9719    #[serde(default, skip_serializing_if = "Option::is_none")]
9720    pub emboss: Option<Box<OnOffElement>>,
9721    #[cfg(feature = "wml-styling")]
9722    #[serde(rename = "imprint")]
9723    #[serde(default, skip_serializing_if = "Option::is_none")]
9724    pub imprint: Option<Box<OnOffElement>>,
9725    #[cfg(feature = "wml-styling")]
9726    #[serde(rename = "noProof")]
9727    #[serde(default, skip_serializing_if = "Option::is_none")]
9728    pub no_proof: Option<Box<OnOffElement>>,
9729    #[cfg(feature = "wml-styling")]
9730    #[serde(rename = "snapToGrid")]
9731    #[serde(default, skip_serializing_if = "Option::is_none")]
9732    pub snap_to_grid: Option<Box<OnOffElement>>,
9733    #[cfg(feature = "wml-styling")]
9734    #[serde(rename = "vanish")]
9735    #[serde(default, skip_serializing_if = "Option::is_none")]
9736    pub vanish: Option<Box<OnOffElement>>,
9737    #[cfg(feature = "wml-styling")]
9738    #[serde(rename = "webHidden")]
9739    #[serde(default, skip_serializing_if = "Option::is_none")]
9740    pub web_hidden: Option<Box<OnOffElement>>,
9741    #[cfg(feature = "wml-styling")]
9742    #[serde(rename = "color")]
9743    #[serde(default, skip_serializing_if = "Option::is_none")]
9744    pub color: Option<Box<CTColor>>,
9745    #[cfg(feature = "wml-styling")]
9746    #[serde(rename = "spacing")]
9747    #[serde(default, skip_serializing_if = "Option::is_none")]
9748    pub spacing: Option<Box<SignedTwipsMeasureElement>>,
9749    #[cfg(feature = "wml-styling")]
9750    #[serde(rename = "w")]
9751    #[serde(default, skip_serializing_if = "Option::is_none")]
9752    pub width: Option<Box<TextScaleElement>>,
9753    #[cfg(feature = "wml-styling")]
9754    #[serde(rename = "kern")]
9755    #[serde(default, skip_serializing_if = "Option::is_none")]
9756    pub kern: Option<Box<HpsMeasureElement>>,
9757    #[cfg(feature = "wml-styling")]
9758    #[serde(rename = "position")]
9759    #[serde(default, skip_serializing_if = "Option::is_none")]
9760    pub position: Option<Box<SignedHpsMeasureElement>>,
9761    #[cfg(feature = "wml-styling")]
9762    #[serde(rename = "sz")]
9763    #[serde(default, skip_serializing_if = "Option::is_none")]
9764    pub size: Option<Box<HpsMeasureElement>>,
9765    #[cfg(feature = "wml-styling")]
9766    #[serde(rename = "szCs")]
9767    #[serde(default, skip_serializing_if = "Option::is_none")]
9768    pub size_complex_script: Option<Box<HpsMeasureElement>>,
9769    #[cfg(feature = "wml-styling")]
9770    #[serde(rename = "highlight")]
9771    #[serde(default, skip_serializing_if = "Option::is_none")]
9772    pub highlight: Option<Box<CTHighlight>>,
9773    #[cfg(feature = "wml-styling")]
9774    #[serde(rename = "u")]
9775    #[serde(default, skip_serializing_if = "Option::is_none")]
9776    pub underline: Option<Box<CTUnderline>>,
9777    #[cfg(feature = "wml-styling")]
9778    #[serde(rename = "effect")]
9779    #[serde(default, skip_serializing_if = "Option::is_none")]
9780    pub effect: Option<Box<CTTextEffect>>,
9781    #[cfg(feature = "wml-styling")]
9782    #[serde(rename = "bdr")]
9783    #[serde(default, skip_serializing_if = "Option::is_none")]
9784    pub bdr: Option<Box<CTBorder>>,
9785    #[cfg(feature = "wml-styling")]
9786    #[serde(rename = "shd")]
9787    #[serde(default, skip_serializing_if = "Option::is_none")]
9788    pub shading: Option<Box<CTShd>>,
9789    #[cfg(feature = "wml-styling")]
9790    #[serde(rename = "fitText")]
9791    #[serde(default, skip_serializing_if = "Option::is_none")]
9792    pub fit_text: Option<Box<CTFitText>>,
9793    #[cfg(feature = "wml-styling")]
9794    #[serde(rename = "vertAlign")]
9795    #[serde(default, skip_serializing_if = "Option::is_none")]
9796    pub vert_align: Option<Box<CTVerticalAlignRun>>,
9797    #[cfg(feature = "wml-styling")]
9798    #[serde(rename = "rtl")]
9799    #[serde(default, skip_serializing_if = "Option::is_none")]
9800    pub rtl: Option<Box<OnOffElement>>,
9801    #[cfg(feature = "wml-styling")]
9802    #[serde(rename = "cs")]
9803    #[serde(default, skip_serializing_if = "Option::is_none")]
9804    pub cs: Option<Box<OnOffElement>>,
9805    #[cfg(feature = "wml-styling")]
9806    #[serde(rename = "em")]
9807    #[serde(default, skip_serializing_if = "Option::is_none")]
9808    pub em: Option<Box<CTEm>>,
9809    #[cfg(feature = "wml-styling")]
9810    #[serde(rename = "lang")]
9811    #[serde(default, skip_serializing_if = "Option::is_none")]
9812    pub lang: Option<Box<LanguageElement>>,
9813    #[cfg(feature = "wml-styling")]
9814    #[serde(rename = "eastAsianLayout")]
9815    #[serde(default, skip_serializing_if = "Option::is_none")]
9816    pub east_asian_layout: Option<Box<CTEastAsianLayout>>,
9817    #[cfg(feature = "wml-styling")]
9818    #[serde(rename = "specVanish")]
9819    #[serde(default, skip_serializing_if = "Option::is_none")]
9820    pub spec_vanish: Option<Box<OnOffElement>>,
9821    #[cfg(feature = "wml-styling")]
9822    #[serde(rename = "oMath")]
9823    #[serde(default, skip_serializing_if = "Option::is_none")]
9824    pub o_math: Option<Box<OnOffElement>>,
9825    #[cfg(feature = "wml-track-changes")]
9826    #[serde(rename = "rPrChange")]
9827    #[serde(default, skip_serializing_if = "Option::is_none")]
9828    pub r_pr_change: Option<Box<CTRPrChange>>,
9829    /// Unknown child elements captured for roundtrip fidelity.
9830    #[cfg(feature = "extra-children")]
9831    #[serde(skip)]
9832    #[cfg(feature = "extra-children")]
9833    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9834}
9835
9836#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9837pub struct EGRPr {
9838    #[serde(rename = "rPr")]
9839    #[serde(default, skip_serializing_if = "Option::is_none")]
9840    pub r_pr: Option<Box<RunProperties>>,
9841    /// Unknown child elements captured for roundtrip fidelity.
9842    #[cfg(feature = "extra-children")]
9843    #[serde(skip)]
9844    #[cfg(feature = "extra-children")]
9845    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9846}
9847
9848#[derive(Debug, Clone, Serialize, Deserialize)]
9849pub struct CTMathCtrlIns {
9850    #[serde(rename = "@w:id")]
9851    pub id: STDecimalNumber,
9852    #[serde(rename = "@w:author")]
9853    pub author: STString,
9854    #[serde(rename = "@w:date")]
9855    #[serde(default, skip_serializing_if = "Option::is_none")]
9856    pub date: Option<STDateTime>,
9857    #[cfg(feature = "wml-track-changes")]
9858    #[serde(rename = "del")]
9859    #[serde(default, skip_serializing_if = "Option::is_none")]
9860    pub del: Option<Box<CTRPrChange>>,
9861    #[cfg(feature = "wml-styling")]
9862    #[serde(rename = "rPr")]
9863    #[serde(default, skip_serializing_if = "Option::is_none")]
9864    pub r_pr: Option<Box<RunProperties>>,
9865    /// Unknown attributes captured for roundtrip fidelity.
9866    #[cfg(feature = "extra-attrs")]
9867    #[serde(skip)]
9868    #[cfg(feature = "extra-attrs")]
9869    #[serde(default)]
9870    #[cfg(feature = "extra-attrs")]
9871    pub extra_attrs: std::collections::HashMap<String, String>,
9872    /// Unknown child elements captured for roundtrip fidelity.
9873    #[cfg(feature = "extra-children")]
9874    #[serde(skip)]
9875    #[cfg(feature = "extra-children")]
9876    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9877}
9878
9879#[derive(Debug, Clone, Serialize, Deserialize)]
9880pub struct CTMathCtrlDel {
9881    #[serde(rename = "@w:id")]
9882    pub id: STDecimalNumber,
9883    #[serde(rename = "@w:author")]
9884    pub author: STString,
9885    #[serde(rename = "@w:date")]
9886    #[serde(default, skip_serializing_if = "Option::is_none")]
9887    pub date: Option<STDateTime>,
9888    #[cfg(feature = "wml-styling")]
9889    #[serde(rename = "rPr")]
9890    #[serde(default, skip_serializing_if = "Option::is_none")]
9891    pub r_pr: Option<Box<RunProperties>>,
9892    /// Unknown attributes captured for roundtrip fidelity.
9893    #[cfg(feature = "extra-attrs")]
9894    #[serde(skip)]
9895    #[cfg(feature = "extra-attrs")]
9896    #[serde(default)]
9897    #[cfg(feature = "extra-attrs")]
9898    pub extra_attrs: std::collections::HashMap<String, String>,
9899    /// Unknown child elements captured for roundtrip fidelity.
9900    #[cfg(feature = "extra-children")]
9901    #[serde(skip)]
9902    #[cfg(feature = "extra-children")]
9903    pub extra_children: Vec<ooxml_xml::PositionedNode>,
9904}
9905
9906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9907pub struct CTRPrOriginal {
9908    #[serde(rename = "rStyle")]
9909    #[serde(default, skip_serializing_if = "Option::is_none")]
9910    pub run_style: Option<Box<CTString>>,
9911    #[serde(rename = "rFonts")]
9912    #[serde(default, skip_serializing_if = "Option::is_none")]
9913    pub fonts: Option<Box<Fonts>>,
9914    #[serde(rename = "b")]
9915    #[serde(default, skip_serializing_if = "Option::is_none")]
9916    pub bold: Option<Box<OnOffElement>>,
9917    #[serde(rename = "bCs")]
9918    #[serde(default, skip_serializing_if = "Option::is_none")]
9919    pub b_cs: Option<Box<OnOffElement>>,
9920    #[serde(rename = "i")]
9921    #[serde(default, skip_serializing_if = "Option::is_none")]
9922    pub italic: Option<Box<OnOffElement>>,
9923    #[serde(rename = "iCs")]
9924    #[serde(default, skip_serializing_if = "Option::is_none")]
9925    pub i_cs: Option<Box<OnOffElement>>,
9926    #[serde(rename = "caps")]
9927    #[serde(default, skip_serializing_if = "Option::is_none")]
9928    pub caps: Option<Box<OnOffElement>>,
9929    #[serde(rename = "smallCaps")]
9930    #[serde(default, skip_serializing_if = "Option::is_none")]
9931    pub small_caps: Option<Box<OnOffElement>>,
9932    #[serde(rename = "strike")]
9933    #[serde(default, skip_serializing_if = "Option::is_none")]
9934    pub strikethrough: Option<Box<OnOffElement>>,
9935    #[serde(rename = "dstrike")]
9936    #[serde(default, skip_serializing_if = "Option::is_none")]
9937    pub dstrike: Option<Box<OnOffElement>>,
9938    #[serde(rename = "outline")]
9939    #[serde(default, skip_serializing_if = "Option::is_none")]
9940    pub outline: Option<Box<OnOffElement>>,
9941    #[serde(rename = "shadow")]
9942    #[serde(default, skip_serializing_if = "Option::is_none")]
9943    pub shadow: Option<Box<OnOffElement>>,
9944    #[serde(rename = "emboss")]
9945    #[serde(default, skip_serializing_if = "Option::is_none")]
9946    pub emboss: Option<Box<OnOffElement>>,
9947    #[serde(rename = "imprint")]
9948    #[serde(default, skip_serializing_if = "Option::is_none")]
9949    pub imprint: Option<Box<OnOffElement>>,
9950    #[serde(rename = "noProof")]
9951    #[serde(default, skip_serializing_if = "Option::is_none")]
9952    pub no_proof: Option<Box<OnOffElement>>,
9953    #[serde(rename = "snapToGrid")]
9954    #[serde(default, skip_serializing_if = "Option::is_none")]
9955    pub snap_to_grid: Option<Box<OnOffElement>>,
9956    #[serde(rename = "vanish")]
9957    #[serde(default, skip_serializing_if = "Option::is_none")]
9958    pub vanish: Option<Box<OnOffElement>>,
9959    #[serde(rename = "webHidden")]
9960    #[serde(default, skip_serializing_if = "Option::is_none")]
9961    pub web_hidden: Option<Box<OnOffElement>>,
9962    #[serde(rename = "color")]
9963    #[serde(default, skip_serializing_if = "Option::is_none")]
9964    pub color: Option<Box<CTColor>>,
9965    #[serde(rename = "spacing")]
9966    #[serde(default, skip_serializing_if = "Option::is_none")]
9967    pub spacing: Option<Box<SignedTwipsMeasureElement>>,
9968    #[serde(rename = "w")]
9969    #[serde(default, skip_serializing_if = "Option::is_none")]
9970    pub width: Option<Box<TextScaleElement>>,
9971    #[serde(rename = "kern")]
9972    #[serde(default, skip_serializing_if = "Option::is_none")]
9973    pub kern: Option<Box<HpsMeasureElement>>,
9974    #[serde(rename = "position")]
9975    #[serde(default, skip_serializing_if = "Option::is_none")]
9976    pub position: Option<Box<SignedHpsMeasureElement>>,
9977    #[serde(rename = "sz")]
9978    #[serde(default, skip_serializing_if = "Option::is_none")]
9979    pub size: Option<Box<HpsMeasureElement>>,
9980    #[serde(rename = "szCs")]
9981    #[serde(default, skip_serializing_if = "Option::is_none")]
9982    pub size_complex_script: Option<Box<HpsMeasureElement>>,
9983    #[serde(rename = "highlight")]
9984    #[serde(default, skip_serializing_if = "Option::is_none")]
9985    pub highlight: Option<Box<CTHighlight>>,
9986    #[serde(rename = "u")]
9987    #[serde(default, skip_serializing_if = "Option::is_none")]
9988    pub underline: Option<Box<CTUnderline>>,
9989    #[serde(rename = "effect")]
9990    #[serde(default, skip_serializing_if = "Option::is_none")]
9991    pub effect: Option<Box<CTTextEffect>>,
9992    #[serde(rename = "bdr")]
9993    #[serde(default, skip_serializing_if = "Option::is_none")]
9994    pub bdr: Option<Box<CTBorder>>,
9995    #[serde(rename = "shd")]
9996    #[serde(default, skip_serializing_if = "Option::is_none")]
9997    pub shading: Option<Box<CTShd>>,
9998    #[serde(rename = "fitText")]
9999    #[serde(default, skip_serializing_if = "Option::is_none")]
10000    pub fit_text: Option<Box<CTFitText>>,
10001    #[serde(rename = "vertAlign")]
10002    #[serde(default, skip_serializing_if = "Option::is_none")]
10003    pub vert_align: Option<Box<CTVerticalAlignRun>>,
10004    #[serde(rename = "rtl")]
10005    #[serde(default, skip_serializing_if = "Option::is_none")]
10006    pub rtl: Option<Box<OnOffElement>>,
10007    #[serde(rename = "cs")]
10008    #[serde(default, skip_serializing_if = "Option::is_none")]
10009    pub cs: Option<Box<OnOffElement>>,
10010    #[serde(rename = "em")]
10011    #[serde(default, skip_serializing_if = "Option::is_none")]
10012    pub em: Option<Box<CTEm>>,
10013    #[serde(rename = "lang")]
10014    #[serde(default, skip_serializing_if = "Option::is_none")]
10015    pub lang: Option<Box<LanguageElement>>,
10016    #[serde(rename = "eastAsianLayout")]
10017    #[serde(default, skip_serializing_if = "Option::is_none")]
10018    pub east_asian_layout: Option<Box<CTEastAsianLayout>>,
10019    #[serde(rename = "specVanish")]
10020    #[serde(default, skip_serializing_if = "Option::is_none")]
10021    pub spec_vanish: Option<Box<OnOffElement>>,
10022    #[serde(rename = "oMath")]
10023    #[serde(default, skip_serializing_if = "Option::is_none")]
10024    pub o_math: Option<Box<OnOffElement>>,
10025    /// Unknown child elements captured for roundtrip fidelity.
10026    #[cfg(feature = "extra-children")]
10027    #[serde(skip)]
10028    #[cfg(feature = "extra-children")]
10029    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10030}
10031
10032#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10033pub struct CTParaRPrOriginal {
10034    #[serde(rename = "ins")]
10035    #[serde(default, skip_serializing_if = "Option::is_none")]
10036    pub ins: Option<Box<CTTrackChange>>,
10037    #[serde(rename = "del")]
10038    #[serde(default, skip_serializing_if = "Option::is_none")]
10039    pub del: Option<Box<CTTrackChange>>,
10040    #[serde(rename = "moveFrom")]
10041    #[serde(default, skip_serializing_if = "Option::is_none")]
10042    pub move_from: Option<Box<CTTrackChange>>,
10043    #[serde(rename = "moveTo")]
10044    #[serde(default, skip_serializing_if = "Option::is_none")]
10045    pub move_to: Option<Box<CTTrackChange>>,
10046    #[serde(rename = "rStyle")]
10047    #[serde(default, skip_serializing_if = "Option::is_none")]
10048    pub run_style: Option<Box<CTString>>,
10049    #[serde(rename = "rFonts")]
10050    #[serde(default, skip_serializing_if = "Option::is_none")]
10051    pub fonts: Option<Box<Fonts>>,
10052    #[serde(rename = "b")]
10053    #[serde(default, skip_serializing_if = "Option::is_none")]
10054    pub bold: Option<Box<OnOffElement>>,
10055    #[serde(rename = "bCs")]
10056    #[serde(default, skip_serializing_if = "Option::is_none")]
10057    pub b_cs: Option<Box<OnOffElement>>,
10058    #[serde(rename = "i")]
10059    #[serde(default, skip_serializing_if = "Option::is_none")]
10060    pub italic: Option<Box<OnOffElement>>,
10061    #[serde(rename = "iCs")]
10062    #[serde(default, skip_serializing_if = "Option::is_none")]
10063    pub i_cs: Option<Box<OnOffElement>>,
10064    #[serde(rename = "caps")]
10065    #[serde(default, skip_serializing_if = "Option::is_none")]
10066    pub caps: Option<Box<OnOffElement>>,
10067    #[serde(rename = "smallCaps")]
10068    #[serde(default, skip_serializing_if = "Option::is_none")]
10069    pub small_caps: Option<Box<OnOffElement>>,
10070    #[serde(rename = "strike")]
10071    #[serde(default, skip_serializing_if = "Option::is_none")]
10072    pub strikethrough: Option<Box<OnOffElement>>,
10073    #[serde(rename = "dstrike")]
10074    #[serde(default, skip_serializing_if = "Option::is_none")]
10075    pub dstrike: Option<Box<OnOffElement>>,
10076    #[serde(rename = "outline")]
10077    #[serde(default, skip_serializing_if = "Option::is_none")]
10078    pub outline: Option<Box<OnOffElement>>,
10079    #[serde(rename = "shadow")]
10080    #[serde(default, skip_serializing_if = "Option::is_none")]
10081    pub shadow: Option<Box<OnOffElement>>,
10082    #[serde(rename = "emboss")]
10083    #[serde(default, skip_serializing_if = "Option::is_none")]
10084    pub emboss: Option<Box<OnOffElement>>,
10085    #[serde(rename = "imprint")]
10086    #[serde(default, skip_serializing_if = "Option::is_none")]
10087    pub imprint: Option<Box<OnOffElement>>,
10088    #[serde(rename = "noProof")]
10089    #[serde(default, skip_serializing_if = "Option::is_none")]
10090    pub no_proof: Option<Box<OnOffElement>>,
10091    #[serde(rename = "snapToGrid")]
10092    #[serde(default, skip_serializing_if = "Option::is_none")]
10093    pub snap_to_grid: Option<Box<OnOffElement>>,
10094    #[serde(rename = "vanish")]
10095    #[serde(default, skip_serializing_if = "Option::is_none")]
10096    pub vanish: Option<Box<OnOffElement>>,
10097    #[serde(rename = "webHidden")]
10098    #[serde(default, skip_serializing_if = "Option::is_none")]
10099    pub web_hidden: Option<Box<OnOffElement>>,
10100    #[serde(rename = "color")]
10101    #[serde(default, skip_serializing_if = "Option::is_none")]
10102    pub color: Option<Box<CTColor>>,
10103    #[serde(rename = "spacing")]
10104    #[serde(default, skip_serializing_if = "Option::is_none")]
10105    pub spacing: Option<Box<SignedTwipsMeasureElement>>,
10106    #[serde(rename = "w")]
10107    #[serde(default, skip_serializing_if = "Option::is_none")]
10108    pub width: Option<Box<TextScaleElement>>,
10109    #[serde(rename = "kern")]
10110    #[serde(default, skip_serializing_if = "Option::is_none")]
10111    pub kern: Option<Box<HpsMeasureElement>>,
10112    #[serde(rename = "position")]
10113    #[serde(default, skip_serializing_if = "Option::is_none")]
10114    pub position: Option<Box<SignedHpsMeasureElement>>,
10115    #[serde(rename = "sz")]
10116    #[serde(default, skip_serializing_if = "Option::is_none")]
10117    pub size: Option<Box<HpsMeasureElement>>,
10118    #[serde(rename = "szCs")]
10119    #[serde(default, skip_serializing_if = "Option::is_none")]
10120    pub size_complex_script: Option<Box<HpsMeasureElement>>,
10121    #[serde(rename = "highlight")]
10122    #[serde(default, skip_serializing_if = "Option::is_none")]
10123    pub highlight: Option<Box<CTHighlight>>,
10124    #[serde(rename = "u")]
10125    #[serde(default, skip_serializing_if = "Option::is_none")]
10126    pub underline: Option<Box<CTUnderline>>,
10127    #[serde(rename = "effect")]
10128    #[serde(default, skip_serializing_if = "Option::is_none")]
10129    pub effect: Option<Box<CTTextEffect>>,
10130    #[serde(rename = "bdr")]
10131    #[serde(default, skip_serializing_if = "Option::is_none")]
10132    pub bdr: Option<Box<CTBorder>>,
10133    #[serde(rename = "shd")]
10134    #[serde(default, skip_serializing_if = "Option::is_none")]
10135    pub shading: Option<Box<CTShd>>,
10136    #[serde(rename = "fitText")]
10137    #[serde(default, skip_serializing_if = "Option::is_none")]
10138    pub fit_text: Option<Box<CTFitText>>,
10139    #[serde(rename = "vertAlign")]
10140    #[serde(default, skip_serializing_if = "Option::is_none")]
10141    pub vert_align: Option<Box<CTVerticalAlignRun>>,
10142    #[serde(rename = "rtl")]
10143    #[serde(default, skip_serializing_if = "Option::is_none")]
10144    pub rtl: Option<Box<OnOffElement>>,
10145    #[serde(rename = "cs")]
10146    #[serde(default, skip_serializing_if = "Option::is_none")]
10147    pub cs: Option<Box<OnOffElement>>,
10148    #[serde(rename = "em")]
10149    #[serde(default, skip_serializing_if = "Option::is_none")]
10150    pub em: Option<Box<CTEm>>,
10151    #[serde(rename = "lang")]
10152    #[serde(default, skip_serializing_if = "Option::is_none")]
10153    pub lang: Option<Box<LanguageElement>>,
10154    #[serde(rename = "eastAsianLayout")]
10155    #[serde(default, skip_serializing_if = "Option::is_none")]
10156    pub east_asian_layout: Option<Box<CTEastAsianLayout>>,
10157    #[serde(rename = "specVanish")]
10158    #[serde(default, skip_serializing_if = "Option::is_none")]
10159    pub spec_vanish: Option<Box<OnOffElement>>,
10160    #[serde(rename = "oMath")]
10161    #[serde(default, skip_serializing_if = "Option::is_none")]
10162    pub o_math: Option<Box<OnOffElement>>,
10163    /// Unknown child elements captured for roundtrip fidelity.
10164    #[cfg(feature = "extra-children")]
10165    #[serde(skip)]
10166    #[cfg(feature = "extra-children")]
10167    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10168}
10169
10170#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10171pub struct CTParaRPr {
10172    #[serde(rename = "ins")]
10173    #[serde(default, skip_serializing_if = "Option::is_none")]
10174    pub ins: Option<Box<CTTrackChange>>,
10175    #[serde(rename = "del")]
10176    #[serde(default, skip_serializing_if = "Option::is_none")]
10177    pub del: Option<Box<CTTrackChange>>,
10178    #[serde(rename = "moveFrom")]
10179    #[serde(default, skip_serializing_if = "Option::is_none")]
10180    pub move_from: Option<Box<CTTrackChange>>,
10181    #[serde(rename = "moveTo")]
10182    #[serde(default, skip_serializing_if = "Option::is_none")]
10183    pub move_to: Option<Box<CTTrackChange>>,
10184    #[serde(rename = "rStyle")]
10185    #[serde(default, skip_serializing_if = "Option::is_none")]
10186    pub run_style: Option<Box<CTString>>,
10187    #[serde(rename = "rFonts")]
10188    #[serde(default, skip_serializing_if = "Option::is_none")]
10189    pub fonts: Option<Box<Fonts>>,
10190    #[serde(rename = "b")]
10191    #[serde(default, skip_serializing_if = "Option::is_none")]
10192    pub bold: Option<Box<OnOffElement>>,
10193    #[serde(rename = "bCs")]
10194    #[serde(default, skip_serializing_if = "Option::is_none")]
10195    pub b_cs: Option<Box<OnOffElement>>,
10196    #[serde(rename = "i")]
10197    #[serde(default, skip_serializing_if = "Option::is_none")]
10198    pub italic: Option<Box<OnOffElement>>,
10199    #[serde(rename = "iCs")]
10200    #[serde(default, skip_serializing_if = "Option::is_none")]
10201    pub i_cs: Option<Box<OnOffElement>>,
10202    #[serde(rename = "caps")]
10203    #[serde(default, skip_serializing_if = "Option::is_none")]
10204    pub caps: Option<Box<OnOffElement>>,
10205    #[serde(rename = "smallCaps")]
10206    #[serde(default, skip_serializing_if = "Option::is_none")]
10207    pub small_caps: Option<Box<OnOffElement>>,
10208    #[serde(rename = "strike")]
10209    #[serde(default, skip_serializing_if = "Option::is_none")]
10210    pub strikethrough: Option<Box<OnOffElement>>,
10211    #[serde(rename = "dstrike")]
10212    #[serde(default, skip_serializing_if = "Option::is_none")]
10213    pub dstrike: Option<Box<OnOffElement>>,
10214    #[serde(rename = "outline")]
10215    #[serde(default, skip_serializing_if = "Option::is_none")]
10216    pub outline: Option<Box<OnOffElement>>,
10217    #[serde(rename = "shadow")]
10218    #[serde(default, skip_serializing_if = "Option::is_none")]
10219    pub shadow: Option<Box<OnOffElement>>,
10220    #[serde(rename = "emboss")]
10221    #[serde(default, skip_serializing_if = "Option::is_none")]
10222    pub emboss: Option<Box<OnOffElement>>,
10223    #[serde(rename = "imprint")]
10224    #[serde(default, skip_serializing_if = "Option::is_none")]
10225    pub imprint: Option<Box<OnOffElement>>,
10226    #[serde(rename = "noProof")]
10227    #[serde(default, skip_serializing_if = "Option::is_none")]
10228    pub no_proof: Option<Box<OnOffElement>>,
10229    #[serde(rename = "snapToGrid")]
10230    #[serde(default, skip_serializing_if = "Option::is_none")]
10231    pub snap_to_grid: Option<Box<OnOffElement>>,
10232    #[serde(rename = "vanish")]
10233    #[serde(default, skip_serializing_if = "Option::is_none")]
10234    pub vanish: Option<Box<OnOffElement>>,
10235    #[serde(rename = "webHidden")]
10236    #[serde(default, skip_serializing_if = "Option::is_none")]
10237    pub web_hidden: Option<Box<OnOffElement>>,
10238    #[serde(rename = "color")]
10239    #[serde(default, skip_serializing_if = "Option::is_none")]
10240    pub color: Option<Box<CTColor>>,
10241    #[serde(rename = "spacing")]
10242    #[serde(default, skip_serializing_if = "Option::is_none")]
10243    pub spacing: Option<Box<SignedTwipsMeasureElement>>,
10244    #[serde(rename = "w")]
10245    #[serde(default, skip_serializing_if = "Option::is_none")]
10246    pub width: Option<Box<TextScaleElement>>,
10247    #[serde(rename = "kern")]
10248    #[serde(default, skip_serializing_if = "Option::is_none")]
10249    pub kern: Option<Box<HpsMeasureElement>>,
10250    #[serde(rename = "position")]
10251    #[serde(default, skip_serializing_if = "Option::is_none")]
10252    pub position: Option<Box<SignedHpsMeasureElement>>,
10253    #[serde(rename = "sz")]
10254    #[serde(default, skip_serializing_if = "Option::is_none")]
10255    pub size: Option<Box<HpsMeasureElement>>,
10256    #[serde(rename = "szCs")]
10257    #[serde(default, skip_serializing_if = "Option::is_none")]
10258    pub size_complex_script: Option<Box<HpsMeasureElement>>,
10259    #[serde(rename = "highlight")]
10260    #[serde(default, skip_serializing_if = "Option::is_none")]
10261    pub highlight: Option<Box<CTHighlight>>,
10262    #[serde(rename = "u")]
10263    #[serde(default, skip_serializing_if = "Option::is_none")]
10264    pub underline: Option<Box<CTUnderline>>,
10265    #[serde(rename = "effect")]
10266    #[serde(default, skip_serializing_if = "Option::is_none")]
10267    pub effect: Option<Box<CTTextEffect>>,
10268    #[serde(rename = "bdr")]
10269    #[serde(default, skip_serializing_if = "Option::is_none")]
10270    pub bdr: Option<Box<CTBorder>>,
10271    #[serde(rename = "shd")]
10272    #[serde(default, skip_serializing_if = "Option::is_none")]
10273    pub shading: Option<Box<CTShd>>,
10274    #[serde(rename = "fitText")]
10275    #[serde(default, skip_serializing_if = "Option::is_none")]
10276    pub fit_text: Option<Box<CTFitText>>,
10277    #[serde(rename = "vertAlign")]
10278    #[serde(default, skip_serializing_if = "Option::is_none")]
10279    pub vert_align: Option<Box<CTVerticalAlignRun>>,
10280    #[serde(rename = "rtl")]
10281    #[serde(default, skip_serializing_if = "Option::is_none")]
10282    pub rtl: Option<Box<OnOffElement>>,
10283    #[serde(rename = "cs")]
10284    #[serde(default, skip_serializing_if = "Option::is_none")]
10285    pub cs: Option<Box<OnOffElement>>,
10286    #[serde(rename = "em")]
10287    #[serde(default, skip_serializing_if = "Option::is_none")]
10288    pub em: Option<Box<CTEm>>,
10289    #[serde(rename = "lang")]
10290    #[serde(default, skip_serializing_if = "Option::is_none")]
10291    pub lang: Option<Box<LanguageElement>>,
10292    #[serde(rename = "eastAsianLayout")]
10293    #[serde(default, skip_serializing_if = "Option::is_none")]
10294    pub east_asian_layout: Option<Box<CTEastAsianLayout>>,
10295    #[serde(rename = "specVanish")]
10296    #[serde(default, skip_serializing_if = "Option::is_none")]
10297    pub spec_vanish: Option<Box<OnOffElement>>,
10298    #[serde(rename = "oMath")]
10299    #[serde(default, skip_serializing_if = "Option::is_none")]
10300    pub o_math: Option<Box<OnOffElement>>,
10301    #[cfg(feature = "wml-track-changes")]
10302    #[serde(rename = "rPrChange")]
10303    #[serde(default, skip_serializing_if = "Option::is_none")]
10304    pub r_pr_change: Option<Box<CTParaRPrChange>>,
10305    /// Unknown child elements captured for roundtrip fidelity.
10306    #[cfg(feature = "extra-children")]
10307    #[serde(skip)]
10308    #[cfg(feature = "extra-children")]
10309    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10310}
10311
10312#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10313pub struct EGParaRPrTrackChanges {
10314    #[serde(rename = "ins")]
10315    #[serde(default, skip_serializing_if = "Option::is_none")]
10316    pub ins: Option<Box<CTTrackChange>>,
10317    #[serde(rename = "del")]
10318    #[serde(default, skip_serializing_if = "Option::is_none")]
10319    pub del: Option<Box<CTTrackChange>>,
10320    #[serde(rename = "moveFrom")]
10321    #[serde(default, skip_serializing_if = "Option::is_none")]
10322    pub move_from: Option<Box<CTTrackChange>>,
10323    #[serde(rename = "moveTo")]
10324    #[serde(default, skip_serializing_if = "Option::is_none")]
10325    pub move_to: Option<Box<CTTrackChange>>,
10326    /// Unknown child elements captured for roundtrip fidelity.
10327    #[cfg(feature = "extra-children")]
10328    #[serde(skip)]
10329    #[cfg(feature = "extra-children")]
10330    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10331}
10332
10333#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10334pub struct CTAltChunk {
10335    #[serde(rename = "@r:id")]
10336    #[serde(default, skip_serializing_if = "Option::is_none")]
10337    pub id: Option<STRelationshipId>,
10338    #[cfg(feature = "wml-settings")]
10339    #[serde(rename = "altChunkPr")]
10340    #[serde(default, skip_serializing_if = "Option::is_none")]
10341    pub alt_chunk_pr: Option<Box<CTAltChunkPr>>,
10342    /// Unknown attributes captured for roundtrip fidelity.
10343    #[cfg(feature = "extra-attrs")]
10344    #[serde(skip)]
10345    #[cfg(feature = "extra-attrs")]
10346    #[serde(default)]
10347    #[cfg(feature = "extra-attrs")]
10348    pub extra_attrs: std::collections::HashMap<String, String>,
10349    /// Unknown child elements captured for roundtrip fidelity.
10350    #[cfg(feature = "extra-children")]
10351    #[serde(skip)]
10352    #[cfg(feature = "extra-children")]
10353    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10354}
10355
10356#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10357pub struct CTAltChunkPr {
10358    #[cfg(feature = "wml-settings")]
10359    #[serde(rename = "matchSrc")]
10360    #[serde(default, skip_serializing_if = "Option::is_none")]
10361    pub match_src: Option<Box<OnOffElement>>,
10362    /// Unknown child elements captured for roundtrip fidelity.
10363    #[cfg(feature = "extra-children")]
10364    #[serde(skip)]
10365    #[cfg(feature = "extra-children")]
10366    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10367}
10368
10369#[derive(Debug, Clone, Serialize, Deserialize)]
10370pub struct CTRubyAlign {
10371    #[serde(rename = "@w:val")]
10372    pub value: STRubyAlign,
10373    /// Unknown attributes captured for roundtrip fidelity.
10374    #[cfg(feature = "extra-attrs")]
10375    #[serde(skip)]
10376    #[cfg(feature = "extra-attrs")]
10377    #[serde(default)]
10378    #[cfg(feature = "extra-attrs")]
10379    pub extra_attrs: std::collections::HashMap<String, String>,
10380}
10381
10382#[derive(Debug, Clone, Serialize, Deserialize)]
10383pub struct CTRubyPr {
10384    #[cfg(feature = "wml-styling")]
10385    #[serde(rename = "rubyAlign")]
10386    pub ruby_align: Box<CTRubyAlign>,
10387    #[cfg(feature = "wml-styling")]
10388    #[serde(rename = "hps")]
10389    pub hps: Box<HpsMeasureElement>,
10390    #[cfg(feature = "wml-styling")]
10391    #[serde(rename = "hpsRaise")]
10392    pub hps_raise: Box<HpsMeasureElement>,
10393    #[cfg(feature = "wml-styling")]
10394    #[serde(rename = "hpsBaseText")]
10395    pub hps_base_text: Box<HpsMeasureElement>,
10396    #[cfg(feature = "wml-styling")]
10397    #[serde(rename = "lid")]
10398    pub lid: Box<CTLang>,
10399    #[cfg(feature = "wml-styling")]
10400    #[serde(rename = "dirty")]
10401    #[serde(default, skip_serializing_if = "Option::is_none")]
10402    pub dirty: Option<Box<OnOffElement>>,
10403    /// Unknown child elements captured for roundtrip fidelity.
10404    #[cfg(feature = "extra-children")]
10405    #[serde(skip)]
10406    #[cfg(feature = "extra-children")]
10407    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10408}
10409
10410#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10411pub struct CTRubyContent {
10412    #[serde(skip)]
10413    #[serde(default)]
10414    pub ruby_content: Vec<RubyContent>,
10415    /// Unknown child elements captured for roundtrip fidelity.
10416    #[cfg(feature = "extra-children")]
10417    #[serde(skip)]
10418    #[cfg(feature = "extra-children")]
10419    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10420}
10421
10422#[derive(Debug, Clone, Serialize, Deserialize)]
10423pub struct CTRuby {
10424    #[cfg(feature = "wml-styling")]
10425    #[serde(rename = "rubyPr")]
10426    pub ruby_pr: Box<CTRubyPr>,
10427    #[serde(rename = "rt")]
10428    pub rt: Box<CTRubyContent>,
10429    #[serde(rename = "rubyBase")]
10430    pub ruby_base: Box<CTRubyContent>,
10431    /// Unknown child elements captured for roundtrip fidelity.
10432    #[cfg(feature = "extra-children")]
10433    #[serde(skip)]
10434    #[cfg(feature = "extra-children")]
10435    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10436}
10437
10438#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10439pub struct CTLock {
10440    #[serde(rename = "@w:val")]
10441    #[serde(default, skip_serializing_if = "Option::is_none")]
10442    pub value: Option<STLock>,
10443    /// Unknown attributes captured for roundtrip fidelity.
10444    #[cfg(feature = "extra-attrs")]
10445    #[serde(skip)]
10446    #[cfg(feature = "extra-attrs")]
10447    #[serde(default)]
10448    #[cfg(feature = "extra-attrs")]
10449    pub extra_attrs: std::collections::HashMap<String, String>,
10450}
10451
10452#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10453pub struct CTSdtListItem {
10454    #[serde(rename = "@w:displayText")]
10455    #[serde(default, skip_serializing_if = "Option::is_none")]
10456    pub display_text: Option<STString>,
10457    #[serde(rename = "@w:value")]
10458    #[serde(default, skip_serializing_if = "Option::is_none")]
10459    pub value: Option<STString>,
10460    /// Unknown attributes captured for roundtrip fidelity.
10461    #[cfg(feature = "extra-attrs")]
10462    #[serde(skip)]
10463    #[cfg(feature = "extra-attrs")]
10464    #[serde(default)]
10465    #[cfg(feature = "extra-attrs")]
10466    pub extra_attrs: std::collections::HashMap<String, String>,
10467}
10468
10469#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10470pub struct CTSdtDateMappingType {
10471    #[serde(rename = "@w:val")]
10472    #[serde(default, skip_serializing_if = "Option::is_none")]
10473    pub value: Option<STSdtDateMappingType>,
10474    /// Unknown attributes captured for roundtrip fidelity.
10475    #[cfg(feature = "extra-attrs")]
10476    #[serde(skip)]
10477    #[cfg(feature = "extra-attrs")]
10478    #[serde(default)]
10479    #[cfg(feature = "extra-attrs")]
10480    pub extra_attrs: std::collections::HashMap<String, String>,
10481}
10482
10483#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10484pub struct CTCalendarType {
10485    #[serde(rename = "@w:val")]
10486    #[serde(default, skip_serializing_if = "Option::is_none")]
10487    pub value: Option<CalendarType>,
10488    /// Unknown attributes captured for roundtrip fidelity.
10489    #[cfg(feature = "extra-attrs")]
10490    #[serde(skip)]
10491    #[cfg(feature = "extra-attrs")]
10492    #[serde(default)]
10493    #[cfg(feature = "extra-attrs")]
10494    pub extra_attrs: std::collections::HashMap<String, String>,
10495}
10496
10497#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10498pub struct CTSdtDate {
10499    #[cfg(feature = "wml-settings")]
10500    #[serde(rename = "@w:fullDate")]
10501    #[serde(default, skip_serializing_if = "Option::is_none")]
10502    pub full_date: Option<STDateTime>,
10503    #[cfg(feature = "wml-settings")]
10504    #[serde(rename = "dateFormat")]
10505    #[serde(default, skip_serializing_if = "Option::is_none")]
10506    pub date_format: Option<Box<CTString>>,
10507    #[cfg(feature = "wml-settings")]
10508    #[serde(rename = "lid")]
10509    #[serde(default, skip_serializing_if = "Option::is_none")]
10510    pub lid: Option<Box<CTLang>>,
10511    #[cfg(feature = "wml-settings")]
10512    #[serde(rename = "storeMappedDataAs")]
10513    #[serde(default, skip_serializing_if = "Option::is_none")]
10514    pub store_mapped_data_as: Option<Box<CTSdtDateMappingType>>,
10515    #[cfg(feature = "wml-settings")]
10516    #[serde(rename = "calendar")]
10517    #[serde(default, skip_serializing_if = "Option::is_none")]
10518    pub calendar: Option<Box<CTCalendarType>>,
10519    /// Unknown attributes captured for roundtrip fidelity.
10520    #[cfg(feature = "extra-attrs")]
10521    #[serde(skip)]
10522    #[cfg(feature = "extra-attrs")]
10523    #[serde(default)]
10524    #[cfg(feature = "extra-attrs")]
10525    pub extra_attrs: std::collections::HashMap<String, String>,
10526    /// Unknown child elements captured for roundtrip fidelity.
10527    #[cfg(feature = "extra-children")]
10528    #[serde(skip)]
10529    #[cfg(feature = "extra-children")]
10530    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10531}
10532
10533#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10534pub struct CTSdtComboBox {
10535    #[cfg(feature = "wml-settings")]
10536    #[serde(rename = "@w:lastValue")]
10537    #[serde(default, skip_serializing_if = "Option::is_none")]
10538    pub last_value: Option<STString>,
10539    #[cfg(feature = "wml-settings")]
10540    #[serde(rename = "listItem")]
10541    #[serde(default, skip_serializing_if = "Vec::is_empty")]
10542    pub list_item: Vec<CTSdtListItem>,
10543    /// Unknown attributes captured for roundtrip fidelity.
10544    #[cfg(feature = "extra-attrs")]
10545    #[serde(skip)]
10546    #[cfg(feature = "extra-attrs")]
10547    #[serde(default)]
10548    #[cfg(feature = "extra-attrs")]
10549    pub extra_attrs: std::collections::HashMap<String, String>,
10550    /// Unknown child elements captured for roundtrip fidelity.
10551    #[cfg(feature = "extra-children")]
10552    #[serde(skip)]
10553    #[cfg(feature = "extra-children")]
10554    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10555}
10556
10557#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10558pub struct CTSdtDocPart {
10559    #[cfg(feature = "wml-settings")]
10560    #[serde(rename = "docPartGallery")]
10561    #[serde(default, skip_serializing_if = "Option::is_none")]
10562    pub doc_part_gallery: Option<Box<CTString>>,
10563    #[cfg(feature = "wml-settings")]
10564    #[serde(rename = "docPartCategory")]
10565    #[serde(default, skip_serializing_if = "Option::is_none")]
10566    pub doc_part_category: Option<Box<CTString>>,
10567    #[cfg(feature = "wml-settings")]
10568    #[serde(rename = "docPartUnique")]
10569    #[serde(default, skip_serializing_if = "Option::is_none")]
10570    pub doc_part_unique: Option<Box<OnOffElement>>,
10571    /// Unknown child elements captured for roundtrip fidelity.
10572    #[cfg(feature = "extra-children")]
10573    #[serde(skip)]
10574    #[cfg(feature = "extra-children")]
10575    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10576}
10577
10578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10579pub struct CTSdtDropDownList {
10580    #[cfg(feature = "wml-settings")]
10581    #[serde(rename = "@w:lastValue")]
10582    #[serde(default, skip_serializing_if = "Option::is_none")]
10583    pub last_value: Option<STString>,
10584    #[cfg(feature = "wml-settings")]
10585    #[serde(rename = "listItem")]
10586    #[serde(default, skip_serializing_if = "Vec::is_empty")]
10587    pub list_item: Vec<CTSdtListItem>,
10588    /// Unknown attributes captured for roundtrip fidelity.
10589    #[cfg(feature = "extra-attrs")]
10590    #[serde(skip)]
10591    #[cfg(feature = "extra-attrs")]
10592    #[serde(default)]
10593    #[cfg(feature = "extra-attrs")]
10594    pub extra_attrs: std::collections::HashMap<String, String>,
10595    /// Unknown child elements captured for roundtrip fidelity.
10596    #[cfg(feature = "extra-children")]
10597    #[serde(skip)]
10598    #[cfg(feature = "extra-children")]
10599    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10600}
10601
10602pub type PlaceholderElement = Box<CTString>;
10603
10604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10605pub struct CTSdtText {
10606    #[cfg(feature = "wml-settings")]
10607    #[serde(rename = "@w:multiLine")]
10608    #[serde(default, skip_serializing_if = "Option::is_none")]
10609    pub multi_line: Option<OnOff>,
10610    /// Unknown attributes captured for roundtrip fidelity.
10611    #[cfg(feature = "extra-attrs")]
10612    #[serde(skip)]
10613    #[cfg(feature = "extra-attrs")]
10614    #[serde(default)]
10615    #[cfg(feature = "extra-attrs")]
10616    pub extra_attrs: std::collections::HashMap<String, String>,
10617}
10618
10619#[derive(Debug, Clone, Serialize, Deserialize)]
10620pub struct CTDataBinding {
10621    #[cfg(feature = "wml-settings")]
10622    #[serde(rename = "@w:prefixMappings")]
10623    #[serde(default, skip_serializing_if = "Option::is_none")]
10624    pub prefix_mappings: Option<STString>,
10625    #[cfg(feature = "wml-settings")]
10626    #[serde(rename = "@w:xpath")]
10627    pub xpath: STString,
10628    #[cfg(feature = "wml-settings")]
10629    #[serde(rename = "@w:storeItemID")]
10630    pub store_item_i_d: STString,
10631    /// Unknown attributes captured for roundtrip fidelity.
10632    #[cfg(feature = "extra-attrs")]
10633    #[serde(skip)]
10634    #[cfg(feature = "extra-attrs")]
10635    #[serde(default)]
10636    #[cfg(feature = "extra-attrs")]
10637    pub extra_attrs: std::collections::HashMap<String, String>,
10638}
10639
10640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10641pub struct CTSdtPr {
10642    #[cfg(feature = "wml-settings")]
10643    #[serde(rename = "rPr")]
10644    #[serde(default, skip_serializing_if = "Option::is_none")]
10645    pub r_pr: Option<Box<RunProperties>>,
10646    #[cfg(feature = "wml-settings")]
10647    #[serde(rename = "alias")]
10648    #[serde(default, skip_serializing_if = "Option::is_none")]
10649    pub alias: Option<Box<CTString>>,
10650    #[cfg(feature = "wml-settings")]
10651    #[serde(rename = "tag")]
10652    #[serde(default, skip_serializing_if = "Option::is_none")]
10653    pub tag: Option<Box<CTString>>,
10654    #[cfg(feature = "wml-settings")]
10655    #[serde(rename = "id")]
10656    #[serde(default, skip_serializing_if = "Option::is_none")]
10657    pub id: Option<Box<CTDecimalNumber>>,
10658    #[cfg(feature = "wml-settings")]
10659    #[serde(rename = "lock")]
10660    #[serde(default, skip_serializing_if = "Option::is_none")]
10661    pub lock: Option<Box<CTLock>>,
10662    #[cfg(feature = "wml-settings")]
10663    #[serde(rename = "placeholder")]
10664    #[serde(default, skip_serializing_if = "Option::is_none")]
10665    pub placeholder: Option<PlaceholderElement>,
10666    #[cfg(feature = "wml-settings")]
10667    #[serde(rename = "temporary")]
10668    #[serde(default, skip_serializing_if = "Option::is_none")]
10669    pub temporary: Option<Box<OnOffElement>>,
10670    #[cfg(feature = "wml-settings")]
10671    #[serde(rename = "showingPlcHdr")]
10672    #[serde(default, skip_serializing_if = "Option::is_none")]
10673    pub showing_plc_hdr: Option<Box<OnOffElement>>,
10674    #[cfg(feature = "wml-settings")]
10675    #[serde(rename = "dataBinding")]
10676    #[serde(default, skip_serializing_if = "Option::is_none")]
10677    pub data_binding: Option<Box<CTDataBinding>>,
10678    #[cfg(feature = "wml-settings")]
10679    #[serde(rename = "label")]
10680    #[serde(default, skip_serializing_if = "Option::is_none")]
10681    pub label: Option<Box<CTDecimalNumber>>,
10682    #[cfg(feature = "wml-settings")]
10683    #[serde(rename = "tabIndex")]
10684    #[serde(default, skip_serializing_if = "Option::is_none")]
10685    pub tab_index: Option<Box<UnsignedDecimalNumberElement>>,
10686    #[cfg(feature = "wml-settings")]
10687    #[serde(rename = "equation")]
10688    #[serde(default, skip_serializing_if = "Option::is_none")]
10689    pub equation: Option<Box<CTEmpty>>,
10690    #[cfg(feature = "wml-settings")]
10691    #[serde(rename = "comboBox")]
10692    #[serde(default, skip_serializing_if = "Option::is_none")]
10693    pub combo_box: Option<Box<CTSdtComboBox>>,
10694    #[cfg(feature = "wml-settings")]
10695    #[serde(rename = "date")]
10696    #[serde(default, skip_serializing_if = "Option::is_none")]
10697    pub date: Option<Box<CTSdtDate>>,
10698    #[cfg(feature = "wml-settings")]
10699    #[serde(rename = "docPartObj")]
10700    #[serde(default, skip_serializing_if = "Option::is_none")]
10701    pub doc_part_obj: Option<Box<CTSdtDocPart>>,
10702    #[cfg(feature = "wml-settings")]
10703    #[serde(rename = "docPartList")]
10704    #[serde(default, skip_serializing_if = "Option::is_none")]
10705    pub doc_part_list: Option<Box<CTSdtDocPart>>,
10706    #[cfg(feature = "wml-settings")]
10707    #[serde(rename = "dropDownList")]
10708    #[serde(default, skip_serializing_if = "Option::is_none")]
10709    pub drop_down_list: Option<Box<CTSdtDropDownList>>,
10710    #[cfg(feature = "wml-settings")]
10711    #[serde(rename = "picture")]
10712    #[serde(default, skip_serializing_if = "Option::is_none")]
10713    pub picture: Option<Box<CTEmpty>>,
10714    #[cfg(feature = "wml-settings")]
10715    #[serde(rename = "richText")]
10716    #[serde(default, skip_serializing_if = "Option::is_none")]
10717    pub rich_text: Option<Box<CTEmpty>>,
10718    #[cfg(feature = "wml-settings")]
10719    #[serde(rename = "text")]
10720    #[serde(default, skip_serializing_if = "Option::is_none")]
10721    pub text: Option<Box<CTSdtText>>,
10722    #[cfg(feature = "wml-settings")]
10723    #[serde(rename = "citation")]
10724    #[serde(default, skip_serializing_if = "Option::is_none")]
10725    pub citation: Option<Box<CTEmpty>>,
10726    #[cfg(feature = "wml-settings")]
10727    #[serde(rename = "group")]
10728    #[serde(default, skip_serializing_if = "Option::is_none")]
10729    pub group: Option<Box<CTEmpty>>,
10730    #[cfg(feature = "wml-settings")]
10731    #[serde(rename = "bibliography")]
10732    #[serde(default, skip_serializing_if = "Option::is_none")]
10733    pub bibliography: Option<Box<CTEmpty>>,
10734    /// Unknown child elements captured for roundtrip fidelity.
10735    #[cfg(feature = "extra-children")]
10736    #[serde(skip)]
10737    #[cfg(feature = "extra-children")]
10738    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10739}
10740
10741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10742pub struct CTSdtEndPr {
10743    #[cfg(feature = "wml-styling")]
10744    #[serde(rename = "rPr")]
10745    #[serde(default, skip_serializing_if = "Option::is_none")]
10746    pub r_pr: Option<Box<RunProperties>>,
10747    /// Unknown child elements captured for roundtrip fidelity.
10748    #[cfg(feature = "extra-children")]
10749    #[serde(skip)]
10750    #[cfg(feature = "extra-children")]
10751    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10752}
10753
10754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10755pub struct CTDirContentRun {
10756    #[serde(rename = "@w:val")]
10757    #[serde(default, skip_serializing_if = "Option::is_none")]
10758    pub value: Option<STDirection>,
10759    #[serde(skip)]
10760    #[serde(default)]
10761    pub paragraph_content: Vec<ParagraphContent>,
10762    /// Unknown attributes captured for roundtrip fidelity.
10763    #[cfg(feature = "extra-attrs")]
10764    #[serde(skip)]
10765    #[cfg(feature = "extra-attrs")]
10766    #[serde(default)]
10767    #[cfg(feature = "extra-attrs")]
10768    pub extra_attrs: std::collections::HashMap<String, String>,
10769    /// Unknown child elements captured for roundtrip fidelity.
10770    #[cfg(feature = "extra-children")]
10771    #[serde(skip)]
10772    #[cfg(feature = "extra-children")]
10773    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10774}
10775
10776#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10777pub struct CTBdoContentRun {
10778    #[serde(rename = "@w:val")]
10779    #[serde(default, skip_serializing_if = "Option::is_none")]
10780    pub value: Option<STDirection>,
10781    #[serde(skip)]
10782    #[serde(default)]
10783    pub paragraph_content: Vec<ParagraphContent>,
10784    /// Unknown attributes captured for roundtrip fidelity.
10785    #[cfg(feature = "extra-attrs")]
10786    #[serde(skip)]
10787    #[cfg(feature = "extra-attrs")]
10788    #[serde(default)]
10789    #[cfg(feature = "extra-attrs")]
10790    pub extra_attrs: std::collections::HashMap<String, String>,
10791    /// Unknown child elements captured for roundtrip fidelity.
10792    #[cfg(feature = "extra-children")]
10793    #[serde(skip)]
10794    #[cfg(feature = "extra-children")]
10795    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10796}
10797
10798#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10799pub struct CTSdtContentRun {
10800    #[serde(skip)]
10801    #[serde(default)]
10802    pub paragraph_content: Vec<ParagraphContent>,
10803    /// Unknown child elements captured for roundtrip fidelity.
10804    #[cfg(feature = "extra-children")]
10805    #[serde(skip)]
10806    #[cfg(feature = "extra-children")]
10807    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10808}
10809
10810#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10811pub struct CTSdtContentBlock {
10812    #[serde(skip)]
10813    #[serde(default)]
10814    pub block_content: Vec<BlockContentChoice>,
10815    /// Unknown child elements captured for roundtrip fidelity.
10816    #[cfg(feature = "extra-children")]
10817    #[serde(skip)]
10818    #[cfg(feature = "extra-children")]
10819    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10820}
10821
10822#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10823pub struct CTSdtContentRow {
10824    #[serde(skip)]
10825    #[serde(default)]
10826    pub rows: Vec<RowContent>,
10827    /// Unknown child elements captured for roundtrip fidelity.
10828    #[cfg(feature = "extra-children")]
10829    #[serde(skip)]
10830    #[cfg(feature = "extra-children")]
10831    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10832}
10833
10834#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10835pub struct CTSdtContentCell {
10836    #[serde(skip)]
10837    #[serde(default)]
10838    pub cells: Vec<CellContent>,
10839    /// Unknown child elements captured for roundtrip fidelity.
10840    #[cfg(feature = "extra-children")]
10841    #[serde(skip)]
10842    #[cfg(feature = "extra-children")]
10843    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10844}
10845
10846#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10847pub struct CTSdtBlock {
10848    #[cfg(feature = "wml-settings")]
10849    #[serde(rename = "sdtPr")]
10850    #[serde(default, skip_serializing_if = "Option::is_none")]
10851    pub sdt_pr: Option<Box<CTSdtPr>>,
10852    #[cfg(feature = "wml-settings")]
10853    #[serde(rename = "sdtEndPr")]
10854    #[serde(default, skip_serializing_if = "Option::is_none")]
10855    pub sdt_end_pr: Option<Box<CTSdtEndPr>>,
10856    #[serde(rename = "sdtContent")]
10857    #[serde(default, skip_serializing_if = "Option::is_none")]
10858    pub sdt_content: Option<Box<CTSdtContentBlock>>,
10859    /// Unknown child elements captured for roundtrip fidelity.
10860    #[cfg(feature = "extra-children")]
10861    #[serde(skip)]
10862    #[cfg(feature = "extra-children")]
10863    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10864}
10865
10866#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10867pub struct CTSdtRun {
10868    #[cfg(feature = "wml-settings")]
10869    #[serde(rename = "sdtPr")]
10870    #[serde(default, skip_serializing_if = "Option::is_none")]
10871    pub sdt_pr: Option<Box<CTSdtPr>>,
10872    #[cfg(feature = "wml-settings")]
10873    #[serde(rename = "sdtEndPr")]
10874    #[serde(default, skip_serializing_if = "Option::is_none")]
10875    pub sdt_end_pr: Option<Box<CTSdtEndPr>>,
10876    #[serde(rename = "sdtContent")]
10877    #[serde(default, skip_serializing_if = "Option::is_none")]
10878    pub sdt_content: Option<Box<CTSdtContentRun>>,
10879    /// Unknown child elements captured for roundtrip fidelity.
10880    #[cfg(feature = "extra-children")]
10881    #[serde(skip)]
10882    #[cfg(feature = "extra-children")]
10883    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10884}
10885
10886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10887pub struct CTSdtCell {
10888    #[cfg(feature = "wml-settings")]
10889    #[serde(rename = "sdtPr")]
10890    #[serde(default, skip_serializing_if = "Option::is_none")]
10891    pub sdt_pr: Option<Box<CTSdtPr>>,
10892    #[cfg(feature = "wml-settings")]
10893    #[serde(rename = "sdtEndPr")]
10894    #[serde(default, skip_serializing_if = "Option::is_none")]
10895    pub sdt_end_pr: Option<Box<CTSdtEndPr>>,
10896    #[serde(rename = "sdtContent")]
10897    #[serde(default, skip_serializing_if = "Option::is_none")]
10898    pub sdt_content: Option<Box<CTSdtContentCell>>,
10899    /// Unknown child elements captured for roundtrip fidelity.
10900    #[cfg(feature = "extra-children")]
10901    #[serde(skip)]
10902    #[cfg(feature = "extra-children")]
10903    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10904}
10905
10906#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10907pub struct CTSdtRow {
10908    #[cfg(feature = "wml-settings")]
10909    #[serde(rename = "sdtPr")]
10910    #[serde(default, skip_serializing_if = "Option::is_none")]
10911    pub sdt_pr: Option<Box<CTSdtPr>>,
10912    #[cfg(feature = "wml-settings")]
10913    #[serde(rename = "sdtEndPr")]
10914    #[serde(default, skip_serializing_if = "Option::is_none")]
10915    pub sdt_end_pr: Option<Box<CTSdtEndPr>>,
10916    #[serde(rename = "sdtContent")]
10917    #[serde(default, skip_serializing_if = "Option::is_none")]
10918    pub sdt_content: Option<Box<CTSdtContentRow>>,
10919    /// Unknown child elements captured for roundtrip fidelity.
10920    #[cfg(feature = "extra-children")]
10921    #[serde(skip)]
10922    #[cfg(feature = "extra-children")]
10923    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10924}
10925
10926#[derive(Debug, Clone, Serialize, Deserialize)]
10927pub struct CTAttr {
10928    #[serde(rename = "@w:uri")]
10929    #[serde(default, skip_serializing_if = "Option::is_none")]
10930    pub uri: Option<STString>,
10931    #[serde(rename = "@w:name")]
10932    pub name: STString,
10933    #[serde(rename = "@w:val")]
10934    pub value: STString,
10935    /// Unknown attributes captured for roundtrip fidelity.
10936    #[cfg(feature = "extra-attrs")]
10937    #[serde(skip)]
10938    #[cfg(feature = "extra-attrs")]
10939    #[serde(default)]
10940    #[cfg(feature = "extra-attrs")]
10941    pub extra_attrs: std::collections::HashMap<String, String>,
10942}
10943
10944#[derive(Debug, Clone, Serialize, Deserialize)]
10945pub struct CTCustomXmlRun {
10946    #[cfg(feature = "wml-settings")]
10947    #[serde(rename = "@w:uri")]
10948    #[serde(default, skip_serializing_if = "Option::is_none")]
10949    pub uri: Option<STString>,
10950    #[cfg(feature = "wml-settings")]
10951    #[serde(rename = "@w:element")]
10952    pub element: STXmlName,
10953    #[cfg(feature = "wml-settings")]
10954    #[serde(rename = "customXmlPr")]
10955    #[serde(default, skip_serializing_if = "Option::is_none")]
10956    pub custom_xml_pr: Option<Box<CTCustomXmlPr>>,
10957    #[serde(skip)]
10958    #[serde(default)]
10959    pub paragraph_content: Vec<ParagraphContent>,
10960    /// Unknown attributes captured for roundtrip fidelity.
10961    #[cfg(feature = "extra-attrs")]
10962    #[serde(skip)]
10963    #[cfg(feature = "extra-attrs")]
10964    #[serde(default)]
10965    #[cfg(feature = "extra-attrs")]
10966    pub extra_attrs: std::collections::HashMap<String, String>,
10967    /// Unknown child elements captured for roundtrip fidelity.
10968    #[cfg(feature = "extra-children")]
10969    #[serde(skip)]
10970    #[cfg(feature = "extra-children")]
10971    pub extra_children: Vec<ooxml_xml::PositionedNode>,
10972}
10973
10974#[derive(Debug, Clone, Serialize, Deserialize)]
10975pub struct CTSmartTagRun {
10976    #[cfg(feature = "wml-settings")]
10977    #[serde(rename = "@w:uri")]
10978    #[serde(default, skip_serializing_if = "Option::is_none")]
10979    pub uri: Option<STString>,
10980    #[cfg(feature = "wml-settings")]
10981    #[serde(rename = "@w:element")]
10982    pub element: STXmlName,
10983    #[cfg(feature = "wml-settings")]
10984    #[serde(rename = "smartTagPr")]
10985    #[serde(default, skip_serializing_if = "Option::is_none")]
10986    pub smart_tag_pr: Option<Box<CTSmartTagPr>>,
10987    #[serde(skip)]
10988    #[serde(default)]
10989    pub paragraph_content: Vec<ParagraphContent>,
10990    /// Unknown attributes captured for roundtrip fidelity.
10991    #[cfg(feature = "extra-attrs")]
10992    #[serde(skip)]
10993    #[cfg(feature = "extra-attrs")]
10994    #[serde(default)]
10995    #[cfg(feature = "extra-attrs")]
10996    pub extra_attrs: std::collections::HashMap<String, String>,
10997    /// Unknown child elements captured for roundtrip fidelity.
10998    #[cfg(feature = "extra-children")]
10999    #[serde(skip)]
11000    #[cfg(feature = "extra-children")]
11001    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11002}
11003
11004#[derive(Debug, Clone, Serialize, Deserialize)]
11005pub struct CTCustomXmlBlock {
11006    #[cfg(feature = "wml-settings")]
11007    #[serde(rename = "@w:uri")]
11008    #[serde(default, skip_serializing_if = "Option::is_none")]
11009    pub uri: Option<STString>,
11010    #[cfg(feature = "wml-settings")]
11011    #[serde(rename = "@w:element")]
11012    pub element: STXmlName,
11013    #[cfg(feature = "wml-settings")]
11014    #[serde(rename = "customXmlPr")]
11015    #[serde(default, skip_serializing_if = "Option::is_none")]
11016    pub custom_xml_pr: Option<Box<CTCustomXmlPr>>,
11017    #[serde(skip)]
11018    #[serde(default)]
11019    pub block_content: Vec<BlockContentChoice>,
11020    /// Unknown attributes captured for roundtrip fidelity.
11021    #[cfg(feature = "extra-attrs")]
11022    #[serde(skip)]
11023    #[cfg(feature = "extra-attrs")]
11024    #[serde(default)]
11025    #[cfg(feature = "extra-attrs")]
11026    pub extra_attrs: std::collections::HashMap<String, String>,
11027    /// Unknown child elements captured for roundtrip fidelity.
11028    #[cfg(feature = "extra-children")]
11029    #[serde(skip)]
11030    #[cfg(feature = "extra-children")]
11031    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11032}
11033
11034#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11035pub struct CTCustomXmlPr {
11036    #[cfg(feature = "wml-settings")]
11037    #[serde(rename = "placeholder")]
11038    #[serde(default, skip_serializing_if = "Option::is_none")]
11039    pub placeholder: Option<Box<CTString>>,
11040    #[cfg(feature = "wml-settings")]
11041    #[serde(rename = "attr")]
11042    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11043    pub attr: Vec<CTAttr>,
11044    /// Unknown child elements captured for roundtrip fidelity.
11045    #[cfg(feature = "extra-children")]
11046    #[serde(skip)]
11047    #[cfg(feature = "extra-children")]
11048    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11049}
11050
11051#[derive(Debug, Clone, Serialize, Deserialize)]
11052pub struct CTCustomXmlRow {
11053    #[cfg(feature = "wml-settings")]
11054    #[serde(rename = "@w:uri")]
11055    #[serde(default, skip_serializing_if = "Option::is_none")]
11056    pub uri: Option<STString>,
11057    #[cfg(feature = "wml-settings")]
11058    #[serde(rename = "@w:element")]
11059    pub element: STXmlName,
11060    #[cfg(feature = "wml-settings")]
11061    #[serde(rename = "customXmlPr")]
11062    #[serde(default, skip_serializing_if = "Option::is_none")]
11063    pub custom_xml_pr: Option<Box<CTCustomXmlPr>>,
11064    #[serde(skip)]
11065    #[serde(default)]
11066    pub rows: Vec<RowContent>,
11067    /// Unknown attributes captured for roundtrip fidelity.
11068    #[cfg(feature = "extra-attrs")]
11069    #[serde(skip)]
11070    #[cfg(feature = "extra-attrs")]
11071    #[serde(default)]
11072    #[cfg(feature = "extra-attrs")]
11073    pub extra_attrs: std::collections::HashMap<String, String>,
11074    /// Unknown child elements captured for roundtrip fidelity.
11075    #[cfg(feature = "extra-children")]
11076    #[serde(skip)]
11077    #[cfg(feature = "extra-children")]
11078    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11079}
11080
11081#[derive(Debug, Clone, Serialize, Deserialize)]
11082pub struct CTCustomXmlCell {
11083    #[cfg(feature = "wml-settings")]
11084    #[serde(rename = "@w:uri")]
11085    #[serde(default, skip_serializing_if = "Option::is_none")]
11086    pub uri: Option<STString>,
11087    #[cfg(feature = "wml-settings")]
11088    #[serde(rename = "@w:element")]
11089    pub element: STXmlName,
11090    #[cfg(feature = "wml-settings")]
11091    #[serde(rename = "customXmlPr")]
11092    #[serde(default, skip_serializing_if = "Option::is_none")]
11093    pub custom_xml_pr: Option<Box<CTCustomXmlPr>>,
11094    #[serde(skip)]
11095    #[serde(default)]
11096    pub cells: Vec<CellContent>,
11097    /// Unknown attributes captured for roundtrip fidelity.
11098    #[cfg(feature = "extra-attrs")]
11099    #[serde(skip)]
11100    #[cfg(feature = "extra-attrs")]
11101    #[serde(default)]
11102    #[cfg(feature = "extra-attrs")]
11103    pub extra_attrs: std::collections::HashMap<String, String>,
11104    /// Unknown child elements captured for roundtrip fidelity.
11105    #[cfg(feature = "extra-children")]
11106    #[serde(skip)]
11107    #[cfg(feature = "extra-children")]
11108    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11109}
11110
11111#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11112pub struct CTSmartTagPr {
11113    #[cfg(feature = "wml-settings")]
11114    #[serde(rename = "attr")]
11115    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11116    pub attr: Vec<CTAttr>,
11117    /// Unknown child elements captured for roundtrip fidelity.
11118    #[cfg(feature = "extra-children")]
11119    #[serde(skip)]
11120    #[cfg(feature = "extra-children")]
11121    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11122}
11123
11124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11125pub struct Paragraph {
11126    #[cfg(feature = "wml-track-changes")]
11127    #[serde(rename = "@w:rsidRPr")]
11128    #[serde(default, skip_serializing_if = "Option::is_none")]
11129    pub rsid_r_pr: Option<STLongHexNumber>,
11130    #[cfg(feature = "wml-track-changes")]
11131    #[serde(rename = "@w:rsidR")]
11132    #[serde(default, skip_serializing_if = "Option::is_none")]
11133    pub rsid_r: Option<STLongHexNumber>,
11134    #[cfg(feature = "wml-track-changes")]
11135    #[serde(rename = "@w:rsidDel")]
11136    #[serde(default, skip_serializing_if = "Option::is_none")]
11137    pub rsid_del: Option<STLongHexNumber>,
11138    #[cfg(feature = "wml-track-changes")]
11139    #[serde(rename = "@w:rsidP")]
11140    #[serde(default, skip_serializing_if = "Option::is_none")]
11141    pub rsid_p: Option<STLongHexNumber>,
11142    #[cfg(feature = "wml-track-changes")]
11143    #[serde(rename = "@w:rsidRDefault")]
11144    #[serde(default, skip_serializing_if = "Option::is_none")]
11145    pub rsid_r_default: Option<STLongHexNumber>,
11146    #[cfg(feature = "wml-styling")]
11147    #[serde(rename = "pPr")]
11148    #[serde(default, skip_serializing_if = "Option::is_none")]
11149    pub p_pr: Option<Box<ParagraphProperties>>,
11150    #[serde(skip)]
11151    #[serde(default)]
11152    pub paragraph_content: Vec<ParagraphContent>,
11153    /// Unknown attributes captured for roundtrip fidelity.
11154    #[cfg(feature = "extra-attrs")]
11155    #[serde(skip)]
11156    #[cfg(feature = "extra-attrs")]
11157    #[serde(default)]
11158    #[cfg(feature = "extra-attrs")]
11159    pub extra_attrs: std::collections::HashMap<String, String>,
11160    /// Unknown child elements captured for roundtrip fidelity.
11161    #[cfg(feature = "extra-children")]
11162    #[serde(skip)]
11163    #[cfg(feature = "extra-children")]
11164    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11165}
11166
11167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11168pub struct CTHeight {
11169    #[serde(rename = "@w:val")]
11170    #[serde(default, skip_serializing_if = "Option::is_none")]
11171    pub value: Option<STTwipsMeasure>,
11172    #[cfg(feature = "wml-tables")]
11173    #[serde(rename = "@w:hRule")]
11174    #[serde(default, skip_serializing_if = "Option::is_none")]
11175    pub h_rule: Option<STHeightRule>,
11176    /// Unknown attributes captured for roundtrip fidelity.
11177    #[cfg(feature = "extra-attrs")]
11178    #[serde(skip)]
11179    #[cfg(feature = "extra-attrs")]
11180    #[serde(default)]
11181    #[cfg(feature = "extra-attrs")]
11182    pub extra_attrs: std::collections::HashMap<String, String>,
11183}
11184
11185#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11186pub struct CTTblWidth {
11187    #[serde(rename = "@w:w")]
11188    #[serde(default, skip_serializing_if = "Option::is_none")]
11189    pub width: Option<STMeasurementOrPercent>,
11190    #[serde(rename = "@w:type")]
11191    #[serde(default, skip_serializing_if = "Option::is_none")]
11192    pub r#type: Option<STTblWidth>,
11193    /// Unknown attributes captured for roundtrip fidelity.
11194    #[cfg(feature = "extra-attrs")]
11195    #[serde(skip)]
11196    #[cfg(feature = "extra-attrs")]
11197    #[serde(default)]
11198    #[cfg(feature = "extra-attrs")]
11199    pub extra_attrs: std::collections::HashMap<String, String>,
11200}
11201
11202#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11203pub struct TableGridColumn {
11204    #[serde(rename = "@w:w")]
11205    #[serde(default, skip_serializing_if = "Option::is_none")]
11206    pub width: Option<STTwipsMeasure>,
11207    /// Unknown attributes captured for roundtrip fidelity.
11208    #[cfg(feature = "extra-attrs")]
11209    #[serde(skip)]
11210    #[cfg(feature = "extra-attrs")]
11211    #[serde(default)]
11212    #[cfg(feature = "extra-attrs")]
11213    pub extra_attrs: std::collections::HashMap<String, String>,
11214}
11215
11216#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11217pub struct CTTblGridBase {
11218    #[serde(rename = "gridCol")]
11219    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11220    pub grid_col: Vec<TableGridColumn>,
11221    /// Unknown child elements captured for roundtrip fidelity.
11222    #[cfg(feature = "extra-children")]
11223    #[serde(skip)]
11224    #[cfg(feature = "extra-children")]
11225    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11226}
11227
11228#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11229pub struct TableGrid {
11230    #[serde(rename = "gridCol")]
11231    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11232    pub grid_col: Vec<TableGridColumn>,
11233    #[cfg(feature = "wml-track-changes")]
11234    #[serde(rename = "tblGridChange")]
11235    #[serde(default, skip_serializing_if = "Option::is_none")]
11236    pub tbl_grid_change: Option<Box<CTTblGridChange>>,
11237    /// Unknown child elements captured for roundtrip fidelity.
11238    #[cfg(feature = "extra-children")]
11239    #[serde(skip)]
11240    #[cfg(feature = "extra-children")]
11241    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11242}
11243
11244#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11245pub struct CTTcBorders {
11246    #[cfg(feature = "wml-tables")]
11247    #[serde(rename = "top")]
11248    #[serde(default, skip_serializing_if = "Option::is_none")]
11249    pub top: Option<Box<CTBorder>>,
11250    #[cfg(feature = "wml-tables")]
11251    #[serde(rename = "start")]
11252    #[serde(default, skip_serializing_if = "Option::is_none")]
11253    pub start: Option<Box<CTBorder>>,
11254    #[cfg(feature = "wml-tables")]
11255    #[serde(rename = "left")]
11256    #[serde(default, skip_serializing_if = "Option::is_none")]
11257    pub left: Option<Box<CTBorder>>,
11258    #[cfg(feature = "wml-tables")]
11259    #[serde(rename = "bottom")]
11260    #[serde(default, skip_serializing_if = "Option::is_none")]
11261    pub bottom: Option<Box<CTBorder>>,
11262    #[cfg(feature = "wml-tables")]
11263    #[serde(rename = "end")]
11264    #[serde(default, skip_serializing_if = "Option::is_none")]
11265    pub end: Option<Box<CTBorder>>,
11266    #[cfg(feature = "wml-tables")]
11267    #[serde(rename = "right")]
11268    #[serde(default, skip_serializing_if = "Option::is_none")]
11269    pub right: Option<Box<CTBorder>>,
11270    #[cfg(feature = "wml-tables")]
11271    #[serde(rename = "insideH")]
11272    #[serde(default, skip_serializing_if = "Option::is_none")]
11273    pub inside_h: Option<Box<CTBorder>>,
11274    #[cfg(feature = "wml-tables")]
11275    #[serde(rename = "insideV")]
11276    #[serde(default, skip_serializing_if = "Option::is_none")]
11277    pub inside_v: Option<Box<CTBorder>>,
11278    #[cfg(feature = "wml-tables")]
11279    #[serde(rename = "tl2br")]
11280    #[serde(default, skip_serializing_if = "Option::is_none")]
11281    pub tl2br: Option<Box<CTBorder>>,
11282    #[cfg(feature = "wml-tables")]
11283    #[serde(rename = "tr2bl")]
11284    #[serde(default, skip_serializing_if = "Option::is_none")]
11285    pub tr2bl: Option<Box<CTBorder>>,
11286    /// Unknown child elements captured for roundtrip fidelity.
11287    #[cfg(feature = "extra-children")]
11288    #[serde(skip)]
11289    #[cfg(feature = "extra-children")]
11290    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11291}
11292
11293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11294pub struct CTTcMar {
11295    #[cfg(feature = "wml-tables")]
11296    #[serde(rename = "top")]
11297    #[serde(default, skip_serializing_if = "Option::is_none")]
11298    pub top: Option<Box<CTTblWidth>>,
11299    #[cfg(feature = "wml-tables")]
11300    #[serde(rename = "start")]
11301    #[serde(default, skip_serializing_if = "Option::is_none")]
11302    pub start: Option<Box<CTTblWidth>>,
11303    #[cfg(feature = "wml-tables")]
11304    #[serde(rename = "left")]
11305    #[serde(default, skip_serializing_if = "Option::is_none")]
11306    pub left: Option<Box<CTTblWidth>>,
11307    #[cfg(feature = "wml-tables")]
11308    #[serde(rename = "bottom")]
11309    #[serde(default, skip_serializing_if = "Option::is_none")]
11310    pub bottom: Option<Box<CTTblWidth>>,
11311    #[cfg(feature = "wml-tables")]
11312    #[serde(rename = "end")]
11313    #[serde(default, skip_serializing_if = "Option::is_none")]
11314    pub end: Option<Box<CTTblWidth>>,
11315    #[cfg(feature = "wml-tables")]
11316    #[serde(rename = "right")]
11317    #[serde(default, skip_serializing_if = "Option::is_none")]
11318    pub right: Option<Box<CTTblWidth>>,
11319    /// Unknown child elements captured for roundtrip fidelity.
11320    #[cfg(feature = "extra-children")]
11321    #[serde(skip)]
11322    #[cfg(feature = "extra-children")]
11323    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11324}
11325
11326#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11327pub struct CTVMerge {
11328    #[serde(rename = "@w:val")]
11329    #[serde(default, skip_serializing_if = "Option::is_none")]
11330    pub value: Option<STMerge>,
11331    /// Unknown attributes captured for roundtrip fidelity.
11332    #[cfg(feature = "extra-attrs")]
11333    #[serde(skip)]
11334    #[cfg(feature = "extra-attrs")]
11335    #[serde(default)]
11336    #[cfg(feature = "extra-attrs")]
11337    pub extra_attrs: std::collections::HashMap<String, String>,
11338}
11339
11340#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11341pub struct CTHMerge {
11342    #[serde(rename = "@w:val")]
11343    #[serde(default, skip_serializing_if = "Option::is_none")]
11344    pub value: Option<STMerge>,
11345    /// Unknown attributes captured for roundtrip fidelity.
11346    #[cfg(feature = "extra-attrs")]
11347    #[serde(skip)]
11348    #[cfg(feature = "extra-attrs")]
11349    #[serde(default)]
11350    #[cfg(feature = "extra-attrs")]
11351    pub extra_attrs: std::collections::HashMap<String, String>,
11352}
11353
11354#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11355pub struct CTTcPrBase {
11356    #[cfg(feature = "wml-styling")]
11357    #[serde(rename = "cnfStyle")]
11358    #[serde(default, skip_serializing_if = "Option::is_none")]
11359    pub cnf_style: Option<Box<CTCnf>>,
11360    #[cfg(feature = "wml-tables")]
11361    #[serde(rename = "tcW")]
11362    #[serde(default, skip_serializing_if = "Option::is_none")]
11363    pub tc_w: Option<Box<CTTblWidth>>,
11364    #[cfg(feature = "wml-tables")]
11365    #[serde(rename = "gridSpan")]
11366    #[serde(default, skip_serializing_if = "Option::is_none")]
11367    pub grid_span: Option<Box<CTDecimalNumber>>,
11368    #[cfg(feature = "wml-tables")]
11369    #[serde(rename = "hMerge")]
11370    #[serde(default, skip_serializing_if = "Option::is_none")]
11371    pub horizontal_merge: Option<Box<CTHMerge>>,
11372    #[cfg(feature = "wml-tables")]
11373    #[serde(rename = "vMerge")]
11374    #[serde(default, skip_serializing_if = "Option::is_none")]
11375    pub vertical_merge: Option<Box<CTVMerge>>,
11376    #[cfg(feature = "wml-tables")]
11377    #[serde(rename = "tcBorders")]
11378    #[serde(default, skip_serializing_if = "Option::is_none")]
11379    pub tc_borders: Option<Box<CTTcBorders>>,
11380    #[cfg(feature = "wml-tables")]
11381    #[serde(rename = "shd")]
11382    #[serde(default, skip_serializing_if = "Option::is_none")]
11383    pub shading: Option<Box<CTShd>>,
11384    #[cfg(feature = "wml-tables")]
11385    #[serde(rename = "noWrap")]
11386    #[serde(default, skip_serializing_if = "Option::is_none")]
11387    pub no_wrap: Option<Box<OnOffElement>>,
11388    #[cfg(feature = "wml-tables")]
11389    #[serde(rename = "tcMar")]
11390    #[serde(default, skip_serializing_if = "Option::is_none")]
11391    pub tc_mar: Option<Box<CTTcMar>>,
11392    #[cfg(feature = "wml-tables")]
11393    #[serde(rename = "textDirection")]
11394    #[serde(default, skip_serializing_if = "Option::is_none")]
11395    pub text_direction: Option<Box<CTTextDirection>>,
11396    #[cfg(feature = "wml-tables")]
11397    #[serde(rename = "tcFitText")]
11398    #[serde(default, skip_serializing_if = "Option::is_none")]
11399    pub tc_fit_text: Option<Box<OnOffElement>>,
11400    #[cfg(feature = "wml-tables")]
11401    #[serde(rename = "vAlign")]
11402    #[serde(default, skip_serializing_if = "Option::is_none")]
11403    pub v_align: Option<Box<CTVerticalJc>>,
11404    #[cfg(feature = "wml-tables")]
11405    #[serde(rename = "hideMark")]
11406    #[serde(default, skip_serializing_if = "Option::is_none")]
11407    pub hide_mark: Option<Box<OnOffElement>>,
11408    #[cfg(feature = "wml-tables")]
11409    #[serde(rename = "headers")]
11410    #[serde(default, skip_serializing_if = "Option::is_none")]
11411    pub headers: Option<Box<CTHeaders>>,
11412    /// Unknown child elements captured for roundtrip fidelity.
11413    #[cfg(feature = "extra-children")]
11414    #[serde(skip)]
11415    #[cfg(feature = "extra-children")]
11416    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11417}
11418
11419#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11420pub struct TableCellProperties {
11421    #[cfg(feature = "wml-styling")]
11422    #[serde(rename = "cnfStyle")]
11423    #[serde(default, skip_serializing_if = "Option::is_none")]
11424    pub cnf_style: Option<Box<CTCnf>>,
11425    #[cfg(feature = "wml-tables")]
11426    #[serde(rename = "tcW")]
11427    #[serde(default, skip_serializing_if = "Option::is_none")]
11428    pub tc_w: Option<Box<CTTblWidth>>,
11429    #[cfg(feature = "wml-tables")]
11430    #[serde(rename = "gridSpan")]
11431    #[serde(default, skip_serializing_if = "Option::is_none")]
11432    pub grid_span: Option<Box<CTDecimalNumber>>,
11433    #[cfg(feature = "wml-tables")]
11434    #[serde(rename = "hMerge")]
11435    #[serde(default, skip_serializing_if = "Option::is_none")]
11436    pub horizontal_merge: Option<Box<CTHMerge>>,
11437    #[cfg(feature = "wml-tables")]
11438    #[serde(rename = "vMerge")]
11439    #[serde(default, skip_serializing_if = "Option::is_none")]
11440    pub vertical_merge: Option<Box<CTVMerge>>,
11441    #[cfg(feature = "wml-tables")]
11442    #[serde(rename = "tcBorders")]
11443    #[serde(default, skip_serializing_if = "Option::is_none")]
11444    pub tc_borders: Option<Box<CTTcBorders>>,
11445    #[cfg(feature = "wml-tables")]
11446    #[serde(rename = "shd")]
11447    #[serde(default, skip_serializing_if = "Option::is_none")]
11448    pub shading: Option<Box<CTShd>>,
11449    #[cfg(feature = "wml-tables")]
11450    #[serde(rename = "noWrap")]
11451    #[serde(default, skip_serializing_if = "Option::is_none")]
11452    pub no_wrap: Option<Box<OnOffElement>>,
11453    #[cfg(feature = "wml-tables")]
11454    #[serde(rename = "tcMar")]
11455    #[serde(default, skip_serializing_if = "Option::is_none")]
11456    pub tc_mar: Option<Box<CTTcMar>>,
11457    #[cfg(feature = "wml-tables")]
11458    #[serde(rename = "textDirection")]
11459    #[serde(default, skip_serializing_if = "Option::is_none")]
11460    pub text_direction: Option<Box<CTTextDirection>>,
11461    #[cfg(feature = "wml-tables")]
11462    #[serde(rename = "tcFitText")]
11463    #[serde(default, skip_serializing_if = "Option::is_none")]
11464    pub tc_fit_text: Option<Box<OnOffElement>>,
11465    #[cfg(feature = "wml-tables")]
11466    #[serde(rename = "vAlign")]
11467    #[serde(default, skip_serializing_if = "Option::is_none")]
11468    pub v_align: Option<Box<CTVerticalJc>>,
11469    #[cfg(feature = "wml-tables")]
11470    #[serde(rename = "hideMark")]
11471    #[serde(default, skip_serializing_if = "Option::is_none")]
11472    pub hide_mark: Option<Box<OnOffElement>>,
11473    #[cfg(feature = "wml-tables")]
11474    #[serde(rename = "headers")]
11475    #[serde(default, skip_serializing_if = "Option::is_none")]
11476    pub headers: Option<Box<CTHeaders>>,
11477    #[serde(skip)]
11478    #[serde(default)]
11479    pub cell_markup: Option<Box<CellMarkup>>,
11480    #[cfg(feature = "wml-track-changes")]
11481    #[serde(rename = "tcPrChange")]
11482    #[serde(default, skip_serializing_if = "Option::is_none")]
11483    pub tc_pr_change: Option<Box<CTTcPrChange>>,
11484    /// Unknown child elements captured for roundtrip fidelity.
11485    #[cfg(feature = "extra-children")]
11486    #[serde(skip)]
11487    #[cfg(feature = "extra-children")]
11488    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11489}
11490
11491#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11492pub struct CTTcPrInner {
11493    #[serde(rename = "cnfStyle")]
11494    #[serde(default, skip_serializing_if = "Option::is_none")]
11495    pub cnf_style: Option<Box<CTCnf>>,
11496    #[serde(rename = "tcW")]
11497    #[serde(default, skip_serializing_if = "Option::is_none")]
11498    pub tc_w: Option<Box<CTTblWidth>>,
11499    #[serde(rename = "gridSpan")]
11500    #[serde(default, skip_serializing_if = "Option::is_none")]
11501    pub grid_span: Option<Box<CTDecimalNumber>>,
11502    #[serde(rename = "hMerge")]
11503    #[serde(default, skip_serializing_if = "Option::is_none")]
11504    pub horizontal_merge: Option<Box<CTHMerge>>,
11505    #[serde(rename = "vMerge")]
11506    #[serde(default, skip_serializing_if = "Option::is_none")]
11507    pub vertical_merge: Option<Box<CTVMerge>>,
11508    #[serde(rename = "tcBorders")]
11509    #[serde(default, skip_serializing_if = "Option::is_none")]
11510    pub tc_borders: Option<Box<CTTcBorders>>,
11511    #[serde(rename = "shd")]
11512    #[serde(default, skip_serializing_if = "Option::is_none")]
11513    pub shading: Option<Box<CTShd>>,
11514    #[serde(rename = "noWrap")]
11515    #[serde(default, skip_serializing_if = "Option::is_none")]
11516    pub no_wrap: Option<Box<OnOffElement>>,
11517    #[serde(rename = "tcMar")]
11518    #[serde(default, skip_serializing_if = "Option::is_none")]
11519    pub tc_mar: Option<Box<CTTcMar>>,
11520    #[serde(rename = "textDirection")]
11521    #[serde(default, skip_serializing_if = "Option::is_none")]
11522    pub text_direction: Option<Box<CTTextDirection>>,
11523    #[serde(rename = "tcFitText")]
11524    #[serde(default, skip_serializing_if = "Option::is_none")]
11525    pub tc_fit_text: Option<Box<OnOffElement>>,
11526    #[serde(rename = "vAlign")]
11527    #[serde(default, skip_serializing_if = "Option::is_none")]
11528    pub v_align: Option<Box<CTVerticalJc>>,
11529    #[serde(rename = "hideMark")]
11530    #[serde(default, skip_serializing_if = "Option::is_none")]
11531    pub hide_mark: Option<Box<OnOffElement>>,
11532    #[serde(rename = "headers")]
11533    #[serde(default, skip_serializing_if = "Option::is_none")]
11534    pub headers: Option<Box<CTHeaders>>,
11535    #[serde(skip)]
11536    #[serde(default)]
11537    pub cell_markup: Option<Box<CellMarkup>>,
11538    /// Unknown child elements captured for roundtrip fidelity.
11539    #[cfg(feature = "extra-children")]
11540    #[serde(skip)]
11541    #[cfg(feature = "extra-children")]
11542    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11543}
11544
11545#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11546pub struct TableCell {
11547    #[cfg(feature = "wml-tables")]
11548    #[serde(rename = "@w:id")]
11549    #[serde(default, skip_serializing_if = "Option::is_none")]
11550    pub id: Option<STString>,
11551    #[cfg(feature = "wml-tables")]
11552    #[serde(rename = "tcPr")]
11553    #[serde(default, skip_serializing_if = "Option::is_none")]
11554    pub cell_properties: Option<Box<TableCellProperties>>,
11555    #[serde(skip)]
11556    #[serde(default)]
11557    pub block_content: Vec<BlockContent>,
11558    /// Unknown attributes captured for roundtrip fidelity.
11559    #[cfg(feature = "extra-attrs")]
11560    #[serde(skip)]
11561    #[cfg(feature = "extra-attrs")]
11562    #[serde(default)]
11563    #[cfg(feature = "extra-attrs")]
11564    pub extra_attrs: std::collections::HashMap<String, String>,
11565    /// Unknown child elements captured for roundtrip fidelity.
11566    #[cfg(feature = "extra-children")]
11567    #[serde(skip)]
11568    #[cfg(feature = "extra-children")]
11569    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11570}
11571
11572#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11573pub struct CTCnf {
11574    #[cfg(feature = "wml-styling")]
11575    #[serde(rename = "@w:val")]
11576    #[serde(default, skip_serializing_if = "Option::is_none")]
11577    pub value: Option<STCnf>,
11578    #[cfg(feature = "wml-styling")]
11579    #[serde(rename = "@w:firstRow")]
11580    #[serde(default, skip_serializing_if = "Option::is_none")]
11581    pub first_row: Option<OnOff>,
11582    #[cfg(feature = "wml-styling")]
11583    #[serde(rename = "@w:lastRow")]
11584    #[serde(default, skip_serializing_if = "Option::is_none")]
11585    pub last_row: Option<OnOff>,
11586    #[cfg(feature = "wml-styling")]
11587    #[serde(rename = "@w:firstColumn")]
11588    #[serde(default, skip_serializing_if = "Option::is_none")]
11589    pub first_column: Option<OnOff>,
11590    #[cfg(feature = "wml-styling")]
11591    #[serde(rename = "@w:lastColumn")]
11592    #[serde(default, skip_serializing_if = "Option::is_none")]
11593    pub last_column: Option<OnOff>,
11594    #[cfg(feature = "wml-styling")]
11595    #[serde(rename = "@w:oddVBand")]
11596    #[serde(default, skip_serializing_if = "Option::is_none")]
11597    pub odd_v_band: Option<OnOff>,
11598    #[cfg(feature = "wml-styling")]
11599    #[serde(rename = "@w:evenVBand")]
11600    #[serde(default, skip_serializing_if = "Option::is_none")]
11601    pub even_v_band: Option<OnOff>,
11602    #[cfg(feature = "wml-styling")]
11603    #[serde(rename = "@w:oddHBand")]
11604    #[serde(default, skip_serializing_if = "Option::is_none")]
11605    pub odd_h_band: Option<OnOff>,
11606    #[cfg(feature = "wml-styling")]
11607    #[serde(rename = "@w:evenHBand")]
11608    #[serde(default, skip_serializing_if = "Option::is_none")]
11609    pub even_h_band: Option<OnOff>,
11610    #[cfg(feature = "wml-styling")]
11611    #[serde(rename = "@w:firstRowFirstColumn")]
11612    #[serde(default, skip_serializing_if = "Option::is_none")]
11613    pub first_row_first_column: Option<OnOff>,
11614    #[cfg(feature = "wml-styling")]
11615    #[serde(rename = "@w:firstRowLastColumn")]
11616    #[serde(default, skip_serializing_if = "Option::is_none")]
11617    pub first_row_last_column: Option<OnOff>,
11618    #[cfg(feature = "wml-styling")]
11619    #[serde(rename = "@w:lastRowFirstColumn")]
11620    #[serde(default, skip_serializing_if = "Option::is_none")]
11621    pub last_row_first_column: Option<OnOff>,
11622    #[cfg(feature = "wml-styling")]
11623    #[serde(rename = "@w:lastRowLastColumn")]
11624    #[serde(default, skip_serializing_if = "Option::is_none")]
11625    pub last_row_last_column: Option<OnOff>,
11626    /// Unknown attributes captured for roundtrip fidelity.
11627    #[cfg(feature = "extra-attrs")]
11628    #[serde(skip)]
11629    #[cfg(feature = "extra-attrs")]
11630    #[serde(default)]
11631    #[cfg(feature = "extra-attrs")]
11632    pub extra_attrs: std::collections::HashMap<String, String>,
11633}
11634
11635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11636pub struct CTHeaders {
11637    #[serde(rename = "header")]
11638    #[serde(default, skip_serializing_if = "Vec::is_empty")]
11639    pub header: Vec<CTString>,
11640    /// Unknown child elements captured for roundtrip fidelity.
11641    #[cfg(feature = "extra-children")]
11642    #[serde(skip)]
11643    #[cfg(feature = "extra-children")]
11644    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11645}
11646
11647#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11648pub struct CTTrPrBase {
11649    #[cfg(feature = "wml-styling")]
11650    #[serde(rename = "cnfStyle")]
11651    #[serde(default, skip_serializing_if = "Option::is_none")]
11652    pub cnf_style: Option<Box<CTCnf>>,
11653    #[cfg(feature = "wml-settings")]
11654    #[serde(rename = "divId")]
11655    #[serde(default, skip_serializing_if = "Option::is_none")]
11656    pub div_id: Option<Box<CTDecimalNumber>>,
11657    #[cfg(feature = "wml-tables")]
11658    #[serde(rename = "gridBefore")]
11659    #[serde(default, skip_serializing_if = "Option::is_none")]
11660    pub grid_before: Option<Box<CTDecimalNumber>>,
11661    #[cfg(feature = "wml-tables")]
11662    #[serde(rename = "gridAfter")]
11663    #[serde(default, skip_serializing_if = "Option::is_none")]
11664    pub grid_after: Option<Box<CTDecimalNumber>>,
11665    #[cfg(feature = "wml-tables")]
11666    #[serde(rename = "wBefore")]
11667    #[serde(default, skip_serializing_if = "Option::is_none")]
11668    pub w_before: Option<Box<CTTblWidth>>,
11669    #[cfg(feature = "wml-tables")]
11670    #[serde(rename = "wAfter")]
11671    #[serde(default, skip_serializing_if = "Option::is_none")]
11672    pub w_after: Option<Box<CTTblWidth>>,
11673    #[cfg(feature = "wml-tables")]
11674    #[serde(rename = "cantSplit")]
11675    #[serde(default, skip_serializing_if = "Option::is_none")]
11676    pub cant_split: Option<Box<OnOffElement>>,
11677    #[cfg(feature = "wml-tables")]
11678    #[serde(rename = "trHeight")]
11679    #[serde(default, skip_serializing_if = "Option::is_none")]
11680    pub tr_height: Option<Box<CTHeight>>,
11681    #[cfg(feature = "wml-tables")]
11682    #[serde(rename = "tblHeader")]
11683    #[serde(default, skip_serializing_if = "Option::is_none")]
11684    pub tbl_header: Option<Box<OnOffElement>>,
11685    #[cfg(feature = "wml-tables")]
11686    #[serde(rename = "tblCellSpacing")]
11687    #[serde(default, skip_serializing_if = "Option::is_none")]
11688    pub tbl_cell_spacing: Option<Box<CTTblWidth>>,
11689    #[cfg(feature = "wml-tables")]
11690    #[serde(rename = "jc")]
11691    #[serde(default, skip_serializing_if = "Option::is_none")]
11692    pub justification: Option<Box<CTJcTable>>,
11693    #[cfg(feature = "wml-tables")]
11694    #[serde(rename = "hidden")]
11695    #[serde(default, skip_serializing_if = "Option::is_none")]
11696    pub hidden: Option<Box<OnOffElement>>,
11697    /// Unknown child elements captured for roundtrip fidelity.
11698    #[cfg(feature = "extra-children")]
11699    #[serde(skip)]
11700    #[cfg(feature = "extra-children")]
11701    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11702}
11703
11704#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11705pub struct TableRowProperties {
11706    #[cfg(feature = "wml-styling")]
11707    #[serde(rename = "cnfStyle")]
11708    #[serde(default, skip_serializing_if = "Option::is_none")]
11709    pub cnf_style: Option<Box<CTCnf>>,
11710    #[cfg(feature = "wml-settings")]
11711    #[serde(rename = "divId")]
11712    #[serde(default, skip_serializing_if = "Option::is_none")]
11713    pub div_id: Option<Box<CTDecimalNumber>>,
11714    #[cfg(feature = "wml-tables")]
11715    #[serde(rename = "gridBefore")]
11716    #[serde(default, skip_serializing_if = "Option::is_none")]
11717    pub grid_before: Option<Box<CTDecimalNumber>>,
11718    #[cfg(feature = "wml-tables")]
11719    #[serde(rename = "gridAfter")]
11720    #[serde(default, skip_serializing_if = "Option::is_none")]
11721    pub grid_after: Option<Box<CTDecimalNumber>>,
11722    #[cfg(feature = "wml-tables")]
11723    #[serde(rename = "wBefore")]
11724    #[serde(default, skip_serializing_if = "Option::is_none")]
11725    pub w_before: Option<Box<CTTblWidth>>,
11726    #[cfg(feature = "wml-tables")]
11727    #[serde(rename = "wAfter")]
11728    #[serde(default, skip_serializing_if = "Option::is_none")]
11729    pub w_after: Option<Box<CTTblWidth>>,
11730    #[cfg(feature = "wml-tables")]
11731    #[serde(rename = "cantSplit")]
11732    #[serde(default, skip_serializing_if = "Option::is_none")]
11733    pub cant_split: Option<Box<OnOffElement>>,
11734    #[cfg(feature = "wml-tables")]
11735    #[serde(rename = "trHeight")]
11736    #[serde(default, skip_serializing_if = "Option::is_none")]
11737    pub tr_height: Option<Box<CTHeight>>,
11738    #[cfg(feature = "wml-tables")]
11739    #[serde(rename = "tblHeader")]
11740    #[serde(default, skip_serializing_if = "Option::is_none")]
11741    pub tbl_header: Option<Box<OnOffElement>>,
11742    #[cfg(feature = "wml-tables")]
11743    #[serde(rename = "tblCellSpacing")]
11744    #[serde(default, skip_serializing_if = "Option::is_none")]
11745    pub tbl_cell_spacing: Option<Box<CTTblWidth>>,
11746    #[cfg(feature = "wml-tables")]
11747    #[serde(rename = "jc")]
11748    #[serde(default, skip_serializing_if = "Option::is_none")]
11749    pub justification: Option<Box<CTJcTable>>,
11750    #[cfg(feature = "wml-tables")]
11751    #[serde(rename = "hidden")]
11752    #[serde(default, skip_serializing_if = "Option::is_none")]
11753    pub hidden: Option<Box<OnOffElement>>,
11754    #[cfg(feature = "wml-track-changes")]
11755    #[serde(rename = "ins")]
11756    #[serde(default, skip_serializing_if = "Option::is_none")]
11757    pub ins: Option<Box<CTTrackChange>>,
11758    #[cfg(feature = "wml-track-changes")]
11759    #[serde(rename = "del")]
11760    #[serde(default, skip_serializing_if = "Option::is_none")]
11761    pub del: Option<Box<CTTrackChange>>,
11762    #[cfg(feature = "wml-track-changes")]
11763    #[serde(rename = "trPrChange")]
11764    #[serde(default, skip_serializing_if = "Option::is_none")]
11765    pub tr_pr_change: Option<Box<CTTrPrChange>>,
11766    /// Unknown child elements captured for roundtrip fidelity.
11767    #[cfg(feature = "extra-children")]
11768    #[serde(skip)]
11769    #[cfg(feature = "extra-children")]
11770    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11771}
11772
11773#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11774pub struct CTRow {
11775    #[cfg(feature = "wml-track-changes")]
11776    #[serde(rename = "@w:rsidRPr")]
11777    #[serde(default, skip_serializing_if = "Option::is_none")]
11778    pub rsid_r_pr: Option<STLongHexNumber>,
11779    #[cfg(feature = "wml-track-changes")]
11780    #[serde(rename = "@w:rsidR")]
11781    #[serde(default, skip_serializing_if = "Option::is_none")]
11782    pub rsid_r: Option<STLongHexNumber>,
11783    #[cfg(feature = "wml-track-changes")]
11784    #[serde(rename = "@w:rsidDel")]
11785    #[serde(default, skip_serializing_if = "Option::is_none")]
11786    pub rsid_del: Option<STLongHexNumber>,
11787    #[cfg(feature = "wml-track-changes")]
11788    #[serde(rename = "@w:rsidTr")]
11789    #[serde(default, skip_serializing_if = "Option::is_none")]
11790    pub rsid_tr: Option<STLongHexNumber>,
11791    #[cfg(feature = "wml-tables")]
11792    #[serde(rename = "tblPrEx")]
11793    #[serde(default, skip_serializing_if = "Option::is_none")]
11794    pub tbl_pr_ex: Option<Box<CTTblPrEx>>,
11795    #[cfg(feature = "wml-tables")]
11796    #[serde(rename = "trPr")]
11797    #[serde(default, skip_serializing_if = "Option::is_none")]
11798    pub row_properties: Option<Box<TableRowProperties>>,
11799    #[serde(skip)]
11800    #[serde(default)]
11801    pub cells: Vec<CellContent>,
11802    /// Unknown attributes captured for roundtrip fidelity.
11803    #[cfg(feature = "extra-attrs")]
11804    #[serde(skip)]
11805    #[cfg(feature = "extra-attrs")]
11806    #[serde(default)]
11807    #[cfg(feature = "extra-attrs")]
11808    pub extra_attrs: std::collections::HashMap<String, String>,
11809    /// Unknown child elements captured for roundtrip fidelity.
11810    #[cfg(feature = "extra-children")]
11811    #[serde(skip)]
11812    #[cfg(feature = "extra-children")]
11813    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11814}
11815
11816#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11817pub struct CTTblLayoutType {
11818    #[serde(rename = "@w:type")]
11819    #[serde(default, skip_serializing_if = "Option::is_none")]
11820    pub r#type: Option<STTblLayoutType>,
11821    /// Unknown attributes captured for roundtrip fidelity.
11822    #[cfg(feature = "extra-attrs")]
11823    #[serde(skip)]
11824    #[cfg(feature = "extra-attrs")]
11825    #[serde(default)]
11826    #[cfg(feature = "extra-attrs")]
11827    pub extra_attrs: std::collections::HashMap<String, String>,
11828}
11829
11830#[derive(Debug, Clone, Serialize, Deserialize)]
11831pub struct CTTblOverlap {
11832    #[serde(rename = "@w:val")]
11833    pub value: STTblOverlap,
11834    /// Unknown attributes captured for roundtrip fidelity.
11835    #[cfg(feature = "extra-attrs")]
11836    #[serde(skip)]
11837    #[cfg(feature = "extra-attrs")]
11838    #[serde(default)]
11839    #[cfg(feature = "extra-attrs")]
11840    pub extra_attrs: std::collections::HashMap<String, String>,
11841}
11842
11843#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11844pub struct CTTblPPr {
11845    #[cfg(feature = "wml-tables")]
11846    #[serde(rename = "@w:leftFromText")]
11847    #[serde(default, skip_serializing_if = "Option::is_none")]
11848    pub left_from_text: Option<STTwipsMeasure>,
11849    #[cfg(feature = "wml-tables")]
11850    #[serde(rename = "@w:rightFromText")]
11851    #[serde(default, skip_serializing_if = "Option::is_none")]
11852    pub right_from_text: Option<STTwipsMeasure>,
11853    #[cfg(feature = "wml-tables")]
11854    #[serde(rename = "@w:topFromText")]
11855    #[serde(default, skip_serializing_if = "Option::is_none")]
11856    pub top_from_text: Option<STTwipsMeasure>,
11857    #[cfg(feature = "wml-tables")]
11858    #[serde(rename = "@w:bottomFromText")]
11859    #[serde(default, skip_serializing_if = "Option::is_none")]
11860    pub bottom_from_text: Option<STTwipsMeasure>,
11861    #[cfg(feature = "wml-tables")]
11862    #[serde(rename = "@w:vertAnchor")]
11863    #[serde(default, skip_serializing_if = "Option::is_none")]
11864    pub vert_anchor: Option<STVAnchor>,
11865    #[cfg(feature = "wml-tables")]
11866    #[serde(rename = "@w:horzAnchor")]
11867    #[serde(default, skip_serializing_if = "Option::is_none")]
11868    pub horz_anchor: Option<STHAnchor>,
11869    #[cfg(feature = "wml-tables")]
11870    #[serde(rename = "@w:tblpXSpec")]
11871    #[serde(default, skip_serializing_if = "Option::is_none")]
11872    pub tblp_x_spec: Option<STXAlign>,
11873    #[cfg(feature = "wml-tables")]
11874    #[serde(rename = "@w:tblpX")]
11875    #[serde(default, skip_serializing_if = "Option::is_none")]
11876    pub tblp_x: Option<STSignedTwipsMeasure>,
11877    #[cfg(feature = "wml-tables")]
11878    #[serde(rename = "@w:tblpYSpec")]
11879    #[serde(default, skip_serializing_if = "Option::is_none")]
11880    pub tblp_y_spec: Option<STYAlign>,
11881    #[cfg(feature = "wml-tables")]
11882    #[serde(rename = "@w:tblpY")]
11883    #[serde(default, skip_serializing_if = "Option::is_none")]
11884    pub tblp_y: Option<STSignedTwipsMeasure>,
11885    /// Unknown attributes captured for roundtrip fidelity.
11886    #[cfg(feature = "extra-attrs")]
11887    #[serde(skip)]
11888    #[cfg(feature = "extra-attrs")]
11889    #[serde(default)]
11890    #[cfg(feature = "extra-attrs")]
11891    pub extra_attrs: std::collections::HashMap<String, String>,
11892}
11893
11894#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11895pub struct CTTblCellMar {
11896    #[cfg(feature = "wml-tables")]
11897    #[serde(rename = "top")]
11898    #[serde(default, skip_serializing_if = "Option::is_none")]
11899    pub top: Option<Box<CTTblWidth>>,
11900    #[cfg(feature = "wml-tables")]
11901    #[serde(rename = "start")]
11902    #[serde(default, skip_serializing_if = "Option::is_none")]
11903    pub start: Option<Box<CTTblWidth>>,
11904    #[cfg(feature = "wml-tables")]
11905    #[serde(rename = "left")]
11906    #[serde(default, skip_serializing_if = "Option::is_none")]
11907    pub left: Option<Box<CTTblWidth>>,
11908    #[cfg(feature = "wml-tables")]
11909    #[serde(rename = "bottom")]
11910    #[serde(default, skip_serializing_if = "Option::is_none")]
11911    pub bottom: Option<Box<CTTblWidth>>,
11912    #[cfg(feature = "wml-tables")]
11913    #[serde(rename = "end")]
11914    #[serde(default, skip_serializing_if = "Option::is_none")]
11915    pub end: Option<Box<CTTblWidth>>,
11916    #[cfg(feature = "wml-tables")]
11917    #[serde(rename = "right")]
11918    #[serde(default, skip_serializing_if = "Option::is_none")]
11919    pub right: Option<Box<CTTblWidth>>,
11920    /// Unknown child elements captured for roundtrip fidelity.
11921    #[cfg(feature = "extra-children")]
11922    #[serde(skip)]
11923    #[cfg(feature = "extra-children")]
11924    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11925}
11926
11927#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11928pub struct CTTblBorders {
11929    #[cfg(feature = "wml-tables")]
11930    #[serde(rename = "top")]
11931    #[serde(default, skip_serializing_if = "Option::is_none")]
11932    pub top: Option<Box<CTBorder>>,
11933    #[cfg(feature = "wml-tables")]
11934    #[serde(rename = "start")]
11935    #[serde(default, skip_serializing_if = "Option::is_none")]
11936    pub start: Option<Box<CTBorder>>,
11937    #[cfg(feature = "wml-tables")]
11938    #[serde(rename = "left")]
11939    #[serde(default, skip_serializing_if = "Option::is_none")]
11940    pub left: Option<Box<CTBorder>>,
11941    #[cfg(feature = "wml-tables")]
11942    #[serde(rename = "bottom")]
11943    #[serde(default, skip_serializing_if = "Option::is_none")]
11944    pub bottom: Option<Box<CTBorder>>,
11945    #[cfg(feature = "wml-tables")]
11946    #[serde(rename = "end")]
11947    #[serde(default, skip_serializing_if = "Option::is_none")]
11948    pub end: Option<Box<CTBorder>>,
11949    #[cfg(feature = "wml-tables")]
11950    #[serde(rename = "right")]
11951    #[serde(default, skip_serializing_if = "Option::is_none")]
11952    pub right: Option<Box<CTBorder>>,
11953    #[cfg(feature = "wml-tables")]
11954    #[serde(rename = "insideH")]
11955    #[serde(default, skip_serializing_if = "Option::is_none")]
11956    pub inside_h: Option<Box<CTBorder>>,
11957    #[cfg(feature = "wml-tables")]
11958    #[serde(rename = "insideV")]
11959    #[serde(default, skip_serializing_if = "Option::is_none")]
11960    pub inside_v: Option<Box<CTBorder>>,
11961    /// Unknown child elements captured for roundtrip fidelity.
11962    #[cfg(feature = "extra-children")]
11963    #[serde(skip)]
11964    #[cfg(feature = "extra-children")]
11965    pub extra_children: Vec<ooxml_xml::PositionedNode>,
11966}
11967
11968#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11969pub struct CTTblPrBase {
11970    #[cfg(feature = "wml-styling")]
11971    #[serde(rename = "tblStyle")]
11972    #[serde(default, skip_serializing_if = "Option::is_none")]
11973    pub tbl_style: Option<Box<CTString>>,
11974    #[cfg(feature = "wml-tables")]
11975    #[serde(rename = "tblpPr")]
11976    #[serde(default, skip_serializing_if = "Option::is_none")]
11977    pub tblp_pr: Option<Box<CTTblPPr>>,
11978    #[cfg(feature = "wml-tables")]
11979    #[serde(rename = "tblOverlap")]
11980    #[serde(default, skip_serializing_if = "Option::is_none")]
11981    pub tbl_overlap: Option<Box<CTTblOverlap>>,
11982    #[cfg(feature = "wml-tables")]
11983    #[serde(rename = "bidiVisual")]
11984    #[serde(default, skip_serializing_if = "Option::is_none")]
11985    pub bidi_visual: Option<Box<OnOffElement>>,
11986    #[cfg(feature = "wml-styling")]
11987    #[serde(rename = "tblStyleRowBandSize")]
11988    #[serde(default, skip_serializing_if = "Option::is_none")]
11989    pub tbl_style_row_band_size: Option<Box<CTDecimalNumber>>,
11990    #[cfg(feature = "wml-styling")]
11991    #[serde(rename = "tblStyleColBandSize")]
11992    #[serde(default, skip_serializing_if = "Option::is_none")]
11993    pub tbl_style_col_band_size: Option<Box<CTDecimalNumber>>,
11994    #[cfg(feature = "wml-tables")]
11995    #[serde(rename = "tblW")]
11996    #[serde(default, skip_serializing_if = "Option::is_none")]
11997    pub tbl_w: Option<Box<CTTblWidth>>,
11998    #[cfg(feature = "wml-tables")]
11999    #[serde(rename = "jc")]
12000    #[serde(default, skip_serializing_if = "Option::is_none")]
12001    pub justification: Option<Box<CTJcTable>>,
12002    #[cfg(feature = "wml-tables")]
12003    #[serde(rename = "tblCellSpacing")]
12004    #[serde(default, skip_serializing_if = "Option::is_none")]
12005    pub tbl_cell_spacing: Option<Box<CTTblWidth>>,
12006    #[cfg(feature = "wml-tables")]
12007    #[serde(rename = "tblInd")]
12008    #[serde(default, skip_serializing_if = "Option::is_none")]
12009    pub tbl_ind: Option<Box<CTTblWidth>>,
12010    #[cfg(feature = "wml-tables")]
12011    #[serde(rename = "tblBorders")]
12012    #[serde(default, skip_serializing_if = "Option::is_none")]
12013    pub tbl_borders: Option<Box<CTTblBorders>>,
12014    #[cfg(feature = "wml-tables")]
12015    #[serde(rename = "shd")]
12016    #[serde(default, skip_serializing_if = "Option::is_none")]
12017    pub shading: Option<Box<CTShd>>,
12018    #[cfg(feature = "wml-tables")]
12019    #[serde(rename = "tblLayout")]
12020    #[serde(default, skip_serializing_if = "Option::is_none")]
12021    pub tbl_layout: Option<Box<CTTblLayoutType>>,
12022    #[cfg(feature = "wml-tables")]
12023    #[serde(rename = "tblCellMar")]
12024    #[serde(default, skip_serializing_if = "Option::is_none")]
12025    pub tbl_cell_mar: Option<Box<CTTblCellMar>>,
12026    #[cfg(feature = "wml-tables")]
12027    #[serde(rename = "tblLook")]
12028    #[serde(default, skip_serializing_if = "Option::is_none")]
12029    pub tbl_look: Option<Box<CTTblLook>>,
12030    #[cfg(feature = "wml-tables")]
12031    #[serde(rename = "tblCaption")]
12032    #[serde(default, skip_serializing_if = "Option::is_none")]
12033    pub tbl_caption: Option<Box<CTString>>,
12034    #[cfg(feature = "wml-tables")]
12035    #[serde(rename = "tblDescription")]
12036    #[serde(default, skip_serializing_if = "Option::is_none")]
12037    pub tbl_description: Option<Box<CTString>>,
12038    /// Unknown child elements captured for roundtrip fidelity.
12039    #[cfg(feature = "extra-children")]
12040    #[serde(skip)]
12041    #[cfg(feature = "extra-children")]
12042    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12043}
12044
12045#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12046pub struct TableProperties {
12047    #[cfg(feature = "wml-styling")]
12048    #[serde(rename = "tblStyle")]
12049    #[serde(default, skip_serializing_if = "Option::is_none")]
12050    pub tbl_style: Option<Box<CTString>>,
12051    #[cfg(feature = "wml-tables")]
12052    #[serde(rename = "tblpPr")]
12053    #[serde(default, skip_serializing_if = "Option::is_none")]
12054    pub tblp_pr: Option<Box<CTTblPPr>>,
12055    #[cfg(feature = "wml-tables")]
12056    #[serde(rename = "tblOverlap")]
12057    #[serde(default, skip_serializing_if = "Option::is_none")]
12058    pub tbl_overlap: Option<Box<CTTblOverlap>>,
12059    #[cfg(feature = "wml-tables")]
12060    #[serde(rename = "bidiVisual")]
12061    #[serde(default, skip_serializing_if = "Option::is_none")]
12062    pub bidi_visual: Option<Box<OnOffElement>>,
12063    #[cfg(feature = "wml-styling")]
12064    #[serde(rename = "tblStyleRowBandSize")]
12065    #[serde(default, skip_serializing_if = "Option::is_none")]
12066    pub tbl_style_row_band_size: Option<Box<CTDecimalNumber>>,
12067    #[cfg(feature = "wml-styling")]
12068    #[serde(rename = "tblStyleColBandSize")]
12069    #[serde(default, skip_serializing_if = "Option::is_none")]
12070    pub tbl_style_col_band_size: Option<Box<CTDecimalNumber>>,
12071    #[cfg(feature = "wml-tables")]
12072    #[serde(rename = "tblW")]
12073    #[serde(default, skip_serializing_if = "Option::is_none")]
12074    pub tbl_w: Option<Box<CTTblWidth>>,
12075    #[cfg(feature = "wml-tables")]
12076    #[serde(rename = "jc")]
12077    #[serde(default, skip_serializing_if = "Option::is_none")]
12078    pub justification: Option<Box<CTJcTable>>,
12079    #[cfg(feature = "wml-tables")]
12080    #[serde(rename = "tblCellSpacing")]
12081    #[serde(default, skip_serializing_if = "Option::is_none")]
12082    pub tbl_cell_spacing: Option<Box<CTTblWidth>>,
12083    #[cfg(feature = "wml-tables")]
12084    #[serde(rename = "tblInd")]
12085    #[serde(default, skip_serializing_if = "Option::is_none")]
12086    pub tbl_ind: Option<Box<CTTblWidth>>,
12087    #[cfg(feature = "wml-tables")]
12088    #[serde(rename = "tblBorders")]
12089    #[serde(default, skip_serializing_if = "Option::is_none")]
12090    pub tbl_borders: Option<Box<CTTblBorders>>,
12091    #[cfg(feature = "wml-tables")]
12092    #[serde(rename = "shd")]
12093    #[serde(default, skip_serializing_if = "Option::is_none")]
12094    pub shading: Option<Box<CTShd>>,
12095    #[cfg(feature = "wml-tables")]
12096    #[serde(rename = "tblLayout")]
12097    #[serde(default, skip_serializing_if = "Option::is_none")]
12098    pub tbl_layout: Option<Box<CTTblLayoutType>>,
12099    #[cfg(feature = "wml-tables")]
12100    #[serde(rename = "tblCellMar")]
12101    #[serde(default, skip_serializing_if = "Option::is_none")]
12102    pub tbl_cell_mar: Option<Box<CTTblCellMar>>,
12103    #[cfg(feature = "wml-tables")]
12104    #[serde(rename = "tblLook")]
12105    #[serde(default, skip_serializing_if = "Option::is_none")]
12106    pub tbl_look: Option<Box<CTTblLook>>,
12107    #[cfg(feature = "wml-tables")]
12108    #[serde(rename = "tblCaption")]
12109    #[serde(default, skip_serializing_if = "Option::is_none")]
12110    pub tbl_caption: Option<Box<CTString>>,
12111    #[cfg(feature = "wml-tables")]
12112    #[serde(rename = "tblDescription")]
12113    #[serde(default, skip_serializing_if = "Option::is_none")]
12114    pub tbl_description: Option<Box<CTString>>,
12115    #[cfg(feature = "wml-track-changes")]
12116    #[serde(rename = "tblPrChange")]
12117    #[serde(default, skip_serializing_if = "Option::is_none")]
12118    pub tbl_pr_change: Option<Box<CTTblPrChange>>,
12119    /// Unknown child elements captured for roundtrip fidelity.
12120    #[cfg(feature = "extra-children")]
12121    #[serde(skip)]
12122    #[cfg(feature = "extra-children")]
12123    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12124}
12125
12126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12127pub struct CTTblPrExBase {
12128    #[cfg(feature = "wml-tables")]
12129    #[serde(rename = "tblW")]
12130    #[serde(default, skip_serializing_if = "Option::is_none")]
12131    pub tbl_w: Option<Box<CTTblWidth>>,
12132    #[cfg(feature = "wml-tables")]
12133    #[serde(rename = "jc")]
12134    #[serde(default, skip_serializing_if = "Option::is_none")]
12135    pub justification: Option<Box<CTJcTable>>,
12136    #[cfg(feature = "wml-tables")]
12137    #[serde(rename = "tblCellSpacing")]
12138    #[serde(default, skip_serializing_if = "Option::is_none")]
12139    pub tbl_cell_spacing: Option<Box<CTTblWidth>>,
12140    #[cfg(feature = "wml-tables")]
12141    #[serde(rename = "tblInd")]
12142    #[serde(default, skip_serializing_if = "Option::is_none")]
12143    pub tbl_ind: Option<Box<CTTblWidth>>,
12144    #[cfg(feature = "wml-tables")]
12145    #[serde(rename = "tblBorders")]
12146    #[serde(default, skip_serializing_if = "Option::is_none")]
12147    pub tbl_borders: Option<Box<CTTblBorders>>,
12148    #[cfg(feature = "wml-tables")]
12149    #[serde(rename = "shd")]
12150    #[serde(default, skip_serializing_if = "Option::is_none")]
12151    pub shading: Option<Box<CTShd>>,
12152    #[cfg(feature = "wml-tables")]
12153    #[serde(rename = "tblLayout")]
12154    #[serde(default, skip_serializing_if = "Option::is_none")]
12155    pub tbl_layout: Option<Box<CTTblLayoutType>>,
12156    #[cfg(feature = "wml-tables")]
12157    #[serde(rename = "tblCellMar")]
12158    #[serde(default, skip_serializing_if = "Option::is_none")]
12159    pub tbl_cell_mar: Option<Box<CTTblCellMar>>,
12160    #[cfg(feature = "wml-tables")]
12161    #[serde(rename = "tblLook")]
12162    #[serde(default, skip_serializing_if = "Option::is_none")]
12163    pub tbl_look: Option<Box<CTTblLook>>,
12164    /// Unknown child elements captured for roundtrip fidelity.
12165    #[cfg(feature = "extra-children")]
12166    #[serde(skip)]
12167    #[cfg(feature = "extra-children")]
12168    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12169}
12170
12171#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12172pub struct CTTblPrEx {
12173    #[serde(rename = "tblW")]
12174    #[serde(default, skip_serializing_if = "Option::is_none")]
12175    pub tbl_w: Option<Box<CTTblWidth>>,
12176    #[serde(rename = "jc")]
12177    #[serde(default, skip_serializing_if = "Option::is_none")]
12178    pub justification: Option<Box<CTJcTable>>,
12179    #[serde(rename = "tblCellSpacing")]
12180    #[serde(default, skip_serializing_if = "Option::is_none")]
12181    pub tbl_cell_spacing: Option<Box<CTTblWidth>>,
12182    #[serde(rename = "tblInd")]
12183    #[serde(default, skip_serializing_if = "Option::is_none")]
12184    pub tbl_ind: Option<Box<CTTblWidth>>,
12185    #[serde(rename = "tblBorders")]
12186    #[serde(default, skip_serializing_if = "Option::is_none")]
12187    pub tbl_borders: Option<Box<CTTblBorders>>,
12188    #[serde(rename = "shd")]
12189    #[serde(default, skip_serializing_if = "Option::is_none")]
12190    pub shading: Option<Box<CTShd>>,
12191    #[serde(rename = "tblLayout")]
12192    #[serde(default, skip_serializing_if = "Option::is_none")]
12193    pub tbl_layout: Option<Box<CTTblLayoutType>>,
12194    #[serde(rename = "tblCellMar")]
12195    #[serde(default, skip_serializing_if = "Option::is_none")]
12196    pub tbl_cell_mar: Option<Box<CTTblCellMar>>,
12197    #[serde(rename = "tblLook")]
12198    #[serde(default, skip_serializing_if = "Option::is_none")]
12199    pub tbl_look: Option<Box<CTTblLook>>,
12200    #[cfg(feature = "wml-track-changes")]
12201    #[serde(rename = "tblPrExChange")]
12202    #[serde(default, skip_serializing_if = "Option::is_none")]
12203    pub tbl_pr_ex_change: Option<Box<CTTblPrExChange>>,
12204    /// Unknown child elements captured for roundtrip fidelity.
12205    #[cfg(feature = "extra-children")]
12206    #[serde(skip)]
12207    #[cfg(feature = "extra-children")]
12208    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12209}
12210
12211#[derive(Debug, Clone, Serialize, Deserialize)]
12212pub struct Table {
12213    #[serde(skip)]
12214    #[serde(default)]
12215    pub range_markup: Vec<RangeMarkup>,
12216    #[serde(rename = "tblPr")]
12217    pub table_properties: Box<TableProperties>,
12218    #[serde(rename = "tblGrid")]
12219    pub tbl_grid: Box<TableGrid>,
12220    #[serde(skip)]
12221    #[serde(default)]
12222    pub rows: Vec<RowContent>,
12223    /// Unknown child elements captured for roundtrip fidelity.
12224    #[cfg(feature = "extra-children")]
12225    #[serde(skip)]
12226    #[cfg(feature = "extra-children")]
12227    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12228}
12229
12230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12231pub struct CTTblLook {
12232    #[cfg(feature = "wml-tables")]
12233    #[serde(rename = "@w:firstRow")]
12234    #[serde(default, skip_serializing_if = "Option::is_none")]
12235    pub first_row: Option<OnOff>,
12236    #[cfg(feature = "wml-tables")]
12237    #[serde(rename = "@w:lastRow")]
12238    #[serde(default, skip_serializing_if = "Option::is_none")]
12239    pub last_row: Option<OnOff>,
12240    #[cfg(feature = "wml-tables")]
12241    #[serde(rename = "@w:firstColumn")]
12242    #[serde(default, skip_serializing_if = "Option::is_none")]
12243    pub first_column: Option<OnOff>,
12244    #[cfg(feature = "wml-tables")]
12245    #[serde(rename = "@w:lastColumn")]
12246    #[serde(default, skip_serializing_if = "Option::is_none")]
12247    pub last_column: Option<OnOff>,
12248    #[cfg(feature = "wml-tables")]
12249    #[serde(rename = "@w:noHBand")]
12250    #[serde(default, skip_serializing_if = "Option::is_none")]
12251    pub no_h_band: Option<OnOff>,
12252    #[cfg(feature = "wml-tables")]
12253    #[serde(rename = "@w:noVBand")]
12254    #[serde(default, skip_serializing_if = "Option::is_none")]
12255    pub no_v_band: Option<OnOff>,
12256    #[cfg(feature = "wml-tables")]
12257    #[serde(rename = "@w:val")]
12258    #[serde(default, skip_serializing_if = "Option::is_none")]
12259    pub value: Option<STShortHexNumber>,
12260    /// Unknown attributes captured for roundtrip fidelity.
12261    #[cfg(feature = "extra-attrs")]
12262    #[serde(skip)]
12263    #[cfg(feature = "extra-attrs")]
12264    #[serde(default)]
12265    #[cfg(feature = "extra-attrs")]
12266    pub extra_attrs: std::collections::HashMap<String, String>,
12267}
12268
12269#[derive(Debug, Clone, Serialize, Deserialize)]
12270pub struct CTFtnPos {
12271    #[serde(rename = "@w:val")]
12272    pub value: STFtnPos,
12273    /// Unknown attributes captured for roundtrip fidelity.
12274    #[cfg(feature = "extra-attrs")]
12275    #[serde(skip)]
12276    #[cfg(feature = "extra-attrs")]
12277    #[serde(default)]
12278    #[cfg(feature = "extra-attrs")]
12279    pub extra_attrs: std::collections::HashMap<String, String>,
12280}
12281
12282#[derive(Debug, Clone, Serialize, Deserialize)]
12283pub struct CTEdnPos {
12284    #[serde(rename = "@w:val")]
12285    pub value: STEdnPos,
12286    /// Unknown attributes captured for roundtrip fidelity.
12287    #[cfg(feature = "extra-attrs")]
12288    #[serde(skip)]
12289    #[cfg(feature = "extra-attrs")]
12290    #[serde(default)]
12291    #[cfg(feature = "extra-attrs")]
12292    pub extra_attrs: std::collections::HashMap<String, String>,
12293}
12294
12295#[derive(Debug, Clone, Serialize, Deserialize)]
12296pub struct CTNumFmt {
12297    #[serde(rename = "@w:val")]
12298    pub value: STNumberFormat,
12299    #[cfg(feature = "wml-numbering")]
12300    #[serde(rename = "@w:format")]
12301    #[serde(default, skip_serializing_if = "Option::is_none")]
12302    pub format: Option<STString>,
12303    /// Unknown attributes captured for roundtrip fidelity.
12304    #[cfg(feature = "extra-attrs")]
12305    #[serde(skip)]
12306    #[cfg(feature = "extra-attrs")]
12307    #[serde(default)]
12308    #[cfg(feature = "extra-attrs")]
12309    pub extra_attrs: std::collections::HashMap<String, String>,
12310}
12311
12312#[derive(Debug, Clone, Serialize, Deserialize)]
12313pub struct CTNumRestart {
12314    #[serde(rename = "@w:val")]
12315    pub value: STRestartNumber,
12316    /// Unknown attributes captured for roundtrip fidelity.
12317    #[cfg(feature = "extra-attrs")]
12318    #[serde(skip)]
12319    #[cfg(feature = "extra-attrs")]
12320    #[serde(default)]
12321    #[cfg(feature = "extra-attrs")]
12322    pub extra_attrs: std::collections::HashMap<String, String>,
12323}
12324
12325#[derive(Debug, Clone, Serialize, Deserialize)]
12326pub struct FootnoteEndnoteRef {
12327    #[cfg(feature = "wml-comments")]
12328    #[serde(rename = "@w:customMarkFollows")]
12329    #[serde(default, skip_serializing_if = "Option::is_none")]
12330    pub custom_mark_follows: Option<OnOff>,
12331    #[serde(rename = "@w:id")]
12332    pub id: STDecimalNumber,
12333    /// Unknown attributes captured for roundtrip fidelity.
12334    #[cfg(feature = "extra-attrs")]
12335    #[serde(skip)]
12336    #[cfg(feature = "extra-attrs")]
12337    #[serde(default)]
12338    #[cfg(feature = "extra-attrs")]
12339    pub extra_attrs: std::collections::HashMap<String, String>,
12340}
12341
12342#[derive(Debug, Clone, Serialize, Deserialize)]
12343pub struct CTFtnEdnSepRef {
12344    #[serde(rename = "@w:id")]
12345    pub id: STDecimalNumber,
12346    /// Unknown attributes captured for roundtrip fidelity.
12347    #[cfg(feature = "extra-attrs")]
12348    #[serde(skip)]
12349    #[cfg(feature = "extra-attrs")]
12350    #[serde(default)]
12351    #[cfg(feature = "extra-attrs")]
12352    pub extra_attrs: std::collections::HashMap<String, String>,
12353}
12354
12355#[derive(Debug, Clone, Serialize, Deserialize)]
12356pub struct FootnoteEndnote {
12357    #[cfg(feature = "wml-comments")]
12358    #[serde(rename = "@w:type")]
12359    #[serde(default, skip_serializing_if = "Option::is_none")]
12360    pub r#type: Option<STFtnEdn>,
12361    #[serde(rename = "@w:id")]
12362    pub id: STDecimalNumber,
12363    #[serde(skip)]
12364    #[serde(default)]
12365    pub block_content: Vec<BlockContent>,
12366    /// Unknown attributes captured for roundtrip fidelity.
12367    #[cfg(feature = "extra-attrs")]
12368    #[serde(skip)]
12369    #[cfg(feature = "extra-attrs")]
12370    #[serde(default)]
12371    #[cfg(feature = "extra-attrs")]
12372    pub extra_attrs: std::collections::HashMap<String, String>,
12373    /// Unknown child elements captured for roundtrip fidelity.
12374    #[cfg(feature = "extra-children")]
12375    #[serde(skip)]
12376    #[cfg(feature = "extra-children")]
12377    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12378}
12379
12380#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12381pub struct EGFtnEdnNumProps {
12382    #[serde(rename = "numStart")]
12383    #[serde(default, skip_serializing_if = "Option::is_none")]
12384    pub num_start: Option<Box<CTDecimalNumber>>,
12385    #[serde(rename = "numRestart")]
12386    #[serde(default, skip_serializing_if = "Option::is_none")]
12387    pub num_restart: Option<Box<CTNumRestart>>,
12388    /// Unknown child elements captured for roundtrip fidelity.
12389    #[cfg(feature = "extra-children")]
12390    #[serde(skip)]
12391    #[cfg(feature = "extra-children")]
12392    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12393}
12394
12395#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12396pub struct CTFtnProps {
12397    #[cfg(feature = "wml-comments")]
12398    #[serde(rename = "pos")]
12399    #[serde(default, skip_serializing_if = "Option::is_none")]
12400    pub pos: Option<Box<CTFtnPos>>,
12401    #[cfg(feature = "wml-comments")]
12402    #[serde(rename = "numFmt")]
12403    #[serde(default, skip_serializing_if = "Option::is_none")]
12404    pub num_fmt: Option<Box<CTNumFmt>>,
12405    #[serde(rename = "numStart")]
12406    #[serde(default, skip_serializing_if = "Option::is_none")]
12407    pub num_start: Option<Box<CTDecimalNumber>>,
12408    #[serde(rename = "numRestart")]
12409    #[serde(default, skip_serializing_if = "Option::is_none")]
12410    pub num_restart: Option<Box<CTNumRestart>>,
12411    /// Unknown child elements captured for roundtrip fidelity.
12412    #[cfg(feature = "extra-children")]
12413    #[serde(skip)]
12414    #[cfg(feature = "extra-children")]
12415    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12416}
12417
12418#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12419pub struct CTEdnProps {
12420    #[cfg(feature = "wml-comments")]
12421    #[serde(rename = "pos")]
12422    #[serde(default, skip_serializing_if = "Option::is_none")]
12423    pub pos: Option<Box<CTEdnPos>>,
12424    #[cfg(feature = "wml-comments")]
12425    #[serde(rename = "numFmt")]
12426    #[serde(default, skip_serializing_if = "Option::is_none")]
12427    pub num_fmt: Option<Box<CTNumFmt>>,
12428    #[serde(rename = "numStart")]
12429    #[serde(default, skip_serializing_if = "Option::is_none")]
12430    pub num_start: Option<Box<CTDecimalNumber>>,
12431    #[serde(rename = "numRestart")]
12432    #[serde(default, skip_serializing_if = "Option::is_none")]
12433    pub num_restart: Option<Box<CTNumRestart>>,
12434    /// Unknown child elements captured for roundtrip fidelity.
12435    #[cfg(feature = "extra-children")]
12436    #[serde(skip)]
12437    #[cfg(feature = "extra-children")]
12438    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12439}
12440
12441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12442pub struct CTFtnDocProps {
12443    #[serde(rename = "pos")]
12444    #[serde(default, skip_serializing_if = "Option::is_none")]
12445    pub pos: Option<Box<CTFtnPos>>,
12446    #[serde(rename = "numFmt")]
12447    #[serde(default, skip_serializing_if = "Option::is_none")]
12448    pub num_fmt: Option<Box<CTNumFmt>>,
12449    #[serde(rename = "numStart")]
12450    #[serde(default, skip_serializing_if = "Option::is_none")]
12451    pub num_start: Option<Box<CTDecimalNumber>>,
12452    #[serde(rename = "numRestart")]
12453    #[serde(default, skip_serializing_if = "Option::is_none")]
12454    pub num_restart: Option<Box<CTNumRestart>>,
12455    #[cfg(feature = "wml-comments")]
12456    #[serde(rename = "footnote")]
12457    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12458    pub footnote: Vec<CTFtnEdnSepRef>,
12459    /// Unknown child elements captured for roundtrip fidelity.
12460    #[cfg(feature = "extra-children")]
12461    #[serde(skip)]
12462    #[cfg(feature = "extra-children")]
12463    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12464}
12465
12466#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12467pub struct CTEdnDocProps {
12468    #[serde(rename = "pos")]
12469    #[serde(default, skip_serializing_if = "Option::is_none")]
12470    pub pos: Option<Box<CTEdnPos>>,
12471    #[serde(rename = "numFmt")]
12472    #[serde(default, skip_serializing_if = "Option::is_none")]
12473    pub num_fmt: Option<Box<CTNumFmt>>,
12474    #[serde(rename = "numStart")]
12475    #[serde(default, skip_serializing_if = "Option::is_none")]
12476    pub num_start: Option<Box<CTDecimalNumber>>,
12477    #[serde(rename = "numRestart")]
12478    #[serde(default, skip_serializing_if = "Option::is_none")]
12479    pub num_restart: Option<Box<CTNumRestart>>,
12480    #[cfg(feature = "wml-comments")]
12481    #[serde(rename = "endnote")]
12482    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12483    pub endnote: Vec<CTFtnEdnSepRef>,
12484    /// Unknown child elements captured for roundtrip fidelity.
12485    #[cfg(feature = "extra-children")]
12486    #[serde(skip)]
12487    #[cfg(feature = "extra-children")]
12488    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12489}
12490
12491#[derive(Debug, Clone, Serialize, Deserialize)]
12492pub struct CTRecipientData {
12493    #[cfg(feature = "wml-settings")]
12494    #[serde(rename = "active")]
12495    #[serde(default, skip_serializing_if = "Option::is_none")]
12496    pub active: Option<Box<OnOffElement>>,
12497    #[cfg(feature = "wml-settings")]
12498    #[serde(rename = "column")]
12499    pub column: Box<CTDecimalNumber>,
12500    #[cfg(feature = "wml-settings")]
12501    #[serde(rename = "uniqueTag")]
12502    pub unique_tag: Box<CTBase64Binary>,
12503    /// Unknown child elements captured for roundtrip fidelity.
12504    #[cfg(feature = "extra-children")]
12505    #[serde(skip)]
12506    #[cfg(feature = "extra-children")]
12507    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12508}
12509
12510#[derive(Debug, Clone, Serialize, Deserialize)]
12511pub struct CTBase64Binary {
12512    #[serde(rename = "@w:val")]
12513    pub value: Vec<u8>,
12514    /// Unknown attributes captured for roundtrip fidelity.
12515    #[cfg(feature = "extra-attrs")]
12516    #[serde(skip)]
12517    #[cfg(feature = "extra-attrs")]
12518    #[serde(default)]
12519    #[cfg(feature = "extra-attrs")]
12520    pub extra_attrs: std::collections::HashMap<String, String>,
12521}
12522
12523#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12524pub struct CTRecipients {
12525    #[cfg(feature = "wml-settings")]
12526    #[serde(rename = "recipientData")]
12527    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12528    pub recipient_data: Vec<CTRecipientData>,
12529    /// Unknown child elements captured for roundtrip fidelity.
12530    #[cfg(feature = "extra-children")]
12531    #[serde(skip)]
12532    #[cfg(feature = "extra-children")]
12533    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12534}
12535
12536pub type WRecipients = Box<CTRecipients>;
12537
12538#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12539pub struct CTOdsoFieldMapData {
12540    #[cfg(feature = "wml-settings")]
12541    #[serde(rename = "type")]
12542    #[serde(default, skip_serializing_if = "Option::is_none")]
12543    pub r#type: Option<Box<CTMailMergeOdsoFMDFieldType>>,
12544    #[cfg(feature = "wml-settings")]
12545    #[serde(rename = "name")]
12546    #[serde(default, skip_serializing_if = "Option::is_none")]
12547    pub name: Option<Box<CTString>>,
12548    #[cfg(feature = "wml-settings")]
12549    #[serde(rename = "mappedName")]
12550    #[serde(default, skip_serializing_if = "Option::is_none")]
12551    pub mapped_name: Option<Box<CTString>>,
12552    #[cfg(feature = "wml-settings")]
12553    #[serde(rename = "column")]
12554    #[serde(default, skip_serializing_if = "Option::is_none")]
12555    pub column: Option<Box<CTDecimalNumber>>,
12556    #[cfg(feature = "wml-settings")]
12557    #[serde(rename = "lid")]
12558    #[serde(default, skip_serializing_if = "Option::is_none")]
12559    pub lid: Option<Box<CTLang>>,
12560    #[cfg(feature = "wml-settings")]
12561    #[serde(rename = "dynamicAddress")]
12562    #[serde(default, skip_serializing_if = "Option::is_none")]
12563    pub dynamic_address: Option<Box<OnOffElement>>,
12564    /// Unknown child elements captured for roundtrip fidelity.
12565    #[cfg(feature = "extra-children")]
12566    #[serde(skip)]
12567    #[cfg(feature = "extra-children")]
12568    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12569}
12570
12571#[derive(Debug, Clone, Serialize, Deserialize)]
12572pub struct CTMailMergeSourceType {
12573    #[serde(rename = "@w:val")]
12574    pub value: STMailMergeSourceType,
12575    /// Unknown attributes captured for roundtrip fidelity.
12576    #[cfg(feature = "extra-attrs")]
12577    #[serde(skip)]
12578    #[cfg(feature = "extra-attrs")]
12579    #[serde(default)]
12580    #[cfg(feature = "extra-attrs")]
12581    pub extra_attrs: std::collections::HashMap<String, String>,
12582}
12583
12584#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12585pub struct CTOdso {
12586    #[cfg(feature = "wml-settings")]
12587    #[serde(rename = "udl")]
12588    #[serde(default, skip_serializing_if = "Option::is_none")]
12589    pub udl: Option<Box<CTString>>,
12590    #[cfg(feature = "wml-settings")]
12591    #[serde(rename = "table")]
12592    #[serde(default, skip_serializing_if = "Option::is_none")]
12593    pub table: Option<Box<CTString>>,
12594    #[cfg(feature = "wml-settings")]
12595    #[serde(rename = "src")]
12596    #[serde(default, skip_serializing_if = "Option::is_none")]
12597    pub src: Option<Box<CTRel>>,
12598    #[cfg(feature = "wml-settings")]
12599    #[serde(rename = "colDelim")]
12600    #[serde(default, skip_serializing_if = "Option::is_none")]
12601    pub col_delim: Option<Box<CTDecimalNumber>>,
12602    #[cfg(feature = "wml-settings")]
12603    #[serde(rename = "type")]
12604    #[serde(default, skip_serializing_if = "Option::is_none")]
12605    pub r#type: Option<Box<CTMailMergeSourceType>>,
12606    #[cfg(feature = "wml-settings")]
12607    #[serde(rename = "fHdr")]
12608    #[serde(default, skip_serializing_if = "Option::is_none")]
12609    pub f_hdr: Option<Box<OnOffElement>>,
12610    #[cfg(feature = "wml-settings")]
12611    #[serde(rename = "fieldMapData")]
12612    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12613    pub field_map_data: Vec<CTOdsoFieldMapData>,
12614    #[cfg(feature = "wml-settings")]
12615    #[serde(rename = "recipientData")]
12616    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12617    pub recipient_data: Vec<CTRel>,
12618    /// Unknown child elements captured for roundtrip fidelity.
12619    #[cfg(feature = "extra-children")]
12620    #[serde(skip)]
12621    #[cfg(feature = "extra-children")]
12622    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12623}
12624
12625#[derive(Debug, Clone, Serialize, Deserialize)]
12626pub struct CTMailMerge {
12627    #[cfg(feature = "wml-settings")]
12628    #[serde(rename = "mainDocumentType")]
12629    pub main_document_type: Box<CTMailMergeDocType>,
12630    #[cfg(feature = "wml-settings")]
12631    #[serde(rename = "linkToQuery")]
12632    #[serde(default, skip_serializing_if = "Option::is_none")]
12633    pub link_to_query: Option<Box<OnOffElement>>,
12634    #[cfg(feature = "wml-settings")]
12635    #[serde(rename = "dataType")]
12636    pub data_type: Box<MailMergeDataTypeElement>,
12637    #[cfg(feature = "wml-settings")]
12638    #[serde(rename = "connectString")]
12639    #[serde(default, skip_serializing_if = "Option::is_none")]
12640    pub connect_string: Option<Box<CTString>>,
12641    #[cfg(feature = "wml-settings")]
12642    #[serde(rename = "query")]
12643    #[serde(default, skip_serializing_if = "Option::is_none")]
12644    pub query: Option<Box<CTString>>,
12645    #[cfg(feature = "wml-settings")]
12646    #[serde(rename = "dataSource")]
12647    #[serde(default, skip_serializing_if = "Option::is_none")]
12648    pub data_source: Option<Box<CTRel>>,
12649    #[cfg(feature = "wml-settings")]
12650    #[serde(rename = "headerSource")]
12651    #[serde(default, skip_serializing_if = "Option::is_none")]
12652    pub header_source: Option<Box<CTRel>>,
12653    #[cfg(feature = "wml-settings")]
12654    #[serde(rename = "doNotSuppressBlankLines")]
12655    #[serde(default, skip_serializing_if = "Option::is_none")]
12656    pub do_not_suppress_blank_lines: Option<Box<OnOffElement>>,
12657    #[cfg(feature = "wml-settings")]
12658    #[serde(rename = "destination")]
12659    #[serde(default, skip_serializing_if = "Option::is_none")]
12660    pub destination: Option<Box<CTMailMergeDest>>,
12661    #[cfg(feature = "wml-settings")]
12662    #[serde(rename = "addressFieldName")]
12663    #[serde(default, skip_serializing_if = "Option::is_none")]
12664    pub address_field_name: Option<Box<CTString>>,
12665    #[cfg(feature = "wml-settings")]
12666    #[serde(rename = "mailSubject")]
12667    #[serde(default, skip_serializing_if = "Option::is_none")]
12668    pub mail_subject: Option<Box<CTString>>,
12669    #[cfg(feature = "wml-settings")]
12670    #[serde(rename = "mailAsAttachment")]
12671    #[serde(default, skip_serializing_if = "Option::is_none")]
12672    pub mail_as_attachment: Option<Box<OnOffElement>>,
12673    #[cfg(feature = "wml-settings")]
12674    #[serde(rename = "viewMergedData")]
12675    #[serde(default, skip_serializing_if = "Option::is_none")]
12676    pub view_merged_data: Option<Box<OnOffElement>>,
12677    #[cfg(feature = "wml-settings")]
12678    #[serde(rename = "activeRecord")]
12679    #[serde(default, skip_serializing_if = "Option::is_none")]
12680    pub active_record: Option<Box<CTDecimalNumber>>,
12681    #[cfg(feature = "wml-settings")]
12682    #[serde(rename = "checkErrors")]
12683    #[serde(default, skip_serializing_if = "Option::is_none")]
12684    pub check_errors: Option<Box<CTDecimalNumber>>,
12685    #[cfg(feature = "wml-settings")]
12686    #[serde(rename = "odso")]
12687    #[serde(default, skip_serializing_if = "Option::is_none")]
12688    pub odso: Option<Box<CTOdso>>,
12689    /// Unknown child elements captured for roundtrip fidelity.
12690    #[cfg(feature = "extra-children")]
12691    #[serde(skip)]
12692    #[cfg(feature = "extra-children")]
12693    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12694}
12695
12696#[derive(Debug, Clone, Serialize, Deserialize)]
12697pub struct CTTargetScreenSz {
12698    #[serde(rename = "@w:val")]
12699    pub value: STTargetScreenSz,
12700    /// Unknown attributes captured for roundtrip fidelity.
12701    #[cfg(feature = "extra-attrs")]
12702    #[serde(skip)]
12703    #[cfg(feature = "extra-attrs")]
12704    #[serde(default)]
12705    #[cfg(feature = "extra-attrs")]
12706    pub extra_attrs: std::collections::HashMap<String, String>,
12707}
12708
12709#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12710pub struct Compatibility {
12711    #[cfg(feature = "wml-settings")]
12712    #[serde(rename = "useSingleBorderforContiguousCells")]
12713    #[serde(default, skip_serializing_if = "Option::is_none")]
12714    pub use_single_borderfor_contiguous_cells: Option<Box<OnOffElement>>,
12715    #[cfg(feature = "wml-settings")]
12716    #[serde(rename = "wpJustification")]
12717    #[serde(default, skip_serializing_if = "Option::is_none")]
12718    pub wp_justification: Option<Box<OnOffElement>>,
12719    #[cfg(feature = "wml-settings")]
12720    #[serde(rename = "noTabHangInd")]
12721    #[serde(default, skip_serializing_if = "Option::is_none")]
12722    pub no_tab_hang_ind: Option<Box<OnOffElement>>,
12723    #[cfg(feature = "wml-settings")]
12724    #[serde(rename = "noLeading")]
12725    #[serde(default, skip_serializing_if = "Option::is_none")]
12726    pub no_leading: Option<Box<OnOffElement>>,
12727    #[cfg(feature = "wml-settings")]
12728    #[serde(rename = "spaceForUL")]
12729    #[serde(default, skip_serializing_if = "Option::is_none")]
12730    pub space_for_u_l: Option<Box<OnOffElement>>,
12731    #[cfg(feature = "wml-settings")]
12732    #[serde(rename = "noColumnBalance")]
12733    #[serde(default, skip_serializing_if = "Option::is_none")]
12734    pub no_column_balance: Option<Box<OnOffElement>>,
12735    #[cfg(feature = "wml-settings")]
12736    #[serde(rename = "balanceSingleByteDoubleByteWidth")]
12737    #[serde(default, skip_serializing_if = "Option::is_none")]
12738    pub balance_single_byte_double_byte_width: Option<Box<OnOffElement>>,
12739    #[cfg(feature = "wml-settings")]
12740    #[serde(rename = "noExtraLineSpacing")]
12741    #[serde(default, skip_serializing_if = "Option::is_none")]
12742    pub no_extra_line_spacing: Option<Box<OnOffElement>>,
12743    #[cfg(feature = "wml-settings")]
12744    #[serde(rename = "doNotLeaveBackslashAlone")]
12745    #[serde(default, skip_serializing_if = "Option::is_none")]
12746    pub do_not_leave_backslash_alone: Option<Box<OnOffElement>>,
12747    #[cfg(feature = "wml-settings")]
12748    #[serde(rename = "ulTrailSpace")]
12749    #[serde(default, skip_serializing_if = "Option::is_none")]
12750    pub ul_trail_space: Option<Box<OnOffElement>>,
12751    #[cfg(feature = "wml-settings")]
12752    #[serde(rename = "doNotExpandShiftReturn")]
12753    #[serde(default, skip_serializing_if = "Option::is_none")]
12754    pub do_not_expand_shift_return: Option<Box<OnOffElement>>,
12755    #[cfg(feature = "wml-settings")]
12756    #[serde(rename = "spacingInWholePoints")]
12757    #[serde(default, skip_serializing_if = "Option::is_none")]
12758    pub spacing_in_whole_points: Option<Box<OnOffElement>>,
12759    #[cfg(feature = "wml-settings")]
12760    #[serde(rename = "lineWrapLikeWord6")]
12761    #[serde(default, skip_serializing_if = "Option::is_none")]
12762    pub line_wrap_like_word6: Option<Box<OnOffElement>>,
12763    #[cfg(feature = "wml-settings")]
12764    #[serde(rename = "printBodyTextBeforeHeader")]
12765    #[serde(default, skip_serializing_if = "Option::is_none")]
12766    pub print_body_text_before_header: Option<Box<OnOffElement>>,
12767    #[cfg(feature = "wml-settings")]
12768    #[serde(rename = "printColBlack")]
12769    #[serde(default, skip_serializing_if = "Option::is_none")]
12770    pub print_col_black: Option<Box<OnOffElement>>,
12771    #[cfg(feature = "wml-settings")]
12772    #[serde(rename = "wpSpaceWidth")]
12773    #[serde(default, skip_serializing_if = "Option::is_none")]
12774    pub wp_space_width: Option<Box<OnOffElement>>,
12775    #[cfg(feature = "wml-settings")]
12776    #[serde(rename = "showBreaksInFrames")]
12777    #[serde(default, skip_serializing_if = "Option::is_none")]
12778    pub show_breaks_in_frames: Option<Box<OnOffElement>>,
12779    #[cfg(feature = "wml-settings")]
12780    #[serde(rename = "subFontBySize")]
12781    #[serde(default, skip_serializing_if = "Option::is_none")]
12782    pub sub_font_by_size: Option<Box<OnOffElement>>,
12783    #[cfg(feature = "wml-settings")]
12784    #[serde(rename = "suppressBottomSpacing")]
12785    #[serde(default, skip_serializing_if = "Option::is_none")]
12786    pub suppress_bottom_spacing: Option<Box<OnOffElement>>,
12787    #[cfg(feature = "wml-settings")]
12788    #[serde(rename = "suppressTopSpacing")]
12789    #[serde(default, skip_serializing_if = "Option::is_none")]
12790    pub suppress_top_spacing: Option<Box<OnOffElement>>,
12791    #[cfg(feature = "wml-settings")]
12792    #[serde(rename = "suppressSpacingAtTopOfPage")]
12793    #[serde(default, skip_serializing_if = "Option::is_none")]
12794    pub suppress_spacing_at_top_of_page: Option<Box<OnOffElement>>,
12795    #[cfg(feature = "wml-settings")]
12796    #[serde(rename = "suppressTopSpacingWP")]
12797    #[serde(default, skip_serializing_if = "Option::is_none")]
12798    pub suppress_top_spacing_w_p: Option<Box<OnOffElement>>,
12799    #[cfg(feature = "wml-settings")]
12800    #[serde(rename = "suppressSpBfAfterPgBrk")]
12801    #[serde(default, skip_serializing_if = "Option::is_none")]
12802    pub suppress_sp_bf_after_pg_brk: Option<Box<OnOffElement>>,
12803    #[cfg(feature = "wml-settings")]
12804    #[serde(rename = "swapBordersFacingPages")]
12805    #[serde(default, skip_serializing_if = "Option::is_none")]
12806    pub swap_borders_facing_pages: Option<Box<OnOffElement>>,
12807    #[cfg(feature = "wml-settings")]
12808    #[serde(rename = "convMailMergeEsc")]
12809    #[serde(default, skip_serializing_if = "Option::is_none")]
12810    pub conv_mail_merge_esc: Option<Box<OnOffElement>>,
12811    #[cfg(feature = "wml-settings")]
12812    #[serde(rename = "truncateFontHeightsLikeWP6")]
12813    #[serde(default, skip_serializing_if = "Option::is_none")]
12814    pub truncate_font_heights_like_w_p6: Option<Box<OnOffElement>>,
12815    #[cfg(feature = "wml-settings")]
12816    #[serde(rename = "mwSmallCaps")]
12817    #[serde(default, skip_serializing_if = "Option::is_none")]
12818    pub mw_small_caps: Option<Box<OnOffElement>>,
12819    #[cfg(feature = "wml-settings")]
12820    #[serde(rename = "usePrinterMetrics")]
12821    #[serde(default, skip_serializing_if = "Option::is_none")]
12822    pub use_printer_metrics: Option<Box<OnOffElement>>,
12823    #[cfg(feature = "wml-settings")]
12824    #[serde(rename = "doNotSuppressParagraphBorders")]
12825    #[serde(default, skip_serializing_if = "Option::is_none")]
12826    pub do_not_suppress_paragraph_borders: Option<Box<OnOffElement>>,
12827    #[cfg(feature = "wml-settings")]
12828    #[serde(rename = "wrapTrailSpaces")]
12829    #[serde(default, skip_serializing_if = "Option::is_none")]
12830    pub wrap_trail_spaces: Option<Box<OnOffElement>>,
12831    #[cfg(feature = "wml-settings")]
12832    #[serde(rename = "footnoteLayoutLikeWW8")]
12833    #[serde(default, skip_serializing_if = "Option::is_none")]
12834    pub footnote_layout_like_w_w8: Option<Box<OnOffElement>>,
12835    #[cfg(feature = "wml-settings")]
12836    #[serde(rename = "shapeLayoutLikeWW8")]
12837    #[serde(default, skip_serializing_if = "Option::is_none")]
12838    pub shape_layout_like_w_w8: Option<Box<OnOffElement>>,
12839    #[cfg(feature = "wml-settings")]
12840    #[serde(rename = "alignTablesRowByRow")]
12841    #[serde(default, skip_serializing_if = "Option::is_none")]
12842    pub align_tables_row_by_row: Option<Box<OnOffElement>>,
12843    #[cfg(feature = "wml-settings")]
12844    #[serde(rename = "forgetLastTabAlignment")]
12845    #[serde(default, skip_serializing_if = "Option::is_none")]
12846    pub forget_last_tab_alignment: Option<Box<OnOffElement>>,
12847    #[cfg(feature = "wml-settings")]
12848    #[serde(rename = "adjustLineHeightInTable")]
12849    #[serde(default, skip_serializing_if = "Option::is_none")]
12850    pub adjust_line_height_in_table: Option<Box<OnOffElement>>,
12851    #[cfg(feature = "wml-settings")]
12852    #[serde(rename = "autoSpaceLikeWord95")]
12853    #[serde(default, skip_serializing_if = "Option::is_none")]
12854    pub auto_space_like_word95: Option<Box<OnOffElement>>,
12855    #[cfg(feature = "wml-settings")]
12856    #[serde(rename = "noSpaceRaiseLower")]
12857    #[serde(default, skip_serializing_if = "Option::is_none")]
12858    pub no_space_raise_lower: Option<Box<OnOffElement>>,
12859    #[cfg(feature = "wml-settings")]
12860    #[serde(rename = "doNotUseHTMLParagraphAutoSpacing")]
12861    #[serde(default, skip_serializing_if = "Option::is_none")]
12862    pub do_not_use_h_t_m_l_paragraph_auto_spacing: Option<Box<OnOffElement>>,
12863    #[cfg(feature = "wml-settings")]
12864    #[serde(rename = "layoutRawTableWidth")]
12865    #[serde(default, skip_serializing_if = "Option::is_none")]
12866    pub layout_raw_table_width: Option<Box<OnOffElement>>,
12867    #[cfg(feature = "wml-settings")]
12868    #[serde(rename = "layoutTableRowsApart")]
12869    #[serde(default, skip_serializing_if = "Option::is_none")]
12870    pub layout_table_rows_apart: Option<Box<OnOffElement>>,
12871    #[cfg(feature = "wml-settings")]
12872    #[serde(rename = "useWord97LineBreakRules")]
12873    #[serde(default, skip_serializing_if = "Option::is_none")]
12874    pub use_word97_line_break_rules: Option<Box<OnOffElement>>,
12875    #[cfg(feature = "wml-settings")]
12876    #[serde(rename = "doNotBreakWrappedTables")]
12877    #[serde(default, skip_serializing_if = "Option::is_none")]
12878    pub do_not_break_wrapped_tables: Option<Box<OnOffElement>>,
12879    #[cfg(feature = "wml-settings")]
12880    #[serde(rename = "doNotSnapToGridInCell")]
12881    #[serde(default, skip_serializing_if = "Option::is_none")]
12882    pub do_not_snap_to_grid_in_cell: Option<Box<OnOffElement>>,
12883    #[cfg(feature = "wml-settings")]
12884    #[serde(rename = "selectFldWithFirstOrLastChar")]
12885    #[serde(default, skip_serializing_if = "Option::is_none")]
12886    pub select_fld_with_first_or_last_char: Option<Box<OnOffElement>>,
12887    #[cfg(feature = "wml-settings")]
12888    #[serde(rename = "applyBreakingRules")]
12889    #[serde(default, skip_serializing_if = "Option::is_none")]
12890    pub apply_breaking_rules: Option<Box<OnOffElement>>,
12891    #[cfg(feature = "wml-settings")]
12892    #[serde(rename = "doNotWrapTextWithPunct")]
12893    #[serde(default, skip_serializing_if = "Option::is_none")]
12894    pub do_not_wrap_text_with_punct: Option<Box<OnOffElement>>,
12895    #[cfg(feature = "wml-settings")]
12896    #[serde(rename = "doNotUseEastAsianBreakRules")]
12897    #[serde(default, skip_serializing_if = "Option::is_none")]
12898    pub do_not_use_east_asian_break_rules: Option<Box<OnOffElement>>,
12899    #[cfg(feature = "wml-settings")]
12900    #[serde(rename = "useWord2002TableStyleRules")]
12901    #[serde(default, skip_serializing_if = "Option::is_none")]
12902    pub use_word2002_table_style_rules: Option<Box<OnOffElement>>,
12903    #[cfg(feature = "wml-settings")]
12904    #[serde(rename = "growAutofit")]
12905    #[serde(default, skip_serializing_if = "Option::is_none")]
12906    pub grow_autofit: Option<Box<OnOffElement>>,
12907    #[cfg(feature = "wml-settings")]
12908    #[serde(rename = "useFELayout")]
12909    #[serde(default, skip_serializing_if = "Option::is_none")]
12910    pub use_f_e_layout: Option<Box<OnOffElement>>,
12911    #[cfg(feature = "wml-settings")]
12912    #[serde(rename = "useNormalStyleForList")]
12913    #[serde(default, skip_serializing_if = "Option::is_none")]
12914    pub use_normal_style_for_list: Option<Box<OnOffElement>>,
12915    #[cfg(feature = "wml-settings")]
12916    #[serde(rename = "doNotUseIndentAsNumberingTabStop")]
12917    #[serde(default, skip_serializing_if = "Option::is_none")]
12918    pub do_not_use_indent_as_numbering_tab_stop: Option<Box<OnOffElement>>,
12919    #[cfg(feature = "wml-settings")]
12920    #[serde(rename = "useAltKinsokuLineBreakRules")]
12921    #[serde(default, skip_serializing_if = "Option::is_none")]
12922    pub use_alt_kinsoku_line_break_rules: Option<Box<OnOffElement>>,
12923    #[cfg(feature = "wml-settings")]
12924    #[serde(rename = "allowSpaceOfSameStyleInTable")]
12925    #[serde(default, skip_serializing_if = "Option::is_none")]
12926    pub allow_space_of_same_style_in_table: Option<Box<OnOffElement>>,
12927    #[cfg(feature = "wml-settings")]
12928    #[serde(rename = "doNotSuppressIndentation")]
12929    #[serde(default, skip_serializing_if = "Option::is_none")]
12930    pub do_not_suppress_indentation: Option<Box<OnOffElement>>,
12931    #[cfg(feature = "wml-settings")]
12932    #[serde(rename = "doNotAutofitConstrainedTables")]
12933    #[serde(default, skip_serializing_if = "Option::is_none")]
12934    pub do_not_autofit_constrained_tables: Option<Box<OnOffElement>>,
12935    #[cfg(feature = "wml-settings")]
12936    #[serde(rename = "autofitToFirstFixedWidthCell")]
12937    #[serde(default, skip_serializing_if = "Option::is_none")]
12938    pub autofit_to_first_fixed_width_cell: Option<Box<OnOffElement>>,
12939    #[cfg(feature = "wml-settings")]
12940    #[serde(rename = "underlineTabInNumList")]
12941    #[serde(default, skip_serializing_if = "Option::is_none")]
12942    pub underline_tab_in_num_list: Option<Box<OnOffElement>>,
12943    #[cfg(feature = "wml-settings")]
12944    #[serde(rename = "displayHangulFixedWidth")]
12945    #[serde(default, skip_serializing_if = "Option::is_none")]
12946    pub display_hangul_fixed_width: Option<Box<OnOffElement>>,
12947    #[cfg(feature = "wml-settings")]
12948    #[serde(rename = "splitPgBreakAndParaMark")]
12949    #[serde(default, skip_serializing_if = "Option::is_none")]
12950    pub split_pg_break_and_para_mark: Option<Box<OnOffElement>>,
12951    #[cfg(feature = "wml-settings")]
12952    #[serde(rename = "doNotVertAlignCellWithSp")]
12953    #[serde(default, skip_serializing_if = "Option::is_none")]
12954    pub do_not_vert_align_cell_with_sp: Option<Box<OnOffElement>>,
12955    #[cfg(feature = "wml-settings")]
12956    #[serde(rename = "doNotBreakConstrainedForcedTable")]
12957    #[serde(default, skip_serializing_if = "Option::is_none")]
12958    pub do_not_break_constrained_forced_table: Option<Box<OnOffElement>>,
12959    #[cfg(feature = "wml-settings")]
12960    #[serde(rename = "doNotVertAlignInTxbx")]
12961    #[serde(default, skip_serializing_if = "Option::is_none")]
12962    pub do_not_vert_align_in_txbx: Option<Box<OnOffElement>>,
12963    #[cfg(feature = "wml-settings")]
12964    #[serde(rename = "useAnsiKerningPairs")]
12965    #[serde(default, skip_serializing_if = "Option::is_none")]
12966    pub use_ansi_kerning_pairs: Option<Box<OnOffElement>>,
12967    #[cfg(feature = "wml-settings")]
12968    #[serde(rename = "cachedColBalance")]
12969    #[serde(default, skip_serializing_if = "Option::is_none")]
12970    pub cached_col_balance: Option<Box<OnOffElement>>,
12971    #[cfg(feature = "wml-settings")]
12972    #[serde(rename = "compatSetting")]
12973    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12974    pub compat_setting: Vec<CTCompatSetting>,
12975    /// Unknown child elements captured for roundtrip fidelity.
12976    #[cfg(feature = "extra-children")]
12977    #[serde(skip)]
12978    #[cfg(feature = "extra-children")]
12979    pub extra_children: Vec<ooxml_xml::PositionedNode>,
12980}
12981
12982#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12983pub struct CTCompatSetting {
12984    #[serde(rename = "@w:name")]
12985    #[serde(default, skip_serializing_if = "Option::is_none")]
12986    pub name: Option<STString>,
12987    #[serde(rename = "@w:uri")]
12988    #[serde(default, skip_serializing_if = "Option::is_none")]
12989    pub uri: Option<STString>,
12990    #[serde(rename = "@w:val")]
12991    #[serde(default, skip_serializing_if = "Option::is_none")]
12992    pub value: Option<STString>,
12993    /// Unknown attributes captured for roundtrip fidelity.
12994    #[cfg(feature = "extra-attrs")]
12995    #[serde(skip)]
12996    #[cfg(feature = "extra-attrs")]
12997    #[serde(default)]
12998    #[cfg(feature = "extra-attrs")]
12999    pub extra_attrs: std::collections::HashMap<String, String>,
13000}
13001
13002#[derive(Debug, Clone, Serialize, Deserialize)]
13003pub struct CTDocVar {
13004    #[serde(rename = "@w:name")]
13005    pub name: STString,
13006    #[serde(rename = "@w:val")]
13007    pub value: STString,
13008    /// Unknown attributes captured for roundtrip fidelity.
13009    #[cfg(feature = "extra-attrs")]
13010    #[serde(skip)]
13011    #[cfg(feature = "extra-attrs")]
13012    #[serde(default)]
13013    #[cfg(feature = "extra-attrs")]
13014    pub extra_attrs: std::collections::HashMap<String, String>,
13015}
13016
13017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13018pub struct CTDocVars {
13019    #[cfg(feature = "wml-settings")]
13020    #[serde(rename = "docVar")]
13021    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13022    pub doc_var: Vec<CTDocVar>,
13023    /// Unknown child elements captured for roundtrip fidelity.
13024    #[cfg(feature = "extra-children")]
13025    #[serde(skip)]
13026    #[cfg(feature = "extra-children")]
13027    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13028}
13029
13030#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13031pub struct CTDocRsids {
13032    #[cfg(feature = "wml-track-changes")]
13033    #[serde(rename = "rsidRoot")]
13034    #[serde(default, skip_serializing_if = "Option::is_none")]
13035    pub rsid_root: Option<Box<LongHexNumberElement>>,
13036    #[cfg(feature = "wml-track-changes")]
13037    #[serde(rename = "rsid")]
13038    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13039    pub rsid: Vec<LongHexNumberElement>,
13040    /// Unknown child elements captured for roundtrip fidelity.
13041    #[cfg(feature = "extra-children")]
13042    #[serde(skip)]
13043    #[cfg(feature = "extra-children")]
13044    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13045}
13046
13047#[derive(Debug, Clone, Serialize, Deserialize)]
13048pub struct CTCharacterSpacing {
13049    #[serde(rename = "@w:val")]
13050    pub value: STCharacterSpacing,
13051    /// Unknown attributes captured for roundtrip fidelity.
13052    #[cfg(feature = "extra-attrs")]
13053    #[serde(skip)]
13054    #[cfg(feature = "extra-attrs")]
13055    #[serde(default)]
13056    #[cfg(feature = "extra-attrs")]
13057    pub extra_attrs: std::collections::HashMap<String, String>,
13058}
13059
13060#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13061pub struct CTSaveThroughXslt {
13062    #[cfg(feature = "wml-settings")]
13063    #[serde(rename = "@r:id")]
13064    #[serde(default, skip_serializing_if = "Option::is_none")]
13065    pub id: Option<STRelationshipId>,
13066    #[cfg(feature = "wml-settings")]
13067    #[serde(rename = "@w:solutionID")]
13068    #[serde(default, skip_serializing_if = "Option::is_none")]
13069    pub solution_i_d: Option<STString>,
13070    /// Unknown attributes captured for roundtrip fidelity.
13071    #[cfg(feature = "extra-attrs")]
13072    #[serde(skip)]
13073    #[cfg(feature = "extra-attrs")]
13074    #[serde(default)]
13075    #[cfg(feature = "extra-attrs")]
13076    pub extra_attrs: std::collections::HashMap<String, String>,
13077}
13078
13079#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13080pub struct RunPropertiesDefault {
13081    #[serde(rename = "rPr")]
13082    #[serde(default, skip_serializing_if = "Option::is_none")]
13083    pub r_pr: Option<Box<RunProperties>>,
13084    /// Unknown child elements captured for roundtrip fidelity.
13085    #[cfg(feature = "extra-children")]
13086    #[serde(skip)]
13087    #[cfg(feature = "extra-children")]
13088    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13089}
13090
13091#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13092pub struct ParagraphPropertiesDefault {
13093    #[serde(rename = "pPr")]
13094    #[serde(default, skip_serializing_if = "Option::is_none")]
13095    pub p_pr: Option<Box<CTPPrGeneral>>,
13096    /// Unknown child elements captured for roundtrip fidelity.
13097    #[cfg(feature = "extra-children")]
13098    #[serde(skip)]
13099    #[cfg(feature = "extra-children")]
13100    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13101}
13102
13103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13104pub struct DocumentDefaults {
13105    #[serde(rename = "rPrDefault")]
13106    #[serde(default, skip_serializing_if = "Option::is_none")]
13107    pub r_pr_default: Option<Box<RunPropertiesDefault>>,
13108    #[serde(rename = "pPrDefault")]
13109    #[serde(default, skip_serializing_if = "Option::is_none")]
13110    pub p_pr_default: Option<Box<ParagraphPropertiesDefault>>,
13111    /// Unknown child elements captured for roundtrip fidelity.
13112    #[cfg(feature = "extra-children")]
13113    #[serde(skip)]
13114    #[cfg(feature = "extra-children")]
13115    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13116}
13117
13118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13119pub struct CTColorSchemeMapping {
13120    #[cfg(feature = "wml-settings")]
13121    #[serde(rename = "@w:bg1")]
13122    #[serde(default, skip_serializing_if = "Option::is_none")]
13123    pub bg1: Option<STWmlColorSchemeIndex>,
13124    #[cfg(feature = "wml-settings")]
13125    #[serde(rename = "@w:t1")]
13126    #[serde(default, skip_serializing_if = "Option::is_none")]
13127    pub t1: Option<STWmlColorSchemeIndex>,
13128    #[cfg(feature = "wml-settings")]
13129    #[serde(rename = "@w:bg2")]
13130    #[serde(default, skip_serializing_if = "Option::is_none")]
13131    pub bg2: Option<STWmlColorSchemeIndex>,
13132    #[cfg(feature = "wml-settings")]
13133    #[serde(rename = "@w:t2")]
13134    #[serde(default, skip_serializing_if = "Option::is_none")]
13135    pub t2: Option<STWmlColorSchemeIndex>,
13136    #[cfg(feature = "wml-settings")]
13137    #[serde(rename = "@w:accent1")]
13138    #[serde(default, skip_serializing_if = "Option::is_none")]
13139    pub accent1: Option<STWmlColorSchemeIndex>,
13140    #[cfg(feature = "wml-settings")]
13141    #[serde(rename = "@w:accent2")]
13142    #[serde(default, skip_serializing_if = "Option::is_none")]
13143    pub accent2: Option<STWmlColorSchemeIndex>,
13144    #[cfg(feature = "wml-settings")]
13145    #[serde(rename = "@w:accent3")]
13146    #[serde(default, skip_serializing_if = "Option::is_none")]
13147    pub accent3: Option<STWmlColorSchemeIndex>,
13148    #[cfg(feature = "wml-settings")]
13149    #[serde(rename = "@w:accent4")]
13150    #[serde(default, skip_serializing_if = "Option::is_none")]
13151    pub accent4: Option<STWmlColorSchemeIndex>,
13152    #[cfg(feature = "wml-settings")]
13153    #[serde(rename = "@w:accent5")]
13154    #[serde(default, skip_serializing_if = "Option::is_none")]
13155    pub accent5: Option<STWmlColorSchemeIndex>,
13156    #[cfg(feature = "wml-settings")]
13157    #[serde(rename = "@w:accent6")]
13158    #[serde(default, skip_serializing_if = "Option::is_none")]
13159    pub accent6: Option<STWmlColorSchemeIndex>,
13160    #[cfg(feature = "wml-settings")]
13161    #[serde(rename = "@w:hyperlink")]
13162    #[serde(default, skip_serializing_if = "Option::is_none")]
13163    pub hyperlink: Option<STWmlColorSchemeIndex>,
13164    #[cfg(feature = "wml-settings")]
13165    #[serde(rename = "@w:followedHyperlink")]
13166    #[serde(default, skip_serializing_if = "Option::is_none")]
13167    pub followed_hyperlink: Option<STWmlColorSchemeIndex>,
13168    /// Unknown attributes captured for roundtrip fidelity.
13169    #[cfg(feature = "extra-attrs")]
13170    #[serde(skip)]
13171    #[cfg(feature = "extra-attrs")]
13172    #[serde(default)]
13173    #[cfg(feature = "extra-attrs")]
13174    pub extra_attrs: std::collections::HashMap<String, String>,
13175}
13176
13177#[derive(Debug, Clone, Serialize, Deserialize)]
13178pub struct CTReadingModeInkLockDown {
13179    #[cfg(feature = "wml-settings")]
13180    #[serde(rename = "@w:actualPg")]
13181    pub actual_pg: OnOff,
13182    #[cfg(feature = "wml-settings")]
13183    #[serde(rename = "@w:w")]
13184    pub width: STPixelsMeasure,
13185    #[cfg(feature = "wml-settings")]
13186    #[serde(rename = "@w:h")]
13187    pub height: STPixelsMeasure,
13188    #[cfg(feature = "wml-settings")]
13189    #[serde(rename = "@w:fontSz")]
13190    pub font_sz: STDecimalNumberOrPercent,
13191    /// Unknown attributes captured for roundtrip fidelity.
13192    #[cfg(feature = "extra-attrs")]
13193    #[serde(skip)]
13194    #[cfg(feature = "extra-attrs")]
13195    #[serde(default)]
13196    #[cfg(feature = "extra-attrs")]
13197    pub extra_attrs: std::collections::HashMap<String, String>,
13198}
13199
13200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13201pub struct CTWriteProtection {
13202    #[cfg(feature = "wml-settings")]
13203    #[serde(rename = "@w:recommended")]
13204    #[serde(default, skip_serializing_if = "Option::is_none")]
13205    pub recommended: Option<OnOff>,
13206    #[cfg(feature = "wml-settings")]
13207    #[serde(rename = "@w:algorithmName")]
13208    #[serde(default, skip_serializing_if = "Option::is_none")]
13209    pub algorithm_name: Option<STString>,
13210    #[cfg(feature = "wml-settings")]
13211    #[serde(rename = "@w:hashValue")]
13212    #[serde(default, skip_serializing_if = "Option::is_none")]
13213    pub hash_value: Option<Vec<u8>>,
13214    #[cfg(feature = "wml-settings")]
13215    #[serde(rename = "@w:saltValue")]
13216    #[serde(default, skip_serializing_if = "Option::is_none")]
13217    pub salt_value: Option<Vec<u8>>,
13218    #[cfg(feature = "wml-settings")]
13219    #[serde(rename = "@w:spinCount")]
13220    #[serde(default, skip_serializing_if = "Option::is_none")]
13221    pub spin_count: Option<STDecimalNumber>,
13222    #[cfg(feature = "wml-settings")]
13223    #[serde(rename = "@w:cryptProviderType")]
13224    #[serde(default, skip_serializing_if = "Option::is_none")]
13225    pub crypt_provider_type: Option<STCryptProv>,
13226    #[cfg(feature = "wml-settings")]
13227    #[serde(rename = "@w:cryptAlgorithmClass")]
13228    #[serde(default, skip_serializing_if = "Option::is_none")]
13229    pub crypt_algorithm_class: Option<STAlgClass>,
13230    #[cfg(feature = "wml-settings")]
13231    #[serde(rename = "@w:cryptAlgorithmType")]
13232    #[serde(default, skip_serializing_if = "Option::is_none")]
13233    pub crypt_algorithm_type: Option<STAlgType>,
13234    #[cfg(feature = "wml-settings")]
13235    #[serde(rename = "@w:cryptAlgorithmSid")]
13236    #[serde(default, skip_serializing_if = "Option::is_none")]
13237    pub crypt_algorithm_sid: Option<STDecimalNumber>,
13238    #[cfg(feature = "wml-settings")]
13239    #[serde(rename = "@w:cryptSpinCount")]
13240    #[serde(default, skip_serializing_if = "Option::is_none")]
13241    pub crypt_spin_count: Option<STDecimalNumber>,
13242    #[cfg(feature = "wml-settings")]
13243    #[serde(rename = "@w:cryptProvider")]
13244    #[serde(default, skip_serializing_if = "Option::is_none")]
13245    pub crypt_provider: Option<STString>,
13246    #[cfg(feature = "wml-settings")]
13247    #[serde(rename = "@w:algIdExt")]
13248    #[serde(default, skip_serializing_if = "Option::is_none")]
13249    pub alg_id_ext: Option<STLongHexNumber>,
13250    #[cfg(feature = "wml-settings")]
13251    #[serde(rename = "@w:algIdExtSource")]
13252    #[serde(default, skip_serializing_if = "Option::is_none")]
13253    pub alg_id_ext_source: Option<STString>,
13254    #[cfg(feature = "wml-settings")]
13255    #[serde(rename = "@w:cryptProviderTypeExt")]
13256    #[serde(default, skip_serializing_if = "Option::is_none")]
13257    pub crypt_provider_type_ext: Option<STLongHexNumber>,
13258    #[cfg(feature = "wml-settings")]
13259    #[serde(rename = "@w:cryptProviderTypeExtSource")]
13260    #[serde(default, skip_serializing_if = "Option::is_none")]
13261    pub crypt_provider_type_ext_source: Option<STString>,
13262    #[cfg(feature = "wml-settings")]
13263    #[serde(rename = "@w:hash")]
13264    #[serde(default, skip_serializing_if = "Option::is_none")]
13265    pub hash: Option<Vec<u8>>,
13266    #[cfg(feature = "wml-settings")]
13267    #[serde(rename = "@w:salt")]
13268    #[serde(default, skip_serializing_if = "Option::is_none")]
13269    pub salt: Option<Vec<u8>>,
13270    /// Unknown attributes captured for roundtrip fidelity.
13271    #[cfg(feature = "extra-attrs")]
13272    #[serde(skip)]
13273    #[cfg(feature = "extra-attrs")]
13274    #[serde(default)]
13275    #[cfg(feature = "extra-attrs")]
13276    pub extra_attrs: std::collections::HashMap<String, String>,
13277}
13278
13279#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13280pub struct Settings {
13281    #[cfg(feature = "wml-settings")]
13282    #[serde(rename = "writeProtection")]
13283    #[serde(default, skip_serializing_if = "Option::is_none")]
13284    pub write_protection: Option<Box<CTWriteProtection>>,
13285    #[cfg(feature = "wml-settings")]
13286    #[serde(rename = "view")]
13287    #[serde(default, skip_serializing_if = "Option::is_none")]
13288    pub view: Option<Box<CTView>>,
13289    #[cfg(feature = "wml-settings")]
13290    #[serde(rename = "zoom")]
13291    #[serde(default, skip_serializing_if = "Option::is_none")]
13292    pub zoom: Option<Box<CTZoom>>,
13293    #[cfg(feature = "wml-settings")]
13294    #[serde(rename = "removePersonalInformation")]
13295    #[serde(default, skip_serializing_if = "Option::is_none")]
13296    pub remove_personal_information: Option<Box<OnOffElement>>,
13297    #[cfg(feature = "wml-settings")]
13298    #[serde(rename = "removeDateAndTime")]
13299    #[serde(default, skip_serializing_if = "Option::is_none")]
13300    pub remove_date_and_time: Option<Box<OnOffElement>>,
13301    #[cfg(feature = "wml-settings")]
13302    #[serde(rename = "doNotDisplayPageBoundaries")]
13303    #[serde(default, skip_serializing_if = "Option::is_none")]
13304    pub do_not_display_page_boundaries: Option<Box<OnOffElement>>,
13305    #[cfg(feature = "wml-settings")]
13306    #[serde(rename = "displayBackgroundShape")]
13307    #[serde(default, skip_serializing_if = "Option::is_none")]
13308    pub display_background_shape: Option<Box<OnOffElement>>,
13309    #[cfg(feature = "wml-settings")]
13310    #[serde(rename = "printPostScriptOverText")]
13311    #[serde(default, skip_serializing_if = "Option::is_none")]
13312    pub print_post_script_over_text: Option<Box<OnOffElement>>,
13313    #[cfg(feature = "wml-settings")]
13314    #[serde(rename = "printFractionalCharacterWidth")]
13315    #[serde(default, skip_serializing_if = "Option::is_none")]
13316    pub print_fractional_character_width: Option<Box<OnOffElement>>,
13317    #[cfg(feature = "wml-settings")]
13318    #[serde(rename = "printFormsData")]
13319    #[serde(default, skip_serializing_if = "Option::is_none")]
13320    pub print_forms_data: Option<Box<OnOffElement>>,
13321    #[cfg(feature = "wml-settings")]
13322    #[serde(rename = "embedTrueTypeFonts")]
13323    #[serde(default, skip_serializing_if = "Option::is_none")]
13324    pub embed_true_type_fonts: Option<Box<OnOffElement>>,
13325    #[cfg(feature = "wml-settings")]
13326    #[serde(rename = "embedSystemFonts")]
13327    #[serde(default, skip_serializing_if = "Option::is_none")]
13328    pub embed_system_fonts: Option<Box<OnOffElement>>,
13329    #[cfg(feature = "wml-settings")]
13330    #[serde(rename = "saveSubsetFonts")]
13331    #[serde(default, skip_serializing_if = "Option::is_none")]
13332    pub save_subset_fonts: Option<Box<OnOffElement>>,
13333    #[cfg(feature = "wml-settings")]
13334    #[serde(rename = "saveFormsData")]
13335    #[serde(default, skip_serializing_if = "Option::is_none")]
13336    pub save_forms_data: Option<Box<OnOffElement>>,
13337    #[cfg(feature = "wml-settings")]
13338    #[serde(rename = "mirrorMargins")]
13339    #[serde(default, skip_serializing_if = "Option::is_none")]
13340    pub mirror_margins: Option<Box<OnOffElement>>,
13341    #[cfg(feature = "wml-settings")]
13342    #[serde(rename = "alignBordersAndEdges")]
13343    #[serde(default, skip_serializing_if = "Option::is_none")]
13344    pub align_borders_and_edges: Option<Box<OnOffElement>>,
13345    #[cfg(feature = "wml-settings")]
13346    #[serde(rename = "bordersDoNotSurroundHeader")]
13347    #[serde(default, skip_serializing_if = "Option::is_none")]
13348    pub borders_do_not_surround_header: Option<Box<OnOffElement>>,
13349    #[cfg(feature = "wml-settings")]
13350    #[serde(rename = "bordersDoNotSurroundFooter")]
13351    #[serde(default, skip_serializing_if = "Option::is_none")]
13352    pub borders_do_not_surround_footer: Option<Box<OnOffElement>>,
13353    #[cfg(feature = "wml-settings")]
13354    #[serde(rename = "gutterAtTop")]
13355    #[serde(default, skip_serializing_if = "Option::is_none")]
13356    pub gutter_at_top: Option<Box<OnOffElement>>,
13357    #[cfg(feature = "wml-settings")]
13358    #[serde(rename = "hideSpellingErrors")]
13359    #[serde(default, skip_serializing_if = "Option::is_none")]
13360    pub hide_spelling_errors: Option<Box<OnOffElement>>,
13361    #[cfg(feature = "wml-settings")]
13362    #[serde(rename = "hideGrammaticalErrors")]
13363    #[serde(default, skip_serializing_if = "Option::is_none")]
13364    pub hide_grammatical_errors: Option<Box<OnOffElement>>,
13365    #[cfg(feature = "wml-settings")]
13366    #[serde(rename = "activeWritingStyle")]
13367    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13368    pub active_writing_style: Vec<CTWritingStyle>,
13369    #[cfg(feature = "wml-settings")]
13370    #[serde(rename = "proofState")]
13371    #[serde(default, skip_serializing_if = "Option::is_none")]
13372    pub proof_state: Option<Box<CTProof>>,
13373    #[cfg(feature = "wml-settings")]
13374    #[serde(rename = "formsDesign")]
13375    #[serde(default, skip_serializing_if = "Option::is_none")]
13376    pub forms_design: Option<Box<OnOffElement>>,
13377    #[cfg(feature = "wml-settings")]
13378    #[serde(rename = "attachedTemplate")]
13379    #[serde(default, skip_serializing_if = "Option::is_none")]
13380    pub attached_template: Option<Box<CTRel>>,
13381    #[cfg(feature = "wml-settings")]
13382    #[serde(rename = "linkStyles")]
13383    #[serde(default, skip_serializing_if = "Option::is_none")]
13384    pub link_styles: Option<Box<OnOffElement>>,
13385    #[cfg(feature = "wml-settings")]
13386    #[serde(rename = "stylePaneFormatFilter")]
13387    #[serde(default, skip_serializing_if = "Option::is_none")]
13388    pub style_pane_format_filter: Option<Box<CTStylePaneFilter>>,
13389    #[cfg(feature = "wml-settings")]
13390    #[serde(rename = "stylePaneSortMethod")]
13391    #[serde(default, skip_serializing_if = "Option::is_none")]
13392    pub style_pane_sort_method: Option<Box<CTStyleSort>>,
13393    #[cfg(feature = "wml-settings")]
13394    #[serde(rename = "documentType")]
13395    #[serde(default, skip_serializing_if = "Option::is_none")]
13396    pub document_type: Option<Box<DocTypeElement>>,
13397    #[cfg(feature = "wml-settings")]
13398    #[serde(rename = "mailMerge")]
13399    #[serde(default, skip_serializing_if = "Option::is_none")]
13400    pub mail_merge: Option<Box<CTMailMerge>>,
13401    #[cfg(feature = "wml-settings")]
13402    #[serde(rename = "revisionView")]
13403    #[serde(default, skip_serializing_if = "Option::is_none")]
13404    pub revision_view: Option<Box<CTTrackChangesView>>,
13405    #[cfg(feature = "wml-settings")]
13406    #[serde(rename = "trackRevisions")]
13407    #[serde(default, skip_serializing_if = "Option::is_none")]
13408    pub track_revisions: Option<Box<OnOffElement>>,
13409    #[cfg(feature = "wml-track-changes")]
13410    #[serde(rename = "doNotTrackMoves")]
13411    #[serde(default, skip_serializing_if = "Option::is_none")]
13412    pub do_not_track_moves: Option<Box<OnOffElement>>,
13413    #[cfg(feature = "wml-track-changes")]
13414    #[serde(rename = "doNotTrackFormatting")]
13415    #[serde(default, skip_serializing_if = "Option::is_none")]
13416    pub do_not_track_formatting: Option<Box<OnOffElement>>,
13417    #[cfg(feature = "wml-settings")]
13418    #[serde(rename = "documentProtection")]
13419    #[serde(default, skip_serializing_if = "Option::is_none")]
13420    pub document_protection: Option<Box<CTDocProtect>>,
13421    #[cfg(feature = "wml-settings")]
13422    #[serde(rename = "autoFormatOverride")]
13423    #[serde(default, skip_serializing_if = "Option::is_none")]
13424    pub auto_format_override: Option<Box<OnOffElement>>,
13425    #[cfg(feature = "wml-settings")]
13426    #[serde(rename = "styleLockTheme")]
13427    #[serde(default, skip_serializing_if = "Option::is_none")]
13428    pub style_lock_theme: Option<Box<OnOffElement>>,
13429    #[cfg(feature = "wml-settings")]
13430    #[serde(rename = "styleLockQFSet")]
13431    #[serde(default, skip_serializing_if = "Option::is_none")]
13432    pub style_lock_q_f_set: Option<Box<OnOffElement>>,
13433    #[cfg(feature = "wml-settings")]
13434    #[serde(rename = "defaultTabStop")]
13435    #[serde(default, skip_serializing_if = "Option::is_none")]
13436    pub default_tab_stop: Option<Box<TwipsMeasureElement>>,
13437    #[cfg(feature = "wml-settings")]
13438    #[serde(rename = "autoHyphenation")]
13439    #[serde(default, skip_serializing_if = "Option::is_none")]
13440    pub auto_hyphenation: Option<Box<OnOffElement>>,
13441    #[cfg(feature = "wml-settings")]
13442    #[serde(rename = "consecutiveHyphenLimit")]
13443    #[serde(default, skip_serializing_if = "Option::is_none")]
13444    pub consecutive_hyphen_limit: Option<Box<CTDecimalNumber>>,
13445    #[cfg(feature = "wml-settings")]
13446    #[serde(rename = "hyphenationZone")]
13447    #[serde(default, skip_serializing_if = "Option::is_none")]
13448    pub hyphenation_zone: Option<Box<TwipsMeasureElement>>,
13449    #[cfg(feature = "wml-settings")]
13450    #[serde(rename = "doNotHyphenateCaps")]
13451    #[serde(default, skip_serializing_if = "Option::is_none")]
13452    pub do_not_hyphenate_caps: Option<Box<OnOffElement>>,
13453    #[cfg(feature = "wml-settings")]
13454    #[serde(rename = "showEnvelope")]
13455    #[serde(default, skip_serializing_if = "Option::is_none")]
13456    pub show_envelope: Option<Box<OnOffElement>>,
13457    #[cfg(feature = "wml-settings")]
13458    #[serde(rename = "summaryLength")]
13459    #[serde(default, skip_serializing_if = "Option::is_none")]
13460    pub summary_length: Option<Box<CTDecimalNumberOrPrecent>>,
13461    #[cfg(feature = "wml-settings")]
13462    #[serde(rename = "clickAndTypeStyle")]
13463    #[serde(default, skip_serializing_if = "Option::is_none")]
13464    pub click_and_type_style: Option<Box<CTString>>,
13465    #[cfg(feature = "wml-settings")]
13466    #[serde(rename = "defaultTableStyle")]
13467    #[serde(default, skip_serializing_if = "Option::is_none")]
13468    pub default_table_style: Option<Box<CTString>>,
13469    #[cfg(feature = "wml-settings")]
13470    #[serde(rename = "evenAndOddHeaders")]
13471    #[serde(default, skip_serializing_if = "Option::is_none")]
13472    pub even_and_odd_headers: Option<Box<OnOffElement>>,
13473    #[cfg(feature = "wml-settings")]
13474    #[serde(rename = "bookFoldRevPrinting")]
13475    #[serde(default, skip_serializing_if = "Option::is_none")]
13476    pub book_fold_rev_printing: Option<Box<OnOffElement>>,
13477    #[cfg(feature = "wml-settings")]
13478    #[serde(rename = "bookFoldPrinting")]
13479    #[serde(default, skip_serializing_if = "Option::is_none")]
13480    pub book_fold_printing: Option<Box<OnOffElement>>,
13481    #[cfg(feature = "wml-settings")]
13482    #[serde(rename = "bookFoldPrintingSheets")]
13483    #[serde(default, skip_serializing_if = "Option::is_none")]
13484    pub book_fold_printing_sheets: Option<Box<CTDecimalNumber>>,
13485    #[cfg(feature = "wml-settings")]
13486    #[serde(rename = "drawingGridHorizontalSpacing")]
13487    #[serde(default, skip_serializing_if = "Option::is_none")]
13488    pub drawing_grid_horizontal_spacing: Option<Box<TwipsMeasureElement>>,
13489    #[cfg(feature = "wml-settings")]
13490    #[serde(rename = "drawingGridVerticalSpacing")]
13491    #[serde(default, skip_serializing_if = "Option::is_none")]
13492    pub drawing_grid_vertical_spacing: Option<Box<TwipsMeasureElement>>,
13493    #[cfg(feature = "wml-settings")]
13494    #[serde(rename = "displayHorizontalDrawingGridEvery")]
13495    #[serde(default, skip_serializing_if = "Option::is_none")]
13496    pub display_horizontal_drawing_grid_every: Option<Box<CTDecimalNumber>>,
13497    #[cfg(feature = "wml-settings")]
13498    #[serde(rename = "displayVerticalDrawingGridEvery")]
13499    #[serde(default, skip_serializing_if = "Option::is_none")]
13500    pub display_vertical_drawing_grid_every: Option<Box<CTDecimalNumber>>,
13501    #[cfg(feature = "wml-settings")]
13502    #[serde(rename = "doNotUseMarginsForDrawingGridOrigin")]
13503    #[serde(default, skip_serializing_if = "Option::is_none")]
13504    pub do_not_use_margins_for_drawing_grid_origin: Option<Box<OnOffElement>>,
13505    #[cfg(feature = "wml-settings")]
13506    #[serde(rename = "drawingGridHorizontalOrigin")]
13507    #[serde(default, skip_serializing_if = "Option::is_none")]
13508    pub drawing_grid_horizontal_origin: Option<Box<TwipsMeasureElement>>,
13509    #[cfg(feature = "wml-settings")]
13510    #[serde(rename = "drawingGridVerticalOrigin")]
13511    #[serde(default, skip_serializing_if = "Option::is_none")]
13512    pub drawing_grid_vertical_origin: Option<Box<TwipsMeasureElement>>,
13513    #[cfg(feature = "wml-settings")]
13514    #[serde(rename = "doNotShadeFormData")]
13515    #[serde(default, skip_serializing_if = "Option::is_none")]
13516    pub do_not_shade_form_data: Option<Box<OnOffElement>>,
13517    #[cfg(feature = "wml-settings")]
13518    #[serde(rename = "noPunctuationKerning")]
13519    #[serde(default, skip_serializing_if = "Option::is_none")]
13520    pub no_punctuation_kerning: Option<Box<OnOffElement>>,
13521    #[cfg(feature = "wml-settings")]
13522    #[serde(rename = "characterSpacingControl")]
13523    #[serde(default, skip_serializing_if = "Option::is_none")]
13524    pub character_spacing_control: Option<Box<CTCharacterSpacing>>,
13525    #[cfg(feature = "wml-settings")]
13526    #[serde(rename = "printTwoOnOne")]
13527    #[serde(default, skip_serializing_if = "Option::is_none")]
13528    pub print_two_on_one: Option<Box<OnOffElement>>,
13529    #[cfg(feature = "wml-settings")]
13530    #[serde(rename = "strictFirstAndLastChars")]
13531    #[serde(default, skip_serializing_if = "Option::is_none")]
13532    pub strict_first_and_last_chars: Option<Box<OnOffElement>>,
13533    #[cfg(feature = "wml-settings")]
13534    #[serde(rename = "noLineBreaksAfter")]
13535    #[serde(default, skip_serializing_if = "Option::is_none")]
13536    pub no_line_breaks_after: Option<Box<CTKinsoku>>,
13537    #[cfg(feature = "wml-settings")]
13538    #[serde(rename = "noLineBreaksBefore")]
13539    #[serde(default, skip_serializing_if = "Option::is_none")]
13540    pub no_line_breaks_before: Option<Box<CTKinsoku>>,
13541    #[cfg(feature = "wml-settings")]
13542    #[serde(rename = "savePreviewPicture")]
13543    #[serde(default, skip_serializing_if = "Option::is_none")]
13544    pub save_preview_picture: Option<Box<OnOffElement>>,
13545    #[cfg(feature = "wml-settings")]
13546    #[serde(rename = "doNotValidateAgainstSchema")]
13547    #[serde(default, skip_serializing_if = "Option::is_none")]
13548    pub do_not_validate_against_schema: Option<Box<OnOffElement>>,
13549    #[cfg(feature = "wml-settings")]
13550    #[serde(rename = "saveInvalidXml")]
13551    #[serde(default, skip_serializing_if = "Option::is_none")]
13552    pub save_invalid_xml: Option<Box<OnOffElement>>,
13553    #[cfg(feature = "wml-settings")]
13554    #[serde(rename = "ignoreMixedContent")]
13555    #[serde(default, skip_serializing_if = "Option::is_none")]
13556    pub ignore_mixed_content: Option<Box<OnOffElement>>,
13557    #[cfg(feature = "wml-settings")]
13558    #[serde(rename = "alwaysShowPlaceholderText")]
13559    #[serde(default, skip_serializing_if = "Option::is_none")]
13560    pub always_show_placeholder_text: Option<Box<OnOffElement>>,
13561    #[cfg(feature = "wml-settings")]
13562    #[serde(rename = "doNotDemarcateInvalidXml")]
13563    #[serde(default, skip_serializing_if = "Option::is_none")]
13564    pub do_not_demarcate_invalid_xml: Option<Box<OnOffElement>>,
13565    #[cfg(feature = "wml-settings")]
13566    #[serde(rename = "saveXmlDataOnly")]
13567    #[serde(default, skip_serializing_if = "Option::is_none")]
13568    pub save_xml_data_only: Option<Box<OnOffElement>>,
13569    #[cfg(feature = "wml-settings")]
13570    #[serde(rename = "useXSLTWhenSaving")]
13571    #[serde(default, skip_serializing_if = "Option::is_none")]
13572    pub use_x_s_l_t_when_saving: Option<Box<OnOffElement>>,
13573    #[cfg(feature = "wml-settings")]
13574    #[serde(rename = "saveThroughXslt")]
13575    #[serde(default, skip_serializing_if = "Option::is_none")]
13576    pub save_through_xslt: Option<Box<CTSaveThroughXslt>>,
13577    #[cfg(feature = "wml-settings")]
13578    #[serde(rename = "showXMLTags")]
13579    #[serde(default, skip_serializing_if = "Option::is_none")]
13580    pub show_x_m_l_tags: Option<Box<OnOffElement>>,
13581    #[cfg(feature = "wml-settings")]
13582    #[serde(rename = "alwaysMergeEmptyNamespace")]
13583    #[serde(default, skip_serializing_if = "Option::is_none")]
13584    pub always_merge_empty_namespace: Option<Box<OnOffElement>>,
13585    #[cfg(feature = "wml-settings")]
13586    #[serde(rename = "updateFields")]
13587    #[serde(default, skip_serializing_if = "Option::is_none")]
13588    pub update_fields: Option<Box<OnOffElement>>,
13589    #[cfg(feature = "wml-drawings")]
13590    #[serde(rename = "hdrShapeDefaults")]
13591    #[serde(default, skip_serializing_if = "Option::is_none")]
13592    pub hdr_shape_defaults: Option<Box<CTShapeDefaults>>,
13593    #[cfg(feature = "wml-comments")]
13594    #[serde(rename = "footnotePr")]
13595    #[serde(default, skip_serializing_if = "Option::is_none")]
13596    pub footnote_pr: Option<Box<CTFtnDocProps>>,
13597    #[cfg(feature = "wml-comments")]
13598    #[serde(rename = "endnotePr")]
13599    #[serde(default, skip_serializing_if = "Option::is_none")]
13600    pub endnote_pr: Option<Box<CTEdnDocProps>>,
13601    #[cfg(feature = "wml-settings")]
13602    #[serde(rename = "compat")]
13603    #[serde(default, skip_serializing_if = "Option::is_none")]
13604    pub compat: Option<Box<Compatibility>>,
13605    #[cfg(feature = "wml-settings")]
13606    #[serde(rename = "docVars")]
13607    #[serde(default, skip_serializing_if = "Option::is_none")]
13608    pub doc_vars: Option<Box<CTDocVars>>,
13609    #[cfg(feature = "wml-settings")]
13610    #[serde(rename = "rsids")]
13611    #[serde(default, skip_serializing_if = "Option::is_none")]
13612    pub rsids: Option<Box<CTDocRsids>>,
13613    #[cfg(feature = "wml-settings")]
13614    #[serde(rename = "attachedSchema")]
13615    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13616    pub attached_schema: Vec<CTString>,
13617    #[cfg(feature = "wml-settings")]
13618    #[serde(rename = "themeFontLang")]
13619    #[serde(default, skip_serializing_if = "Option::is_none")]
13620    pub theme_font_lang: Option<Box<LanguageElement>>,
13621    #[cfg(feature = "wml-settings")]
13622    #[serde(rename = "clrSchemeMapping")]
13623    #[serde(default, skip_serializing_if = "Option::is_none")]
13624    pub clr_scheme_mapping: Option<Box<CTColorSchemeMapping>>,
13625    #[cfg(feature = "wml-settings")]
13626    #[serde(rename = "doNotIncludeSubdocsInStats")]
13627    #[serde(default, skip_serializing_if = "Option::is_none")]
13628    pub do_not_include_subdocs_in_stats: Option<Box<OnOffElement>>,
13629    #[cfg(feature = "wml-settings")]
13630    #[serde(rename = "doNotAutoCompressPictures")]
13631    #[serde(default, skip_serializing_if = "Option::is_none")]
13632    pub do_not_auto_compress_pictures: Option<Box<OnOffElement>>,
13633    #[cfg(feature = "wml-settings")]
13634    #[serde(rename = "forceUpgrade")]
13635    #[serde(default, skip_serializing_if = "Option::is_none")]
13636    pub force_upgrade: Option<Box<CTEmpty>>,
13637    #[cfg(feature = "wml-settings")]
13638    #[serde(rename = "captions")]
13639    #[serde(default, skip_serializing_if = "Option::is_none")]
13640    pub captions: Option<Box<CTCaptions>>,
13641    #[cfg(feature = "wml-settings")]
13642    #[serde(rename = "readModeInkLockDown")]
13643    #[serde(default, skip_serializing_if = "Option::is_none")]
13644    pub read_mode_ink_lock_down: Option<Box<CTReadingModeInkLockDown>>,
13645    #[cfg(feature = "wml-settings")]
13646    #[serde(rename = "smartTagType")]
13647    #[serde(default, skip_serializing_if = "Vec::is_empty")]
13648    pub smart_tag_type: Vec<CTSmartTagType>,
13649    #[cfg(feature = "wml-drawings")]
13650    #[serde(rename = "shapeDefaults")]
13651    #[serde(default, skip_serializing_if = "Option::is_none")]
13652    pub shape_defaults: Option<Box<CTShapeDefaults>>,
13653    #[cfg(feature = "wml-settings")]
13654    #[serde(rename = "doNotEmbedSmartTags")]
13655    #[serde(default, skip_serializing_if = "Option::is_none")]
13656    pub do_not_embed_smart_tags: Option<Box<OnOffElement>>,
13657    #[cfg(feature = "wml-settings")]
13658    #[serde(rename = "decimalSymbol")]
13659    #[serde(default, skip_serializing_if = "Option::is_none")]
13660    pub decimal_symbol: Option<Box<CTString>>,
13661    #[cfg(feature = "wml-settings")]
13662    #[serde(rename = "listSeparator")]
13663    #[serde(default, skip_serializing_if = "Option::is_none")]
13664    pub list_separator: Option<Box<CTString>>,
13665    /// Unknown child elements captured for roundtrip fidelity.
13666    #[cfg(feature = "extra-children")]
13667    #[serde(skip)]
13668    #[cfg(feature = "extra-children")]
13669    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13670}
13671
13672#[derive(Debug, Clone, Serialize, Deserialize)]
13673pub struct CTStyleSort {
13674    #[serde(rename = "@w:val")]
13675    pub value: STStyleSort,
13676    /// Unknown attributes captured for roundtrip fidelity.
13677    #[cfg(feature = "extra-attrs")]
13678    #[serde(skip)]
13679    #[cfg(feature = "extra-attrs")]
13680    #[serde(default)]
13681    #[cfg(feature = "extra-attrs")]
13682    pub extra_attrs: std::collections::HashMap<String, String>,
13683}
13684
13685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13686pub struct CTStylePaneFilter {
13687    #[cfg(feature = "wml-settings")]
13688    #[serde(rename = "@w:allStyles")]
13689    #[serde(default, skip_serializing_if = "Option::is_none")]
13690    pub all_styles: Option<OnOff>,
13691    #[cfg(feature = "wml-settings")]
13692    #[serde(rename = "@w:customStyles")]
13693    #[serde(default, skip_serializing_if = "Option::is_none")]
13694    pub custom_styles: Option<OnOff>,
13695    #[cfg(feature = "wml-settings")]
13696    #[serde(rename = "@w:latentStyles")]
13697    #[serde(default, skip_serializing_if = "Option::is_none")]
13698    pub latent_styles: Option<OnOff>,
13699    #[cfg(feature = "wml-settings")]
13700    #[serde(rename = "@w:stylesInUse")]
13701    #[serde(default, skip_serializing_if = "Option::is_none")]
13702    pub styles_in_use: Option<OnOff>,
13703    #[cfg(feature = "wml-settings")]
13704    #[serde(rename = "@w:headingStyles")]
13705    #[serde(default, skip_serializing_if = "Option::is_none")]
13706    pub heading_styles: Option<OnOff>,
13707    #[cfg(feature = "wml-settings")]
13708    #[serde(rename = "@w:numberingStyles")]
13709    #[serde(default, skip_serializing_if = "Option::is_none")]
13710    pub numbering_styles: Option<OnOff>,
13711    #[cfg(feature = "wml-settings")]
13712    #[serde(rename = "@w:tableStyles")]
13713    #[serde(default, skip_serializing_if = "Option::is_none")]
13714    pub table_styles: Option<OnOff>,
13715    #[cfg(feature = "wml-settings")]
13716    #[serde(rename = "@w:directFormattingOnRuns")]
13717    #[serde(default, skip_serializing_if = "Option::is_none")]
13718    pub direct_formatting_on_runs: Option<OnOff>,
13719    #[cfg(feature = "wml-settings")]
13720    #[serde(rename = "@w:directFormattingOnParagraphs")]
13721    #[serde(default, skip_serializing_if = "Option::is_none")]
13722    pub direct_formatting_on_paragraphs: Option<OnOff>,
13723    #[cfg(feature = "wml-settings")]
13724    #[serde(rename = "@w:directFormattingOnNumbering")]
13725    #[serde(default, skip_serializing_if = "Option::is_none")]
13726    pub direct_formatting_on_numbering: Option<OnOff>,
13727    #[cfg(feature = "wml-settings")]
13728    #[serde(rename = "@w:directFormattingOnTables")]
13729    #[serde(default, skip_serializing_if = "Option::is_none")]
13730    pub direct_formatting_on_tables: Option<OnOff>,
13731    #[cfg(feature = "wml-settings")]
13732    #[serde(rename = "@w:clearFormatting")]
13733    #[serde(default, skip_serializing_if = "Option::is_none")]
13734    pub clear_formatting: Option<OnOff>,
13735    #[cfg(feature = "wml-settings")]
13736    #[serde(rename = "@w:top3HeadingStyles")]
13737    #[serde(default, skip_serializing_if = "Option::is_none")]
13738    pub top3_heading_styles: Option<OnOff>,
13739    #[cfg(feature = "wml-settings")]
13740    #[serde(rename = "@w:visibleStyles")]
13741    #[serde(default, skip_serializing_if = "Option::is_none")]
13742    pub visible_styles: Option<OnOff>,
13743    #[cfg(feature = "wml-settings")]
13744    #[serde(rename = "@w:alternateStyleNames")]
13745    #[serde(default, skip_serializing_if = "Option::is_none")]
13746    pub alternate_style_names: Option<OnOff>,
13747    #[cfg(feature = "wml-settings")]
13748    #[serde(rename = "@w:val")]
13749    #[serde(default, skip_serializing_if = "Option::is_none")]
13750    pub value: Option<STShortHexNumber>,
13751    /// Unknown attributes captured for roundtrip fidelity.
13752    #[cfg(feature = "extra-attrs")]
13753    #[serde(skip)]
13754    #[cfg(feature = "extra-attrs")]
13755    #[serde(default)]
13756    #[cfg(feature = "extra-attrs")]
13757    pub extra_attrs: std::collections::HashMap<String, String>,
13758}
13759
13760#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13761pub struct CTWebSettings {
13762    #[cfg(feature = "wml-settings")]
13763    #[serde(rename = "frameset")]
13764    #[serde(default, skip_serializing_if = "Option::is_none")]
13765    pub frameset: Option<Box<CTFrameset>>,
13766    #[cfg(feature = "wml-settings")]
13767    #[serde(rename = "divs")]
13768    #[serde(default, skip_serializing_if = "Option::is_none")]
13769    pub divs: Option<Box<CTDivs>>,
13770    #[cfg(feature = "wml-settings")]
13771    #[serde(rename = "encoding")]
13772    #[serde(default, skip_serializing_if = "Option::is_none")]
13773    pub encoding: Option<Box<CTString>>,
13774    #[cfg(feature = "wml-settings")]
13775    #[serde(rename = "optimizeForBrowser")]
13776    #[serde(default, skip_serializing_if = "Option::is_none")]
13777    pub optimize_for_browser: Option<Box<CTOptimizeForBrowser>>,
13778    #[cfg(feature = "wml-settings")]
13779    #[serde(rename = "relyOnVML")]
13780    #[serde(default, skip_serializing_if = "Option::is_none")]
13781    pub rely_on_v_m_l: Option<Box<OnOffElement>>,
13782    #[cfg(feature = "wml-settings")]
13783    #[serde(rename = "allowPNG")]
13784    #[serde(default, skip_serializing_if = "Option::is_none")]
13785    pub allow_p_n_g: Option<Box<OnOffElement>>,
13786    #[cfg(feature = "wml-settings")]
13787    #[serde(rename = "doNotRelyOnCSS")]
13788    #[serde(default, skip_serializing_if = "Option::is_none")]
13789    pub do_not_rely_on_c_s_s: Option<Box<OnOffElement>>,
13790    #[cfg(feature = "wml-settings")]
13791    #[serde(rename = "doNotSaveAsSingleFile")]
13792    #[serde(default, skip_serializing_if = "Option::is_none")]
13793    pub do_not_save_as_single_file: Option<Box<OnOffElement>>,
13794    #[cfg(feature = "wml-settings")]
13795    #[serde(rename = "doNotOrganizeInFolder")]
13796    #[serde(default, skip_serializing_if = "Option::is_none")]
13797    pub do_not_organize_in_folder: Option<Box<OnOffElement>>,
13798    #[cfg(feature = "wml-settings")]
13799    #[serde(rename = "doNotUseLongFileNames")]
13800    #[serde(default, skip_serializing_if = "Option::is_none")]
13801    pub do_not_use_long_file_names: Option<Box<OnOffElement>>,
13802    #[cfg(feature = "wml-settings")]
13803    #[serde(rename = "pixelsPerInch")]
13804    #[serde(default, skip_serializing_if = "Option::is_none")]
13805    pub pixels_per_inch: Option<Box<CTDecimalNumber>>,
13806    #[cfg(feature = "wml-settings")]
13807    #[serde(rename = "targetScreenSz")]
13808    #[serde(default, skip_serializing_if = "Option::is_none")]
13809    pub target_screen_sz: Option<Box<CTTargetScreenSz>>,
13810    #[cfg(feature = "wml-settings")]
13811    #[serde(rename = "saveSmartTagsAsXml")]
13812    #[serde(default, skip_serializing_if = "Option::is_none")]
13813    pub save_smart_tags_as_xml: Option<Box<OnOffElement>>,
13814    /// Unknown child elements captured for roundtrip fidelity.
13815    #[cfg(feature = "extra-children")]
13816    #[serde(skip)]
13817    #[cfg(feature = "extra-children")]
13818    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13819}
13820
13821#[derive(Debug, Clone, Serialize, Deserialize)]
13822pub struct CTFrameScrollbar {
13823    #[serde(rename = "@w:val")]
13824    pub value: STFrameScrollbar,
13825    /// Unknown attributes captured for roundtrip fidelity.
13826    #[cfg(feature = "extra-attrs")]
13827    #[serde(skip)]
13828    #[cfg(feature = "extra-attrs")]
13829    #[serde(default)]
13830    #[cfg(feature = "extra-attrs")]
13831    pub extra_attrs: std::collections::HashMap<String, String>,
13832}
13833
13834#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13835pub struct CTOptimizeForBrowser {
13836    #[serde(rename = "@w:val")]
13837    #[serde(default, skip_serializing_if = "Option::is_none")]
13838    pub value: Option<OnOff>,
13839    #[cfg(feature = "wml-settings")]
13840    #[serde(rename = "@w:target")]
13841    #[serde(default, skip_serializing_if = "Option::is_none")]
13842    pub target: Option<STString>,
13843    /// Unknown attributes captured for roundtrip fidelity.
13844    #[cfg(feature = "extra-attrs")]
13845    #[serde(skip)]
13846    #[cfg(feature = "extra-attrs")]
13847    #[serde(default)]
13848    #[cfg(feature = "extra-attrs")]
13849    pub extra_attrs: std::collections::HashMap<String, String>,
13850}
13851
13852#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13853pub struct CTFrame {
13854    #[cfg(feature = "wml-settings")]
13855    #[serde(rename = "sz")]
13856    #[serde(default, skip_serializing_if = "Option::is_none")]
13857    pub size: Option<Box<CTString>>,
13858    #[cfg(feature = "wml-settings")]
13859    #[serde(rename = "name")]
13860    #[serde(default, skip_serializing_if = "Option::is_none")]
13861    pub name: Option<Box<CTString>>,
13862    #[cfg(feature = "wml-settings")]
13863    #[serde(rename = "title")]
13864    #[serde(default, skip_serializing_if = "Option::is_none")]
13865    pub title: Option<Box<CTString>>,
13866    #[cfg(feature = "wml-settings")]
13867    #[serde(rename = "longDesc")]
13868    #[serde(default, skip_serializing_if = "Option::is_none")]
13869    pub long_desc: Option<Box<CTRel>>,
13870    #[cfg(feature = "wml-settings")]
13871    #[serde(rename = "sourceFileName")]
13872    #[serde(default, skip_serializing_if = "Option::is_none")]
13873    pub source_file_name: Option<Box<CTRel>>,
13874    #[cfg(feature = "wml-settings")]
13875    #[serde(rename = "marW")]
13876    #[serde(default, skip_serializing_if = "Option::is_none")]
13877    pub mar_w: Option<Box<PixelsMeasureElement>>,
13878    #[cfg(feature = "wml-settings")]
13879    #[serde(rename = "marH")]
13880    #[serde(default, skip_serializing_if = "Option::is_none")]
13881    pub mar_h: Option<Box<PixelsMeasureElement>>,
13882    #[cfg(feature = "wml-settings")]
13883    #[serde(rename = "scrollbar")]
13884    #[serde(default, skip_serializing_if = "Option::is_none")]
13885    pub scrollbar: Option<Box<CTFrameScrollbar>>,
13886    #[cfg(feature = "wml-settings")]
13887    #[serde(rename = "noResizeAllowed")]
13888    #[serde(default, skip_serializing_if = "Option::is_none")]
13889    pub no_resize_allowed: Option<Box<OnOffElement>>,
13890    #[cfg(feature = "wml-settings")]
13891    #[serde(rename = "linkedToFile")]
13892    #[serde(default, skip_serializing_if = "Option::is_none")]
13893    pub linked_to_file: Option<Box<OnOffElement>>,
13894    /// Unknown child elements captured for roundtrip fidelity.
13895    #[cfg(feature = "extra-children")]
13896    #[serde(skip)]
13897    #[cfg(feature = "extra-children")]
13898    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13899}
13900
13901#[derive(Debug, Clone, Serialize, Deserialize)]
13902pub struct CTFrameLayout {
13903    #[serde(rename = "@w:val")]
13904    pub value: STFrameLayout,
13905    /// Unknown attributes captured for roundtrip fidelity.
13906    #[cfg(feature = "extra-attrs")]
13907    #[serde(skip)]
13908    #[cfg(feature = "extra-attrs")]
13909    #[serde(default)]
13910    #[cfg(feature = "extra-attrs")]
13911    pub extra_attrs: std::collections::HashMap<String, String>,
13912}
13913
13914#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13915pub struct CTFramesetSplitbar {
13916    #[cfg(feature = "wml-settings")]
13917    #[serde(rename = "w")]
13918    #[serde(default, skip_serializing_if = "Option::is_none")]
13919    pub width: Option<Box<TwipsMeasureElement>>,
13920    #[cfg(feature = "wml-settings")]
13921    #[serde(rename = "color")]
13922    #[serde(default, skip_serializing_if = "Option::is_none")]
13923    pub color: Option<Box<CTColor>>,
13924    #[cfg(feature = "wml-settings")]
13925    #[serde(rename = "noBorder")]
13926    #[serde(default, skip_serializing_if = "Option::is_none")]
13927    pub no_border: Option<Box<OnOffElement>>,
13928    #[cfg(feature = "wml-settings")]
13929    #[serde(rename = "flatBorders")]
13930    #[serde(default, skip_serializing_if = "Option::is_none")]
13931    pub flat_borders: Option<Box<OnOffElement>>,
13932    /// Unknown child elements captured for roundtrip fidelity.
13933    #[cfg(feature = "extra-children")]
13934    #[serde(skip)]
13935    #[cfg(feature = "extra-children")]
13936    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13937}
13938
13939#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13940pub struct CTFrameset {
13941    #[cfg(feature = "wml-settings")]
13942    #[serde(rename = "sz")]
13943    #[serde(default, skip_serializing_if = "Option::is_none")]
13944    pub size: Option<Box<CTString>>,
13945    #[cfg(feature = "wml-settings")]
13946    #[serde(rename = "framesetSplitbar")]
13947    #[serde(default, skip_serializing_if = "Option::is_none")]
13948    pub frameset_splitbar: Option<Box<CTFramesetSplitbar>>,
13949    #[cfg(feature = "wml-settings")]
13950    #[serde(rename = "frameLayout")]
13951    #[serde(default, skip_serializing_if = "Option::is_none")]
13952    pub frame_layout: Option<Box<CTFrameLayout>>,
13953    #[cfg(feature = "wml-settings")]
13954    #[serde(rename = "title")]
13955    #[serde(default, skip_serializing_if = "Option::is_none")]
13956    pub title: Option<Box<CTString>>,
13957    /// Unknown child elements captured for roundtrip fidelity.
13958    #[cfg(feature = "extra-children")]
13959    #[serde(skip)]
13960    #[cfg(feature = "extra-children")]
13961    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13962}
13963
13964#[derive(Debug, Clone, Serialize, Deserialize)]
13965pub struct CTNumPicBullet {
13966    #[serde(rename = "@w:numPicBulletId")]
13967    pub num_pic_bullet_id: STDecimalNumber,
13968    #[cfg(feature = "wml-numbering")]
13969    #[serde(rename = "pict")]
13970    #[serde(default, skip_serializing_if = "Option::is_none")]
13971    pub pict: Option<Box<CTPicture>>,
13972    #[cfg(feature = "wml-numbering")]
13973    #[serde(rename = "drawing")]
13974    #[serde(default, skip_serializing_if = "Option::is_none")]
13975    pub drawing: Option<Box<CTDrawing>>,
13976    /// Unknown attributes captured for roundtrip fidelity.
13977    #[cfg(feature = "extra-attrs")]
13978    #[serde(skip)]
13979    #[cfg(feature = "extra-attrs")]
13980    #[serde(default)]
13981    #[cfg(feature = "extra-attrs")]
13982    pub extra_attrs: std::collections::HashMap<String, String>,
13983    /// Unknown child elements captured for roundtrip fidelity.
13984    #[cfg(feature = "extra-children")]
13985    #[serde(skip)]
13986    #[cfg(feature = "extra-children")]
13987    pub extra_children: Vec<ooxml_xml::PositionedNode>,
13988}
13989
13990#[derive(Debug, Clone, Serialize, Deserialize)]
13991pub struct CTLevelSuffix {
13992    #[serde(rename = "@w:val")]
13993    pub value: STLevelSuffix,
13994    /// Unknown attributes captured for roundtrip fidelity.
13995    #[cfg(feature = "extra-attrs")]
13996    #[serde(skip)]
13997    #[cfg(feature = "extra-attrs")]
13998    #[serde(default)]
13999    #[cfg(feature = "extra-attrs")]
14000    pub extra_attrs: std::collections::HashMap<String, String>,
14001}
14002
14003#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14004pub struct CTLevelText {
14005    #[serde(rename = "@w:val")]
14006    #[serde(default, skip_serializing_if = "Option::is_none")]
14007    pub value: Option<STString>,
14008    #[cfg(feature = "wml-numbering")]
14009    #[serde(rename = "@w:null")]
14010    #[serde(default, skip_serializing_if = "Option::is_none")]
14011    pub null: Option<OnOff>,
14012    /// Unknown attributes captured for roundtrip fidelity.
14013    #[cfg(feature = "extra-attrs")]
14014    #[serde(skip)]
14015    #[cfg(feature = "extra-attrs")]
14016    #[serde(default)]
14017    #[cfg(feature = "extra-attrs")]
14018    pub extra_attrs: std::collections::HashMap<String, String>,
14019}
14020
14021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14022pub struct CTLvlLegacy {
14023    #[cfg(feature = "wml-numbering")]
14024    #[serde(rename = "@w:legacy")]
14025    #[serde(default, skip_serializing_if = "Option::is_none")]
14026    pub legacy: Option<OnOff>,
14027    #[cfg(feature = "wml-numbering")]
14028    #[serde(rename = "@w:legacySpace")]
14029    #[serde(default, skip_serializing_if = "Option::is_none")]
14030    pub legacy_space: Option<STTwipsMeasure>,
14031    #[cfg(feature = "wml-numbering")]
14032    #[serde(rename = "@w:legacyIndent")]
14033    #[serde(default, skip_serializing_if = "Option::is_none")]
14034    pub legacy_indent: Option<STSignedTwipsMeasure>,
14035    /// Unknown attributes captured for roundtrip fidelity.
14036    #[cfg(feature = "extra-attrs")]
14037    #[serde(skip)]
14038    #[cfg(feature = "extra-attrs")]
14039    #[serde(default)]
14040    #[cfg(feature = "extra-attrs")]
14041    pub extra_attrs: std::collections::HashMap<String, String>,
14042}
14043
14044#[derive(Debug, Clone, Serialize, Deserialize)]
14045pub struct Level {
14046    #[serde(rename = "@w:ilvl")]
14047    pub ilvl: STDecimalNumber,
14048    #[cfg(feature = "wml-numbering")]
14049    #[serde(rename = "@w:tplc")]
14050    #[serde(default, skip_serializing_if = "Option::is_none")]
14051    pub tplc: Option<STLongHexNumber>,
14052    #[cfg(feature = "wml-numbering")]
14053    #[serde(rename = "@w:tentative")]
14054    #[serde(default, skip_serializing_if = "Option::is_none")]
14055    pub tentative: Option<OnOff>,
14056    #[cfg(feature = "wml-numbering")]
14057    #[serde(rename = "start")]
14058    #[serde(default, skip_serializing_if = "Option::is_none")]
14059    pub start: Option<Box<CTDecimalNumber>>,
14060    #[cfg(feature = "wml-numbering")]
14061    #[serde(rename = "numFmt")]
14062    #[serde(default, skip_serializing_if = "Option::is_none")]
14063    pub num_fmt: Option<Box<CTNumFmt>>,
14064    #[cfg(feature = "wml-numbering")]
14065    #[serde(rename = "lvlRestart")]
14066    #[serde(default, skip_serializing_if = "Option::is_none")]
14067    pub lvl_restart: Option<Box<CTDecimalNumber>>,
14068    #[cfg(feature = "wml-numbering")]
14069    #[serde(rename = "pStyle")]
14070    #[serde(default, skip_serializing_if = "Option::is_none")]
14071    pub paragraph_style: Option<Box<CTString>>,
14072    #[cfg(feature = "wml-numbering")]
14073    #[serde(rename = "isLgl")]
14074    #[serde(default, skip_serializing_if = "Option::is_none")]
14075    pub is_lgl: Option<Box<OnOffElement>>,
14076    #[cfg(feature = "wml-numbering")]
14077    #[serde(rename = "suff")]
14078    #[serde(default, skip_serializing_if = "Option::is_none")]
14079    pub suff: Option<Box<CTLevelSuffix>>,
14080    #[cfg(feature = "wml-numbering")]
14081    #[serde(rename = "lvlText")]
14082    #[serde(default, skip_serializing_if = "Option::is_none")]
14083    pub lvl_text: Option<Box<CTLevelText>>,
14084    #[cfg(feature = "wml-numbering")]
14085    #[serde(rename = "lvlPicBulletId")]
14086    #[serde(default, skip_serializing_if = "Option::is_none")]
14087    pub lvl_pic_bullet_id: Option<Box<CTDecimalNumber>>,
14088    #[cfg(feature = "wml-numbering")]
14089    #[serde(rename = "legacy")]
14090    #[serde(default, skip_serializing_if = "Option::is_none")]
14091    pub legacy: Option<Box<CTLvlLegacy>>,
14092    #[cfg(feature = "wml-numbering")]
14093    #[serde(rename = "lvlJc")]
14094    #[serde(default, skip_serializing_if = "Option::is_none")]
14095    pub lvl_jc: Option<Box<CTJc>>,
14096    #[cfg(feature = "wml-numbering")]
14097    #[serde(rename = "pPr")]
14098    #[serde(default, skip_serializing_if = "Option::is_none")]
14099    pub p_pr: Option<Box<CTPPrGeneral>>,
14100    #[cfg(feature = "wml-numbering")]
14101    #[serde(rename = "rPr")]
14102    #[serde(default, skip_serializing_if = "Option::is_none")]
14103    pub r_pr: Option<Box<RunProperties>>,
14104    /// Unknown attributes captured for roundtrip fidelity.
14105    #[cfg(feature = "extra-attrs")]
14106    #[serde(skip)]
14107    #[cfg(feature = "extra-attrs")]
14108    #[serde(default)]
14109    #[cfg(feature = "extra-attrs")]
14110    pub extra_attrs: std::collections::HashMap<String, String>,
14111    /// Unknown child elements captured for roundtrip fidelity.
14112    #[cfg(feature = "extra-children")]
14113    #[serde(skip)]
14114    #[cfg(feature = "extra-children")]
14115    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14116}
14117
14118#[derive(Debug, Clone, Serialize, Deserialize)]
14119pub struct CTMultiLevelType {
14120    #[serde(rename = "@w:val")]
14121    pub value: STMultiLevelType,
14122    /// Unknown attributes captured for roundtrip fidelity.
14123    #[cfg(feature = "extra-attrs")]
14124    #[serde(skip)]
14125    #[cfg(feature = "extra-attrs")]
14126    #[serde(default)]
14127    #[cfg(feature = "extra-attrs")]
14128    pub extra_attrs: std::collections::HashMap<String, String>,
14129}
14130
14131#[derive(Debug, Clone, Serialize, Deserialize)]
14132pub struct AbstractNumbering {
14133    #[serde(rename = "@w:abstractNumId")]
14134    pub abstract_num_id: STDecimalNumber,
14135    #[cfg(feature = "wml-numbering")]
14136    #[serde(rename = "nsid")]
14137    #[serde(default, skip_serializing_if = "Option::is_none")]
14138    pub nsid: Option<Box<LongHexNumberElement>>,
14139    #[cfg(feature = "wml-numbering")]
14140    #[serde(rename = "multiLevelType")]
14141    #[serde(default, skip_serializing_if = "Option::is_none")]
14142    pub multi_level_type: Option<Box<CTMultiLevelType>>,
14143    #[cfg(feature = "wml-numbering")]
14144    #[serde(rename = "tmpl")]
14145    #[serde(default, skip_serializing_if = "Option::is_none")]
14146    pub tmpl: Option<Box<LongHexNumberElement>>,
14147    #[cfg(feature = "wml-numbering")]
14148    #[serde(rename = "name")]
14149    #[serde(default, skip_serializing_if = "Option::is_none")]
14150    pub name: Option<Box<CTString>>,
14151    #[cfg(feature = "wml-numbering")]
14152    #[serde(rename = "styleLink")]
14153    #[serde(default, skip_serializing_if = "Option::is_none")]
14154    pub style_link: Option<Box<CTString>>,
14155    #[cfg(feature = "wml-numbering")]
14156    #[serde(rename = "numStyleLink")]
14157    #[serde(default, skip_serializing_if = "Option::is_none")]
14158    pub num_style_link: Option<Box<CTString>>,
14159    #[serde(rename = "lvl")]
14160    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14161    pub lvl: Vec<Level>,
14162    /// Unknown attributes captured for roundtrip fidelity.
14163    #[cfg(feature = "extra-attrs")]
14164    #[serde(skip)]
14165    #[cfg(feature = "extra-attrs")]
14166    #[serde(default)]
14167    #[cfg(feature = "extra-attrs")]
14168    pub extra_attrs: std::collections::HashMap<String, String>,
14169    /// Unknown child elements captured for roundtrip fidelity.
14170    #[cfg(feature = "extra-children")]
14171    #[serde(skip)]
14172    #[cfg(feature = "extra-children")]
14173    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14174}
14175
14176#[derive(Debug, Clone, Serialize, Deserialize)]
14177pub struct CTNumLvl {
14178    #[serde(rename = "@w:ilvl")]
14179    pub ilvl: STDecimalNumber,
14180    #[cfg(feature = "wml-numbering")]
14181    #[serde(rename = "startOverride")]
14182    #[serde(default, skip_serializing_if = "Option::is_none")]
14183    pub start_override: Option<Box<CTDecimalNumber>>,
14184    #[cfg(feature = "wml-numbering")]
14185    #[serde(rename = "lvl")]
14186    #[serde(default, skip_serializing_if = "Option::is_none")]
14187    pub lvl: Option<Box<Level>>,
14188    /// Unknown attributes captured for roundtrip fidelity.
14189    #[cfg(feature = "extra-attrs")]
14190    #[serde(skip)]
14191    #[cfg(feature = "extra-attrs")]
14192    #[serde(default)]
14193    #[cfg(feature = "extra-attrs")]
14194    pub extra_attrs: std::collections::HashMap<String, String>,
14195    /// Unknown child elements captured for roundtrip fidelity.
14196    #[cfg(feature = "extra-children")]
14197    #[serde(skip)]
14198    #[cfg(feature = "extra-children")]
14199    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14200}
14201
14202#[derive(Debug, Clone, Serialize, Deserialize)]
14203pub struct NumberingInstance {
14204    #[serde(rename = "@w:numId")]
14205    pub num_id: STDecimalNumber,
14206    #[serde(rename = "abstractNumId")]
14207    pub abstract_num_id: Box<CTDecimalNumber>,
14208    #[cfg(feature = "wml-numbering")]
14209    #[serde(rename = "lvlOverride")]
14210    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14211    pub lvl_override: Vec<CTNumLvl>,
14212    /// Unknown attributes captured for roundtrip fidelity.
14213    #[cfg(feature = "extra-attrs")]
14214    #[serde(skip)]
14215    #[cfg(feature = "extra-attrs")]
14216    #[serde(default)]
14217    #[cfg(feature = "extra-attrs")]
14218    pub extra_attrs: std::collections::HashMap<String, String>,
14219    /// Unknown child elements captured for roundtrip fidelity.
14220    #[cfg(feature = "extra-children")]
14221    #[serde(skip)]
14222    #[cfg(feature = "extra-children")]
14223    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14224}
14225
14226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14227pub struct Numbering {
14228    #[cfg(feature = "wml-numbering")]
14229    #[serde(rename = "numPicBullet")]
14230    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14231    pub num_pic_bullet: Vec<CTNumPicBullet>,
14232    #[serde(rename = "abstractNum")]
14233    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14234    pub abstract_num: Vec<AbstractNumbering>,
14235    #[serde(rename = "num")]
14236    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14237    pub num: Vec<NumberingInstance>,
14238    #[cfg(feature = "wml-numbering")]
14239    #[serde(rename = "numIdMacAtCleanup")]
14240    #[serde(default, skip_serializing_if = "Option::is_none")]
14241    pub num_id_mac_at_cleanup: Option<Box<CTDecimalNumber>>,
14242    /// Unknown child elements captured for roundtrip fidelity.
14243    #[cfg(feature = "extra-children")]
14244    #[serde(skip)]
14245    #[cfg(feature = "extra-children")]
14246    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14247}
14248
14249#[derive(Debug, Clone, Serialize, Deserialize)]
14250pub struct TableStyleProperties {
14251    #[serde(rename = "@w:type")]
14252    pub r#type: STTblStyleOverrideType,
14253    #[cfg(feature = "wml-styling")]
14254    #[serde(rename = "pPr")]
14255    #[serde(default, skip_serializing_if = "Option::is_none")]
14256    pub p_pr: Option<Box<CTPPrGeneral>>,
14257    #[cfg(feature = "wml-styling")]
14258    #[serde(rename = "rPr")]
14259    #[serde(default, skip_serializing_if = "Option::is_none")]
14260    pub r_pr: Option<Box<RunProperties>>,
14261    #[cfg(feature = "wml-styling")]
14262    #[serde(rename = "tblPr")]
14263    #[serde(default, skip_serializing_if = "Option::is_none")]
14264    pub table_properties: Option<Box<CTTblPrBase>>,
14265    #[cfg(feature = "wml-styling")]
14266    #[serde(rename = "trPr")]
14267    #[serde(default, skip_serializing_if = "Option::is_none")]
14268    pub row_properties: Option<Box<TableRowProperties>>,
14269    #[cfg(feature = "wml-styling")]
14270    #[serde(rename = "tcPr")]
14271    #[serde(default, skip_serializing_if = "Option::is_none")]
14272    pub cell_properties: Option<Box<TableCellProperties>>,
14273    /// Unknown attributes captured for roundtrip fidelity.
14274    #[cfg(feature = "extra-attrs")]
14275    #[serde(skip)]
14276    #[cfg(feature = "extra-attrs")]
14277    #[serde(default)]
14278    #[cfg(feature = "extra-attrs")]
14279    pub extra_attrs: std::collections::HashMap<String, String>,
14280    /// Unknown child elements captured for roundtrip fidelity.
14281    #[cfg(feature = "extra-children")]
14282    #[serde(skip)]
14283    #[cfg(feature = "extra-children")]
14284    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14285}
14286
14287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14288pub struct Style {
14289    #[serde(rename = "@w:type")]
14290    #[serde(default, skip_serializing_if = "Option::is_none")]
14291    pub r#type: Option<STStyleType>,
14292    #[serde(rename = "@w:styleId")]
14293    #[serde(default, skip_serializing_if = "Option::is_none")]
14294    pub style_id: Option<STString>,
14295    #[serde(rename = "@w:default")]
14296    #[serde(default, skip_serializing_if = "Option::is_none")]
14297    pub default: Option<OnOff>,
14298    #[serde(rename = "@w:customStyle")]
14299    #[serde(default, skip_serializing_if = "Option::is_none")]
14300    pub custom_style: Option<OnOff>,
14301    #[serde(rename = "name")]
14302    #[serde(default, skip_serializing_if = "Option::is_none")]
14303    pub name: Option<Box<CTString>>,
14304    #[serde(rename = "aliases")]
14305    #[serde(default, skip_serializing_if = "Option::is_none")]
14306    pub aliases: Option<Box<CTString>>,
14307    #[serde(rename = "basedOn")]
14308    #[serde(default, skip_serializing_if = "Option::is_none")]
14309    pub based_on: Option<Box<CTString>>,
14310    #[cfg(feature = "wml-styling")]
14311    #[serde(rename = "next")]
14312    #[serde(default, skip_serializing_if = "Option::is_none")]
14313    pub next: Option<Box<CTString>>,
14314    #[cfg(feature = "wml-styling")]
14315    #[serde(rename = "link")]
14316    #[serde(default, skip_serializing_if = "Option::is_none")]
14317    pub link: Option<Box<CTString>>,
14318    #[cfg(feature = "wml-styling")]
14319    #[serde(rename = "autoRedefine")]
14320    #[serde(default, skip_serializing_if = "Option::is_none")]
14321    pub auto_redefine: Option<Box<OnOffElement>>,
14322    #[cfg(feature = "wml-styling")]
14323    #[serde(rename = "hidden")]
14324    #[serde(default, skip_serializing_if = "Option::is_none")]
14325    pub hidden: Option<Box<OnOffElement>>,
14326    #[cfg(feature = "wml-styling")]
14327    #[serde(rename = "uiPriority")]
14328    #[serde(default, skip_serializing_if = "Option::is_none")]
14329    pub ui_priority: Option<Box<CTDecimalNumber>>,
14330    #[cfg(feature = "wml-styling")]
14331    #[serde(rename = "semiHidden")]
14332    #[serde(default, skip_serializing_if = "Option::is_none")]
14333    pub semi_hidden: Option<Box<OnOffElement>>,
14334    #[cfg(feature = "wml-styling")]
14335    #[serde(rename = "unhideWhenUsed")]
14336    #[serde(default, skip_serializing_if = "Option::is_none")]
14337    pub unhide_when_used: Option<Box<OnOffElement>>,
14338    #[cfg(feature = "wml-styling")]
14339    #[serde(rename = "qFormat")]
14340    #[serde(default, skip_serializing_if = "Option::is_none")]
14341    pub q_format: Option<Box<OnOffElement>>,
14342    #[cfg(feature = "wml-settings")]
14343    #[serde(rename = "locked")]
14344    #[serde(default, skip_serializing_if = "Option::is_none")]
14345    pub locked: Option<Box<OnOffElement>>,
14346    #[cfg(feature = "wml-settings")]
14347    #[serde(rename = "personal")]
14348    #[serde(default, skip_serializing_if = "Option::is_none")]
14349    pub personal: Option<Box<OnOffElement>>,
14350    #[cfg(feature = "wml-settings")]
14351    #[serde(rename = "personalCompose")]
14352    #[serde(default, skip_serializing_if = "Option::is_none")]
14353    pub personal_compose: Option<Box<OnOffElement>>,
14354    #[cfg(feature = "wml-settings")]
14355    #[serde(rename = "personalReply")]
14356    #[serde(default, skip_serializing_if = "Option::is_none")]
14357    pub personal_reply: Option<Box<OnOffElement>>,
14358    #[cfg(feature = "wml-track-changes")]
14359    #[serde(rename = "rsid")]
14360    #[serde(default, skip_serializing_if = "Option::is_none")]
14361    pub rsid: Option<Box<LongHexNumberElement>>,
14362    #[cfg(feature = "wml-styling")]
14363    #[serde(rename = "pPr")]
14364    #[serde(default, skip_serializing_if = "Option::is_none")]
14365    pub p_pr: Option<Box<CTPPrGeneral>>,
14366    #[cfg(feature = "wml-styling")]
14367    #[serde(rename = "rPr")]
14368    #[serde(default, skip_serializing_if = "Option::is_none")]
14369    pub r_pr: Option<Box<RunProperties>>,
14370    #[cfg(feature = "wml-styling")]
14371    #[serde(rename = "tblPr")]
14372    #[serde(default, skip_serializing_if = "Option::is_none")]
14373    pub table_properties: Option<Box<CTTblPrBase>>,
14374    #[cfg(feature = "wml-styling")]
14375    #[serde(rename = "trPr")]
14376    #[serde(default, skip_serializing_if = "Option::is_none")]
14377    pub row_properties: Option<Box<TableRowProperties>>,
14378    #[cfg(feature = "wml-styling")]
14379    #[serde(rename = "tcPr")]
14380    #[serde(default, skip_serializing_if = "Option::is_none")]
14381    pub cell_properties: Option<Box<TableCellProperties>>,
14382    #[cfg(feature = "wml-styling")]
14383    #[serde(rename = "tblStylePr")]
14384    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14385    pub tbl_style_pr: Vec<TableStyleProperties>,
14386    /// Unknown attributes captured for roundtrip fidelity.
14387    #[cfg(feature = "extra-attrs")]
14388    #[serde(skip)]
14389    #[cfg(feature = "extra-attrs")]
14390    #[serde(default)]
14391    #[cfg(feature = "extra-attrs")]
14392    pub extra_attrs: std::collections::HashMap<String, String>,
14393    /// Unknown child elements captured for roundtrip fidelity.
14394    #[cfg(feature = "extra-children")]
14395    #[serde(skip)]
14396    #[cfg(feature = "extra-children")]
14397    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14398}
14399
14400#[derive(Debug, Clone, Serialize, Deserialize)]
14401pub struct LatentStyleException {
14402    #[serde(rename = "@w:name")]
14403    pub name: STString,
14404    #[cfg(feature = "wml-styling")]
14405    #[serde(rename = "@w:locked")]
14406    #[serde(default, skip_serializing_if = "Option::is_none")]
14407    pub locked: Option<OnOff>,
14408    #[cfg(feature = "wml-styling")]
14409    #[serde(rename = "@w:uiPriority")]
14410    #[serde(default, skip_serializing_if = "Option::is_none")]
14411    pub ui_priority: Option<STDecimalNumber>,
14412    #[cfg(feature = "wml-styling")]
14413    #[serde(rename = "@w:semiHidden")]
14414    #[serde(default, skip_serializing_if = "Option::is_none")]
14415    pub semi_hidden: Option<OnOff>,
14416    #[cfg(feature = "wml-styling")]
14417    #[serde(rename = "@w:unhideWhenUsed")]
14418    #[serde(default, skip_serializing_if = "Option::is_none")]
14419    pub unhide_when_used: Option<OnOff>,
14420    #[cfg(feature = "wml-styling")]
14421    #[serde(rename = "@w:qFormat")]
14422    #[serde(default, skip_serializing_if = "Option::is_none")]
14423    pub q_format: Option<OnOff>,
14424    /// Unknown attributes captured for roundtrip fidelity.
14425    #[cfg(feature = "extra-attrs")]
14426    #[serde(skip)]
14427    #[cfg(feature = "extra-attrs")]
14428    #[serde(default)]
14429    #[cfg(feature = "extra-attrs")]
14430    pub extra_attrs: std::collections::HashMap<String, String>,
14431}
14432
14433#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14434pub struct LatentStyles {
14435    #[cfg(feature = "wml-styling")]
14436    #[serde(rename = "@w:defLockedState")]
14437    #[serde(default, skip_serializing_if = "Option::is_none")]
14438    pub def_locked_state: Option<OnOff>,
14439    #[cfg(feature = "wml-styling")]
14440    #[serde(rename = "@w:defUIPriority")]
14441    #[serde(default, skip_serializing_if = "Option::is_none")]
14442    pub def_u_i_priority: Option<STDecimalNumber>,
14443    #[cfg(feature = "wml-styling")]
14444    #[serde(rename = "@w:defSemiHidden")]
14445    #[serde(default, skip_serializing_if = "Option::is_none")]
14446    pub def_semi_hidden: Option<OnOff>,
14447    #[cfg(feature = "wml-styling")]
14448    #[serde(rename = "@w:defUnhideWhenUsed")]
14449    #[serde(default, skip_serializing_if = "Option::is_none")]
14450    pub def_unhide_when_used: Option<OnOff>,
14451    #[cfg(feature = "wml-styling")]
14452    #[serde(rename = "@w:defQFormat")]
14453    #[serde(default, skip_serializing_if = "Option::is_none")]
14454    pub def_q_format: Option<OnOff>,
14455    #[cfg(feature = "wml-styling")]
14456    #[serde(rename = "@w:count")]
14457    #[serde(default, skip_serializing_if = "Option::is_none")]
14458    pub count: Option<STDecimalNumber>,
14459    #[serde(rename = "lsdException")]
14460    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14461    pub lsd_exception: Vec<LatentStyleException>,
14462    /// Unknown attributes captured for roundtrip fidelity.
14463    #[cfg(feature = "extra-attrs")]
14464    #[serde(skip)]
14465    #[cfg(feature = "extra-attrs")]
14466    #[serde(default)]
14467    #[cfg(feature = "extra-attrs")]
14468    pub extra_attrs: std::collections::HashMap<String, String>,
14469    /// Unknown child elements captured for roundtrip fidelity.
14470    #[cfg(feature = "extra-children")]
14471    #[serde(skip)]
14472    #[cfg(feature = "extra-children")]
14473    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14474}
14475
14476#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14477pub struct Styles {
14478    #[serde(rename = "docDefaults")]
14479    #[serde(default, skip_serializing_if = "Option::is_none")]
14480    pub doc_defaults: Option<Box<DocumentDefaults>>,
14481    #[cfg(feature = "wml-styling")]
14482    #[serde(rename = "latentStyles")]
14483    #[serde(default, skip_serializing_if = "Option::is_none")]
14484    pub latent_styles: Option<Box<LatentStyles>>,
14485    #[serde(rename = "style")]
14486    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14487    pub style: Vec<Style>,
14488    /// Unknown child elements captured for roundtrip fidelity.
14489    #[cfg(feature = "extra-children")]
14490    #[serde(skip)]
14491    #[cfg(feature = "extra-children")]
14492    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14493}
14494
14495#[derive(Debug, Clone, Serialize, Deserialize)]
14496pub struct PanoseElement {
14497    #[serde(rename = "@w:val")]
14498    pub value: Panose,
14499    /// Unknown attributes captured for roundtrip fidelity.
14500    #[cfg(feature = "extra-attrs")]
14501    #[serde(skip)]
14502    #[cfg(feature = "extra-attrs")]
14503    #[serde(default)]
14504    #[cfg(feature = "extra-attrs")]
14505    pub extra_attrs: std::collections::HashMap<String, String>,
14506}
14507
14508#[derive(Debug, Clone, Serialize, Deserialize)]
14509pub struct CTFontFamily {
14510    #[serde(rename = "@w:val")]
14511    pub value: STFontFamily,
14512    /// Unknown attributes captured for roundtrip fidelity.
14513    #[cfg(feature = "extra-attrs")]
14514    #[serde(skip)]
14515    #[cfg(feature = "extra-attrs")]
14516    #[serde(default)]
14517    #[cfg(feature = "extra-attrs")]
14518    pub extra_attrs: std::collections::HashMap<String, String>,
14519}
14520
14521#[derive(Debug, Clone, Serialize, Deserialize)]
14522pub struct CTPitch {
14523    #[serde(rename = "@w:val")]
14524    pub value: STPitch,
14525    /// Unknown attributes captured for roundtrip fidelity.
14526    #[cfg(feature = "extra-attrs")]
14527    #[serde(skip)]
14528    #[cfg(feature = "extra-attrs")]
14529    #[serde(default)]
14530    #[cfg(feature = "extra-attrs")]
14531    pub extra_attrs: std::collections::HashMap<String, String>,
14532}
14533
14534#[derive(Debug, Clone, Serialize, Deserialize)]
14535pub struct CTFontSig {
14536    #[cfg(feature = "wml-styling")]
14537    #[serde(rename = "@w:usb0")]
14538    pub usb0: STLongHexNumber,
14539    #[cfg(feature = "wml-styling")]
14540    #[serde(rename = "@w:usb1")]
14541    pub usb1: STLongHexNumber,
14542    #[cfg(feature = "wml-styling")]
14543    #[serde(rename = "@w:usb2")]
14544    pub usb2: STLongHexNumber,
14545    #[cfg(feature = "wml-styling")]
14546    #[serde(rename = "@w:usb3")]
14547    pub usb3: STLongHexNumber,
14548    #[cfg(feature = "wml-styling")]
14549    #[serde(rename = "@w:csb0")]
14550    pub csb0: STLongHexNumber,
14551    #[cfg(feature = "wml-styling")]
14552    #[serde(rename = "@w:csb1")]
14553    pub csb1: STLongHexNumber,
14554    /// Unknown attributes captured for roundtrip fidelity.
14555    #[cfg(feature = "extra-attrs")]
14556    #[serde(skip)]
14557    #[cfg(feature = "extra-attrs")]
14558    #[serde(default)]
14559    #[cfg(feature = "extra-attrs")]
14560    pub extra_attrs: std::collections::HashMap<String, String>,
14561}
14562
14563#[derive(Debug, Clone, Serialize, Deserialize)]
14564pub struct CTFontRel {
14565    #[cfg(feature = "wml-styling")]
14566    #[serde(rename = "@r:id")]
14567    pub id: STRelationshipId,
14568    #[cfg(feature = "wml-styling")]
14569    #[serde(rename = "@w:fontKey")]
14570    #[serde(default, skip_serializing_if = "Option::is_none")]
14571    pub font_key: Option<Guid>,
14572    #[cfg(feature = "wml-styling")]
14573    #[serde(rename = "@w:subsetted")]
14574    #[serde(default, skip_serializing_if = "Option::is_none")]
14575    pub subsetted: Option<OnOff>,
14576    /// Unknown attributes captured for roundtrip fidelity.
14577    #[cfg(feature = "extra-attrs")]
14578    #[serde(skip)]
14579    #[cfg(feature = "extra-attrs")]
14580    #[serde(default)]
14581    #[cfg(feature = "extra-attrs")]
14582    pub extra_attrs: std::collections::HashMap<String, String>,
14583}
14584
14585#[derive(Debug, Clone, Serialize, Deserialize)]
14586pub struct Font {
14587    #[serde(rename = "@w:name")]
14588    pub name: STString,
14589    #[cfg(feature = "wml-styling")]
14590    #[serde(rename = "altName")]
14591    #[serde(default, skip_serializing_if = "Option::is_none")]
14592    pub alt_name: Option<Box<CTString>>,
14593    #[cfg(feature = "wml-styling")]
14594    #[serde(rename = "panose1")]
14595    #[serde(default, skip_serializing_if = "Option::is_none")]
14596    pub panose1: Option<Box<PanoseElement>>,
14597    #[cfg(feature = "wml-styling")]
14598    #[serde(rename = "charset")]
14599    #[serde(default, skip_serializing_if = "Option::is_none")]
14600    pub charset: Option<Box<CTCharset>>,
14601    #[cfg(feature = "wml-styling")]
14602    #[serde(rename = "family")]
14603    #[serde(default, skip_serializing_if = "Option::is_none")]
14604    pub family: Option<Box<CTFontFamily>>,
14605    #[cfg(feature = "wml-styling")]
14606    #[serde(rename = "notTrueType")]
14607    #[serde(default, skip_serializing_if = "Option::is_none")]
14608    pub not_true_type: Option<Box<OnOffElement>>,
14609    #[cfg(feature = "wml-styling")]
14610    #[serde(rename = "pitch")]
14611    #[serde(default, skip_serializing_if = "Option::is_none")]
14612    pub pitch: Option<Box<CTPitch>>,
14613    #[cfg(feature = "wml-styling")]
14614    #[serde(rename = "sig")]
14615    #[serde(default, skip_serializing_if = "Option::is_none")]
14616    pub sig: Option<Box<CTFontSig>>,
14617    #[cfg(feature = "wml-styling")]
14618    #[serde(rename = "embedRegular")]
14619    #[serde(default, skip_serializing_if = "Option::is_none")]
14620    pub embed_regular: Option<Box<CTFontRel>>,
14621    #[cfg(feature = "wml-styling")]
14622    #[serde(rename = "embedBold")]
14623    #[serde(default, skip_serializing_if = "Option::is_none")]
14624    pub embed_bold: Option<Box<CTFontRel>>,
14625    #[cfg(feature = "wml-styling")]
14626    #[serde(rename = "embedItalic")]
14627    #[serde(default, skip_serializing_if = "Option::is_none")]
14628    pub embed_italic: Option<Box<CTFontRel>>,
14629    #[cfg(feature = "wml-styling")]
14630    #[serde(rename = "embedBoldItalic")]
14631    #[serde(default, skip_serializing_if = "Option::is_none")]
14632    pub embed_bold_italic: Option<Box<CTFontRel>>,
14633    /// Unknown attributes captured for roundtrip fidelity.
14634    #[cfg(feature = "extra-attrs")]
14635    #[serde(skip)]
14636    #[cfg(feature = "extra-attrs")]
14637    #[serde(default)]
14638    #[cfg(feature = "extra-attrs")]
14639    pub extra_attrs: std::collections::HashMap<String, String>,
14640    /// Unknown child elements captured for roundtrip fidelity.
14641    #[cfg(feature = "extra-children")]
14642    #[serde(skip)]
14643    #[cfg(feature = "extra-children")]
14644    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14645}
14646
14647#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14648pub struct CTFontsList {
14649    #[serde(rename = "font")]
14650    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14651    pub font: Vec<Font>,
14652    /// Unknown child elements captured for roundtrip fidelity.
14653    #[cfg(feature = "extra-children")]
14654    #[serde(skip)]
14655    #[cfg(feature = "extra-children")]
14656    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14657}
14658
14659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14660pub struct CTDivBdr {
14661    #[cfg(feature = "wml-settings")]
14662    #[serde(rename = "top")]
14663    #[serde(default, skip_serializing_if = "Option::is_none")]
14664    pub top: Option<Box<CTBorder>>,
14665    #[cfg(feature = "wml-settings")]
14666    #[serde(rename = "left")]
14667    #[serde(default, skip_serializing_if = "Option::is_none")]
14668    pub left: Option<Box<CTBorder>>,
14669    #[cfg(feature = "wml-settings")]
14670    #[serde(rename = "bottom")]
14671    #[serde(default, skip_serializing_if = "Option::is_none")]
14672    pub bottom: Option<Box<CTBorder>>,
14673    #[cfg(feature = "wml-settings")]
14674    #[serde(rename = "right")]
14675    #[serde(default, skip_serializing_if = "Option::is_none")]
14676    pub right: Option<Box<CTBorder>>,
14677    /// Unknown child elements captured for roundtrip fidelity.
14678    #[cfg(feature = "extra-children")]
14679    #[serde(skip)]
14680    #[cfg(feature = "extra-children")]
14681    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14682}
14683
14684#[derive(Debug, Clone, Serialize, Deserialize)]
14685pub struct CTDiv {
14686    #[cfg(feature = "wml-settings")]
14687    #[serde(rename = "@w:id")]
14688    pub id: STDecimalNumber,
14689    #[cfg(feature = "wml-settings")]
14690    #[serde(rename = "blockQuote")]
14691    #[serde(default, skip_serializing_if = "Option::is_none")]
14692    pub block_quote: Option<Box<OnOffElement>>,
14693    #[cfg(feature = "wml-settings")]
14694    #[serde(rename = "bodyDiv")]
14695    #[serde(default, skip_serializing_if = "Option::is_none")]
14696    pub body_div: Option<Box<OnOffElement>>,
14697    #[cfg(feature = "wml-settings")]
14698    #[serde(rename = "marLeft")]
14699    pub mar_left: Box<SignedTwipsMeasureElement>,
14700    #[cfg(feature = "wml-settings")]
14701    #[serde(rename = "marRight")]
14702    pub mar_right: Box<SignedTwipsMeasureElement>,
14703    #[cfg(feature = "wml-settings")]
14704    #[serde(rename = "marTop")]
14705    pub mar_top: Box<SignedTwipsMeasureElement>,
14706    #[cfg(feature = "wml-settings")]
14707    #[serde(rename = "marBottom")]
14708    pub mar_bottom: Box<SignedTwipsMeasureElement>,
14709    #[cfg(feature = "wml-settings")]
14710    #[serde(rename = "divBdr")]
14711    #[serde(default, skip_serializing_if = "Option::is_none")]
14712    pub div_bdr: Option<Box<CTDivBdr>>,
14713    #[cfg(feature = "wml-settings")]
14714    #[serde(rename = "divsChild")]
14715    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14716    pub divs_child: Vec<CTDivs>,
14717    /// Unknown attributes captured for roundtrip fidelity.
14718    #[cfg(feature = "extra-attrs")]
14719    #[serde(skip)]
14720    #[cfg(feature = "extra-attrs")]
14721    #[serde(default)]
14722    #[cfg(feature = "extra-attrs")]
14723    pub extra_attrs: std::collections::HashMap<String, String>,
14724    /// Unknown child elements captured for roundtrip fidelity.
14725    #[cfg(feature = "extra-children")]
14726    #[serde(skip)]
14727    #[cfg(feature = "extra-children")]
14728    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14729}
14730
14731#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14732pub struct CTDivs {
14733    #[cfg(feature = "wml-settings")]
14734    #[serde(rename = "div")]
14735    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14736    pub div: Vec<CTDiv>,
14737    /// Unknown child elements captured for roundtrip fidelity.
14738    #[cfg(feature = "extra-children")]
14739    #[serde(skip)]
14740    #[cfg(feature = "extra-children")]
14741    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14742}
14743
14744#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14745pub struct CTTxbxContent {
14746    #[serde(skip)]
14747    #[serde(default)]
14748    pub block_content: Vec<BlockContent>,
14749    /// Unknown child elements captured for roundtrip fidelity.
14750    #[cfg(feature = "extra-children")]
14751    #[serde(skip)]
14752    #[cfg(feature = "extra-children")]
14753    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14754}
14755
14756pub type WTxbxContent = Box<CTTxbxContent>;
14757
14758#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14759pub struct EGMathContent {
14760    /// Unknown child elements captured for roundtrip fidelity.
14761    #[cfg(feature = "extra-children")]
14762    #[serde(skip)]
14763    #[cfg(feature = "extra-children")]
14764    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14765}
14766
14767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14768pub struct EGBlockLevelChunkElts {
14769    #[serde(skip)]
14770    #[serde(default)]
14771    pub block_content: Vec<BlockContentChoice>,
14772    /// Unknown child elements captured for roundtrip fidelity.
14773    #[cfg(feature = "extra-children")]
14774    #[serde(skip)]
14775    #[cfg(feature = "extra-children")]
14776    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14777}
14778
14779#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14780pub struct Body {
14781    #[serde(skip)]
14782    #[serde(default)]
14783    pub block_content: Vec<BlockContent>,
14784    #[cfg(feature = "wml-layout")]
14785    #[serde(rename = "sectPr")]
14786    #[serde(default, skip_serializing_if = "Option::is_none")]
14787    pub sect_pr: Option<Box<SectionProperties>>,
14788    /// Unknown child elements captured for roundtrip fidelity.
14789    #[cfg(feature = "extra-children")]
14790    #[serde(skip)]
14791    #[cfg(feature = "extra-children")]
14792    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14793}
14794
14795#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14796pub struct CTShapeDefaults {
14797    /// Unknown child elements captured for roundtrip fidelity.
14798    #[cfg(feature = "extra-children")]
14799    #[serde(skip)]
14800    #[cfg(feature = "extra-children")]
14801    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14802}
14803
14804#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14805pub struct Comments {
14806    #[serde(rename = "comment")]
14807    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14808    pub comment: Vec<Comment>,
14809    /// Unknown child elements captured for roundtrip fidelity.
14810    #[cfg(feature = "extra-children")]
14811    #[serde(skip)]
14812    #[cfg(feature = "extra-children")]
14813    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14814}
14815
14816pub type WComments = Box<Comments>;
14817
14818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14819pub struct Footnotes {
14820    #[serde(rename = "footnote")]
14821    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14822    pub footnote: Vec<FootnoteEndnote>,
14823    /// Unknown child elements captured for roundtrip fidelity.
14824    #[cfg(feature = "extra-children")]
14825    #[serde(skip)]
14826    #[cfg(feature = "extra-children")]
14827    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14828}
14829
14830pub type WFootnotes = Box<Footnotes>;
14831
14832#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14833pub struct Endnotes {
14834    #[serde(rename = "endnote")]
14835    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14836    pub endnote: Vec<FootnoteEndnote>,
14837    /// Unknown child elements captured for roundtrip fidelity.
14838    #[cfg(feature = "extra-children")]
14839    #[serde(skip)]
14840    #[cfg(feature = "extra-children")]
14841    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14842}
14843
14844pub type WEndnotes = Box<Endnotes>;
14845
14846pub type WHdr = Box<HeaderFooter>;
14847
14848pub type WFtr = Box<HeaderFooter>;
14849
14850#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14851pub struct CTSmartTagType {
14852    #[cfg(feature = "wml-settings")]
14853    #[serde(rename = "@w:namespaceuri")]
14854    #[serde(default, skip_serializing_if = "Option::is_none")]
14855    pub namespaceuri: Option<STString>,
14856    #[cfg(feature = "wml-settings")]
14857    #[serde(rename = "@w:name")]
14858    #[serde(default, skip_serializing_if = "Option::is_none")]
14859    pub name: Option<STString>,
14860    #[cfg(feature = "wml-settings")]
14861    #[serde(rename = "@w:url")]
14862    #[serde(default, skip_serializing_if = "Option::is_none")]
14863    pub url: Option<STString>,
14864    /// Unknown attributes captured for roundtrip fidelity.
14865    #[cfg(feature = "extra-attrs")]
14866    #[serde(skip)]
14867    #[cfg(feature = "extra-attrs")]
14868    #[serde(default)]
14869    #[cfg(feature = "extra-attrs")]
14870    pub extra_attrs: std::collections::HashMap<String, String>,
14871}
14872
14873#[derive(Debug, Clone, Serialize, Deserialize)]
14874pub struct CTDocPartBehavior {
14875    #[serde(rename = "@w:val")]
14876    pub value: STDocPartBehavior,
14877    /// Unknown attributes captured for roundtrip fidelity.
14878    #[cfg(feature = "extra-attrs")]
14879    #[serde(skip)]
14880    #[cfg(feature = "extra-attrs")]
14881    #[serde(default)]
14882    #[cfg(feature = "extra-attrs")]
14883    pub extra_attrs: std::collections::HashMap<String, String>,
14884}
14885
14886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14887pub struct CTDocPartBehaviors {
14888    #[cfg(feature = "wml-settings")]
14889    #[serde(rename = "behavior")]
14890    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14891    pub behavior: Vec<CTDocPartBehavior>,
14892    /// Unknown child elements captured for roundtrip fidelity.
14893    #[cfg(feature = "extra-children")]
14894    #[serde(skip)]
14895    #[cfg(feature = "extra-children")]
14896    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14897}
14898
14899#[derive(Debug, Clone, Serialize, Deserialize)]
14900pub struct CTDocPartType {
14901    #[serde(rename = "@w:val")]
14902    pub value: STDocPartType,
14903    /// Unknown attributes captured for roundtrip fidelity.
14904    #[cfg(feature = "extra-attrs")]
14905    #[serde(skip)]
14906    #[cfg(feature = "extra-attrs")]
14907    #[serde(default)]
14908    #[cfg(feature = "extra-attrs")]
14909    pub extra_attrs: std::collections::HashMap<String, String>,
14910}
14911
14912#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14913pub struct CTDocPartTypes {
14914    #[cfg(feature = "wml-settings")]
14915    #[serde(rename = "@w:all")]
14916    #[serde(default, skip_serializing_if = "Option::is_none")]
14917    pub all: Option<OnOff>,
14918    #[cfg(feature = "wml-settings")]
14919    #[serde(rename = "type")]
14920    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14921    pub r#type: Vec<CTDocPartType>,
14922    /// Unknown attributes captured for roundtrip fidelity.
14923    #[cfg(feature = "extra-attrs")]
14924    #[serde(skip)]
14925    #[cfg(feature = "extra-attrs")]
14926    #[serde(default)]
14927    #[cfg(feature = "extra-attrs")]
14928    pub extra_attrs: std::collections::HashMap<String, String>,
14929    /// Unknown child elements captured for roundtrip fidelity.
14930    #[cfg(feature = "extra-children")]
14931    #[serde(skip)]
14932    #[cfg(feature = "extra-children")]
14933    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14934}
14935
14936#[derive(Debug, Clone, Serialize, Deserialize)]
14937pub struct CTDocPartGallery {
14938    #[serde(rename = "@w:val")]
14939    pub value: STDocPartGallery,
14940    /// Unknown attributes captured for roundtrip fidelity.
14941    #[cfg(feature = "extra-attrs")]
14942    #[serde(skip)]
14943    #[cfg(feature = "extra-attrs")]
14944    #[serde(default)]
14945    #[cfg(feature = "extra-attrs")]
14946    pub extra_attrs: std::collections::HashMap<String, String>,
14947}
14948
14949#[derive(Debug, Clone, Serialize, Deserialize)]
14950pub struct CTDocPartCategory {
14951    #[serde(rename = "name")]
14952    pub name: Box<CTString>,
14953    #[cfg(feature = "wml-settings")]
14954    #[serde(rename = "gallery")]
14955    pub gallery: Box<CTDocPartGallery>,
14956    /// Unknown child elements captured for roundtrip fidelity.
14957    #[cfg(feature = "extra-children")]
14958    #[serde(skip)]
14959    #[cfg(feature = "extra-children")]
14960    pub extra_children: Vec<ooxml_xml::PositionedNode>,
14961}
14962
14963#[derive(Debug, Clone, Serialize, Deserialize)]
14964pub struct CTDocPartName {
14965    #[serde(rename = "@w:val")]
14966    pub value: STString,
14967    #[cfg(feature = "wml-settings")]
14968    #[serde(rename = "@w:decorated")]
14969    #[serde(default, skip_serializing_if = "Option::is_none")]
14970    pub decorated: Option<OnOff>,
14971    /// Unknown attributes captured for roundtrip fidelity.
14972    #[cfg(feature = "extra-attrs")]
14973    #[serde(skip)]
14974    #[cfg(feature = "extra-attrs")]
14975    #[serde(default)]
14976    #[cfg(feature = "extra-attrs")]
14977    pub extra_attrs: std::collections::HashMap<String, String>,
14978}
14979
14980#[derive(Debug, Clone, Serialize, Deserialize)]
14981pub struct CTDocPartPr {
14982    #[cfg(feature = "wml-settings")]
14983    #[serde(rename = "name")]
14984    pub name: Box<CTDocPartName>,
14985    #[cfg(feature = "wml-settings")]
14986    #[serde(rename = "style")]
14987    #[serde(default, skip_serializing_if = "Option::is_none")]
14988    pub style: Option<Box<CTString>>,
14989    #[cfg(feature = "wml-settings")]
14990    #[serde(rename = "category")]
14991    #[serde(default, skip_serializing_if = "Option::is_none")]
14992    pub category: Option<Box<CTDocPartCategory>>,
14993    #[cfg(feature = "wml-settings")]
14994    #[serde(rename = "types")]
14995    #[serde(default, skip_serializing_if = "Option::is_none")]
14996    pub types: Option<Box<CTDocPartTypes>>,
14997    #[cfg(feature = "wml-settings")]
14998    #[serde(rename = "behaviors")]
14999    #[serde(default, skip_serializing_if = "Option::is_none")]
15000    pub behaviors: Option<Box<CTDocPartBehaviors>>,
15001    #[cfg(feature = "wml-settings")]
15002    #[serde(rename = "description")]
15003    #[serde(default, skip_serializing_if = "Option::is_none")]
15004    pub description: Option<Box<CTString>>,
15005    #[cfg(feature = "wml-settings")]
15006    #[serde(rename = "guid")]
15007    #[serde(default, skip_serializing_if = "Option::is_none")]
15008    pub guid: Option<Box<GuidElement>>,
15009    /// Unknown child elements captured for roundtrip fidelity.
15010    #[cfg(feature = "extra-children")]
15011    #[serde(skip)]
15012    #[cfg(feature = "extra-children")]
15013    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15014}
15015
15016#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15017pub struct CTDocPart {
15018    #[cfg(feature = "wml-settings")]
15019    #[serde(rename = "docPartPr")]
15020    #[serde(default, skip_serializing_if = "Option::is_none")]
15021    pub doc_part_pr: Option<Box<CTDocPartPr>>,
15022    #[cfg(feature = "wml-settings")]
15023    #[serde(rename = "docPartBody")]
15024    #[serde(default, skip_serializing_if = "Option::is_none")]
15025    pub doc_part_body: Option<Box<Body>>,
15026    /// Unknown child elements captured for roundtrip fidelity.
15027    #[cfg(feature = "extra-children")]
15028    #[serde(skip)]
15029    #[cfg(feature = "extra-children")]
15030    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15031}
15032
15033#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15034pub struct CTDocParts {
15035    #[cfg(feature = "wml-settings")]
15036    #[serde(rename = "docPart")]
15037    #[serde(default, skip_serializing_if = "Vec::is_empty")]
15038    pub doc_part: Vec<CTDocPart>,
15039    /// Unknown child elements captured for roundtrip fidelity.
15040    #[cfg(feature = "extra-children")]
15041    #[serde(skip)]
15042    #[cfg(feature = "extra-children")]
15043    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15044}
15045
15046pub type WSettings = Box<Settings>;
15047
15048pub type WWebSettings = Box<CTWebSettings>;
15049
15050pub type WFonts = Box<CTFontsList>;
15051
15052pub type WNumbering = Box<Numbering>;
15053
15054pub type WStyles = Box<Styles>;
15055
15056#[derive(Debug, Clone, Serialize, Deserialize)]
15057pub struct CTCaption {
15058    #[cfg(feature = "wml-settings")]
15059    #[serde(rename = "@w:name")]
15060    pub name: STString,
15061    #[cfg(feature = "wml-settings")]
15062    #[serde(rename = "@w:pos")]
15063    #[serde(default, skip_serializing_if = "Option::is_none")]
15064    pub pos: Option<STCaptionPos>,
15065    #[cfg(feature = "wml-settings")]
15066    #[serde(rename = "@w:chapNum")]
15067    #[serde(default, skip_serializing_if = "Option::is_none")]
15068    pub chap_num: Option<OnOff>,
15069    #[cfg(feature = "wml-settings")]
15070    #[serde(rename = "@w:heading")]
15071    #[serde(default, skip_serializing_if = "Option::is_none")]
15072    pub heading: Option<STDecimalNumber>,
15073    #[cfg(feature = "wml-settings")]
15074    #[serde(rename = "@w:noLabel")]
15075    #[serde(default, skip_serializing_if = "Option::is_none")]
15076    pub no_label: Option<OnOff>,
15077    #[cfg(feature = "wml-settings")]
15078    #[serde(rename = "@w:numFmt")]
15079    #[serde(default, skip_serializing_if = "Option::is_none")]
15080    pub num_fmt: Option<STNumberFormat>,
15081    #[cfg(feature = "wml-settings")]
15082    #[serde(rename = "@w:sep")]
15083    #[serde(default, skip_serializing_if = "Option::is_none")]
15084    pub sep: Option<STChapterSep>,
15085    /// Unknown attributes captured for roundtrip fidelity.
15086    #[cfg(feature = "extra-attrs")]
15087    #[serde(skip)]
15088    #[cfg(feature = "extra-attrs")]
15089    #[serde(default)]
15090    #[cfg(feature = "extra-attrs")]
15091    pub extra_attrs: std::collections::HashMap<String, String>,
15092}
15093
15094#[derive(Debug, Clone, Serialize, Deserialize)]
15095pub struct CTAutoCaption {
15096    #[cfg(feature = "wml-settings")]
15097    #[serde(rename = "@w:name")]
15098    pub name: STString,
15099    #[cfg(feature = "wml-settings")]
15100    #[serde(rename = "@w:caption")]
15101    pub caption: STString,
15102    /// Unknown attributes captured for roundtrip fidelity.
15103    #[cfg(feature = "extra-attrs")]
15104    #[serde(skip)]
15105    #[cfg(feature = "extra-attrs")]
15106    #[serde(default)]
15107    #[cfg(feature = "extra-attrs")]
15108    pub extra_attrs: std::collections::HashMap<String, String>,
15109}
15110
15111#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15112pub struct CTAutoCaptions {
15113    #[cfg(feature = "wml-settings")]
15114    #[serde(rename = "autoCaption")]
15115    #[serde(default, skip_serializing_if = "Vec::is_empty")]
15116    pub auto_caption: Vec<CTAutoCaption>,
15117    /// Unknown child elements captured for roundtrip fidelity.
15118    #[cfg(feature = "extra-children")]
15119    #[serde(skip)]
15120    #[cfg(feature = "extra-children")]
15121    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15122}
15123
15124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15125pub struct CTCaptions {
15126    #[cfg(feature = "wml-settings")]
15127    #[serde(rename = "caption")]
15128    #[serde(default, skip_serializing_if = "Vec::is_empty")]
15129    pub caption: Vec<CTCaption>,
15130    #[cfg(feature = "wml-settings")]
15131    #[serde(rename = "autoCaptions")]
15132    #[serde(default, skip_serializing_if = "Option::is_none")]
15133    pub auto_captions: Option<Box<CTAutoCaptions>>,
15134    /// Unknown child elements captured for roundtrip fidelity.
15135    #[cfg(feature = "extra-children")]
15136    #[serde(skip)]
15137    #[cfg(feature = "extra-children")]
15138    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15139}
15140
15141#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15142pub struct CTDocumentBase {
15143    #[cfg(feature = "wml-styling")]
15144    #[serde(rename = "background")]
15145    #[serde(default, skip_serializing_if = "Option::is_none")]
15146    pub background: Option<Box<CTBackground>>,
15147    /// Unknown child elements captured for roundtrip fidelity.
15148    #[cfg(feature = "extra-children")]
15149    #[serde(skip)]
15150    #[cfg(feature = "extra-children")]
15151    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15152}
15153
15154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15155pub struct Document {
15156    #[cfg(feature = "wml-styling")]
15157    #[serde(rename = "background")]
15158    #[serde(default, skip_serializing_if = "Option::is_none")]
15159    pub background: Option<Box<CTBackground>>,
15160    #[serde(rename = "body")]
15161    #[serde(default, skip_serializing_if = "Option::is_none")]
15162    pub body: Option<Box<Body>>,
15163    #[serde(rename = "@w:conformance")]
15164    #[serde(default, skip_serializing_if = "Option::is_none")]
15165    pub conformance: Option<STConformanceClass>,
15166    /// Unknown attributes captured for roundtrip fidelity.
15167    #[cfg(feature = "extra-attrs")]
15168    #[serde(skip)]
15169    #[cfg(feature = "extra-attrs")]
15170    #[serde(default)]
15171    #[cfg(feature = "extra-attrs")]
15172    pub extra_attrs: std::collections::HashMap<String, String>,
15173    /// Unknown child elements captured for roundtrip fidelity.
15174    #[cfg(feature = "extra-children")]
15175    #[serde(skip)]
15176    #[cfg(feature = "extra-children")]
15177    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15178}
15179
15180#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15181pub struct CTGlossaryDocument {
15182    #[serde(rename = "background")]
15183    #[serde(default, skip_serializing_if = "Option::is_none")]
15184    pub background: Option<Box<CTBackground>>,
15185    #[cfg(feature = "wml-settings")]
15186    #[serde(rename = "docParts")]
15187    #[serde(default, skip_serializing_if = "Option::is_none")]
15188    pub doc_parts: Option<Box<CTDocParts>>,
15189    /// Unknown child elements captured for roundtrip fidelity.
15190    #[cfg(feature = "extra-children")]
15191    #[serde(skip)]
15192    #[cfg(feature = "extra-children")]
15193    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15194}
15195
15196pub type WDocument = Box<Document>;
15197
15198pub type WGlossaryDocument = Box<CTGlossaryDocument>;
15199
15200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15201pub struct WAnyVmlOffice {
15202    /// Unknown child elements captured for roundtrip fidelity.
15203    #[cfg(feature = "extra-children")]
15204    #[serde(skip)]
15205    #[cfg(feature = "extra-children")]
15206    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15207}
15208
15209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15210pub struct WAnyVmlVml {
15211    /// Unknown child elements captured for roundtrip fidelity.
15212    #[cfg(feature = "extra-children")]
15213    #[serde(skip)]
15214    #[cfg(feature = "extra-children")]
15215    pub extra_children: Vec<ooxml_xml::PositionedNode>,
15216}