npoi
135 строк · 3.9 Кб
1
2using System;
3using System.Xml.Serialization;
4using System.Collections.Generic;
5using System.Xml;
6using System.IO;
7using NPOI.OpenXml4Net.Util;
8
9namespace NPOI.OpenXmlFormats.Dml
10{
11[Serializable]
12
13[System.ComponentModel.DesignerCategory("code")]
14[XmlType(Namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")]
15[XmlRoot(Namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", IsNullable = true)]
16public class CT_GraphicalObjectData
17{
18public static CT_GraphicalObjectData Parse(XmlNode node, XmlNamespaceManager namespaceManager)
19{
20if (node == null)
21return null;
22CT_GraphicalObjectData ctObj = new CT_GraphicalObjectData();
23ctObj.uri = XmlHelper.ReadString(node.Attributes["uri"]);
24ctObj.Any = new List<string>();
25foreach (XmlNode childNode in node.ChildNodes)
26{
27ctObj.Any.Add(childNode.OuterXml);
28}
29return ctObj;
30}
31
32
33
34internal void Write(StreamWriter sw, string nodeName)
35{
36sw.Write(string.Format("<a:{0}", nodeName));
37XmlHelper.WriteAttribute(sw, "uri", this.uri);
38sw.Write(">");
39foreach (string x in this.Any)
40{
41sw.Write(x);
42}
43sw.Write(string.Format("</a:{0}>", nodeName));
44}
45
46private List<string> anyField = new List<string>();
47
48private string uriField;
49
50public void AddChartElement(string el)
51{
52anyField.Add(el);
53}
54public void AddPicElement(string el)
55{
56anyField.Add(el);
57}
58//[XmlAnyElement()]
59[XmlIgnore]
60public List<string> Any
61{
62get
63{
64return this.anyField;
65}
66set
67{
68this.anyField = value;
69}
70}
71
72[XmlAttribute(DataType = "token")]
73public string uri
74{
75get
76{
77return this.uriField;
78}
79set
80{
81this.uriField = value;
82}
83}
84}
85
86
87[Serializable]
88
89[System.ComponentModel.DesignerCategory("code")]
90[XmlType(Namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")]
91[XmlRoot(Namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", IsNullable = true)]
92public class CT_GraphicalObject
93{
94public CT_GraphicalObjectData AddNewGraphicData()
95{
96this.graphicDataField = new CT_GraphicalObjectData();
97return this.graphicDataField;
98}
99private CT_GraphicalObjectData graphicDataField;
100public static CT_GraphicalObject Parse(XmlNode node, XmlNamespaceManager namespaceManager)
101{
102if (node == null)
103return null;
104CT_GraphicalObject ctObj = new CT_GraphicalObject();
105foreach (XmlNode childNode in node.ChildNodes)
106{
107if (childNode.LocalName == "graphicData")
108ctObj.graphicData = CT_GraphicalObjectData.Parse(childNode, namespaceManager);
109}
110return ctObj;
111}
112
113
114
115internal void Write(StreamWriter sw, string nodeName)
116{
117sw.Write(string.Format("<a:{0} xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">", nodeName));
118if (this.graphicData != null)
119this.graphicData.Write(sw, "graphicData");
120sw.Write(string.Format("</a:{0}>", nodeName));
121}
122
123[XmlElement(Order = 0)]
124public CT_GraphicalObjectData graphicData
125{
126get
127{
128return this.graphicDataField;
129}
130set
131{
132this.graphicDataField = value;
133}
134}
135}
136}
137