1
+ using NPOI . OpenXml4Net . Util ;
1
2
using System ;
2
3
using System . Collections . Generic ;
3
4
using System . ComponentModel ;
4
5
using System . Diagnostics ;
6
+ using System . IO ;
5
7
using System . Xml ;
6
8
using System . Xml . Serialization ;
7
9
@@ -23,6 +25,40 @@ public class CT_MapInfo
23
25
24
26
private string selectionNamespacesField = string . Empty ; // 1..1
25
27
28
+ public static CT_MapInfo Parse ( XmlNode node , XmlNamespaceManager namespaceManager )
29
+ {
30
+ CT_MapInfo ctObj = new CT_MapInfo ( ) ;
31
+ ctObj . SelectionNamespaces = XmlHelper . ReadString ( node . Attributes [ "SelectionNamespaces" ] ) ;
32
+ foreach ( XmlNode cn in node . ChildNodes )
33
+ {
34
+ if ( cn . LocalName == "Schema" )
35
+ {
36
+ ctObj . Schema . Add ( CT_Schema . Parse ( cn , namespaceManager ) ) ;
37
+ }
38
+ else if ( cn . LocalName == "Map" )
39
+ {
40
+ ctObj . Map . Add ( CT_Map . Parse ( cn , namespaceManager ) ) ;
41
+ }
42
+ }
43
+ return ctObj ;
44
+ }
45
+
46
+ internal void Write ( StreamWriter sw , string nodeName )
47
+ {
48
+ sw . Write ( string . Format ( "<{0}" , nodeName ) ) ;
49
+ XmlHelper . WriteAttribute ( sw , "SelectionNamespaces" , this . SelectionNamespaces ) ;
50
+ sw . Write ( ">" ) ;
51
+ foreach ( CT_Schema ctSchema in Schema )
52
+ {
53
+ ctSchema . Write ( sw , "Schema" ) ;
54
+ }
55
+
56
+ foreach ( CT_Map ctMap in Map )
57
+ {
58
+ ctMap . Write ( sw , "Map" ) ;
59
+ }
60
+ sw . Write ( string . Format ( "</{0}>" , nodeName ) ) ;
61
+ }
26
62
[ XmlElement ( "Schema" ) ]
27
63
public List < CT_Schema > Schema
28
64
{
@@ -77,6 +113,30 @@ public class CT_Schema
77
113
78
114
private string namespaceField = null ; // 0..1
79
115
116
+ private string schemaLanguageField ;
117
+
118
+ public static CT_Schema Parse ( XmlNode node , XmlNamespaceManager namespaceManager )
119
+ {
120
+ CT_Schema ctObj = new CT_Schema ( ) ;
121
+ ctObj . ID = node . Attributes [ "ID" ] . Value ;
122
+ ctObj . Namespace = XmlHelper . ReadString ( node . Attributes [ "Namespace" ] ) ;
123
+ ctObj . SchemaRef = XmlHelper . ReadString ( node . Attributes [ "SchemaRef" ] ) ;
124
+ ctObj . SchemaLanguage = XmlHelper . ReadString ( node . Attributes [ "SchemaLanguage" ] ) ;
125
+ ctObj . Any = node . FirstChild as XmlElement ;
126
+ return ctObj ;
127
+ }
128
+ internal void Write ( StreamWriter sw , string nodeName )
129
+ {
130
+ sw . Write ( string . Format ( "<{0}" , nodeName ) ) ;
131
+ XmlHelper . WriteAttribute ( sw , "ID" , this . ID ) ;
132
+ XmlHelper . WriteAttribute ( sw , "Namespace" , this . Namespace ) ;
133
+ XmlHelper . WriteAttribute ( sw , "SchemaRef" , this . SchemaRef ) ;
134
+ XmlHelper . WriteAttribute ( sw , "SchemaLanguage" , this . SchemaLanguage ) ;
135
+ sw . Write ( ">" ) ;
136
+ if ( anyField != null )
137
+ sw . Write ( anyField . OuterXml ) ;
138
+ sw . Write ( string . Format ( "</{0}>" , nodeName ) ) ;
139
+ }
80
140
[ XmlAnyElement ]
81
141
public System . Xml . XmlElement Any
82
142
{
@@ -144,7 +204,23 @@ public bool NamespaceSpecified
144
204
get { return null != this . namespaceField ; }
145
205
}
146
206
147
- public string InnerXml ;
207
+ public string SchemaLanguage
208
+ {
209
+ get
210
+ {
211
+ return this . schemaLanguageField ;
212
+ }
213
+ set
214
+ {
215
+ schemaLanguageField = value ;
216
+ }
217
+ }
218
+
219
+ [ XmlIgnore ]
220
+ public bool SchemaLanguageSpecified
221
+ {
222
+ get { return null != this . schemaLanguageField ; }
223
+ }
148
224
}
149
225
150
226
@@ -176,6 +252,49 @@ public class CT_Map
176
252
177
253
private bool preserveFormatField ;
178
254
255
+ public static CT_Map Parse ( XmlNode node , XmlNamespaceManager namespaceManager )
256
+ {
257
+ CT_Map ctMap = new CT_Map ( ) ;
258
+ ctMap . ID = XmlHelper . ReadUInt ( node . Attributes [ "ID" ] ) ;
259
+ ctMap . Name = XmlHelper . ReadString ( node . Attributes [ "Name" ] ) ;
260
+ ctMap . RootElement = XmlHelper . ReadString ( node . Attributes [ "RootElement" ] ) ;
261
+ ctMap . SchemaID = XmlHelper . ReadString ( node . Attributes [ "SchemaID" ] ) ;
262
+ ctMap . ShowImportExportValidationErrors = XmlHelper . ReadBool ( node . Attributes [ "ShowImportExportValidationErrors" ] ) ;
263
+ ctMap . PreserveFormat = XmlHelper . ReadBool ( node . Attributes [ "PreserveFormat" ] ) ;
264
+ ctMap . PreserveSortAFLayout = XmlHelper . ReadBool ( node . Attributes [ "PreserveSortAFLayout" ] ) ;
265
+ ctMap . Append = XmlHelper . ReadBool ( node . Attributes [ "Append" ] ) ;
266
+ ctMap . AutoFit = XmlHelper . ReadBool ( node . Attributes [ "AutoFit" ] ) ;
267
+ foreach ( XmlElement ele in node )
268
+ {
269
+ if ( ele . LocalName == "DataBinding" )
270
+ {
271
+ ctMap . DataBinding = CT_DataBinding . Parse ( ele , namespaceManager ) ;
272
+ }
273
+ }
274
+ return ctMap ;
275
+ }
276
+ internal void Write ( StreamWriter sw , string nodeName )
277
+ {
278
+ sw . Write ( string . Format ( "<{0}" , nodeName ) ) ;
279
+ XmlHelper . WriteAttribute ( sw , "ID" , this . ID ) ;
280
+ XmlHelper . WriteAttribute ( sw , "Name" , this . Name ) ;
281
+ XmlHelper . WriteAttribute ( sw , "RootElement" , this . RootElement ) ;
282
+ XmlHelper . WriteAttribute ( sw , "SchemaID" , this . SchemaID ) ;
283
+ XmlHelper . WriteAttribute ( sw , "ShowImportExportValidationErrors" , this . ShowImportExportValidationErrors ) ;
284
+ XmlHelper . WriteAttribute ( sw , "PreserveFormat" , this . PreserveFormat ) ;
285
+ XmlHelper . WriteAttribute ( sw , "PreserveSortAFLayout" , this . PreserveSortAFLayout ) ;
286
+ XmlHelper . WriteAttribute ( sw , "Append" , this . Append ) ;
287
+ XmlHelper . WriteAttribute ( sw , "AutoFit" , this . AutoFit ) ;
288
+
289
+ if ( dataBindingField != null )
290
+ {
291
+ sw . Write ( ">" ) ;
292
+ dataBindingField . Write ( sw , "DataBinding" ) ;
293
+ sw . Write ( string . Format ( "</{0}>" , nodeName ) ) ;
294
+ }
295
+ else
296
+ sw . Write ( "/>" ) ;
297
+ }
179
298
[ XmlElement ]
180
299
public CT_DataBinding DataBinding
181
300
{
@@ -343,7 +462,33 @@ public partial class CT_DataBinding
343
462
344
463
private uint dataBindingLoadModeField = 0 ; // 1..1 - default value not defined in xsd
345
464
465
+ public static CT_DataBinding Parse ( XmlNode ele , XmlNamespaceManager namespaceManager )
466
+ {
467
+ CT_DataBinding ctObj = new CT_DataBinding ( ) ;
468
+ ctObj . Any = ele . FirstChild as XmlElement ;
469
+ ctObj . connectionIDField = ele . Attributes [ "ConnectionID" ] == null ? null : XmlHelper . ReadUInt ( ele . Attributes [ "ConnectionID" ] ) ;
470
+ ctObj . DataBindingName = XmlHelper . ReadString ( ele . Attributes [ "DataBindingName" ] ) ;
471
+ ctObj . FileBindingName = XmlHelper . ReadString ( ele . Attributes [ "FileBindingName" ] ) ;
472
+ ctObj . DataBindingLoadMode = XmlHelper . ReadUInt ( ele . Attributes [ "DataBindingLoadMode" ] ) ;
473
+ ctObj . fileBindingField = ele . Attributes [ "FileBinding" ] == null ? null : XmlHelper . ReadBool ( ele . Attributes [ "FileBinding" ] ) ;
474
+ return ctObj ;
475
+ }
346
476
477
+ internal void Write ( StreamWriter sw , string nodeName )
478
+ {
479
+ sw . Write ( string . Format ( "<{0}" , nodeName ) ) ;
480
+ if ( this . FileBindingSpecified )
481
+ XmlHelper . WriteAttribute ( sw , "FileBinding" , FileBinding ) ;
482
+ if ( this . ConnectionIDSpecified )
483
+ XmlHelper . WriteAttribute ( sw , "ConnectionID" , ConnectionID ) ;
484
+ XmlHelper . WriteAttribute ( sw , "DataBindingLoadMode" , DataBindingLoadMode ) ;
485
+ XmlHelper . WriteAttribute ( sw , "DataBindingName" , DataBindingName ) ;
486
+ XmlHelper . WriteAttribute ( sw , "FileBindingName" , FileBindingName ) ;
487
+ sw . Write ( ">" ) ;
488
+ if ( anyField != null )
489
+ sw . Write ( anyField . OuterXml ) ;
490
+ sw . Write ( string . Format ( "</{0}>" , nodeName ) ) ;
491
+ }
347
492
[ XmlAnyElement ]
348
493
public System . Xml . XmlElement Any
349
494
{
0 commit comments