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