npoi
3366 строк · 118.2 Кб
1using System;
2using System.Collections.Generic;
3using System.Xml.Serialization;
4using NPOI.OpenXmlFormats.Shared;
5using System.Collections;
6using System.IO;
7using System.Xml;
8using NPOI.OpenXml4Net.Util;
9
10
11namespace NPOI.OpenXmlFormats.Wordprocessing
12{
13
14[Serializable]
15
16[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
17[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
18public class CT_SdtContentCell
19{
20public override string ToString()
21{
22string text = string.Empty;
23using (MemoryStream ms = new MemoryStream())
24{
25using (StreamWriter sw = new StreamWriter(ms))
26{
27this.Write(sw, "sdtContent");
28sw.Flush();
29ms.Position = 0;
30using (StreamReader sr = new StreamReader(ms))
31{
32text = sr.ReadToEnd();
33}
34}
35}
36return text;
37}
38private ArrayList itemsField;
39
40private List<ItemsChoiceType23> itemsElementNameField;
41
42public CT_SdtContentCell()
43{
44this.itemsElementNameField = new List<ItemsChoiceType23>();
45this.itemsField = new ArrayList();
46}
47public static CT_SdtContentCell Parse(XmlNode node, XmlNamespaceManager namespaceManager)
48{
49if (node == null)
50return null;
51CT_SdtContentCell ctObj = new CT_SdtContentCell();
52foreach (XmlNode childNode in node.ChildNodes)
53{
54if (childNode.LocalName == "permStart")
55{
56ctObj.Items.Add(CT_PermStart.Parse(childNode, namespaceManager));
57ctObj.ItemsElementName.Add(ItemsChoiceType23.permStart);
58}
59else if (childNode.LocalName == "sdt")
60{
61ctObj.Items.Add(CT_SdtCell.Parse(childNode, namespaceManager));
62ctObj.ItemsElementName.Add(ItemsChoiceType23.sdt);
63}
64else if (childNode.LocalName == "customXmlMoveToRangeEnd")
65{
66ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
67ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlMoveToRangeEnd);
68}
69else if (childNode.LocalName == "proofErr")
70{
71ctObj.Items.Add(CT_ProofErr.Parse(childNode, namespaceManager));
72ctObj.ItemsElementName.Add(ItemsChoiceType23.proofErr);
73}
74else if (childNode.LocalName == "customXmlDelRangeEnd")
75{
76ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
77ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlDelRangeEnd);
78}
79else if (childNode.LocalName == "moveFromRangeEnd")
80{
81ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
82ctObj.ItemsElementName.Add(ItemsChoiceType23.moveFromRangeEnd);
83}
84else if (childNode.LocalName == "moveFromRangeStart")
85{
86ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
87ctObj.ItemsElementName.Add(ItemsChoiceType23.moveFromRangeStart);
88}
89else if (childNode.LocalName == "moveTo")
90{
91ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
92ctObj.ItemsElementName.Add(ItemsChoiceType23.moveTo);
93}
94else if (childNode.LocalName == "moveToRangeEnd")
95{
96ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
97ctObj.ItemsElementName.Add(ItemsChoiceType23.moveToRangeEnd);
98}
99else if (childNode.LocalName == "moveToRangeStart")
100{
101ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
102ctObj.ItemsElementName.Add(ItemsChoiceType23.moveToRangeStart);
103}
104else if (childNode.LocalName == "customXmlMoveToRangeStart")
105{
106ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
107ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlMoveToRangeStart);
108}
109else if (childNode.LocalName == "tc")
110{
111ctObj.Items.Add(CT_Tc.Parse(childNode, namespaceManager, ctObj));
112ctObj.ItemsElementName.Add(ItemsChoiceType23.tc);
113}
114else if (childNode.LocalName == "del")
115{
116ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
117ctObj.ItemsElementName.Add(ItemsChoiceType23.del);
118}
119else if (childNode.LocalName == "permEnd")
120{
121ctObj.Items.Add(CT_Perm.Parse(childNode, namespaceManager));
122ctObj.ItemsElementName.Add(ItemsChoiceType23.permEnd);
123}
124else if (childNode.LocalName == "commentRangeStart")
125{
126ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
127ctObj.ItemsElementName.Add(ItemsChoiceType23.commentRangeStart);
128}
129else if (childNode.LocalName == "moveFrom")
130{
131ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
132ctObj.ItemsElementName.Add(ItemsChoiceType23.moveFrom);
133}
134else if (childNode.LocalName == "customXmlMoveFromRangeStart")
135{
136ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
137ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlMoveFromRangeStart);
138}
139else if (childNode.LocalName == "customXml")
140{
141ctObj.Items.Add(CT_CustomXmlCell.Parse(childNode, namespaceManager));
142ctObj.ItemsElementName.Add(ItemsChoiceType23.customXml);
143}
144else if (childNode.LocalName == "oMath")
145{
146ctObj.Items.Add(CT_OMath.Parse(childNode, namespaceManager));
147ctObj.ItemsElementName.Add(ItemsChoiceType23.oMath);
148}
149else if (childNode.LocalName == "customXmlDelRangeStart")
150{
151ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
152ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlDelRangeStart);
153}
154else if (childNode.LocalName == "customXmlInsRangeEnd")
155{
156ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
157ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlInsRangeEnd);
158}
159else if (childNode.LocalName == "ins")
160{
161ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
162ctObj.ItemsElementName.Add(ItemsChoiceType23.ins);
163}
164else if (childNode.LocalName == "customXmlInsRangeStart")
165{
166ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
167ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlInsRangeStart);
168}
169else if (childNode.LocalName == "customXmlMoveFromRangeEnd")
170{
171ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
172ctObj.ItemsElementName.Add(ItemsChoiceType23.customXmlMoveFromRangeEnd);
173}
174else if (childNode.LocalName == "oMathPara")
175{
176ctObj.Items.Add(CT_OMathPara.Parse(childNode, namespaceManager));
177ctObj.ItemsElementName.Add(ItemsChoiceType23.oMathPara);
178}
179else if (childNode.LocalName == "bookmarkEnd")
180{
181ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
182ctObj.ItemsElementName.Add(ItemsChoiceType23.bookmarkEnd);
183}
184else if (childNode.LocalName == "bookmarkStart")
185{
186ctObj.Items.Add(CT_Bookmark.Parse(childNode, namespaceManager));
187ctObj.ItemsElementName.Add(ItemsChoiceType23.bookmarkStart);
188}
189else if (childNode.LocalName == "commentRangeEnd")
190{
191ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
192ctObj.ItemsElementName.Add(ItemsChoiceType23.commentRangeEnd);
193}
194}
195return ctObj;
196}
197
198internal void Write(StreamWriter sw, string nodeName)
199{
200sw.Write(string.Format("<w:{0}", nodeName));
201sw.Write(">");
202foreach (object o in this.Items)
203{
204if (o is CT_PermStart)
205((CT_PermStart)o).Write(sw, "permStart");
206else if (o is CT_SdtCell)
207((CT_SdtCell)o).Write(sw, "sdt");
208else if (o is CT_Markup)
209((CT_Markup)o).Write(sw, "customXmlMoveToRangeEnd");
210else if (o is CT_ProofErr)
211((CT_ProofErr)o).Write(sw, "proofErr");
212else if (o is CT_Markup)
213((CT_Markup)o).Write(sw, "customXmlDelRangeEnd");
214else if (o is CT_MarkupRange)
215((CT_MarkupRange)o).Write(sw, "moveFromRangeEnd");
216else if (o is CT_MoveBookmark)
217((CT_MoveBookmark)o).Write(sw, "moveFromRangeStart");
218else if (o is CT_RunTrackChange)
219((CT_RunTrackChange)o).Write(sw, "moveTo");
220else if (o is CT_MarkupRange)
221((CT_MarkupRange)o).Write(sw, "moveToRangeEnd");
222else if (o is CT_MoveBookmark)
223((CT_MoveBookmark)o).Write(sw, "moveToRangeStart");
224else if (o is CT_TrackChange)
225((CT_TrackChange)o).Write(sw, "customXmlMoveToRangeStart");
226else if (o is CT_Tc)
227((CT_Tc)o).Write(sw, "tc");
228else if (o is CT_RunTrackChange)
229((CT_RunTrackChange)o).Write(sw, "del");
230else if (o is CT_Perm)
231((CT_Perm)o).Write(sw, "permEnd");
232else if (o is CT_MarkupRange)
233((CT_MarkupRange)o).Write(sw, "commentRangeStart");
234else if (o is CT_RunTrackChange)
235((CT_RunTrackChange)o).Write(sw, "moveFrom");
236else if (o is CT_TrackChange)
237((CT_TrackChange)o).Write(sw, "customXmlMoveFromRangeStart");
238else if (o is CT_CustomXmlCell)
239((CT_CustomXmlCell)o).Write(sw, "customXml");
240else if (o is CT_OMath)
241((CT_OMath)o).Write(sw, "oMath");
242else if (o is CT_TrackChange)
243((CT_TrackChange)o).Write(sw, "customXmlDelRangeStart");
244else if (o is CT_Markup)
245((CT_Markup)o).Write(sw, "customXmlInsRangeEnd");
246else if (o is CT_RunTrackChange)
247((CT_RunTrackChange)o).Write(sw, "ins");
248else if (o is CT_TrackChange)
249((CT_TrackChange)o).Write(sw, "customXmlInsRangeStart");
250else if (o is CT_Markup)
251((CT_Markup)o).Write(sw, "customXmlMoveFromRangeEnd");
252else if (o is CT_OMathPara)
253((CT_OMathPara)o).Write(sw, "oMathPara");
254else if (o is CT_MarkupRange)
255((CT_MarkupRange)o).Write(sw, "bookmarkEnd");
256else if (o is CT_Bookmark)
257((CT_Bookmark)o).Write(sw, "bookmarkStart");
258else if (o is CT_MarkupRange)
259((CT_MarkupRange)o).Write(sw, "commentRangeEnd");
260}
261sw.WriteEndW(nodeName);
262}
263
264[XmlElement("oMath", typeof(CT_OMath), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
265[XmlElement("oMathPara", typeof(CT_OMathPara), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
266[XmlElement("bookmarkEnd", typeof(CT_MarkupRange), Order = 0)]
267[XmlElement("bookmarkStart", typeof(CT_Bookmark), Order = 0)]
268[XmlElement("commentRangeEnd", typeof(CT_MarkupRange), Order = 0)]
269[XmlElement("commentRangeStart", typeof(CT_MarkupRange), Order = 0)]
270[XmlElement("customXml", typeof(CT_CustomXmlCell), Order = 0)]
271[XmlElement("customXmlDelRangeEnd", typeof(CT_Markup), Order = 0)]
272[XmlElement("customXmlDelRangeStart", typeof(CT_TrackChange), Order = 0)]
273[XmlElement("customXmlInsRangeEnd", typeof(CT_Markup), Order = 0)]
274[XmlElement("customXmlInsRangeStart", typeof(CT_TrackChange), Order = 0)]
275[XmlElement("customXmlMoveFromRangeEnd", typeof(CT_Markup), Order = 0)]
276[XmlElement("customXmlMoveFromRangeStart", typeof(CT_TrackChange), Order = 0)]
277[XmlElement("customXmlMoveToRangeEnd", typeof(CT_Markup), Order = 0)]
278[XmlElement("customXmlMoveToRangeStart", typeof(CT_TrackChange), Order = 0)]
279[XmlElement("del", typeof(CT_RunTrackChange), Order = 0)]
280[XmlElement("ins", typeof(CT_RunTrackChange), Order = 0)]
281[XmlElement("moveFrom", typeof(CT_RunTrackChange), Order = 0)]
282[XmlElement("moveFromRangeEnd", typeof(CT_MarkupRange), Order = 0)]
283[XmlElement("moveFromRangeStart", typeof(CT_MoveBookmark), Order = 0)]
284[XmlElement("moveTo", typeof(CT_RunTrackChange), Order = 0)]
285[XmlElement("moveToRangeEnd", typeof(CT_MarkupRange), Order = 0)]
286[XmlElement("moveToRangeStart", typeof(CT_MoveBookmark), Order = 0)]
287[XmlElement("permEnd", typeof(CT_Perm), Order = 0)]
288[XmlElement("permStart", typeof(CT_PermStart), Order = 0)]
289[XmlElement("proofErr", typeof(CT_ProofErr), Order = 0)]
290[XmlElement("sdt", typeof(CT_SdtCell), Order = 0)]
291[XmlElement("tc", typeof(CT_Tc), Order = 0)]
292[XmlChoiceIdentifier("ItemsElementName")]
293public ArrayList Items
294{
295get
296{
297return this.itemsField;
298}
299set
300{
301this.itemsField = value;
302}
303}
304
305[XmlElement("ItemsElementName", Order = 1)]
306[XmlIgnore]
307public List<ItemsChoiceType23> ItemsElementName
308{
309get
310{
311return this.itemsElementNameField;
312}
313set
314{
315this.itemsElementNameField = value;
316}
317}
318}
319
320[Serializable]
321[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IncludeInSchema = false)]
322public enum ItemsChoiceType23
323{
324
325
326[XmlEnum("http://schemas.openxmlformats.org/officeDocument/2006/math:oMath")]
327oMath,
328
329
330[XmlEnum("http://schemas.openxmlformats.org/officeDocument/2006/math:oMathPara")]
331oMathPara,
332
333
334bookmarkEnd,
335
336
337bookmarkStart,
338
339
340commentRangeEnd,
341
342
343commentRangeStart,
344
345
346customXml,
347
348
349customXmlDelRangeEnd,
350
351
352customXmlDelRangeStart,
353
354
355customXmlInsRangeEnd,
356
357
358customXmlInsRangeStart,
359
360
361customXmlMoveFromRangeEnd,
362
363
364customXmlMoveFromRangeStart,
365
366
367customXmlMoveToRangeEnd,
368
369
370customXmlMoveToRangeStart,
371
372
373del,
374
375
376ins,
377
378
379moveFrom,
380
381
382moveFromRangeEnd,
383
384
385moveFromRangeStart,
386
387
388moveTo,
389
390
391moveToRangeEnd,
392
393
394moveToRangeStart,
395
396
397permEnd,
398
399
400permStart,
401
402
403proofErr,
404
405
406sdt,
407
408
409tc,
410}
411
412
413[Serializable]
414
415[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
416[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
417public class CT_SdtBlock
418{
419
420private CT_SdtPr sdtPrField;
421
422private List<CT_RPr> sdtEndPrField;
423private CT_SdtContentBlock sdtContentField;
424
425public CT_SdtBlock()
426{
427//this.sdtContentField = new CT_SdtContentBlock();
428//this.sdtEndPrField = new List<CT_RPr>();
429//this.sdtPrField = new CT_SdtPr();
430}
431public static CT_SdtBlock Parse(XmlNode node, XmlNamespaceManager namespaceManager)
432{
433if (node == null)
434return null;
435CT_SdtBlock ctObj = new CT_SdtBlock();
436ctObj.sdtEndPr = new List<CT_RPr>();
437foreach (XmlNode childNode in node.ChildNodes)
438{
439if (childNode.LocalName == "sdtPr")
440ctObj.sdtPr = CT_SdtPr.Parse(childNode, namespaceManager);
441else if (childNode.LocalName == "sdtContent")
442ctObj.sdtContent = CT_SdtContentBlock.Parse(childNode, namespaceManager);
443else if (childNode.LocalName == "sdtEndPr")
444ctObj.sdtEndPr.Add(CT_RPr.Parse(childNode, namespaceManager));
445}
446return ctObj;
447}
448
449
450
451internal void Write(StreamWriter sw, string nodeName)
452{
453sw.Write(string.Format("<w:{0}", nodeName));
454sw.Write(">");
455if (this.sdtPr != null)
456this.sdtPr.Write(sw, "sdtPr");
457if (this.sdtEndPr != null)
458{
459foreach (CT_RPr x in this.sdtEndPr)
460{
461x.Write(sw, "sdtEndPr");
462}
463}
464if (this.sdtContent != null)
465this.sdtContent.Write(sw, "sdtContent");
466sw.WriteEndW(nodeName);
467}
468
469[XmlElement(Order = 0)]
470public CT_SdtPr sdtPr
471{
472get
473{
474return this.sdtPrField;
475}
476set
477{
478this.sdtPrField = value;
479}
480}
481
482[XmlArray(Order = 1)]
483[XmlArrayItem("rPr", IsNullable = false)]
484public List<CT_RPr> sdtEndPr
485{
486get
487{
488return this.sdtEndPrField;
489}
490set
491{
492this.sdtEndPrField = value;
493}
494}
495
496[XmlElement(Order = 2)]
497public CT_SdtContentBlock sdtContent
498{
499get
500{
501return this.sdtContentField;
502}
503set
504{
505this.sdtContentField = value;
506}
507}
508
509public CT_SdtPr AddNewSdtPr()
510{
511if (this.sdtPrField == null)
512this.sdtPrField = new CT_SdtPr();
513return this.sdtPrField;
514}
515
516public CT_SdtEndPr AddNewSdtEndPr()
517{
518CT_SdtEndPr endPr = new CT_SdtEndPr();
519this.sdtEndPrField = endPr.Items;
520return endPr;
521}
522
523public CT_SdtContentBlock AddNewSdtContent()
524{
525if (this.sdtContentField == null)
526this.sdtContentField = new CT_SdtContentBlock();
527return this.sdtContentField;
528}
529}
530
531
532[Serializable]
533
534[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
535[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
536public class CT_SdtRun
537{
538
539private CT_SdtPr sdtPrField;
540
541private List<CT_RPr> sdtEndPrField;
542
543private CT_SdtContentRun sdtContentField;
544
545public CT_SdtRun()
546{
547//this.sdtContentField = new CT_SdtContentRun();
548//this.sdtEndPrField = new List<CT_RPr>();
549//this.sdtPrField = new CT_SdtPr();
550}
551public static CT_SdtRun Parse(XmlNode node, XmlNamespaceManager namespaceManager)
552{
553if (node == null)
554return null;
555CT_SdtRun ctObj = new CT_SdtRun();
556ctObj.sdtEndPr = new List<CT_RPr>();
557foreach (XmlNode childNode in node.ChildNodes)
558{
559if (childNode.LocalName == "sdtPr")
560ctObj.sdtPr = CT_SdtPr.Parse(childNode, namespaceManager);
561else if (childNode.LocalName == "sdtContent")
562ctObj.sdtContent = CT_SdtContentRun.Parse(childNode, namespaceManager);
563else if (childNode.LocalName == "sdtEndPr")
564ctObj.sdtEndPr.Add(CT_RPr.Parse(childNode, namespaceManager));
565}
566return ctObj;
567}
568
569
570
571internal void Write(StreamWriter sw, string nodeName)
572{
573sw.Write(string.Format("<w:{0}", nodeName));
574sw.Write(">");
575if (this.sdtPr != null)
576this.sdtPr.Write(sw, "sdtPr");
577if (this.sdtContent != null)
578this.sdtContent.Write(sw, "sdtContent");
579if (this.sdtEndPr != null)
580{
581foreach (CT_RPr x in this.sdtEndPr)
582{
583x.Write(sw, "sdtEndPr");
584}
585}
586sw.WriteEndW(nodeName);
587}
588
589[XmlElement(Order = 0)]
590public CT_SdtPr sdtPr
591{
592get
593{
594return this.sdtPrField;
595}
596set
597{
598this.sdtPrField = value;
599}
600}
601
602[XmlArray(Order = 1)]
603[XmlArrayItem("rPr", IsNullable = false)]
604public List<CT_RPr> sdtEndPr
605{
606get
607{
608return this.sdtEndPrField;
609}
610set
611{
612this.sdtEndPrField = value;
613}
614}
615
616[XmlElement(Order = 2)]
617public CT_SdtContentRun sdtContent
618{
619get
620{
621return this.sdtContentField;
622}
623set
624{
625this.sdtContentField = value;
626}
627}
628}
629
630
631[Serializable]
632
633[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
634[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
635public class CT_SdtCell
636{
637
638private CT_SdtPr sdtPrField;
639
640private List<CT_RPr> sdtEndPrField;
641
642private CT_SdtContentCell sdtContentField;
643
644public CT_SdtCell()
645{
646//this.sdtContentField = new CT_SdtContentCell();
647//this.sdtEndPrField = new List<CT_RPr>();
648//this.sdtPrField = new CT_SdtPr();
649}
650public static CT_SdtCell Parse(XmlNode node, XmlNamespaceManager namespaceManager)
651{
652if (node == null)
653return null;
654CT_SdtCell ctObj = new CT_SdtCell();
655ctObj.sdtEndPr = new List<CT_RPr>();
656foreach (XmlNode childNode in node.ChildNodes)
657{
658if (childNode.LocalName == "sdtPr")
659ctObj.sdtPr = CT_SdtPr.Parse(childNode, namespaceManager);
660else if (childNode.LocalName == "sdtContent")
661ctObj.sdtContent = CT_SdtContentCell.Parse(childNode, namespaceManager);
662else if (childNode.LocalName == "sdtEndPr")
663ctObj.sdtEndPr.Add(CT_RPr.Parse(childNode, namespaceManager));
664}
665return ctObj;
666}
667
668
669
670internal void Write(StreamWriter sw, string nodeName)
671{
672sw.Write(string.Format("<w:{0}", nodeName));
673sw.Write(">");
674if (this.sdtPr != null)
675this.sdtPr.Write(sw, "sdtPr");
676if (this.sdtContent != null)
677this.sdtContent.Write(sw, "sdtContent");
678if (this.sdtEndPr != null)
679{
680foreach (CT_RPr x in this.sdtEndPr)
681{
682x.Write(sw, "sdtEndPr");
683}
684}
685sw.WriteEndW(nodeName);
686}
687
688[XmlElement(Order = 0)]
689public CT_SdtPr sdtPr
690{
691get
692{
693return this.sdtPrField;
694}
695set
696{
697this.sdtPrField = value;
698}
699}
700
701[XmlArray(Order = 1)]
702[XmlArrayItem("rPr", IsNullable = false)]
703public List<CT_RPr> sdtEndPr
704{
705get
706{
707return this.sdtEndPrField;
708}
709set
710{
711this.sdtEndPrField = value;
712}
713}
714
715[XmlElement(Order = 2)]
716public CT_SdtContentCell sdtContent
717{
718get
719{
720return this.sdtContentField;
721}
722set
723{
724this.sdtContentField = value;
725}
726}
727}
728
729[Serializable]
730
731[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
732[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
733public class CT_SdtComboBox
734{
735public static CT_SdtComboBox Parse(XmlNode node, XmlNamespaceManager namespaceManager)
736{
737if (node == null)
738return null;
739CT_SdtComboBox ctObj = new CT_SdtComboBox();
740ctObj.lastValue = XmlHelper.ReadString(node.Attributes["w:lastValue"]);
741ctObj.listItem = new List<CT_SdtListItem>();
742foreach (XmlNode childNode in node.ChildNodes)
743{
744if (childNode.LocalName == "listItem")
745ctObj.listItem.Add(CT_SdtListItem.Parse(childNode, namespaceManager));
746}
747return ctObj;
748}
749
750
751
752internal void Write(StreamWriter sw, string nodeName)
753{
754sw.Write(string.Format("<w:{0}", nodeName));
755XmlHelper.WriteAttribute(sw, "w:lastValue", this.lastValue);
756sw.Write(">");
757if (this.listItem != null)
758{
759foreach (CT_SdtListItem x in this.listItem)
760{
761x.Write(sw, "listItem");
762}
763}
764sw.WriteEndW(nodeName);
765}
766
767private List<CT_SdtListItem> listItemField;
768
769private string lastValueField;
770
771public CT_SdtComboBox()
772{
773//this.listItemField = new List<CT_SdtListItem>();
774}
775
776[XmlElement("listItem", Order = 0)]
777public List<CT_SdtListItem> listItem
778{
779get
780{
781return this.listItemField;
782}
783set
784{
785this.listItemField = value;
786}
787}
788
789[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
790public string lastValue
791{
792get
793{
794return this.lastValueField;
795}
796set
797{
798this.lastValueField = value;
799}
800}
801}
802
803
804[Serializable]
805
806[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
807[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
808public class CT_SdtDocPart
809{
810
811private CT_String docPartGalleryField;
812
813private CT_String docPartCategoryField;
814
815private CT_OnOff docPartUniqueField;
816
817public CT_SdtDocPart()
818{
819//this.docPartUniqueField = new CT_OnOff();
820//this.docPartCategoryField = new CT_String();
821//this.docPartGalleryField = new CT_String();
822}
823public static CT_SdtDocPart Parse(XmlNode node, XmlNamespaceManager namespaceManager)
824{
825if (node == null)
826return null;
827CT_SdtDocPart ctObj = new CT_SdtDocPart();
828foreach (XmlNode childNode in node.ChildNodes)
829{
830if (childNode.LocalName == "docPartGallery")
831ctObj.docPartGallery = CT_String.Parse(childNode, namespaceManager);
832else if (childNode.LocalName == "docPartCategory")
833ctObj.docPartCategory = CT_String.Parse(childNode, namespaceManager);
834else if (childNode.LocalName == "docPartUnique")
835ctObj.docPartUnique = CT_OnOff.Parse(childNode, namespaceManager);
836}
837return ctObj;
838}
839
840
841
842internal void Write(StreamWriter sw, string nodeName)
843{
844sw.Write(string.Format("<w:{0}", nodeName));
845sw.Write(">");
846if (this.docPartGallery != null)
847this.docPartGallery.Write(sw, "docPartGallery");
848if (this.docPartCategory != null)
849this.docPartCategory.Write(sw, "docPartCategory");
850if (this.docPartUnique != null)
851this.docPartUnique.Write(sw, "docPartUnique");
852sw.WriteEndW(nodeName);
853}
854
855[XmlElement(Order = 0)]
856public CT_String docPartGallery
857{
858get
859{
860return this.docPartGalleryField;
861}
862set
863{
864this.docPartGalleryField = value;
865}
866}
867
868[XmlElement(Order = 1)]
869public CT_String docPartCategory
870{
871get
872{
873return this.docPartCategoryField;
874}
875set
876{
877this.docPartCategoryField = value;
878}
879}
880
881[XmlElement(Order = 2)]
882public CT_OnOff docPartUnique
883{
884get
885{
886return this.docPartUniqueField;
887}
888set
889{
890this.docPartUniqueField = value;
891}
892}
893
894public CT_String AddNewDocPartGallery()
895{
896if (this.docPartGalleryField == null)
897this.docPartGalleryField = new CT_String();
898return this.docPartGalleryField;
899}
900}
901
902
903[Serializable]
904
905[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
906[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
907public class CT_SdtDropDownList
908{
909
910private List<CT_SdtListItem> listItemField;
911
912private string lastValueField;
913
914public CT_SdtDropDownList()
915{
916//this.listItemField = new List<CT_SdtListItem>();
917}
918public static CT_SdtDropDownList Parse(XmlNode node, XmlNamespaceManager namespaceManager)
919{
920if (node == null)
921return null;
922CT_SdtDropDownList ctObj = new CT_SdtDropDownList();
923ctObj.lastValue = XmlHelper.ReadString(node.Attributes["w:lastValue"]);
924ctObj.listItem = new List<CT_SdtListItem>();
925foreach (XmlNode childNode in node.ChildNodes)
926{
927if (childNode.LocalName == "listItem")
928ctObj.listItem.Add(CT_SdtListItem.Parse(childNode, namespaceManager));
929}
930return ctObj;
931}
932
933
934
935internal void Write(StreamWriter sw, string nodeName)
936{
937sw.Write(string.Format("<w:{0}", nodeName));
938XmlHelper.WriteAttribute(sw, "w:lastValue", this.lastValue);
939sw.Write(">");
940if (this.listItem != null)
941{
942foreach (CT_SdtListItem x in this.listItem)
943{
944x.Write(sw, "listItem");
945}
946}
947sw.WriteEndW(nodeName);
948}
949
950[XmlElement("listItem", Order = 0)]
951public List<CT_SdtListItem> listItem
952{
953get
954{
955return this.listItemField;
956}
957set
958{
959this.listItemField = value;
960}
961}
962
963[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
964public string lastValue
965{
966get
967{
968return this.lastValueField;
969}
970set
971{
972this.lastValueField = value;
973}
974}
975}
976
977[Serializable]
978
979[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
980[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
981public class CT_SdtContentBlock
982{
983
984private ArrayList itemsField;
985
986private List<ItemsChoiceType19> itemsElementNameField;
987
988public CT_SdtContentBlock()
989{
990this.itemsElementNameField = new List<ItemsChoiceType19>();
991this.itemsField = new ArrayList();
992}
993public static CT_SdtContentBlock Parse(XmlNode node, XmlNamespaceManager namespaceManager)
994{
995if (node == null)
996return null;
997CT_SdtContentBlock ctObj = new CT_SdtContentBlock();
998foreach (XmlNode childNode in node.ChildNodes)
999{
1000if (childNode.LocalName == "bookmarkStart")
1001{
1002ctObj.Items.Add(CT_Bookmark.Parse(childNode, namespaceManager));
1003ctObj.ItemsElementName.Add(ItemsChoiceType19.bookmarkStart);
1004}
1005else if (childNode.LocalName == "oMath")
1006{
1007ctObj.Items.Add(CT_OMath.Parse(childNode, namespaceManager));
1008ctObj.ItemsElementName.Add(ItemsChoiceType19.oMath);
1009}
1010else if (childNode.LocalName == "oMathPara")
1011{
1012ctObj.Items.Add(CT_OMathPara.Parse(childNode, namespaceManager));
1013ctObj.ItemsElementName.Add(ItemsChoiceType19.oMathPara);
1014}
1015else if (childNode.LocalName == "bookmarkEnd")
1016{
1017ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1018ctObj.ItemsElementName.Add(ItemsChoiceType19.bookmarkEnd);
1019}
1020else if (childNode.LocalName == "commentRangeEnd")
1021{
1022ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1023ctObj.ItemsElementName.Add(ItemsChoiceType19.commentRangeEnd);
1024}
1025else if (childNode.LocalName == "commentRangeStart")
1026{
1027ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1028ctObj.ItemsElementName.Add(ItemsChoiceType19.commentRangeStart);
1029}
1030else if (childNode.LocalName == "customXml")
1031{
1032ctObj.Items.Add(CT_CustomXmlBlock.Parse(childNode, namespaceManager));
1033ctObj.ItemsElementName.Add(ItemsChoiceType19.customXml);
1034}
1035else if (childNode.LocalName == "customXmlDelRangeEnd")
1036{
1037ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1038ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlDelRangeEnd);
1039}
1040else if (childNode.LocalName == "customXmlDelRangeStart")
1041{
1042ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1043ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlDelRangeStart);
1044}
1045else if (childNode.LocalName == "customXmlInsRangeEnd")
1046{
1047ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1048ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlInsRangeEnd);
1049}
1050else if (childNode.LocalName == "customXmlInsRangeStart")
1051{
1052ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1053ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlInsRangeStart);
1054}
1055else if (childNode.LocalName == "customXmlMoveFromRangeEnd")
1056{
1057ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1058ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlMoveFromRangeEnd);
1059}
1060else if (childNode.LocalName == "customXmlMoveFromRangeStart")
1061{
1062ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1063ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlMoveFromRangeStart);
1064}
1065else if (childNode.LocalName == "customXmlMoveToRangeEnd")
1066{
1067ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1068ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlMoveToRangeEnd);
1069}
1070else if (childNode.LocalName == "customXmlMoveToRangeStart")
1071{
1072ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1073ctObj.ItemsElementName.Add(ItemsChoiceType19.customXmlMoveToRangeStart);
1074}
1075else if (childNode.LocalName == "del")
1076{
1077ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1078ctObj.ItemsElementName.Add(ItemsChoiceType19.del);
1079}
1080else if (childNode.LocalName == "ins")
1081{
1082ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1083ctObj.ItemsElementName.Add(ItemsChoiceType19.ins);
1084}
1085else if (childNode.LocalName == "moveFrom")
1086{
1087ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1088ctObj.ItemsElementName.Add(ItemsChoiceType19.moveFrom);
1089}
1090else if (childNode.LocalName == "moveFromRangeEnd")
1091{
1092ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1093ctObj.ItemsElementName.Add(ItemsChoiceType19.moveFromRangeEnd);
1094}
1095else if (childNode.LocalName == "moveFromRangeStart")
1096{
1097ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
1098ctObj.ItemsElementName.Add(ItemsChoiceType19.moveFromRangeStart);
1099}
1100else if (childNode.LocalName == "moveTo")
1101{
1102ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1103ctObj.ItemsElementName.Add(ItemsChoiceType19.moveTo);
1104}
1105else if (childNode.LocalName == "moveToRangeEnd")
1106{
1107ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1108ctObj.ItemsElementName.Add(ItemsChoiceType19.moveToRangeEnd);
1109}
1110else if (childNode.LocalName == "moveToRangeStart")
1111{
1112ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
1113ctObj.ItemsElementName.Add(ItemsChoiceType19.moveToRangeStart);
1114}
1115else if (childNode.LocalName == "p")
1116{
1117ctObj.Items.Add(CT_P.Parse(childNode, namespaceManager));
1118ctObj.ItemsElementName.Add(ItemsChoiceType19.p);
1119}
1120else if (childNode.LocalName == "permEnd")
1121{
1122ctObj.Items.Add(CT_Perm.Parse(childNode, namespaceManager));
1123ctObj.ItemsElementName.Add(ItemsChoiceType19.permEnd);
1124}
1125else if (childNode.LocalName == "permStart")
1126{
1127ctObj.Items.Add(CT_PermStart.Parse(childNode, namespaceManager));
1128ctObj.ItemsElementName.Add(ItemsChoiceType19.permStart);
1129}
1130else if (childNode.LocalName == "proofErr")
1131{
1132ctObj.Items.Add(CT_ProofErr.Parse(childNode, namespaceManager));
1133ctObj.ItemsElementName.Add(ItemsChoiceType19.proofErr);
1134}
1135else if (childNode.LocalName == "sdt")
1136{
1137ctObj.Items.Add(CT_SdtBlock.Parse(childNode, namespaceManager));
1138ctObj.ItemsElementName.Add(ItemsChoiceType19.sdt);
1139}
1140else if (childNode.LocalName == "tbl")
1141{
1142ctObj.Items.Add(CT_Tbl.Parse(childNode, namespaceManager));
1143ctObj.ItemsElementName.Add(ItemsChoiceType19.tbl);
1144}
1145}
1146return ctObj;
1147}
1148
1149internal void Write(StreamWriter sw, string nodeName)
1150{
1151sw.Write(string.Format("<w:{0}", nodeName));
1152sw.Write(">");
1153foreach (object o in this.Items)
1154{
1155if (o is CT_Bookmark)
1156((CT_Bookmark)o).Write(sw, "bookmarkStart");
1157else if (o is CT_OMath)
1158((CT_OMath)o).Write(sw, "oMath");
1159else if (o is CT_OMathPara)
1160((CT_OMathPara)o).Write(sw, "oMathPara");
1161else if (o is CT_MarkupRange)
1162((CT_MarkupRange)o).Write(sw, "bookmarkEnd");
1163else if (o is CT_MarkupRange)
1164((CT_MarkupRange)o).Write(sw, "commentRangeEnd");
1165else if (o is CT_MarkupRange)
1166((CT_MarkupRange)o).Write(sw, "commentRangeStart");
1167else if (o is CT_CustomXmlBlock)
1168((CT_CustomXmlBlock)o).Write(sw, "customXml");
1169else if (o is CT_Markup)
1170((CT_Markup)o).Write(sw, "customXmlDelRangeEnd");
1171else if (o is CT_TrackChange)
1172((CT_TrackChange)o).Write(sw, "customXmlDelRangeStart");
1173else if (o is CT_Markup)
1174((CT_Markup)o).Write(sw, "customXmlInsRangeEnd");
1175else if (o is CT_TrackChange)
1176((CT_TrackChange)o).Write(sw, "customXmlInsRangeStart");
1177else if (o is CT_Markup)
1178((CT_Markup)o).Write(sw, "customXmlMoveFromRangeEnd");
1179else if (o is CT_TrackChange)
1180((CT_TrackChange)o).Write(sw, "customXmlMoveFromRangeStart");
1181else if (o is CT_Markup)
1182((CT_Markup)o).Write(sw, "customXmlMoveToRangeEnd");
1183else if (o is CT_TrackChange)
1184((CT_TrackChange)o).Write(sw, "customXmlMoveToRangeStart");
1185else if (o is CT_RunTrackChange)
1186((CT_RunTrackChange)o).Write(sw, "del");
1187else if (o is CT_RunTrackChange)
1188((CT_RunTrackChange)o).Write(sw, "ins");
1189else if (o is CT_RunTrackChange)
1190((CT_RunTrackChange)o).Write(sw, "moveFrom");
1191else if (o is CT_MarkupRange)
1192((CT_MarkupRange)o).Write(sw, "moveFromRangeEnd");
1193else if (o is CT_MoveBookmark)
1194((CT_MoveBookmark)o).Write(sw, "moveFromRangeStart");
1195else if (o is CT_RunTrackChange)
1196((CT_RunTrackChange)o).Write(sw, "moveTo");
1197else if (o is CT_MarkupRange)
1198((CT_MarkupRange)o).Write(sw, "moveToRangeEnd");
1199else if (o is CT_MoveBookmark)
1200((CT_MoveBookmark)o).Write(sw, "moveToRangeStart");
1201else if (o is CT_P)
1202((CT_P)o).Write(sw, "p");
1203else if (o is CT_Perm)
1204((CT_Perm)o).Write(sw, "permEnd");
1205else if (o is CT_PermStart)
1206((CT_PermStart)o).Write(sw, "permStart");
1207else if (o is CT_ProofErr)
1208((CT_ProofErr)o).Write(sw, "proofErr");
1209else if (o is CT_SdtBlock)
1210((CT_SdtBlock)o).Write(sw, "sdt");
1211else if (o is CT_Tbl)
1212((CT_Tbl)o).Write(sw, "tbl");
1213}
1214sw.WriteEndW(nodeName);
1215}
1216
1217[XmlElement("oMath", typeof(CT_OMath), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
1218[XmlElement("oMathPara", typeof(CT_OMathPara), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
1219[XmlElement("bookmarkEnd", typeof(CT_MarkupRange), Order = 0)]
1220[XmlElement("bookmarkStart", typeof(CT_Bookmark), Order = 0)]
1221[XmlElement("commentRangeEnd", typeof(CT_MarkupRange), Order = 0)]
1222[XmlElement("commentRangeStart", typeof(CT_MarkupRange), Order = 0)]
1223[XmlElement("customXml", typeof(CT_CustomXmlBlock), Order = 0)]
1224[XmlElement("customXmlDelRangeEnd", typeof(CT_Markup), Order = 0)]
1225[XmlElement("customXmlDelRangeStart", typeof(CT_TrackChange), Order = 0)]
1226[XmlElement("customXmlInsRangeEnd", typeof(CT_Markup), Order = 0)]
1227[XmlElement("customXmlInsRangeStart", typeof(CT_TrackChange), Order = 0)]
1228[XmlElement("customXmlMoveFromRangeEnd", typeof(CT_Markup), Order = 0)]
1229[XmlElement("customXmlMoveFromRangeStart", typeof(CT_TrackChange), Order = 0)]
1230[XmlElement("customXmlMoveToRangeEnd", typeof(CT_Markup), Order = 0)]
1231[XmlElement("customXmlMoveToRangeStart", typeof(CT_TrackChange), Order = 0)]
1232[XmlElement("del", typeof(CT_RunTrackChange), Order = 0)]
1233[XmlElement("ins", typeof(CT_RunTrackChange), Order = 0)]
1234[XmlElement("moveFrom", typeof(CT_RunTrackChange), Order = 0)]
1235[XmlElement("moveFromRangeEnd", typeof(CT_MarkupRange), Order = 0)]
1236[XmlElement("moveFromRangeStart", typeof(CT_MoveBookmark), Order = 0)]
1237[XmlElement("moveTo", typeof(CT_RunTrackChange), Order = 0)]
1238[XmlElement("moveToRangeEnd", typeof(CT_MarkupRange), Order = 0)]
1239[XmlElement("moveToRangeStart", typeof(CT_MoveBookmark), Order = 0)]
1240[XmlElement("p", typeof(CT_P), Order = 0)]
1241[XmlElement("permEnd", typeof(CT_Perm), Order = 0)]
1242[XmlElement("permStart", typeof(CT_PermStart), Order = 0)]
1243[XmlElement("proofErr", typeof(CT_ProofErr), Order = 0)]
1244[XmlElement("sdt", typeof(CT_SdtBlock), Order = 0)]
1245[XmlElement("tbl", typeof(CT_Tbl), Order = 0)]
1246[XmlChoiceIdentifier("ItemsElementName")]
1247public ArrayList Items
1248{
1249get
1250{
1251return this.itemsField;
1252}
1253set
1254{
1255this.itemsField = value;
1256}
1257}
1258
1259[XmlElement("ItemsElementName", Order = 1)]
1260[XmlIgnore]
1261public List<ItemsChoiceType19> ItemsElementName
1262{
1263get
1264{
1265return this.itemsElementNameField ;
1266}
1267set
1268{
1269this.itemsElementNameField = value;
1270}
1271}
1272
1273public CT_P AddNewP()
1274{
1275return AddNewObject<CT_P>(ItemsChoiceType19.p);
1276}
1277#region Generic methods for object operation
1278
1279private List<T> GetObjectList<T>(ItemsChoiceType19 type) where T : class
1280{
1281lock (this)
1282{
1283List<T> list = new List<T>();
1284for (int i = 0; i < itemsElementNameField.Count; i++)
1285{
1286if (itemsElementNameField[i] == type)
1287list.Add(itemsField[i] as T);
1288}
1289return list;
1290}
1291}
1292private int SizeOfArray(ItemsChoiceType19 type)
1293{
1294lock (this)
1295{
1296int size = 0;
1297for (int i = 0; i < itemsElementNameField.Count; i++)
1298{
1299if (itemsElementNameField[i] == type)
1300size++;
1301}
1302return size;
1303}
1304}
1305private T GetObjectArray<T>(int p, ItemsChoiceType19 type) where T : class
1306{
1307lock (this)
1308{
1309int pos = GetObjectIndex(type, p);
1310if (pos < 0 || pos >= this.itemsField.Count)
1311return null;
1312return itemsField[pos] as T;
1313}
1314}
1315private T InsertNewObject<T>(ItemsChoiceType19 type, int p) where T : class, new()
1316{
1317T t = new T();
1318lock (this)
1319{
1320int pos = GetObjectIndex(type, p);
1321this.itemsElementNameField.Insert(pos, type);
1322this.itemsField.Insert(pos, t);
1323}
1324return t;
1325}
1326private T AddNewObject<T>(ItemsChoiceType19 type) where T : class, new()
1327{
1328T t = new T();
1329lock (this)
1330{
1331this.itemsElementNameField.Add(type);
1332this.itemsField.Add(t);
1333}
1334return t;
1335}
1336private void SetObject<T>(ItemsChoiceType19 type, int p, T obj) where T : class
1337{
1338lock (this)
1339{
1340int pos = GetObjectIndex(type, p);
1341if (pos < 0 || pos >= this.itemsField.Count)
1342return;
1343if (this.itemsField[pos] is T)
1344this.itemsField[pos] = obj;
1345else
1346throw new Exception(string.Format(@"object types are difference, itemsField[{0}] is {1}, and parameter obj is {2}",
1347pos, this.itemsField[pos].GetType().Name, typeof(T).Name));
1348}
1349}
1350private int GetObjectIndex(ItemsChoiceType19 type, int p)
1351{
1352int index = -1;
1353int pos = 0;
1354for (int i = 0; i < itemsElementNameField.Count; i++)
1355{
1356if (itemsElementNameField[i] == type)
1357{
1358if (pos == p)
1359{
1360index = i;
1361break;
1362}
1363else
1364pos++;
1365}
1366}
1367return index;
1368}
1369private void RemoveObject(ItemsChoiceType19 type, int p)
1370{
1371lock (this)
1372{
1373int pos = GetObjectIndex(type, p);
1374if (pos < 0 || pos >= this.itemsField.Count)
1375return;
1376itemsElementNameField.RemoveAt(pos);
1377itemsField.RemoveAt(pos);
1378}
1379}
1380#endregion
1381}
1382
1383[Serializable]
1384[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IncludeInSchema = false)]
1385public enum ItemsChoiceType19
1386{
1387
1388
1389[XmlEnum("http://schemas.openxmlformats.org/officeDocument/2006/math:oMath")]
1390oMath,
1391
1392
1393[XmlEnum("http://schemas.openxmlformats.org/officeDocument/2006/math:oMathPara")]
1394oMathPara,
1395
1396
1397bookmarkEnd,
1398
1399
1400bookmarkStart,
1401
1402
1403commentRangeEnd,
1404
1405
1406commentRangeStart,
1407
1408
1409customXml,
1410
1411
1412customXmlDelRangeEnd,
1413
1414
1415customXmlDelRangeStart,
1416
1417
1418customXmlInsRangeEnd,
1419
1420
1421customXmlInsRangeStart,
1422
1423
1424customXmlMoveFromRangeEnd,
1425
1426
1427customXmlMoveFromRangeStart,
1428
1429
1430customXmlMoveToRangeEnd,
1431
1432
1433customXmlMoveToRangeStart,
1434
1435
1436del,
1437
1438
1439ins,
1440
1441
1442moveFrom,
1443
1444
1445moveFromRangeEnd,
1446
1447
1448moveFromRangeStart,
1449
1450
1451moveTo,
1452
1453
1454moveToRangeEnd,
1455
1456
1457moveToRangeStart,
1458
1459
1460p,
1461
1462
1463permEnd,
1464
1465
1466permStart,
1467
1468
1469proofErr,
1470
1471
1472sdt,
1473
1474
1475tbl,
1476}
1477
1478[Serializable]
1479
1480[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
1481[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
1482public class CT_SdtContentRow
1483{
1484
1485private ArrayList itemsField;
1486
1487private List<ItemsChoiceType22> itemsElementNameField;
1488
1489public CT_SdtContentRow()
1490{
1491this.itemsElementNameField = new List<ItemsChoiceType22>();
1492this.itemsField = new ArrayList();
1493}
1494public static CT_SdtContentRow Parse(XmlNode node, XmlNamespaceManager namespaceManager)
1495{
1496if (node == null)
1497return null;
1498CT_SdtContentRow ctObj = new CT_SdtContentRow();
1499foreach (XmlNode childNode in node.ChildNodes)
1500{
1501if (childNode.LocalName == "oMath")
1502{
1503ctObj.Items.Add(CT_OMath.Parse(childNode, namespaceManager));
1504ctObj.ItemsElementName.Add(ItemsChoiceType22.oMath);
1505}
1506else if (childNode.LocalName == "oMathPara")
1507{
1508ctObj.Items.Add(CT_OMathPara.Parse(childNode, namespaceManager));
1509ctObj.ItemsElementName.Add(ItemsChoiceType22.oMathPara);
1510}
1511else if (childNode.LocalName == "bookmarkEnd")
1512{
1513ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1514ctObj.ItemsElementName.Add(ItemsChoiceType22.bookmarkEnd);
1515}
1516else if (childNode.LocalName == "bookmarkStart")
1517{
1518ctObj.Items.Add(CT_Bookmark.Parse(childNode, namespaceManager));
1519ctObj.ItemsElementName.Add(ItemsChoiceType22.bookmarkStart);
1520}
1521else if (childNode.LocalName == "commentRangeEnd")
1522{
1523ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1524ctObj.ItemsElementName.Add(ItemsChoiceType22.commentRangeEnd);
1525}
1526else if (childNode.LocalName == "commentRangeStart")
1527{
1528ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1529ctObj.ItemsElementName.Add(ItemsChoiceType22.commentRangeStart);
1530}
1531else if (childNode.LocalName == "customXml")
1532{
1533ctObj.Items.Add(CT_CustomXmlRow.Parse(childNode, namespaceManager));
1534ctObj.ItemsElementName.Add(ItemsChoiceType22.customXml);
1535}
1536else if (childNode.LocalName == "customXmlDelRangeEnd")
1537{
1538ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1539ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlDelRangeEnd);
1540}
1541else if (childNode.LocalName == "customXmlDelRangeStart")
1542{
1543ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1544ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlDelRangeStart);
1545}
1546else if (childNode.LocalName == "customXmlInsRangeEnd")
1547{
1548ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1549ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlInsRangeEnd);
1550}
1551else if (childNode.LocalName == "customXmlInsRangeStart")
1552{
1553ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1554ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlInsRangeStart);
1555}
1556else if (childNode.LocalName == "customXmlMoveFromRangeEnd")
1557{
1558ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1559ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlMoveFromRangeEnd);
1560}
1561else if (childNode.LocalName == "customXmlMoveFromRangeStart")
1562{
1563ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1564ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlMoveFromRangeStart);
1565}
1566else if (childNode.LocalName == "customXmlMoveToRangeEnd")
1567{
1568ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
1569ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlMoveToRangeEnd);
1570}
1571else if (childNode.LocalName == "customXmlMoveToRangeStart")
1572{
1573ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
1574ctObj.ItemsElementName.Add(ItemsChoiceType22.customXmlMoveToRangeStart);
1575}
1576else if (childNode.LocalName == "del")
1577{
1578ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1579ctObj.ItemsElementName.Add(ItemsChoiceType22.del);
1580}
1581else if (childNode.LocalName == "ins")
1582{
1583ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1584ctObj.ItemsElementName.Add(ItemsChoiceType22.ins);
1585}
1586else if (childNode.LocalName == "moveFrom")
1587{
1588ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1589ctObj.ItemsElementName.Add(ItemsChoiceType22.moveFrom);
1590}
1591else if (childNode.LocalName == "moveFromRangeEnd")
1592{
1593ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1594ctObj.ItemsElementName.Add(ItemsChoiceType22.moveFromRangeEnd);
1595}
1596else if (childNode.LocalName == "moveFromRangeStart")
1597{
1598ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
1599ctObj.ItemsElementName.Add(ItemsChoiceType22.moveFromRangeStart);
1600}
1601else if (childNode.LocalName == "moveTo")
1602{
1603ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
1604ctObj.ItemsElementName.Add(ItemsChoiceType22.moveTo);
1605}
1606else if (childNode.LocalName == "moveToRangeEnd")
1607{
1608ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
1609ctObj.ItemsElementName.Add(ItemsChoiceType22.moveToRangeEnd);
1610}
1611else if (childNode.LocalName == "moveToRangeStart")
1612{
1613ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
1614ctObj.ItemsElementName.Add(ItemsChoiceType22.moveToRangeStart);
1615}
1616else if (childNode.LocalName == "permEnd")
1617{
1618ctObj.Items.Add(CT_Perm.Parse(childNode, namespaceManager));
1619ctObj.ItemsElementName.Add(ItemsChoiceType22.permEnd);
1620}
1621else if (childNode.LocalName == "permStart")
1622{
1623ctObj.Items.Add(CT_PermStart.Parse(childNode, namespaceManager));
1624ctObj.ItemsElementName.Add(ItemsChoiceType22.permStart);
1625}
1626else if (childNode.LocalName == "proofErr")
1627{
1628ctObj.Items.Add(CT_ProofErr.Parse(childNode, namespaceManager));
1629ctObj.ItemsElementName.Add(ItemsChoiceType22.proofErr);
1630}
1631else if (childNode.LocalName == "sdt")
1632{
1633ctObj.Items.Add(CT_SdtRow.Parse(childNode, namespaceManager));
1634ctObj.ItemsElementName.Add(ItemsChoiceType22.sdt);
1635}
1636else if (childNode.LocalName == "tr")
1637{
1638ctObj.Items.Add(CT_Row.Parse(childNode, namespaceManager, ctObj));
1639ctObj.ItemsElementName.Add(ItemsChoiceType22.tr);
1640}
1641}
1642return ctObj;
1643}
1644
1645internal void Write(StreamWriter sw, string nodeName)
1646{
1647sw.Write(string.Format("<w:{0}", nodeName));
1648sw.Write(">");
1649foreach (object o in this.Items)
1650{
1651if (o is CT_OMath)
1652((CT_OMath)o).Write(sw, "oMath");
1653else if (o is CT_OMathPara)
1654((CT_OMathPara)o).Write(sw, "oMathPara");
1655else if (o is CT_MarkupRange)
1656((CT_MarkupRange)o).Write(sw, "bookmarkEnd");
1657else if (o is CT_Bookmark)
1658((CT_Bookmark)o).Write(sw, "bookmarkStart");
1659else if (o is CT_MarkupRange)
1660((CT_MarkupRange)o).Write(sw, "commentRangeEnd");
1661else if (o is CT_MarkupRange)
1662((CT_MarkupRange)o).Write(sw, "commentRangeStart");
1663else if (o is CT_CustomXmlRow)
1664((CT_CustomXmlRow)o).Write(sw, "customXml");
1665else if (o is CT_Markup)
1666((CT_Markup)o).Write(sw, "customXmlDelRangeEnd");
1667else if (o is CT_TrackChange)
1668((CT_TrackChange)o).Write(sw, "customXmlDelRangeStart");
1669else if (o is CT_Markup)
1670((CT_Markup)o).Write(sw, "customXmlInsRangeEnd");
1671else if (o is CT_TrackChange)
1672((CT_TrackChange)o).Write(sw, "customXmlInsRangeStart");
1673else if (o is CT_Markup)
1674((CT_Markup)o).Write(sw, "customXmlMoveFromRangeEnd");
1675else if (o is CT_TrackChange)
1676((CT_TrackChange)o).Write(sw, "customXmlMoveFromRangeStart");
1677else if (o is CT_Markup)
1678((CT_Markup)o).Write(sw, "customXmlMoveToRangeEnd");
1679else if (o is CT_TrackChange)
1680((CT_TrackChange)o).Write(sw, "customXmlMoveToRangeStart");
1681else if (o is CT_RunTrackChange)
1682((CT_RunTrackChange)o).Write(sw, "del");
1683else if (o is CT_RunTrackChange)
1684((CT_RunTrackChange)o).Write(sw, "ins");
1685else if (o is CT_RunTrackChange)
1686((CT_RunTrackChange)o).Write(sw, "moveFrom");
1687else if (o is CT_MarkupRange)
1688((CT_MarkupRange)o).Write(sw, "moveFromRangeEnd");
1689else if (o is CT_MoveBookmark)
1690((CT_MoveBookmark)o).Write(sw, "moveFromRangeStart");
1691else if (o is CT_RunTrackChange)
1692((CT_RunTrackChange)o).Write(sw, "moveTo");
1693else if (o is CT_MarkupRange)
1694((CT_MarkupRange)o).Write(sw, "moveToRangeEnd");
1695else if (o is CT_MoveBookmark)
1696((CT_MoveBookmark)o).Write(sw, "moveToRangeStart");
1697else if (o is CT_Perm)
1698((CT_Perm)o).Write(sw, "permEnd");
1699else if (o is CT_PermStart)
1700((CT_PermStart)o).Write(sw, "permStart");
1701else if (o is CT_ProofErr)
1702((CT_ProofErr)o).Write(sw, "proofErr");
1703else if (o is CT_SdtRow)
1704((CT_SdtRow)o).Write(sw, "sdt");
1705else if (o is CT_Row)
1706((CT_Row)o).Write(sw, "tr");
1707}
1708sw.WriteEndW(nodeName);
1709}
1710
1711[XmlElement("oMath", typeof(CT_OMath), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
1712[XmlElement("oMathPara", typeof(CT_OMathPara), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
1713[XmlElement("bookmarkEnd", typeof(CT_MarkupRange), Order = 0)]
1714[XmlElement("bookmarkStart", typeof(CT_Bookmark), Order = 0)]
1715[XmlElement("commentRangeEnd", typeof(CT_MarkupRange), Order = 0)]
1716[XmlElement("commentRangeStart", typeof(CT_MarkupRange), Order = 0)]
1717[XmlElement("customXml", typeof(CT_CustomXmlRow), Order = 0)]
1718[XmlElement("customXmlDelRangeEnd", typeof(CT_Markup), Order = 0)]
1719[XmlElement("customXmlDelRangeStart", typeof(CT_TrackChange), Order = 0)]
1720[XmlElement("customXmlInsRangeEnd", typeof(CT_Markup), Order = 0)]
1721[XmlElement("customXmlInsRangeStart", typeof(CT_TrackChange), Order = 0)]
1722[XmlElement("customXmlMoveFromRangeEnd", typeof(CT_Markup), Order = 0)]
1723[XmlElement("customXmlMoveFromRangeStart", typeof(CT_TrackChange), Order = 0)]
1724[XmlElement("customXmlMoveToRangeEnd", typeof(CT_Markup), Order = 0)]
1725[XmlElement("customXmlMoveToRangeStart", typeof(CT_TrackChange), Order = 0)]
1726[XmlElement("del", typeof(CT_RunTrackChange), Order = 0)]
1727[XmlElement("ins", typeof(CT_RunTrackChange), Order = 0)]
1728[XmlElement("moveFrom", typeof(CT_RunTrackChange), Order = 0)]
1729[XmlElement("moveFromRangeEnd", typeof(CT_MarkupRange), Order = 0)]
1730[XmlElement("moveFromRangeStart", typeof(CT_MoveBookmark), Order = 0)]
1731[XmlElement("moveTo", typeof(CT_RunTrackChange), Order = 0)]
1732[XmlElement("moveToRangeEnd", typeof(CT_MarkupRange), Order = 0)]
1733[XmlElement("moveToRangeStart", typeof(CT_MoveBookmark), Order = 0)]
1734[XmlElement("permEnd", typeof(CT_Perm), Order = 0)]
1735[XmlElement("permStart", typeof(CT_PermStart), Order = 0)]
1736[XmlElement("proofErr", typeof(CT_ProofErr), Order = 0)]
1737[XmlElement("sdt", typeof(CT_SdtRow), Order = 0)]
1738[XmlElement("tr", typeof(CT_Row), Order = 0)]
1739[XmlChoiceIdentifier("ItemsElementName")]
1740public ArrayList Items
1741{
1742get
1743{
1744return this.itemsField;
1745}
1746set
1747{
1748this.itemsField = value;
1749}
1750}
1751
1752[XmlElement("ItemsElementName", Order = 1)]
1753[XmlIgnore]
1754public List<ItemsChoiceType22> ItemsElementName
1755{
1756get
1757{
1758return this.itemsElementNameField;
1759}
1760set
1761{
1762this.itemsElementNameField = value;
1763}
1764}
1765}
1766
1767
1768[Serializable]
1769
1770[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
1771[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
1772public class CT_SdtPr
1773{
1774
1775private ArrayList itemsField;
1776
1777private List<SdtPrElementType> itemsElementNameField;
1778
1779public CT_SdtPr()
1780{
1781this.itemsElementNameField = new List<SdtPrElementType>();
1782this.itemsField = new ArrayList();
1783}
1784
1785[XmlElement("alias", typeof(CT_String), Order = 0)]
1786[XmlElement("bibliography", typeof(CT_Empty), Order = 0)]
1787[XmlElement("citation", typeof(CT_Empty), Order = 0)]
1788[XmlElement("comboBox", typeof(CT_SdtComboBox), Order = 0)]
1789[XmlElement("dataBinding", typeof(CT_DataBinding), Order = 0)]
1790[XmlElement("date", typeof(CT_SdtDate), Order = 0)]
1791[XmlElement("docPartList", typeof(CT_SdtDocPart), Order = 0)]
1792[XmlElement("docPartObj", typeof(CT_SdtDocPart), Order = 0)]
1793[XmlElement("dropDownList", typeof(CT_SdtDropDownList), Order = 0)]
1794[XmlElement("equation", typeof(CT_Empty), Order = 0)]
1795[XmlElement("group", typeof(CT_Empty), Order = 0)]
1796[XmlElement("id", typeof(CT_DecimalNumber), Order = 0)]
1797[XmlElement("lock", typeof(CT_Lock), Order = 0)]
1798[XmlElement("picture", typeof(CT_Empty), Order = 0)]
1799[XmlElement("placeholder", typeof(CT_Placeholder), Order = 0)]
1800[XmlElement("rPr", typeof(CT_RPr), Order = 0)]
1801[XmlElement("richText", typeof(CT_Empty), Order = 0)]
1802[XmlElement("showingPlcHdr", typeof(CT_OnOff), Order = 0)]
1803[XmlElement("tag", typeof(CT_String), Order = 0)]
1804[XmlElement("temporary", typeof(CT_OnOff), Order = 0)]
1805[XmlElement("text", typeof(CT_SdtText), Order = 0)]
1806[XmlChoiceIdentifier("ItemsElementName")]
1807public ArrayList Items
1808{
1809get
1810{
1811return this.itemsField;
1812}
1813set
1814{
1815this.itemsField = value;
1816}
1817}
1818
1819[XmlElement("ItemsElementName", Order = 1)]
1820[XmlIgnore]
1821public List<SdtPrElementType> ItemsElementName
1822{
1823get
1824{
1825return this.itemsElementNameField;
1826}
1827set
1828{
1829this.itemsElementNameField = value;
1830}
1831}
1832public static CT_SdtPr Parse(XmlNode node, XmlNamespaceManager namespaceManager)
1833{
1834if (node == null)
1835return null;
1836CT_SdtPr ctObj = new CT_SdtPr();
1837foreach (XmlNode childNode in node.ChildNodes)
1838{
1839if (childNode.LocalName == "richText")
1840{
1841ctObj.Items.Add(new CT_Empty());
1842ctObj.ItemsElementName.Add(SdtPrElementType.richText);
1843}
1844else if (childNode.LocalName == "docPartList")
1845{
1846ctObj.Items.Add(CT_SdtDocPart.Parse(childNode, namespaceManager));
1847ctObj.ItemsElementName.Add(SdtPrElementType.docPartList);
1848}
1849else if (childNode.LocalName == "docPartObj")
1850{
1851ctObj.Items.Add(CT_SdtDocPart.Parse(childNode, namespaceManager));
1852ctObj.ItemsElementName.Add(SdtPrElementType.docPartObj);
1853}
1854else if (childNode.LocalName == "dropDownList")
1855{
1856ctObj.Items.Add(CT_SdtDropDownList.Parse(childNode, namespaceManager));
1857ctObj.ItemsElementName.Add(SdtPrElementType.dropDownList);
1858}
1859else if (childNode.LocalName == "equation")
1860{
1861ctObj.Items.Add(new CT_Empty());
1862ctObj.ItemsElementName.Add(SdtPrElementType.equation);
1863}
1864else if (childNode.LocalName == "group")
1865{
1866ctObj.Items.Add(new CT_Empty());
1867ctObj.ItemsElementName.Add(SdtPrElementType.group);
1868}
1869else if (childNode.LocalName == "id")
1870{
1871ctObj.Items.Add(CT_DecimalNumber.Parse(childNode, namespaceManager));
1872ctObj.ItemsElementName.Add(SdtPrElementType.id);
1873}
1874else if (childNode.LocalName == "lock")
1875{
1876ctObj.Items.Add(CT_Lock.Parse(childNode, namespaceManager));
1877ctObj.ItemsElementName.Add(SdtPrElementType.@lock);
1878}
1879else if (childNode.LocalName == "date")
1880{
1881ctObj.Items.Add(CT_SdtDate.Parse(childNode, namespaceManager));
1882ctObj.ItemsElementName.Add(SdtPrElementType.date);
1883}
1884else if (childNode.LocalName == "placeholder")
1885{
1886ctObj.Items.Add(CT_Placeholder.Parse(childNode, namespaceManager));
1887ctObj.ItemsElementName.Add(SdtPrElementType.placeholder);
1888}
1889else if (childNode.LocalName == "rPr")
1890{
1891ctObj.Items.Add(CT_RPr.Parse(childNode, namespaceManager));
1892ctObj.ItemsElementName.Add(SdtPrElementType.rPr);
1893}
1894else if (childNode.LocalName == "showingPlcHdr")
1895{
1896ctObj.Items.Add(CT_OnOff.Parse(childNode, namespaceManager));
1897ctObj.ItemsElementName.Add(SdtPrElementType.showingPlcHdr);
1898}
1899else if (childNode.LocalName == "tag")
1900{
1901ctObj.Items.Add(CT_String.Parse(childNode, namespaceManager));
1902ctObj.ItemsElementName.Add(SdtPrElementType.tag);
1903}
1904else if (childNode.LocalName == "temporary")
1905{
1906ctObj.Items.Add(CT_OnOff.Parse(childNode, namespaceManager));
1907ctObj.ItemsElementName.Add(SdtPrElementType.temporary);
1908}
1909else if (childNode.LocalName == "text")
1910{
1911ctObj.Items.Add(CT_SdtText.Parse(childNode, namespaceManager));
1912ctObj.ItemsElementName.Add(SdtPrElementType.text);
1913}
1914else if (childNode.LocalName == "picture")
1915{
1916ctObj.Items.Add(new CT_Empty());
1917ctObj.ItemsElementName.Add(SdtPrElementType.picture);
1918}
1919else if (childNode.LocalName == "alias")
1920{
1921ctObj.Items.Add(CT_String.Parse(childNode, namespaceManager));
1922ctObj.ItemsElementName.Add(SdtPrElementType.alias);
1923}
1924else if (childNode.LocalName == "bibliography")
1925{
1926ctObj.Items.Add(new CT_Empty());
1927ctObj.ItemsElementName.Add(SdtPrElementType.bibliography);
1928}
1929else if (childNode.LocalName == "citation")
1930{
1931ctObj.Items.Add(new CT_Empty());
1932ctObj.ItemsElementName.Add(SdtPrElementType.citation);
1933}
1934else if (childNode.LocalName == "comboBox")
1935{
1936ctObj.Items.Add(CT_SdtComboBox.Parse(childNode, namespaceManager));
1937ctObj.ItemsElementName.Add(SdtPrElementType.comboBox);
1938}
1939else if (childNode.LocalName == "dataBinding")
1940{
1941ctObj.Items.Add(CT_DataBinding.Parse(childNode, namespaceManager));
1942ctObj.ItemsElementName.Add(SdtPrElementType.dataBinding);
1943}
1944}
1945return ctObj;
1946}
1947
1948internal void Write(StreamWriter sw, string nodeName)
1949{
1950sw.Write(string.Format("<w:{0}", nodeName));
1951sw.Write(">");
1952
1953for (int i=0;i<this.Items.Count;i++)
1954{
1955object o = Items[i];
1956SdtPrElementType t= this.itemsElementNameField[i];
1957if (o is CT_Empty && t== SdtPrElementType.richText)
1958sw.Write("<w:richText/>");
1959else if (o is CT_SdtDocPart&& t == SdtPrElementType.docPartList)
1960((CT_SdtDocPart)o).Write(sw, "docPartList");
1961else if (o is CT_SdtDocPart&& t == SdtPrElementType.docPartObj)
1962((CT_SdtDocPart)o).Write(sw, "docPartObj");
1963else if (o is CT_SdtDropDownList)
1964((CT_SdtDropDownList)o).Write(sw, "dropDownList");
1965else if (o is CT_Empty&& t== SdtPrElementType.equation)
1966sw.Write("<w:equation/>");
1967else if (o is CT_Empty&& t== SdtPrElementType.group)
1968sw.Write("<w:group/>");
1969else if (o is CT_DecimalNumber&& t== SdtPrElementType.id)
1970((CT_DecimalNumber)o).Write(sw, "id");
1971else if (o is CT_Lock)
1972((CT_Lock)o).Write(sw, "lock");
1973else if (o is CT_SdtDate)
1974((CT_SdtDate)o).Write(sw, "date");
1975else if (o is CT_Placeholder)
1976((CT_Placeholder)o).Write(sw, "placeholder");
1977else if (o is CT_RPr)
1978((CT_RPr)o).Write(sw, "rPr");
1979else if (o is CT_OnOff && t== SdtPrElementType.showingPlcHdr)
1980((CT_OnOff)o).Write(sw, "showingPlcHdr");
1981else if (o is CT_String&& t== SdtPrElementType.tag)
1982((CT_String)o).Write(sw, "tag");
1983else if (o is CT_OnOff && t== SdtPrElementType.temporary)
1984((CT_OnOff)o).Write(sw, "temporary");
1985else if (o is CT_SdtText)
1986((CT_SdtText)o).Write(sw, "text");
1987else if (o is CT_Empty && t== SdtPrElementType.picture)
1988sw.Write("<w:picture/>");
1989else if (o is CT_String&& t== SdtPrElementType.alias)
1990((CT_String)o).Write(sw, "alias");
1991else if (o is CT_Empty && t== SdtPrElementType.bibliography)
1992sw.Write("<w:bibliography/>");
1993else if (o is CT_Empty && t== SdtPrElementType.citation)
1994sw.Write("<w:citation/>");
1995else if (o is CT_SdtComboBox)
1996((CT_SdtComboBox)o).Write(sw, "comboBox");
1997else if (o is CT_DataBinding)
1998((CT_DataBinding)o).Write(sw, "dataBinding");
1999
2000}
2001sw.WriteEndW(nodeName);
2002}
2003
2004public CT_DecimalNumber AddNewId()
2005{
2006return AddNewObject<CT_DecimalNumber>(SdtPrElementType.id);
2007}
2008
2009public CT_SdtDocPart AddNewDocPartObj()
2010{
2011return AddNewObject<CT_SdtDocPart>(SdtPrElementType.docPartObj);
2012}
2013
2014public CT_String[] GetAliasArray()
2015{
2016return GetObjectList<CT_String>(SdtPrElementType.alias).ToArray();
2017}
2018
2019#region Generic methods for object operation
2020
2021public List<T> GetObjectList<T>(SdtPrElementType type) where T : class
2022{
2023lock (this)
2024{
2025List<T> list = new List<T>();
2026for (int i = 0; i < itemsElementNameField.Count; i++)
2027{
2028if (itemsElementNameField[i] == type)
2029list.Add(itemsField[i] as T);
2030}
2031return list;
2032}
2033}
2034private int SizeOfArray(SdtPrElementType type)
2035{
2036lock (this)
2037{
2038int size = 0;
2039for (int i = 0; i < itemsElementNameField.Count; i++)
2040{
2041if (itemsElementNameField[i] == type)
2042size++;
2043}
2044return size;
2045}
2046}
2047private T GetObjectArray<T>(int p, SdtPrElementType type) where T : class
2048{
2049lock (this)
2050{
2051int pos = GetObjectIndex(type, p);
2052if (pos < 0 || pos >= this.itemsField.Count)
2053return null;
2054return itemsField[pos] as T;
2055}
2056}
2057private T InsertNewObject<T>(SdtPrElementType type, int p) where T : class, new()
2058{
2059T t = new T();
2060lock (this)
2061{
2062int pos = GetObjectIndex(type, p);
2063this.itemsElementNameField.Insert(pos, type);
2064this.itemsField.Insert(pos, t);
2065}
2066return t;
2067}
2068private T AddNewObject<T>(SdtPrElementType type) where T : class, new()
2069{
2070T t = new T();
2071lock (this)
2072{
2073this.itemsElementNameField.Add(type);
2074this.itemsField.Add(t);
2075}
2076return t;
2077}
2078private void SetObject<T>(SdtPrElementType type, int p, T obj) where T : class
2079{
2080lock (this)
2081{
2082int pos = GetObjectIndex(type, p);
2083if (pos < 0 || pos >= this.itemsField.Count)
2084return;
2085if (this.itemsField[pos] is T)
2086this.itemsField[pos] = obj;
2087else
2088throw new Exception(string.Format(@"object types are difference, itemsField[{0}] is {1}, and parameter obj is {2}",
2089pos, this.itemsField[pos].GetType().Name, typeof(T).Name));
2090}
2091}
2092private int GetObjectIndex(SdtPrElementType type, int p)
2093{
2094int index = -1;
2095int pos = 0;
2096for (int i = 0; i < itemsElementNameField.Count; i++)
2097{
2098if (itemsElementNameField[i] == type)
2099{
2100if (pos == p)
2101{
2102index = i;
2103break;
2104}
2105else
2106pos++;
2107}
2108}
2109return index;
2110}
2111private void RemoveObject(SdtPrElementType type, int p)
2112{
2113lock (this)
2114{
2115int pos = GetObjectIndex(type, p);
2116if (pos < 0 || pos >= this.itemsField.Count)
2117return;
2118itemsElementNameField.RemoveAt(pos);
2119itemsField.RemoveAt(pos);
2120}
2121}
2122#endregion
2123}
2124
2125[Serializable]
2126[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IncludeInSchema = false)]
2127public enum SdtPrElementType
2128{
2129
2130
2131alias,
2132
2133
2134bibliography,
2135
2136
2137citation,
2138
2139
2140comboBox,
2141
2142
2143dataBinding,
2144
2145
2146date,
2147
2148
2149docPartList,
2150
2151
2152docPartObj,
2153
2154
2155dropDownList,
2156
2157
2158equation,
2159
2160
2161group,
2162
2163
2164id,
2165
2166
2167@lock,
2168
2169
2170picture,
2171
2172
2173placeholder,
2174
2175
2176rPr,
2177
2178
2179richText,
2180
2181
2182showingPlcHdr,
2183
2184
2185tag,
2186
2187
2188temporary,
2189
2190
2191text,
2192}
2193
2194[Serializable]
2195
2196[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2197[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
2198public class CT_SdtEndPr
2199{
2200
2201private List<CT_RPr> itemsField;
2202
2203public CT_SdtEndPr()
2204{
2205this.itemsField = new List<CT_RPr>();
2206}
2207
2208[XmlElement("rPr", Order = 0)]
2209public List<CT_RPr> Items
2210{
2211get
2212{
2213return this.itemsField;
2214}
2215set
2216{
2217this.itemsField = value;
2218}
2219}
2220
2221public CT_RPr AddNewRPr()
2222{
2223CT_RPr r = new CT_RPr();
2224this.itemsField.Add(r);
2225return r;
2226}
2227}
2228
2229
2230[Serializable]
2231
2232[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2233[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
2234public class CT_SdtContentRun
2235{
2236
2237private ArrayList itemsField;
2238
2239private List<ItemsChoiceType18> itemsElementNameField;
2240
2241public CT_SdtContentRun()
2242{
2243this.itemsElementNameField = new List<ItemsChoiceType18>();
2244this.itemsField = new ArrayList();
2245}
2246public static CT_SdtContentRun Parse(XmlNode node, XmlNamespaceManager namespaceManager)
2247{
2248if (node == null)
2249return null;
2250CT_SdtContentRun ctObj = new CT_SdtContentRun();
2251foreach (XmlNode childNode in node.ChildNodes)
2252{
2253if (childNode.LocalName == "permStart")
2254{
2255ctObj.Items.Add(CT_PermStart.Parse(childNode, namespaceManager));
2256ctObj.ItemsElementName.Add(ItemsChoiceType18.permStart);
2257}
2258else if (childNode.LocalName == "moveToRangeEnd")
2259{
2260ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
2261ctObj.ItemsElementName.Add(ItemsChoiceType18.moveToRangeEnd);
2262}
2263else if (childNode.LocalName == "moveToRangeStart")
2264{
2265ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
2266ctObj.ItemsElementName.Add(ItemsChoiceType18.moveToRangeStart);
2267}
2268else if (childNode.LocalName == "commentRangeEnd")
2269{
2270ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
2271ctObj.ItemsElementName.Add(ItemsChoiceType18.commentRangeEnd);
2272}
2273else if (childNode.LocalName == "commentRangeStart")
2274{
2275ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
2276ctObj.ItemsElementName.Add(ItemsChoiceType18.commentRangeStart);
2277}
2278else if (childNode.LocalName == "customXml")
2279{
2280ctObj.Items.Add(CT_CustomXmlRun.Parse(childNode, namespaceManager));
2281ctObj.ItemsElementName.Add(ItemsChoiceType18.customXml);
2282}
2283else if (childNode.LocalName == "customXmlDelRangeEnd")
2284{
2285ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
2286ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlDelRangeEnd);
2287}
2288else if (childNode.LocalName == "customXmlDelRangeStart")
2289{
2290ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
2291ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlDelRangeStart);
2292}
2293else if (childNode.LocalName == "customXmlInsRangeEnd")
2294{
2295ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
2296ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlInsRangeEnd);
2297}
2298else if (childNode.LocalName == "customXmlInsRangeStart")
2299{
2300ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
2301ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlInsRangeStart);
2302}
2303else if (childNode.LocalName == "customXmlMoveFromRangeEnd")
2304{
2305ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
2306ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlMoveFromRangeEnd);
2307}
2308else if (childNode.LocalName == "customXmlMoveFromRangeStart")
2309{
2310ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
2311ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlMoveFromRangeStart);
2312}
2313else if (childNode.LocalName == "customXmlMoveToRangeEnd")
2314{
2315ctObj.Items.Add(CT_Markup.Parse(childNode, namespaceManager));
2316ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlMoveToRangeEnd);
2317}
2318else if (childNode.LocalName == "customXmlMoveToRangeStart")
2319{
2320ctObj.Items.Add(CT_TrackChange.Parse(childNode, namespaceManager));
2321ctObj.ItemsElementName.Add(ItemsChoiceType18.customXmlMoveToRangeStart);
2322}
2323else if (childNode.LocalName == "del")
2324{
2325ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
2326ctObj.ItemsElementName.Add(ItemsChoiceType18.del);
2327}
2328else if (childNode.LocalName == "fldSimple")
2329{
2330ctObj.Items.Add(CT_SimpleField.Parse(childNode, namespaceManager));
2331ctObj.ItemsElementName.Add(ItemsChoiceType18.fldSimple);
2332}
2333else if (childNode.LocalName == "hyperlink")
2334{
2335ctObj.Items.Add(CT_Hyperlink1.Parse(childNode, namespaceManager));
2336ctObj.ItemsElementName.Add(ItemsChoiceType18.hyperlink);
2337}
2338else if (childNode.LocalName == "ins")
2339{
2340ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
2341ctObj.ItemsElementName.Add(ItemsChoiceType18.ins);
2342}
2343else if (childNode.LocalName == "moveFrom")
2344{
2345ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
2346ctObj.ItemsElementName.Add(ItemsChoiceType18.moveFrom);
2347}
2348else if (childNode.LocalName == "bookmarkStart")
2349{
2350ctObj.Items.Add(CT_Bookmark.Parse(childNode, namespaceManager));
2351ctObj.ItemsElementName.Add(ItemsChoiceType18.bookmarkStart);
2352}
2353else if (childNode.LocalName == "moveFromRangeStart")
2354{
2355ctObj.Items.Add(CT_MoveBookmark.Parse(childNode, namespaceManager));
2356ctObj.ItemsElementName.Add(ItemsChoiceType18.moveFromRangeStart);
2357}
2358else if (childNode.LocalName == "moveTo")
2359{
2360ctObj.Items.Add(CT_RunTrackChange.Parse(childNode, namespaceManager));
2361ctObj.ItemsElementName.Add(ItemsChoiceType18.moveTo);
2362}
2363else if (childNode.LocalName == "permEnd")
2364{
2365ctObj.Items.Add(CT_Perm.Parse(childNode, namespaceManager));
2366ctObj.ItemsElementName.Add(ItemsChoiceType18.permEnd);
2367}
2368else if (childNode.LocalName == "oMath")
2369{
2370ctObj.Items.Add(CT_OMath.Parse(childNode, namespaceManager));
2371ctObj.ItemsElementName.Add(ItemsChoiceType18.oMath);
2372}
2373else if (childNode.LocalName == "proofErr")
2374{
2375ctObj.Items.Add(CT_ProofErr.Parse(childNode, namespaceManager));
2376ctObj.ItemsElementName.Add(ItemsChoiceType18.proofErr);
2377}
2378else if (childNode.LocalName == "r")
2379{
2380ctObj.Items.Add(CT_R.Parse(childNode, namespaceManager));
2381ctObj.ItemsElementName.Add(ItemsChoiceType18.r);
2382}
2383else if (childNode.LocalName == "sdt")
2384{
2385ctObj.Items.Add(CT_SdtRun.Parse(childNode, namespaceManager));
2386ctObj.ItemsElementName.Add(ItemsChoiceType18.sdt);
2387}
2388else if (childNode.LocalName == "smartTag")
2389{
2390ctObj.Items.Add(CT_SmartTagRun.Parse(childNode, namespaceManager));
2391ctObj.ItemsElementName.Add(ItemsChoiceType18.smartTag);
2392}
2393else if (childNode.LocalName == "subDoc")
2394{
2395ctObj.Items.Add(CT_Rel.Parse(childNode, namespaceManager));
2396ctObj.ItemsElementName.Add(ItemsChoiceType18.subDoc);
2397}
2398else if (childNode.LocalName == "moveFromRangeEnd")
2399{
2400ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
2401ctObj.ItemsElementName.Add(ItemsChoiceType18.moveFromRangeEnd);
2402}
2403else if (childNode.LocalName == "oMathPara")
2404{
2405ctObj.Items.Add(CT_OMathPara.Parse(childNode, namespaceManager));
2406ctObj.ItemsElementName.Add(ItemsChoiceType18.oMathPara);
2407}
2408else if (childNode.LocalName == "bookmarkEnd")
2409{
2410ctObj.Items.Add(CT_MarkupRange.Parse(childNode, namespaceManager));
2411ctObj.ItemsElementName.Add(ItemsChoiceType18.bookmarkEnd);
2412}
2413}
2414return ctObj;
2415}
2416
2417internal void Write(StreamWriter sw, string nodeName)
2418{
2419sw.Write(string.Format("<w:{0}", nodeName));
2420sw.Write(">");
2421foreach (object o in this.Items)
2422{
2423if (o is CT_PermStart)
2424((CT_PermStart)o).Write(sw, "permStart");
2425else if (o is CT_MarkupRange)
2426((CT_MarkupRange)o).Write(sw, "moveToRangeEnd");
2427else if (o is CT_MoveBookmark)
2428((CT_MoveBookmark)o).Write(sw, "moveToRangeStart");
2429else if (o is CT_MarkupRange)
2430((CT_MarkupRange)o).Write(sw, "commentRangeEnd");
2431else if (o is CT_MarkupRange)
2432((CT_MarkupRange)o).Write(sw, "commentRangeStart");
2433else if (o is CT_CustomXmlRun)
2434((CT_CustomXmlRun)o).Write(sw, "customXml");
2435else if (o is CT_Markup)
2436((CT_Markup)o).Write(sw, "customXmlDelRangeEnd");
2437else if (o is CT_TrackChange)
2438((CT_TrackChange)o).Write(sw, "customXmlDelRangeStart");
2439else if (o is CT_Markup)
2440((CT_Markup)o).Write(sw, "customXmlInsRangeEnd");
2441else if (o is CT_TrackChange)
2442((CT_TrackChange)o).Write(sw, "customXmlInsRangeStart");
2443else if (o is CT_Markup)
2444((CT_Markup)o).Write(sw, "customXmlMoveFromRangeEnd");
2445else if (o is CT_TrackChange)
2446((CT_TrackChange)o).Write(sw, "customXmlMoveFromRangeStart");
2447else if (o is CT_Markup)
2448((CT_Markup)o).Write(sw, "customXmlMoveToRangeEnd");
2449else if (o is CT_TrackChange)
2450((CT_TrackChange)o).Write(sw, "customXmlMoveToRangeStart");
2451else if (o is CT_RunTrackChange)
2452((CT_RunTrackChange)o).Write(sw, "del");
2453else if (o is CT_SimpleField)
2454((CT_SimpleField)o).Write(sw, "fldSimple");
2455else if (o is CT_Hyperlink1)
2456((CT_Hyperlink1)o).Write(sw, "hyperlink");
2457else if (o is CT_RunTrackChange)
2458((CT_RunTrackChange)o).Write(sw, "ins");
2459else if (o is CT_RunTrackChange)
2460((CT_RunTrackChange)o).Write(sw, "moveFrom");
2461else if (o is CT_Bookmark)
2462((CT_Bookmark)o).Write(sw, "bookmarkStart");
2463else if (o is CT_MoveBookmark)
2464((CT_MoveBookmark)o).Write(sw, "moveFromRangeStart");
2465else if (o is CT_RunTrackChange)
2466((CT_RunTrackChange)o).Write(sw, "moveTo");
2467else if (o is CT_Perm)
2468((CT_Perm)o).Write(sw, "permEnd");
2469else if (o is CT_OMath)
2470((CT_OMath)o).Write(sw, "oMath");
2471else if (o is CT_ProofErr)
2472((CT_ProofErr)o).Write(sw, "proofErr");
2473else if (o is CT_R)
2474((CT_R)o).Write(sw, "r");
2475else if (o is CT_SdtRun)
2476((CT_SdtRun)o).Write(sw, "sdt");
2477else if (o is CT_SmartTagRun)
2478((CT_SmartTagRun)o).Write(sw, "smartTag");
2479else if (o is CT_Rel)
2480((CT_Rel)o).Write(sw, "subDoc");
2481else if (o is CT_MarkupRange)
2482((CT_MarkupRange)o).Write(sw, "moveFromRangeEnd");
2483else if (o is CT_OMathPara)
2484((CT_OMathPara)o).Write(sw, "oMathPara");
2485else if (o is CT_MarkupRange)
2486((CT_MarkupRange)o).Write(sw, "bookmarkEnd");
2487}
2488sw.WriteEndW(nodeName);
2489}
2490
2491[XmlElement("oMath", typeof(CT_OMath), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
2492[XmlElement("oMathPara", typeof(CT_OMathPara), Namespace = "http://schemas.openxmlformats.org/officeDocument/2006/math", Order = 0)]
2493[XmlElement("bookmarkEnd", typeof(CT_MarkupRange), Order = 0)]
2494[XmlElement("bookmarkStart", typeof(CT_Bookmark), Order = 0)]
2495[XmlElement("commentRangeEnd", typeof(CT_MarkupRange), Order = 0)]
2496[XmlElement("commentRangeStart", typeof(CT_MarkupRange), Order = 0)]
2497[XmlElement("customXml", typeof(CT_CustomXmlRun), Order = 0)]
2498[XmlElement("customXmlDelRangeEnd", typeof(CT_Markup), Order = 0)]
2499[XmlElement("customXmlDelRangeStart", typeof(CT_TrackChange), Order = 0)]
2500[XmlElement("customXmlInsRangeEnd", typeof(CT_Markup), Order = 0)]
2501[XmlElement("customXmlInsRangeStart", typeof(CT_TrackChange), Order = 0)]
2502[XmlElement("customXmlMoveFromRangeEnd", typeof(CT_Markup), Order = 0)]
2503[XmlElement("customXmlMoveFromRangeStart", typeof(CT_TrackChange), Order = 0)]
2504[XmlElement("customXmlMoveToRangeEnd", typeof(CT_Markup), Order = 0)]
2505[XmlElement("customXmlMoveToRangeStart", typeof(CT_TrackChange), Order = 0)]
2506[XmlElement("del", typeof(CT_RunTrackChange), Order = 0)]
2507[XmlElement("fldSimple", typeof(CT_SimpleField), Order = 0)]
2508[XmlElement("hyperlink", typeof(CT_Hyperlink1), Order = 0)]
2509[XmlElement("ins", typeof(CT_RunTrackChange), Order = 0)]
2510[XmlElement("moveFrom", typeof(CT_RunTrackChange), Order = 0)]
2511[XmlElement("moveFromRangeEnd", typeof(CT_MarkupRange), Order = 0)]
2512[XmlElement("moveFromRangeStart", typeof(CT_MoveBookmark), Order = 0)]
2513[XmlElement("moveTo", typeof(CT_RunTrackChange), Order = 0)]
2514[XmlElement("moveToRangeEnd", typeof(CT_MarkupRange), Order = 0)]
2515[XmlElement("moveToRangeStart", typeof(CT_MoveBookmark), Order = 0)]
2516[XmlElement("permEnd", typeof(CT_Perm), Order = 0)]
2517[XmlElement("permStart", typeof(CT_PermStart), Order = 0)]
2518[XmlElement("proofErr", typeof(CT_ProofErr), Order = 0)]
2519[XmlElement("r", typeof(CT_R), Order = 0)]
2520[XmlElement("sdt", typeof(CT_SdtRun), Order = 0)]
2521[XmlElement("smartTag", typeof(CT_SmartTagRun), Order = 0)]
2522[XmlElement("subDoc", typeof(CT_Rel), Order = 0)]
2523[XmlChoiceIdentifier("ItemsElementName")]
2524public ArrayList Items
2525{
2526get
2527{
2528return this.itemsField;
2529}
2530set
2531{
2532this.itemsField = value;
2533}
2534}
2535
2536[XmlElement("ItemsElementName", Order = 1)]
2537[XmlIgnore]
2538public List<ItemsChoiceType18> ItemsElementName
2539{
2540get
2541{
2542return this.itemsElementNameField;
2543}
2544set
2545{
2546this.itemsElementNameField = value;
2547}
2548}
2549
2550public IEnumerable<CT_R> GetRList()
2551{
2552return GetObjectList<CT_R>(ItemsChoiceType18.r);
2553}
2554#region Generic methods for object operation
2555
2556private List<T> GetObjectList<T>(ItemsChoiceType18 type) where T : class
2557{
2558lock (this)
2559{
2560List<T> list = new List<T>();
2561for (int i = 0; i < itemsElementNameField.Count; i++)
2562{
2563if (itemsElementNameField[i] == type)
2564list.Add(itemsField[i] as T);
2565}
2566return list;
2567}
2568}
2569private int SizeOfArray(ItemsChoiceType18 type)
2570{
2571lock (this)
2572{
2573int size = 0;
2574for (int i = 0; i < itemsElementNameField.Count; i++)
2575{
2576if (itemsElementNameField[i] == type)
2577size++;
2578}
2579return size;
2580}
2581}
2582private T GetObjectArray<T>(int p, ItemsChoiceType18 type) where T : class
2583{
2584lock (this)
2585{
2586int pos = GetObjectIndex(type, p);
2587if (pos < 0 || pos >= this.itemsField.Count)
2588return null;
2589return itemsField[pos] as T;
2590}
2591}
2592private T InsertNewObject<T>(ItemsChoiceType18 type, int p) where T : class, new()
2593{
2594T t = new T();
2595lock (this)
2596{
2597int pos = GetObjectIndex(type, p);
2598this.itemsElementNameField.Insert(pos, type);
2599this.itemsField.Insert(pos, t);
2600}
2601return t;
2602}
2603private T AddNewObject<T>(ItemsChoiceType18 type) where T : class, new()
2604{
2605T t = new T();
2606lock (this)
2607{
2608this.itemsElementNameField.Add(type);
2609this.itemsField.Add(t);
2610}
2611return t;
2612}
2613private void SetObject<T>(ItemsChoiceType18 type, int p, T obj) where T : class
2614{
2615lock (this)
2616{
2617int pos = GetObjectIndex(type, p);
2618if (pos < 0 || pos >= this.itemsField.Count)
2619return;
2620if (this.itemsField[pos] is T)
2621this.itemsField[pos] = obj;
2622else
2623throw new Exception(string.Format(@"object types are difference, itemsField[{0}] is {1}, and parameter obj is {2}",
2624pos, this.itemsField[pos].GetType().Name, typeof(T).Name));
2625}
2626}
2627private int GetObjectIndex(ItemsChoiceType18 type, int p)
2628{
2629int index = -1;
2630int pos = 0;
2631for (int i = 0; i < itemsElementNameField.Count; i++)
2632{
2633if (itemsElementNameField[i] == type)
2634{
2635if (pos == p)
2636{
2637index = i;
2638break;
2639}
2640else
2641pos++;
2642}
2643}
2644return index;
2645}
2646private void RemoveObject(ItemsChoiceType18 type, int p)
2647{
2648lock (this)
2649{
2650int pos = GetObjectIndex(type, p);
2651if (pos < 0 || pos >= this.itemsField.Count)
2652return;
2653itemsElementNameField.RemoveAt(pos);
2654itemsField.RemoveAt(pos);
2655}
2656}
2657#endregion
2658}
2659
2660[Serializable]
2661[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IncludeInSchema = false)]
2662public enum ItemsChoiceType18
2663{
2664
2665
2666[XmlEnum("http://schemas.openxmlformats.org/officeDocument/2006/math:oMath")]
2667oMath,
2668
2669
2670[XmlEnum("http://schemas.openxmlformats.org/officeDocument/2006/math:oMathPara")]
2671oMathPara,
2672
2673
2674bookmarkEnd,
2675
2676
2677bookmarkStart,
2678
2679
2680commentRangeEnd,
2681
2682
2683commentRangeStart,
2684
2685
2686customXml,
2687
2688
2689customXmlDelRangeEnd,
2690
2691
2692customXmlDelRangeStart,
2693
2694
2695customXmlInsRangeEnd,
2696
2697
2698customXmlInsRangeStart,
2699
2700
2701customXmlMoveFromRangeEnd,
2702
2703
2704customXmlMoveFromRangeStart,
2705
2706
2707customXmlMoveToRangeEnd,
2708
2709
2710customXmlMoveToRangeStart,
2711
2712
2713del,
2714
2715
2716fldSimple,
2717
2718
2719hyperlink,
2720
2721
2722ins,
2723
2724
2725moveFrom,
2726
2727
2728moveFromRangeEnd,
2729
2730
2731moveFromRangeStart,
2732
2733
2734moveTo,
2735
2736
2737moveToRangeEnd,
2738
2739
2740moveToRangeStart,
2741
2742
2743permEnd,
2744
2745
2746permStart,
2747
2748
2749proofErr,
2750
2751
2752r,
2753
2754
2755sdt,
2756
2757
2758smartTag,
2759
2760
2761subDoc,
2762}
2763
2764[Serializable]
2765
2766[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2767[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
2768public class CT_SdtListItem
2769{
2770
2771private string displayTextField;
2772
2773private string valueField;
2774public static CT_SdtListItem Parse(XmlNode node, XmlNamespaceManager namespaceManager)
2775{
2776if (node == null)
2777return null;
2778CT_SdtListItem ctObj = new CT_SdtListItem();
2779ctObj.displayText = XmlHelper.ReadString(node.Attributes["w:displayText"]);
2780ctObj.value = XmlHelper.ReadString(node.Attributes["w:value"]);
2781return ctObj;
2782}
2783
2784
2785
2786internal void Write(StreamWriter sw, string nodeName)
2787{
2788sw.Write(string.Format("<w:{0}", nodeName));
2789XmlHelper.WriteAttribute(sw, "w:displayText", this.displayText);
2790XmlHelper.WriteAttribute(sw, "w:value", this.value);
2791sw.Write(">");
2792sw.WriteEndW(nodeName);
2793}
2794
2795[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
2796public string displayText
2797{
2798get
2799{
2800return this.displayTextField;
2801}
2802set
2803{
2804this.displayTextField = value;
2805}
2806}
2807
2808[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
2809public string value
2810{
2811get
2812{
2813return this.valueField;
2814}
2815set
2816{
2817this.valueField = value;
2818}
2819}
2820}
2821
2822
2823[Serializable]
2824
2825[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2826[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
2827public class CT_SdtDateMappingType
2828{
2829
2830private ST_SdtDateMappingType valField;
2831
2832private bool valFieldSpecified;
2833public static CT_SdtDateMappingType Parse(XmlNode node, XmlNamespaceManager namespaceManager)
2834{
2835if (node == null)
2836return null;
2837CT_SdtDateMappingType ctObj = new CT_SdtDateMappingType();
2838if (node.Attributes["w:val"] != null)
2839ctObj.val = (ST_SdtDateMappingType)Enum.Parse(typeof(ST_SdtDateMappingType), node.Attributes["w:val"].Value);
2840return ctObj;
2841}
2842
2843
2844
2845internal void Write(StreamWriter sw, string nodeName)
2846{
2847sw.Write(string.Format("<w:{0}", nodeName));
2848XmlHelper.WriteAttribute(sw, "w:val", this.val.ToString());
2849sw.Write(">");
2850sw.WriteEndW(nodeName);
2851}
2852
2853[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
2854public ST_SdtDateMappingType val
2855{
2856get
2857{
2858return this.valField;
2859}
2860set
2861{
2862this.valField = value;
2863}
2864}
2865
2866[XmlIgnore]
2867public bool valSpecified
2868{
2869get
2870{
2871return this.valFieldSpecified;
2872}
2873set
2874{
2875this.valFieldSpecified = value;
2876}
2877}
2878}
2879
2880
2881[Serializable]
2882[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2883public enum ST_SdtDateMappingType
2884{
2885
2886
2887text,
2888
2889
2890date,
2891
2892
2893dateTime,
2894}
2895
2896
2897[Serializable]
2898
2899[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2900[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
2901public class CT_CalendarType
2902{
2903
2904private ST_CalendarType valField;
2905
2906private bool valFieldSpecified;
2907
2908public static CT_CalendarType Parse(XmlNode node, XmlNamespaceManager namespaceManager)
2909{
2910if (node == null)
2911return null;
2912CT_CalendarType ctObj = new CT_CalendarType();
2913if (node.Attributes["w:val"] != null)
2914ctObj.val = (ST_CalendarType)Enum.Parse(typeof(ST_CalendarType), node.Attributes["w:val"].Value);
2915return ctObj;
2916}
2917
2918
2919
2920internal void Write(StreamWriter sw, string nodeName)
2921{
2922sw.Write(string.Format("<w:{0}", nodeName));
2923XmlHelper.WriteAttribute(sw, "w:val", this.val.ToString());
2924sw.Write(">");
2925sw.WriteEndW(nodeName);
2926}
2927
2928
2929[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
2930public ST_CalendarType val
2931{
2932get
2933{
2934return this.valField;
2935}
2936set
2937{
2938this.valField = value;
2939}
2940}
2941
2942[XmlIgnore]
2943public bool valSpecified
2944{
2945get
2946{
2947return this.valFieldSpecified;
2948}
2949set
2950{
2951this.valFieldSpecified = value;
2952}
2953}
2954}
2955
2956
2957[Serializable]
2958[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2959public enum ST_CalendarType
2960{
2961
2962
2963gregorian,
2964
2965
2966hijri,
2967
2968
2969hebrew,
2970
2971
2972taiwan,
2973
2974
2975japan,
2976
2977
2978thai,
2979
2980
2981korea,
2982
2983
2984saka,
2985
2986
2987gregorianXlitEnglish,
2988
2989
2990gregorianXlitFrench,
2991}
2992
2993
2994[Serializable]
2995
2996[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
2997[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
2998public class CT_SdtDate
2999{
3000
3001private CT_String dateFormatField;
3002
3003private CT_Lang lidField;
3004
3005private CT_SdtDateMappingType storeMappedDataAsField;
3006
3007private CT_CalendarType calendarField;
3008
3009private string fullDateField;
3010
3011private bool fullDateFieldSpecified;
3012
3013public CT_SdtDate()
3014{
3015//this.calendarField = new CT_CalendarType();
3016//this.storeMappedDataAsField = new CT_SdtDateMappingType();
3017//this.lidField = new CT_Lang();
3018//this.dateFormatField = new CT_String();
3019}
3020public static CT_SdtDate Parse(XmlNode node, XmlNamespaceManager namespaceManager)
3021{
3022if (node == null)
3023return null;
3024CT_SdtDate ctObj = new CT_SdtDate();
3025ctObj.fullDateField = XmlHelper.ReadString(node.Attributes["w.fullDate"]);
3026foreach (XmlNode childNode in node.ChildNodes)
3027{
3028if (childNode.LocalName == "dateFormat")
3029ctObj.dateFormat = CT_String.Parse(childNode, namespaceManager);
3030else if (childNode.LocalName == "lid")
3031ctObj.lid = CT_Lang.Parse(childNode, namespaceManager);
3032else if (childNode.LocalName == "storeMappedDataAs")
3033ctObj.storeMappedDataAs = CT_SdtDateMappingType.Parse(childNode, namespaceManager);
3034else if (childNode.LocalName == "calendar")
3035ctObj.calendar = CT_CalendarType.Parse(childNode, namespaceManager);
3036}
3037return ctObj;
3038}
3039
3040
3041
3042internal void Write(StreamWriter sw, string nodeName)
3043{
3044sw.Write(string.Format("<w:{0}", nodeName));
3045XmlHelper.WriteAttribute(sw, "w:fullDate", this.fullDateField);
3046sw.Write(">");
3047if (this.dateFormat != null)
3048this.dateFormat.Write(sw, "dateFormat");
3049if (this.lid != null)
3050this.lid.Write(sw, "lid");
3051if (this.storeMappedDataAs != null)
3052this.storeMappedDataAs.Write(sw, "storeMappedDataAs");
3053if (this.calendar != null)
3054this.calendar.Write(sw, "calendar");
3055sw.WriteEndW(nodeName);
3056}
3057
3058[XmlElement(Order = 0)]
3059public CT_String dateFormat
3060{
3061get
3062{
3063return this.dateFormatField;
3064}
3065set
3066{
3067this.dateFormatField = value;
3068}
3069}
3070
3071[XmlElement(Order = 1)]
3072public CT_Lang lid
3073{
3074get
3075{
3076return this.lidField;
3077}
3078set
3079{
3080this.lidField = value;
3081}
3082}
3083
3084[XmlElement(Order = 2)]
3085public CT_SdtDateMappingType storeMappedDataAs
3086{
3087get
3088{
3089return this.storeMappedDataAsField;
3090}
3091set
3092{
3093this.storeMappedDataAsField = value;
3094}
3095}
3096
3097[XmlElement(Order = 3)]
3098public CT_CalendarType calendar
3099{
3100get
3101{
3102return this.calendarField;
3103}
3104set
3105{
3106this.calendarField = value;
3107}
3108}
3109
3110[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
3111public string fullDate
3112{
3113get
3114{
3115return this.fullDateField;
3116}
3117set
3118{
3119this.fullDateField = value;
3120}
3121}
3122
3123[XmlIgnore]
3124public bool fullDateSpecified
3125{
3126get
3127{
3128return this.fullDateFieldSpecified;
3129}
3130set
3131{
3132this.fullDateFieldSpecified = value;
3133}
3134}
3135}
3136[Serializable]
3137
3138[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
3139[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
3140public class CT_SdtRow
3141{
3142
3143private CT_SdtPr sdtPrField;
3144
3145private List<CT_RPr> sdtEndPrField;
3146
3147private CT_SdtContentRow sdtContentField;
3148
3149public CT_SdtRow()
3150{
3151//this.sdtContentField = new CT_SdtContentRow();
3152//this.sdtEndPrField = new List<CT_RPr>();
3153//this.sdtPrField = new CT_SdtPr();
3154}
3155
3156public static CT_SdtRow Parse(XmlNode node, XmlNamespaceManager namespaceManager)
3157{
3158if (node == null)
3159return null;
3160CT_SdtRow ctObj = new CT_SdtRow();
3161ctObj.sdtEndPr = new List<CT_RPr>();
3162foreach (XmlNode childNode in node.ChildNodes)
3163{
3164if (childNode.LocalName == "sdtPr")
3165ctObj.sdtPr = CT_SdtPr.Parse(childNode, namespaceManager);
3166else if (childNode.LocalName == "sdtContent")
3167ctObj.sdtContent = CT_SdtContentRow.Parse(childNode, namespaceManager);
3168else if (childNode.LocalName == "sdtEndPr")
3169ctObj.sdtEndPr.Add(CT_RPr.Parse(childNode, namespaceManager));
3170}
3171return ctObj;
3172}
3173
3174
3175
3176internal void Write(StreamWriter sw, string nodeName)
3177{
3178sw.Write(string.Format("<w:{0}", nodeName));
3179sw.Write(">");
3180if (this.sdtPr != null)
3181this.sdtPr.Write(sw, "sdtPr");
3182if (this.sdtContent != null)
3183this.sdtContent.Write(sw, "sdtContent");
3184if (this.sdtEndPr != null)
3185{
3186foreach (CT_RPr x in this.sdtEndPr)
3187{
3188x.Write(sw, "sdtEndPr");
3189}
3190}
3191sw.WriteEndW(nodeName);
3192}
3193
3194[XmlElement(Order = 0)]
3195public CT_SdtPr sdtPr
3196{
3197get
3198{
3199return this.sdtPrField;
3200}
3201set
3202{
3203this.sdtPrField = value;
3204}
3205}
3206
3207[XmlArray(Order = 1)]
3208[XmlArrayItem("rPr", IsNullable = false)]
3209public List<CT_RPr> sdtEndPr
3210{
3211get
3212{
3213return this.sdtEndPrField;
3214}
3215set
3216{
3217this.sdtEndPrField = value;
3218}
3219}
3220
3221[XmlElement(Order = 2)]
3222public CT_SdtContentRow sdtContent
3223{
3224get
3225{
3226return this.sdtContentField;
3227}
3228set
3229{
3230this.sdtContentField = value;
3231}
3232}
3233}
3234[Serializable]
3235
3236[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
3237[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
3238public class CT_SdtText
3239{
3240
3241private ST_OnOff multiLineField;
3242
3243private bool multiLineFieldSpecified;
3244public static CT_SdtText Parse(XmlNode node, XmlNamespaceManager namespaceManager)
3245{
3246if (node == null)
3247return null;
3248CT_SdtText ctObj = new CT_SdtText();
3249if (node.Attributes["w:multiLine"] != null)
3250ctObj.multiLine = (ST_OnOff)Enum.Parse(typeof(ST_OnOff), node.Attributes["w:multiLine"].Value,true);
3251return ctObj;
3252}
3253
3254
3255
3256internal void Write(StreamWriter sw, string nodeName)
3257{
3258sw.Write(string.Format("<w:{0}", nodeName));
3259XmlHelper.WriteAttribute(sw, "w:multiLine", this.multiLine.ToString());
3260sw.Write(">");
3261sw.WriteEndW(nodeName);
3262}
3263
3264[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
3265public ST_OnOff multiLine
3266{
3267get
3268{
3269return this.multiLineField;
3270}
3271set
3272{
3273this.multiLineField = value;
3274}
3275}
3276
3277[XmlIgnore]
3278public bool multiLineSpecified
3279{
3280get
3281{
3282return this.multiLineFieldSpecified;
3283}
3284set
3285{
3286this.multiLineFieldSpecified = value;
3287}
3288}
3289}
3290
3291[Serializable]
3292
3293[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
3294[XmlRoot(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", IsNullable = true)]
3295public class CT_Lock
3296{
3297public static CT_Lock Parse(XmlNode node, XmlNamespaceManager namespaceManager)
3298{
3299if (node == null)
3300return null;
3301CT_Lock ctObj = new CT_Lock();
3302if (node.Attributes["w:val"] != null)
3303ctObj.val = (ST_Lock)Enum.Parse(typeof(ST_Lock), node.Attributes["w:val"].Value);
3304return ctObj;
3305}
3306
3307
3308
3309internal void Write(StreamWriter sw, string nodeName)
3310{
3311sw.Write(string.Format("<w:{0}", nodeName));
3312XmlHelper.WriteAttribute(sw, "w:val", this.val.ToString());
3313sw.Write(">");
3314sw.WriteEndW(nodeName);
3315}
3316
3317private ST_Lock valField;
3318
3319private bool valFieldSpecified;
3320
3321[XmlAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
3322public ST_Lock val
3323{
3324get
3325{
3326return this.valField;
3327}
3328set
3329{
3330this.valField = value;
3331}
3332}
3333
3334[XmlIgnore]
3335public bool valSpecified
3336{
3337get
3338{
3339return this.valFieldSpecified;
3340}
3341set
3342{
3343this.valFieldSpecified = value;
3344}
3345}
3346}
3347
3348
3349[Serializable]
3350[XmlType(Namespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main")]
3351public enum ST_Lock
3352{
3353
3354
3355sdtLocked,
3356
3357
3358contentLocked,
3359
3360
3361unlocked,
3362
3363
3364sdtContentLocked,
3365}
3366}