1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 using System;
6 
7 namespace System.Xml.Serialization
8 {
9     internal class XmlSerializationPrimitiveWriter : System.Xml.Serialization.XmlSerializationWriter
10     {
Write_string(object o)11         internal void Write_string(object o)
12         {
13             WriteStartDocument();
14             if (o == null)
15             {
16                 WriteNullTagLiteral(@"string", @"");
17                 return;
18             }
19             TopLevelElement();
20             WriteNullableStringLiteral(@"string", @"", ((System.String)o));
21         }
22 
Write_int(object o)23         internal void Write_int(object o)
24         {
25             WriteStartDocument();
26             if (o == null)
27             {
28                 WriteEmptyTag(@"int", @"");
29                 return;
30             }
31             WriteElementStringRaw(@"int", @"", System.Xml.XmlConvert.ToString((System.Int32)((System.Int32)o)));
32         }
33 
Write_boolean(object o)34         internal void Write_boolean(object o)
35         {
36             WriteStartDocument();
37             if (o == null)
38             {
39                 WriteEmptyTag(@"boolean", @"");
40                 return;
41             }
42             WriteElementStringRaw(@"boolean", @"", System.Xml.XmlConvert.ToString((System.Boolean)((System.Boolean)o)));
43         }
44 
Write_short(object o)45         internal void Write_short(object o)
46         {
47             WriteStartDocument();
48             if (o == null)
49             {
50                 WriteEmptyTag(@"short", @"");
51                 return;
52             }
53             WriteElementStringRaw(@"short", @"", System.Xml.XmlConvert.ToString((System.Int16)((System.Int16)o)));
54         }
55 
Write_long(object o)56         internal void Write_long(object o)
57         {
58             WriteStartDocument();
59             if (o == null)
60             {
61                 WriteEmptyTag(@"long", @"");
62                 return;
63             }
64             WriteElementStringRaw(@"long", @"", System.Xml.XmlConvert.ToString((System.Int64)((System.Int64)o)));
65         }
66 
Write_float(object o)67         internal void Write_float(object o)
68         {
69             WriteStartDocument();
70             if (o == null)
71             {
72                 WriteEmptyTag(@"float", @"");
73                 return;
74             }
75             WriteElementStringRaw(@"float", @"", System.Xml.XmlConvert.ToString((System.Single)((System.Single)o)));
76         }
77 
Write_double(object o)78         internal void Write_double(object o)
79         {
80             WriteStartDocument();
81             if (o == null)
82             {
83                 WriteEmptyTag(@"double", @"");
84                 return;
85             }
86             WriteElementStringRaw(@"double", @"", System.Xml.XmlConvert.ToString((System.Double)((System.Double)o)));
87         }
88 
Write_decimal(object o)89         internal void Write_decimal(object o)
90         {
91             WriteStartDocument();
92             if (o == null)
93             {
94                 WriteEmptyTag(@"decimal", @"");
95                 return;
96             }
97             // Preventing inlining optimization which is causing issue for XmlConvert.ToString(Decimal)
98             Decimal d = (System.Decimal)o;
99             WriteElementStringRaw(@"decimal", @"", System.Xml.XmlConvert.ToString(d));
100         }
101 
Write_dateTime(object o)102         internal void Write_dateTime(object o)
103         {
104             WriteStartDocument();
105             if (o == null)
106             {
107                 WriteEmptyTag(@"dateTime", @"");
108                 return;
109             }
110             WriteElementStringRaw(@"dateTime", @"", FromDateTime(((System.DateTime)o)));
111         }
112 
Write_unsignedByte(object o)113         internal void Write_unsignedByte(object o)
114         {
115             WriteStartDocument();
116             if (o == null)
117             {
118                 WriteEmptyTag(@"unsignedByte", @"");
119                 return;
120             }
121             WriteElementStringRaw(@"unsignedByte", @"", System.Xml.XmlConvert.ToString((System.Byte)((System.Byte)o)));
122         }
123 
Write_byte(object o)124         internal void Write_byte(object o)
125         {
126             WriteStartDocument();
127             if (o == null)
128             {
129                 WriteEmptyTag(@"byte", @"");
130                 return;
131             }
132             WriteElementStringRaw(@"byte", @"", System.Xml.XmlConvert.ToString((System.SByte)((System.SByte)o)));
133         }
134 
Write_unsignedShort(object o)135         internal void Write_unsignedShort(object o)
136         {
137             WriteStartDocument();
138             if (o == null)
139             {
140                 WriteEmptyTag(@"unsignedShort", @"");
141                 return;
142             }
143             WriteElementStringRaw(@"unsignedShort", @"", System.Xml.XmlConvert.ToString((System.UInt16)((System.UInt16)o)));
144         }
145 
Write_unsignedInt(object o)146         internal void Write_unsignedInt(object o)
147         {
148             WriteStartDocument();
149             if (o == null)
150             {
151                 WriteEmptyTag(@"unsignedInt", @"");
152                 return;
153             }
154             WriteElementStringRaw(@"unsignedInt", @"", System.Xml.XmlConvert.ToString((System.UInt32)((System.UInt32)o)));
155         }
156 
Write_unsignedLong(object o)157         internal void Write_unsignedLong(object o)
158         {
159             WriteStartDocument();
160             if (o == null)
161             {
162                 WriteEmptyTag(@"unsignedLong", @"");
163                 return;
164             }
165             WriteElementStringRaw(@"unsignedLong", @"", System.Xml.XmlConvert.ToString((System.UInt64)((System.UInt64)o)));
166         }
167 
Write_base64Binary(object o)168         internal void Write_base64Binary(object o)
169         {
170             WriteStartDocument();
171             if (o == null)
172             {
173                 WriteNullTagLiteral(@"base64Binary", @"");
174                 return;
175             }
176             TopLevelElement();
177             WriteNullableStringLiteralRaw(@"base64Binary", @"", FromByteArrayBase64(((System.Byte[])o)));
178         }
179 
Write_guid(object o)180         internal void Write_guid(object o)
181         {
182             WriteStartDocument();
183             if (o == null)
184             {
185                 WriteEmptyTag(@"guid", @"");
186                 return;
187             }
188             // Preventing inlining optimization which is causing issue for XmlConvert.ToString(Guid)
189             Guid guid = (Guid)o;
190             WriteElementStringRaw(@"guid", @"", System.Xml.XmlConvert.ToString(guid));
191         }
192 
Write_TimeSpan(object o)193         internal void Write_TimeSpan(object o)
194         {
195             WriteStartDocument();
196             if (o == null)
197             {
198                 WriteEmptyTag(@"TimeSpan", @"");
199                 return;
200             }
201             TimeSpan timeSpan = (TimeSpan)o;
202             WriteElementStringRaw(@"TimeSpan", @"", System.Xml.XmlConvert.ToString(timeSpan));
203         }
204 
Write_char(object o)205         internal void Write_char(object o)
206         {
207             WriteStartDocument();
208             if (o == null)
209             {
210                 WriteEmptyTag(@"char", @"");
211                 return;
212             }
213             WriteElementString(@"char", @"", FromChar(((System.Char)o)));
214         }
215 
Write_QName(object o)216         internal void Write_QName(object o)
217         {
218             WriteStartDocument();
219             if (o == null)
220             {
221                 WriteNullTagLiteral(@"QName", @"");
222                 return;
223             }
224             TopLevelElement();
225             WriteNullableQualifiedNameLiteral(@"QName", @"", ((global::System.Xml.XmlQualifiedName)o));
226         }
227 
InitCallbacks()228         protected override void InitCallbacks()
229         {
230         }
231     }
232 
233     internal class XmlSerializationPrimitiveReader : System.Xml.Serialization.XmlSerializationReader
234     {
Read_string()235         internal object Read_string()
236         {
237             object o = null;
238             Reader.MoveToContent();
239             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
240             {
241                 if (((object)Reader.LocalName == (object)_id1_string && (object)Reader.NamespaceURI == (object)_id2_Item))
242                 {
243                     if (ReadNull())
244                     {
245                         o = null;
246                     }
247                     else
248                     {
249                         o = Reader.ReadElementString();
250                     }
251                 }
252                 else
253                 {
254                     throw CreateUnknownNodeException();
255                 }
256             }
257             else
258             {
259                 UnknownNode(null);
260             }
261             return (object)o;
262         }
263 
Read_int()264         internal object Read_int()
265         {
266             object o = null;
267             Reader.MoveToContent();
268             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
269             {
270                 if (((object)Reader.LocalName == (object)_id3_int && (object)Reader.NamespaceURI == (object)_id2_Item))
271                 {
272                     {
273                         o = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
274                     }
275                 }
276                 else
277                 {
278                     throw CreateUnknownNodeException();
279                 }
280             }
281             else
282             {
283                 UnknownNode(null);
284             }
285             return (object)o;
286         }
287 
Read_boolean()288         internal object Read_boolean()
289         {
290             object o = null;
291             Reader.MoveToContent();
292             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
293             {
294                 if (((object)Reader.LocalName == (object)_id4_boolean && (object)Reader.NamespaceURI == (object)_id2_Item))
295                 {
296                     {
297                         o = System.Xml.XmlConvert.ToBoolean(Reader.ReadElementString());
298                     }
299                 }
300                 else
301                 {
302                     throw CreateUnknownNodeException();
303                 }
304             }
305             else
306             {
307                 UnknownNode(null);
308             }
309             return (object)o;
310         }
311 
Read_short()312         internal object Read_short()
313         {
314             object o = null;
315             Reader.MoveToContent();
316             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
317             {
318                 if (((object)Reader.LocalName == (object)_id5_short && (object)Reader.NamespaceURI == (object)_id2_Item))
319                 {
320                     {
321                         o = System.Xml.XmlConvert.ToInt16(Reader.ReadElementString());
322                     }
323                 }
324                 else
325                 {
326                     throw CreateUnknownNodeException();
327                 }
328             }
329             else
330             {
331                 UnknownNode(null);
332             }
333             return (object)o;
334         }
335 
Read_long()336         internal object Read_long()
337         {
338             object o = null;
339             Reader.MoveToContent();
340             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
341             {
342                 if (((object)Reader.LocalName == (object)_id6_long && (object)Reader.NamespaceURI == (object)_id2_Item))
343                 {
344                     {
345                         o = System.Xml.XmlConvert.ToInt64(Reader.ReadElementString());
346                     }
347                 }
348                 else
349                 {
350                     throw CreateUnknownNodeException();
351                 }
352             }
353             else
354             {
355                 UnknownNode(null);
356             }
357             return (object)o;
358         }
359 
Read_float()360         internal object Read_float()
361         {
362             object o = null;
363             Reader.MoveToContent();
364             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
365             {
366                 if (((object)Reader.LocalName == (object)_id7_float && (object)Reader.NamespaceURI == (object)_id2_Item))
367                 {
368                     {
369                         o = System.Xml.XmlConvert.ToSingle(Reader.ReadElementString());
370                     }
371                 }
372                 else
373                 {
374                     throw CreateUnknownNodeException();
375                 }
376             }
377             else
378             {
379                 UnknownNode(null);
380             }
381             return (object)o;
382         }
383 
Read_double()384         internal object Read_double()
385         {
386             object o = null;
387             Reader.MoveToContent();
388             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
389             {
390                 if (((object)Reader.LocalName == (object)_id8_double && (object)Reader.NamespaceURI == (object)_id2_Item))
391                 {
392                     {
393                         o = System.Xml.XmlConvert.ToDouble(Reader.ReadElementString());
394                     }
395                 }
396                 else
397                 {
398                     throw CreateUnknownNodeException();
399                 }
400             }
401             else
402             {
403                 UnknownNode(null);
404             }
405             return (object)o;
406         }
407 
Read_decimal()408         internal object Read_decimal()
409         {
410             object o = null;
411             Reader.MoveToContent();
412             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
413             {
414                 if (((object)Reader.LocalName == (object)_id9_decimal && (object)Reader.NamespaceURI == (object)_id2_Item))
415                 {
416                     {
417                         o = System.Xml.XmlConvert.ToDecimal(Reader.ReadElementString());
418                     }
419                 }
420                 else
421                 {
422                     throw CreateUnknownNodeException();
423                 }
424             }
425             else
426             {
427                 UnknownNode(null);
428             }
429             return (object)o;
430         }
431 
Read_dateTime()432         internal object Read_dateTime()
433         {
434             object o = null;
435             Reader.MoveToContent();
436             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
437             {
438                 if (((object)Reader.LocalName == (object)_id10_dateTime && (object)Reader.NamespaceURI == (object)_id2_Item))
439                 {
440                     {
441                         o = ToDateTime(Reader.ReadElementString());
442                     }
443                 }
444                 else
445                 {
446                     throw CreateUnknownNodeException();
447                 }
448             }
449             else
450             {
451                 UnknownNode(null);
452             }
453             return (object)o;
454         }
455 
Read_unsignedByte()456         internal object Read_unsignedByte()
457         {
458             object o = null;
459             Reader.MoveToContent();
460             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
461             {
462                 if (((object)Reader.LocalName == (object)_id11_unsignedByte && (object)Reader.NamespaceURI == (object)_id2_Item))
463                 {
464                     {
465                         o = System.Xml.XmlConvert.ToByte(Reader.ReadElementString());
466                     }
467                 }
468                 else
469                 {
470                     throw CreateUnknownNodeException();
471                 }
472             }
473             else
474             {
475                 UnknownNode(null);
476             }
477             return (object)o;
478         }
479 
Read_byte()480         internal object Read_byte()
481         {
482             object o = null;
483             Reader.MoveToContent();
484             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
485             {
486                 if (((object)Reader.LocalName == (object)_id12_byte && (object)Reader.NamespaceURI == (object)_id2_Item))
487                 {
488                     {
489                         o = System.Xml.XmlConvert.ToSByte(Reader.ReadElementString());
490                     }
491                 }
492                 else
493                 {
494                     throw CreateUnknownNodeException();
495                 }
496             }
497             else
498             {
499                 UnknownNode(null);
500             }
501             return (object)o;
502         }
503 
Read_unsignedShort()504         internal object Read_unsignedShort()
505         {
506             object o = null;
507             Reader.MoveToContent();
508             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
509             {
510                 if (((object)Reader.LocalName == (object)_id13_unsignedShort && (object)Reader.NamespaceURI == (object)_id2_Item))
511                 {
512                     {
513                         o = System.Xml.XmlConvert.ToUInt16(Reader.ReadElementString());
514                     }
515                 }
516                 else
517                 {
518                     throw CreateUnknownNodeException();
519                 }
520             }
521             else
522             {
523                 UnknownNode(null);
524             }
525             return (object)o;
526         }
527 
Read_unsignedInt()528         internal object Read_unsignedInt()
529         {
530             object o = null;
531             Reader.MoveToContent();
532             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
533             {
534                 if (((object)Reader.LocalName == (object)_id14_unsignedInt && (object)Reader.NamespaceURI == (object)_id2_Item))
535                 {
536                     {
537                         o = System.Xml.XmlConvert.ToUInt32(Reader.ReadElementString());
538                     }
539                 }
540                 else
541                 {
542                     throw CreateUnknownNodeException();
543                 }
544             }
545             else
546             {
547                 UnknownNode(null);
548             }
549             return (object)o;
550         }
551 
Read_unsignedLong()552         internal object Read_unsignedLong()
553         {
554             object o = null;
555             Reader.MoveToContent();
556             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
557             {
558                 if (((object)Reader.LocalName == (object)_id15_unsignedLong && (object)Reader.NamespaceURI == (object)_id2_Item))
559                 {
560                     {
561                         o = System.Xml.XmlConvert.ToUInt64(Reader.ReadElementString());
562                     }
563                 }
564                 else
565                 {
566                     throw CreateUnknownNodeException();
567                 }
568             }
569             else
570             {
571                 UnknownNode(null);
572             }
573             return (object)o;
574         }
575 
Read_base64Binary()576         internal object Read_base64Binary()
577         {
578             object o = null;
579             Reader.MoveToContent();
580             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
581             {
582                 if (((object)Reader.LocalName == (object)_id16_base64Binary && (object)Reader.NamespaceURI == (object)_id2_Item))
583                 {
584                     if (ReadNull())
585                     {
586                         o = null;
587                     }
588                     else
589                     {
590                         o = ToByteArrayBase64(false);
591                     }
592                 }
593                 else
594                 {
595                     throw CreateUnknownNodeException();
596                 }
597             }
598             else
599             {
600                 UnknownNode(null);
601             }
602             return (object)o;
603         }
604 
Read_guid()605         internal object Read_guid()
606         {
607             object o = null;
608             Reader.MoveToContent();
609             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
610             {
611                 if (((object)Reader.LocalName == (object)_id17_guid && (object)Reader.NamespaceURI == (object)_id2_Item))
612                 {
613                     {
614                         o = System.Xml.XmlConvert.ToGuid(Reader.ReadElementString());
615                     }
616                 }
617                 else
618                 {
619                     throw CreateUnknownNodeException();
620                 }
621             }
622             else
623             {
624                 UnknownNode(null);
625             }
626             return (object)o;
627         }
628 
Read_TimeSpan()629         internal object Read_TimeSpan()
630         {
631             object o = null;
632             Reader.MoveToContent();
633             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
634             {
635                 if (((object)Reader.LocalName == (object)_id19_TimeSpan && (object)Reader.NamespaceURI == (object)_id2_Item))
636                 {
637                     {
638                         o = System.Xml.XmlConvert.ToTimeSpan(Reader.ReadElementString());
639                     }
640                 }
641                 else
642                 {
643                     throw CreateUnknownNodeException();
644                 }
645             }
646             else
647             {
648                 UnknownNode(null);
649             }
650             return (object)o;
651         }
652 
Read_char()653         internal object Read_char()
654         {
655             object o = null;
656             Reader.MoveToContent();
657             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
658             {
659                 if (((object)Reader.LocalName == (object)_id18_char && (object)Reader.NamespaceURI == (object)_id2_Item))
660                 {
661                     {
662                         o = ToChar(Reader.ReadElementString());
663                     }
664                 }
665                 else
666                 {
667                     throw CreateUnknownNodeException();
668                 }
669             }
670             else
671             {
672                 UnknownNode(null);
673             }
674             return (object)o;
675         }
676 
Read_QName()677         internal object Read_QName()
678         {
679             object o = null;
680             Reader.MoveToContent();
681             if (Reader.NodeType == System.Xml.XmlNodeType.Element)
682             {
683                 if (((object)Reader.LocalName == (object)_id1_QName && (object)Reader.NamespaceURI == (object)_id2_Item))
684                 {
685                     if (ReadNull())
686                     {
687                         o = null;
688                     }
689                     else
690                     {
691                         o = ReadElementQualifiedName();
692                     }
693                 }
694                 else
695                 {
696                     throw CreateUnknownNodeException();
697                 }
698             }
699             else
700             {
701                 UnknownNode(null);
702             }
703             return (object)o;
704         }
705 
InitCallbacks()706         protected override void InitCallbacks()
707         {
708         }
709 
710         private System.String _id4_boolean;
711         private System.String _id14_unsignedInt;
712         private System.String _id15_unsignedLong;
713         private System.String _id7_float;
714         private System.String _id10_dateTime;
715         private System.String _id6_long;
716         private System.String _id9_decimal;
717         private System.String _id8_double;
718         private System.String _id17_guid;
719         private System.String _id19_TimeSpan;
720         private System.String _id2_Item;
721         private System.String _id13_unsignedShort;
722         private System.String _id18_char;
723         private System.String _id3_int;
724         private System.String _id12_byte;
725         private System.String _id16_base64Binary;
726         private System.String _id11_unsignedByte;
727         private System.String _id5_short;
728         private System.String _id1_string;
729         private System.String _id1_QName;
730 
InitIDs()731         protected override void InitIDs()
732         {
733             _id4_boolean = Reader.NameTable.Add(@"boolean");
734             _id14_unsignedInt = Reader.NameTable.Add(@"unsignedInt");
735             _id15_unsignedLong = Reader.NameTable.Add(@"unsignedLong");
736             _id7_float = Reader.NameTable.Add(@"float");
737             _id10_dateTime = Reader.NameTable.Add(@"dateTime");
738             _id6_long = Reader.NameTable.Add(@"long");
739             _id9_decimal = Reader.NameTable.Add(@"decimal");
740             _id8_double = Reader.NameTable.Add(@"double");
741             _id17_guid = Reader.NameTable.Add(@"guid");
742             _id19_TimeSpan = Reader.NameTable.Add(@"TimeSpan");
743             _id2_Item = Reader.NameTable.Add(@"");
744             _id13_unsignedShort = Reader.NameTable.Add(@"unsignedShort");
745             _id18_char = Reader.NameTable.Add(@"char");
746             _id3_int = Reader.NameTable.Add(@"int");
747             _id12_byte = Reader.NameTable.Add(@"byte");
748             _id16_base64Binary = Reader.NameTable.Add(@"base64Binary");
749             _id11_unsignedByte = Reader.NameTable.Add(@"unsignedByte");
750             _id5_short = Reader.NameTable.Add(@"short");
751             _id1_string = Reader.NameTable.Add(@"string");
752             _id1_QName = Reader.NameTable.Add(@"QName");
753         }
754     }
755 }
756