The Labs \ Source Viewer \ SSCLI \ System.Xml.Serialization \ XmlSerializationPrimitiveReader

  1. //------------------------------------------------------------------------------
  2. // <copyright file="PrimitiveXmlSerializers.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. // <owner current="true" primary="true">ElenaK</owner>
  15. //------------------------------------------------------------------------------
  16. namespace System.Xml.Serialization
  17. {
  18.     internal class XmlSerializationPrimitiveWriter : System.Xml.Serialization.XmlSerializationWriter
  19.     {
  20.        
  21.         internal void Write_string(object o)
  22.         {
  23.             WriteStartDocument();
  24.             if (o == null) {
  25.                 WriteNullTagLiteral("string", "");
  26.                 return;
  27.             }
  28.             TopLevelElement();
  29.             WriteNullableStringLiteral("string", "", ((string)o));
  30.         }
  31.        
  32.         internal void Write_int(object o)
  33.         {
  34.             WriteStartDocument();
  35.             if (o == null) {
  36.                 WriteEmptyTag("int", "");
  37.                 return;
  38.             }
  39.             WriteElementStringRaw("int", "", System.Xml.XmlConvert.ToString((int)((int)o)));
  40.         }
  41.        
  42.         internal void Write_boolean(object o)
  43.         {
  44.             WriteStartDocument();
  45.             if (o == null) {
  46.                 WriteEmptyTag("boolean", "");
  47.                 return;
  48.             }
  49.             WriteElementStringRaw("boolean", "", System.Xml.XmlConvert.ToString((bool)((bool)o)));
  50.         }
  51.        
  52.         internal void Write_short(object o)
  53.         {
  54.             WriteStartDocument();
  55.             if (o == null) {
  56.                 WriteEmptyTag("short", "");
  57.                 return;
  58.             }
  59.             WriteElementStringRaw("short", "", System.Xml.XmlConvert.ToString((short)((short)o)));
  60.         }
  61.        
  62.         internal void Write_long(object o)
  63.         {
  64.             WriteStartDocument();
  65.             if (o == null) {
  66.                 WriteEmptyTag("long", "");
  67.                 return;
  68.             }
  69.             WriteElementStringRaw("long", "", System.Xml.XmlConvert.ToString((long)((long)o)));
  70.         }
  71.        
  72.         internal void Write_float(object o)
  73.         {
  74.             WriteStartDocument();
  75.             if (o == null) {
  76.                 WriteEmptyTag("float", "");
  77.                 return;
  78.             }
  79.             WriteElementStringRaw("float", "", System.Xml.XmlConvert.ToString((float)((float)o)));
  80.         }
  81.        
  82.         internal void Write_double(object o)
  83.         {
  84.             WriteStartDocument();
  85.             if (o == null) {
  86.                 WriteEmptyTag("double", "");
  87.                 return;
  88.             }
  89.             WriteElementStringRaw("double", "", System.Xml.XmlConvert.ToString((double)((double)o)));
  90.         }
  91.        
  92.         internal void Write_decimal(object o)
  93.         {
  94.             WriteStartDocument();
  95.             if (o == null) {
  96.                 WriteEmptyTag("decimal", "");
  97.                 return;
  98.             }
  99.             WriteElementStringRaw("decimal", "", System.Xml.XmlConvert.ToString((decimal)((decimal)o)));
  100.         }
  101.        
  102.         internal void Write_dateTime(object o)
  103.         {
  104.             WriteStartDocument();
  105.             if (o == null) {
  106.                 WriteEmptyTag("dateTime", "");
  107.                 return;
  108.             }
  109.             WriteElementStringRaw("dateTime", "", FromDateTime(((System.DateTime)o)));
  110.         }
  111.        
  112.         internal void Write_unsignedByte(object o)
  113.         {
  114.             WriteStartDocument();
  115.             if (o == null) {
  116.                 WriteEmptyTag("unsignedByte", "");
  117.                 return;
  118.             }
  119.             WriteElementStringRaw("unsignedByte", "", System.Xml.XmlConvert.ToString((byte)((byte)o)));
  120.         }
  121.        
  122.         internal void Write_byte(object o)
  123.         {
  124.             WriteStartDocument();
  125.             if (o == null) {
  126.                 WriteEmptyTag("byte", "");
  127.                 return;
  128.             }
  129.             WriteElementStringRaw("byte", "", System.Xml.XmlConvert.ToString((sbyte)((sbyte)o)));
  130.         }
  131.        
  132.         internal void Write_unsignedShort(object o)
  133.         {
  134.             WriteStartDocument();
  135.             if (o == null) {
  136.                 WriteEmptyTag("unsignedShort", "");
  137.                 return;
  138.             }
  139.             WriteElementStringRaw("unsignedShort", "", System.Xml.XmlConvert.ToString((ushort)((ushort)o)));
  140.         }
  141.        
  142.         internal void Write_unsignedInt(object o)
  143.         {
  144.             WriteStartDocument();
  145.             if (o == null) {
  146.                 WriteEmptyTag("unsignedInt", "");
  147.                 return;
  148.             }
  149.             WriteElementStringRaw("unsignedInt", "", System.Xml.XmlConvert.ToString((uint)((uint)o)));
  150.         }
  151.        
  152.         internal void Write_unsignedLong(object o)
  153.         {
  154.             WriteStartDocument();
  155.             if (o == null) {
  156.                 WriteEmptyTag("unsignedLong", "");
  157.                 return;
  158.             }
  159.             WriteElementStringRaw("unsignedLong", "", System.Xml.XmlConvert.ToString((ulong)((ulong)o)));
  160.         }
  161.        
  162.         internal void Write_base64Binary(object o)
  163.         {
  164.             WriteStartDocument();
  165.             if (o == null) {
  166.                 WriteNullTagLiteral("base64Binary", "");
  167.                 return;
  168.             }
  169.             TopLevelElement();
  170.             WriteNullableStringLiteralRaw("base64Binary", "", FromByteArrayBase64(((byte[])o)));
  171.         }
  172.        
  173.         internal void Write_guid(object o)
  174.         {
  175.             WriteStartDocument();
  176.             if (o == null) {
  177.                 WriteEmptyTag("guid", "");
  178.                 return;
  179.             }
  180.             WriteElementStringRaw("guid", "", System.Xml.XmlConvert.ToString((System.Guid)((System.Guid)o)));
  181.         }
  182.        
  183.         internal void Write_char(object o)
  184.         {
  185.             WriteStartDocument();
  186.             if (o == null) {
  187.                 WriteEmptyTag("char", "");
  188.                 return;
  189.             }
  190.             WriteElementString("char", "", FromChar(((char)o)));
  191.         }
  192.        
  193.         internal void Write_QName(object o)
  194.         {
  195.             WriteStartDocument();
  196.             if (o == null) {
  197.                 WriteNullTagLiteral("QName", "");
  198.                 return;
  199.             }
  200.             TopLevelElement();
  201.             WriteNullableQualifiedNameLiteral("QName", "", ((global::System.Xml.XmlQualifiedName)o));
  202.         }
  203.        
  204.         protected override void InitCallbacks()
  205.         {
  206.         }
  207.     }
  208.    
  209.     internal class XmlSerializationPrimitiveReader : System.Xml.Serialization.XmlSerializationReader
  210.     {
  211.        
  212.         internal object Read_string()
  213.         {
  214.             object o = null;
  215.             Reader.MoveToContent();
  216.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  217.                 if (((object)Reader.LocalName == (object)id1_string && (object)Reader.NamespaceURI == (object)id2_Item)) {
  218.                     if (ReadNull()) {
  219.                         o = null;
  220.                     }
  221.                     else {
  222.                         o = Reader.ReadElementString();
  223.                     }
  224.                 }
  225.                 else {
  226.                     throw CreateUnknownNodeException();
  227.                 }
  228.             }
  229.             else {
  230.                 UnknownNode(null);
  231.             }
  232.             return (object)o;
  233.         }
  234.        
  235.         internal object Read_int()
  236.         {
  237.             object o = null;
  238.             Reader.MoveToContent();
  239.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  240.                 if (((object)Reader.LocalName == (object)id3_int && (object)Reader.NamespaceURI == (object)id2_Item)) {
  241.                     {
  242.                         o = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
  243.                     }
  244.                 }
  245.                 else {
  246.                     throw CreateUnknownNodeException();
  247.                 }
  248.             }
  249.             else {
  250.                 UnknownNode(null);
  251.             }
  252.             return (object)o;
  253.         }
  254.        
  255.         internal object Read_boolean()
  256.         {
  257.             object o = null;
  258.             Reader.MoveToContent();
  259.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  260.                 if (((object)Reader.LocalName == (object)id4_boolean && (object)Reader.NamespaceURI == (object)id2_Item)) {
  261.                     {
  262.                         o = System.Xml.XmlConvert.ToBoolean(Reader.ReadElementString());
  263.                     }
  264.                 }
  265.                 else {
  266.                     throw CreateUnknownNodeException();
  267.                 }
  268.             }
  269.             else {
  270.                 UnknownNode(null);
  271.             }
  272.             return (object)o;
  273.         }
  274.        
  275.         internal object Read_short()
  276.         {
  277.             object o = null;
  278.             Reader.MoveToContent();
  279.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  280.                 if (((object)Reader.LocalName == (object)id5_short && (object)Reader.NamespaceURI == (object)id2_Item)) {
  281.                     {
  282.                         o = System.Xml.XmlConvert.ToInt16(Reader.ReadElementString());
  283.                     }
  284.                 }
  285.                 else {
  286.                     throw CreateUnknownNodeException();
  287.                 }
  288.             }
  289.             else {
  290.                 UnknownNode(null);
  291.             }
  292.             return (object)o;
  293.         }
  294.        
  295.         internal object Read_long()
  296.         {
  297.             object o = null;
  298.             Reader.MoveToContent();
  299.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  300.                 if (((object)Reader.LocalName == (object)id6_long && (object)Reader.NamespaceURI == (object)id2_Item)) {
  301.                     {
  302.                         o = System.Xml.XmlConvert.ToInt64(Reader.ReadElementString());
  303.                     }
  304.                 }
  305.                 else {
  306.                     throw CreateUnknownNodeException();
  307.                 }
  308.             }
  309.             else {
  310.                 UnknownNode(null);
  311.             }
  312.             return (object)o;
  313.         }
  314.        
  315.         internal object Read_float()
  316.         {
  317.             object o = null;
  318.             Reader.MoveToContent();
  319.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  320.                 if (((object)Reader.LocalName == (object)id7_float && (object)Reader.NamespaceURI == (object)id2_Item)) {
  321.                     {
  322.                         o = System.Xml.XmlConvert.ToSingle(Reader.ReadElementString());
  323.                     }
  324.                 }
  325.                 else {
  326.                     throw CreateUnknownNodeException();
  327.                 }
  328.             }
  329.             else {
  330.                 UnknownNode(null);
  331.             }
  332.             return (object)o;
  333.         }
  334.        
  335.         internal object Read_double()
  336.         {
  337.             object o = null;
  338.             Reader.MoveToContent();
  339.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  340.                 if (((object)Reader.LocalName == (object)id8_double && (object)Reader.NamespaceURI == (object)id2_Item)) {
  341.                     {
  342.                         o = System.Xml.XmlConvert.ToDouble(Reader.ReadElementString());
  343.                     }
  344.                 }
  345.                 else {
  346.                     throw CreateUnknownNodeException();
  347.                 }
  348.             }
  349.             else {
  350.                 UnknownNode(null);
  351.             }
  352.             return (object)o;
  353.         }
  354.        
  355.         internal object Read_decimal()
  356.         {
  357.             object o = null;
  358.             Reader.MoveToContent();
  359.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  360.                 if (((object)Reader.LocalName == (object)id9_decimal && (object)Reader.NamespaceURI == (object)id2_Item)) {
  361.                     {
  362.                         o = System.Xml.XmlConvert.ToDecimal(Reader.ReadElementString());
  363.                     }
  364.                 }
  365.                 else {
  366.                     throw CreateUnknownNodeException();
  367.                 }
  368.             }
  369.             else {
  370.                 UnknownNode(null);
  371.             }
  372.             return (object)o;
  373.         }
  374.        
  375.         internal object Read_dateTime()
  376.         {
  377.             object o = null;
  378.             Reader.MoveToContent();
  379.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  380.                 if (((object)Reader.LocalName == (object)id10_dateTime && (object)Reader.NamespaceURI == (object)id2_Item)) {
  381.                     {
  382.                         o = ToDateTime(Reader.ReadElementString());
  383.                     }
  384.                 }
  385.                 else {
  386.                     throw CreateUnknownNodeException();
  387.                 }
  388.             }
  389.             else {
  390.                 UnknownNode(null);
  391.             }
  392.             return (object)o;
  393.         }
  394.        
  395.         internal object Read_unsignedByte()
  396.         {
  397.             object o = null;
  398.             Reader.MoveToContent();
  399.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  400.                 if (((object)Reader.LocalName == (object)id11_unsignedByte && (object)Reader.NamespaceURI == (object)id2_Item)) {
  401.                     {
  402.                         o = System.Xml.XmlConvert.ToByte(Reader.ReadElementString());
  403.                     }
  404.                 }
  405.                 else {
  406.                     throw CreateUnknownNodeException();
  407.                 }
  408.             }
  409.             else {
  410.                 UnknownNode(null);
  411.             }
  412.             return (object)o;
  413.         }
  414.        
  415.         internal object Read_byte()
  416.         {
  417.             object o = null;
  418.             Reader.MoveToContent();
  419.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  420.                 if (((object)Reader.LocalName == (object)id12_byte && (object)Reader.NamespaceURI == (object)id2_Item)) {
  421.                     {
  422.                         o = System.Xml.XmlConvert.ToSByte(Reader.ReadElementString());
  423.                     }
  424.                 }
  425.                 else {
  426.                     throw CreateUnknownNodeException();
  427.                 }
  428.             }
  429.             else {
  430.                 UnknownNode(null);
  431.             }
  432.             return (object)o;
  433.         }
  434.        
  435.         internal object Read_unsignedShort()
  436.         {
  437.             object o = null;
  438.             Reader.MoveToContent();
  439.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  440.                 if (((object)Reader.LocalName == (object)id13_unsignedShort && (object)Reader.NamespaceURI == (object)id2_Item)) {
  441.                     {
  442.                         o = System.Xml.XmlConvert.ToUInt16(Reader.ReadElementString());
  443.                     }
  444.                 }
  445.                 else {
  446.                     throw CreateUnknownNodeException();
  447.                 }
  448.             }
  449.             else {
  450.                 UnknownNode(null);
  451.             }
  452.             return (object)o;
  453.         }
  454.        
  455.         internal object Read_unsignedInt()
  456.         {
  457.             object o = null;
  458.             Reader.MoveToContent();
  459.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  460.                 if (((object)Reader.LocalName == (object)id14_unsignedInt && (object)Reader.NamespaceURI == (object)id2_Item)) {
  461.                     {
  462.                         o = System.Xml.XmlConvert.ToUInt32(Reader.ReadElementString());
  463.                     }
  464.                 }
  465.                 else {
  466.                     throw CreateUnknownNodeException();
  467.                 }
  468.             }
  469.             else {
  470.                 UnknownNode(null);
  471.             }
  472.             return (object)o;
  473.         }
  474.        
  475.         internal object Read_unsignedLong()
  476.         {
  477.             object o = null;
  478.             Reader.MoveToContent();
  479.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  480.                 if (((object)Reader.LocalName == (object)id15_unsignedLong && (object)Reader.NamespaceURI == (object)id2_Item)) {
  481.                     {
  482.                         o = System.Xml.XmlConvert.ToUInt64(Reader.ReadElementString());
  483.                     }
  484.                 }
  485.                 else {
  486.                     throw CreateUnknownNodeException();
  487.                 }
  488.             }
  489.             else {
  490.                 UnknownNode(null);
  491.             }
  492.             return (object)o;
  493.         }
  494.        
  495.         internal object Read_base64Binary()
  496.         {
  497.             object o = null;
  498.             Reader.MoveToContent();
  499.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  500.                 if (((object)Reader.LocalName == (object)id16_base64Binary && (object)Reader.NamespaceURI == (object)id2_Item)) {
  501.                     if (ReadNull()) {
  502.                         o = null;
  503.                     }
  504.                     else {
  505.                         o = ToByteArrayBase64(false);
  506.                     }
  507.                 }
  508.                 else {
  509.                     throw CreateUnknownNodeException();
  510.                 }
  511.             }
  512.             else {
  513.                 UnknownNode(null);
  514.             }
  515.             return (object)o;
  516.         }
  517.        
  518.         internal object Read_guid()
  519.         {
  520.             object o = null;
  521.             Reader.MoveToContent();
  522.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  523.                 if (((object)Reader.LocalName == (object)id17_guid && (object)Reader.NamespaceURI == (object)id2_Item)) {
  524.                     {
  525.                         o = System.Xml.XmlConvert.ToGuid(Reader.ReadElementString());
  526.                     }
  527.                 }
  528.                 else {
  529.                     throw CreateUnknownNodeException();
  530.                 }
  531.             }
  532.             else {
  533.                 UnknownNode(null);
  534.             }
  535.             return (object)o;
  536.         }
  537.        
  538.         internal object Read_char()
  539.         {
  540.             object o = null;
  541.             Reader.MoveToContent();
  542.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  543.                 if (((object)Reader.LocalName == (object)id18_char && (object)Reader.NamespaceURI == (object)id2_Item)) {
  544.                     {
  545.                         o = ToChar(Reader.ReadElementString());
  546.                     }
  547.                 }
  548.                 else {
  549.                     throw CreateUnknownNodeException();
  550.                 }
  551.             }
  552.             else {
  553.                 UnknownNode(null);
  554.             }
  555.             return (object)o;
  556.         }
  557.        
  558.         internal object Read_QName()
  559.         {
  560.             object o = null;
  561.             Reader.MoveToContent();
  562.             if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
  563.                 if (((object)Reader.LocalName == (object)id1_QName && (object)Reader.NamespaceURI == (object)id2_Item)) {
  564.                     if (ReadNull()) {
  565.                         o = null;
  566.                     }
  567.                     else {
  568.                         o = ReadElementQualifiedName();
  569.                     }
  570.                 }
  571.                 else {
  572.                     throw CreateUnknownNodeException();
  573.                 }
  574.             }
  575.             else {
  576.                 UnknownNode(null);
  577.             }
  578.             return (object)o;
  579.         }
  580.        
  581.         protected override void InitCallbacks()
  582.         {
  583.         }
  584.        
  585.         string id4_boolean;
  586.         string id14_unsignedInt;
  587.         string id15_unsignedLong;
  588.         string id7_float;
  589.         string id10_dateTime;
  590.         string id6_long;
  591.         string id9_decimal;
  592.         string id8_double;
  593.         string id17_guid;
  594.         string id2_Item;
  595.         string id13_unsignedShort;
  596.         string id18_char;
  597.         string id3_int;
  598.         string id12_byte;
  599.         string id16_base64Binary;
  600.         string id11_unsignedByte;
  601.         string id5_short;
  602.         string id1_string;
  603.         string id1_QName;
  604.        
  605.         protected override void InitIDs()
  606.         {
  607.             id4_boolean = Reader.NameTable.Add("boolean");
  608.             id14_unsignedInt = Reader.NameTable.Add("unsignedInt");
  609.             id15_unsignedLong = Reader.NameTable.Add("unsignedLong");
  610.             id7_float = Reader.NameTable.Add("float");
  611.             id10_dateTime = Reader.NameTable.Add("dateTime");
  612.             id6_long = Reader.NameTable.Add("long");
  613.             id9_decimal = Reader.NameTable.Add("decimal");
  614.             id8_double = Reader.NameTable.Add("double");
  615.             id17_guid = Reader.NameTable.Add("guid");
  616.             id2_Item = Reader.NameTable.Add("");
  617.             id13_unsignedShort = Reader.NameTable.Add("unsignedShort");
  618.             id18_char = Reader.NameTable.Add("char");
  619.             id3_int = Reader.NameTable.Add("int");
  620.             id12_byte = Reader.NameTable.Add("byte");
  621.             id16_base64Binary = Reader.NameTable.Add("base64Binary");
  622.             id11_unsignedByte = Reader.NameTable.Add("unsignedByte");
  623.             id5_short = Reader.NameTable.Add("short");
  624.             id1_string = Reader.NameTable.Add("string");
  625.             id1_QName = Reader.NameTable.Add("QName");
  626.         }
  627.     }
  628. }

Developer Fusion