3 using System.Xml.Schema;
4 using System.Xml.Serialization;
6 using System.Collections;
7 using System.Globalization;
9 namespace System.Web.Services.Protocols
11 internal class Soap12FaultReader : XmlSerializationReader
13 public object ReadRoot_Soap12Fault ()
15 Reader.MoveToContent();
16 if (Reader.LocalName != "Fault" || Reader.NamespaceURI != "http://www.w3.org/2003/05/soap-envelope")
17 throw CreateUnknownNodeException();
18 return ReadObject_Fault (true, true);
21 public System.Web.Services.Protocols.Soap12Fault ReadObject_Fault (bool isNullable, bool checkType)
23 System.Web.Services.Protocols.Soap12Fault ob = null;
24 if (isNullable && ReadNull()) return null;
28 System.Xml.XmlQualifiedName t = GetXsiType();
31 else if (t.Name != "Fault" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
32 throw CreateUnknownTypeException(t);
35 ob = new System.Web.Services.Protocols.Soap12Fault ();
37 Reader.MoveToElement();
39 while (Reader.MoveToNextAttribute())
41 if (IsXmlnsAttribute (Reader.Name)) {
48 Reader.MoveToElement();
49 if (Reader.IsEmptyElement) {
54 Reader.ReadStartElement();
55 Reader.MoveToContent();
57 bool b0=false, b1=false, b2=false, b3=false, b4=false;
59 while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
61 if (Reader.NodeType == System.Xml.XmlNodeType.Element)
63 if (Reader.LocalName == "Role" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b3) {
65 ob.@Role = Reader.ReadElementString ();
67 else if (Reader.LocalName == "Detail" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b4) {
69 ob.@Detail = ReadObject_Detail (false, true);
71 else if (Reader.LocalName == "Code" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b0) {
73 ob.@Code = ReadObject_Code (false, true);
75 else if (Reader.LocalName == "Node" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b2) {
77 ob.@Node = Reader.ReadElementString ();
79 else if (Reader.LocalName == "Reason" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b1) {
81 ob.@Reason = ReadObject_Reason (false, true);
90 Reader.MoveToContent();
98 public System.Web.Services.Protocols.Soap12FaultDetail ReadObject_Detail (bool isNullable, bool checkType)
100 System.Web.Services.Protocols.Soap12FaultDetail ob = null;
101 if (isNullable && ReadNull()) return null;
105 System.Xml.XmlQualifiedName t = GetXsiType();
108 else if (t.Name != "Detail" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
109 throw CreateUnknownTypeException(t);
112 ob = new System.Web.Services.Protocols.Soap12FaultDetail ();
114 Reader.MoveToElement();
116 int anyAttributeIndex = 0;
117 System.Xml.XmlAttribute[] anyAttributeArray = null;
118 while (Reader.MoveToNextAttribute())
120 if (IsXmlnsAttribute (Reader.Name)) {
123 System.Xml.XmlAttribute attr = (System.Xml.XmlAttribute) Document.ReadNode(Reader);
124 anyAttributeArray = (System.Xml.XmlAttribute[]) EnsureArrayIndex (anyAttributeArray, anyAttributeIndex, typeof(System.Xml.XmlAttribute));
125 anyAttributeArray[anyAttributeIndex] = ((System.Xml.XmlAttribute) attr);
130 anyAttributeArray = (System.Xml.XmlAttribute[]) ShrinkArray (anyAttributeArray, anyAttributeIndex, typeof(System.Xml.XmlAttribute), true);
131 ob.@Attributes = anyAttributeArray;
133 Reader.MoveToElement();
134 if (Reader.IsEmptyElement) {
139 Reader.ReadStartElement();
140 Reader.MoveToContent();
142 System.Xml.XmlElement[] o8;
146 while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
148 if (Reader.NodeType == System.Xml.XmlNodeType.Element)
150 o8 = (System.Xml.XmlElement[]) EnsureArrayIndex (o8, n7, typeof(System.Xml.XmlElement));
151 o8[n7] = ((System.Xml.XmlElement) ReadXmlNode (false));
154 else if (Reader.NodeType == System.Xml.XmlNodeType.Text || Reader.NodeType == System.Xml.XmlNodeType.CDATA)
156 ob.@Text = ReadString (ob.@Text);
161 Reader.MoveToContent();
164 o8 = (System.Xml.XmlElement[]) ShrinkArray (o8, n7, typeof(System.Xml.XmlElement), true);
172 public System.Web.Services.Protocols.Soap12FaultCode ReadObject_Code (bool isNullable, bool checkType)
174 System.Web.Services.Protocols.Soap12FaultCode ob = null;
175 if (isNullable && ReadNull()) return null;
179 System.Xml.XmlQualifiedName t = GetXsiType();
182 else if (t.Name != "Code" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
183 throw CreateUnknownTypeException(t);
186 ob = new System.Web.Services.Protocols.Soap12FaultCode ();
188 Reader.MoveToElement();
190 while (Reader.MoveToNextAttribute())
192 if (IsXmlnsAttribute (Reader.Name)) {
199 Reader.MoveToElement();
200 if (Reader.IsEmptyElement) {
205 Reader.ReadStartElement();
206 Reader.MoveToContent();
208 bool b9=false, b10=false;
210 while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
212 if (Reader.NodeType == System.Xml.XmlNodeType.Element)
214 if (Reader.LocalName == "Value" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b9) {
216 ob.@Value = ReadElementQualifiedName ();
218 else if (Reader.LocalName == "Subcode" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b10) {
220 ob.@Subcode = ReadObject_Code (false, true);
229 Reader.MoveToContent();
237 public System.Web.Services.Protocols.Soap12FaultReason ReadObject_Reason (bool isNullable, bool checkType)
239 System.Web.Services.Protocols.Soap12FaultReason ob = null;
240 if (isNullable && ReadNull()) return null;
244 System.Xml.XmlQualifiedName t = GetXsiType();
247 else if (t.Name != "Reason" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
248 throw CreateUnknownTypeException(t);
251 ob = new System.Web.Services.Protocols.Soap12FaultReason ();
253 Reader.MoveToElement();
255 while (Reader.MoveToNextAttribute())
257 if (IsXmlnsAttribute (Reader.Name)) {
264 Reader.MoveToElement();
265 if (Reader.IsEmptyElement) {
270 Reader.ReadStartElement();
271 Reader.MoveToContent();
275 System.Web.Services.Protocols.Soap12FaultReasonText[] o13;
279 while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
281 if (Reader.NodeType == System.Xml.XmlNodeType.Element)
283 if (Reader.LocalName == "Text" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b11) {
284 o13 = (System.Web.Services.Protocols.Soap12FaultReasonText[]) EnsureArrayIndex (o13, n12, typeof(System.Web.Services.Protocols.Soap12FaultReasonText));
285 o13[n12] = ReadObject_Text (false, true);
295 Reader.MoveToContent();
298 o13 = (System.Web.Services.Protocols.Soap12FaultReasonText[]) ShrinkArray (o13, n12, typeof(System.Web.Services.Protocols.Soap12FaultReasonText), true);
306 public System.Web.Services.Protocols.Soap12FaultReasonText ReadObject_Text (bool isNullable, bool checkType)
308 System.Web.Services.Protocols.Soap12FaultReasonText ob = null;
309 if (isNullable && ReadNull()) return null;
313 System.Xml.XmlQualifiedName t = GetXsiType();
316 else if (t.Name != "Text" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
317 throw CreateUnknownTypeException(t);
320 ob = new System.Web.Services.Protocols.Soap12FaultReasonText ();
322 Reader.MoveToElement();
324 while (Reader.MoveToNextAttribute())
326 if (Reader.LocalName == "lang" && Reader.NamespaceURI == "http://www.w3.org/XML/1998/namespace") {
327 ob.@XmlLang = Reader.Value;
329 else if (IsXmlnsAttribute (Reader.Name)) {
336 Reader.MoveToElement();
337 if (Reader.IsEmptyElement) {
342 Reader.ReadStartElement();
343 Reader.MoveToContent();
345 while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
347 if (Reader.NodeType == System.Xml.XmlNodeType.Element)
351 else if (Reader.NodeType == System.Xml.XmlNodeType.Text || Reader.NodeType == System.Xml.XmlNodeType.CDATA)
353 ob.@Value = ReadString (ob.@Value);
358 Reader.MoveToContent();
366 protected override void InitCallbacks ()
370 protected override void InitIDs ()
376 internal class Soap12FaultWriter : XmlSerializationWriter
378 const string xmlNamespace = "http://www.w3.org/2000/xmlns/";
379 public void WriteRoot_Soap12Fault (object o)
381 WriteStartDocument ();
382 System.Web.Services.Protocols.Soap12Fault ob = (System.Web.Services.Protocols.Soap12Fault) o;
384 WriteObject_Fault (ob, "Fault", "http://www.w3.org/2003/05/soap-envelope", true, false, true);
387 void WriteObject_Fault (System.Web.Services.Protocols.Soap12Fault ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
389 if (((object)ob) == null)
392 WriteNullTagLiteral(element, namesp);
396 System.Type type = ob.GetType ();
397 if (type == typeof(System.Web.Services.Protocols.Soap12Fault))
400 throw CreateUnknownTypeException (ob);
403 if (writeWrappingElem) {
404 WriteStartElement (element, namesp, ob);
407 if (needType) WriteXsiType("Fault", "http://www.w3.org/2003/05/soap-envelope");
409 WriteObject_Code (ob.@Code, "Code", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
410 WriteObject_Reason (ob.@Reason, "Reason", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
411 WriteElementString ("Node", "http://www.w3.org/2003/05/soap-envelope", ((ob.@Node != null) ? (ob.@Node).ToString() : null));
412 WriteElementString ("Role", "http://www.w3.org/2003/05/soap-envelope", ((ob.@Role != null) ? (ob.@Role).ToString() : null));
413 WriteObject_Detail (ob.@Detail, "Detail", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
414 if (writeWrappingElem) WriteEndElement (ob);
417 void WriteObject_Code (System.Web.Services.Protocols.Soap12FaultCode ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
419 if (((object)ob) == null)
422 WriteNullTagLiteral(element, namesp);
426 System.Type type = ob.GetType ();
427 if (type == typeof(System.Web.Services.Protocols.Soap12FaultCode))
430 throw CreateUnknownTypeException (ob);
433 if (writeWrappingElem) {
434 WriteStartElement (element, namesp, ob);
437 if (needType) WriteXsiType("Code", "http://www.w3.org/2003/05/soap-envelope");
439 WriteElementQualifiedName ("Value", "http://www.w3.org/2003/05/soap-envelope", ob.@Value);
440 WriteObject_Code (ob.@Subcode, "Subcode", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
441 if (writeWrappingElem) WriteEndElement (ob);
444 void WriteObject_Reason (System.Web.Services.Protocols.Soap12FaultReason ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
446 if (((object)ob) == null)
449 WriteNullTagLiteral(element, namesp);
453 System.Type type = ob.GetType ();
454 if (type == typeof(System.Web.Services.Protocols.Soap12FaultReason))
457 throw CreateUnknownTypeException (ob);
460 if (writeWrappingElem) {
461 WriteStartElement (element, namesp, ob);
464 if (needType) WriteXsiType("Reason", "http://www.w3.org/2003/05/soap-envelope");
466 if (ob.@Texts != null) {
467 for (int n15 = 0; n15 < ob.@Texts.Length; n15++) {
468 WriteObject_Text (ob.@Texts[n15], "Text", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
471 if (writeWrappingElem) WriteEndElement (ob);
474 void WriteObject_Detail (System.Web.Services.Protocols.Soap12FaultDetail ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
476 if (((object)ob) == null)
479 WriteNullTagLiteral(element, namesp);
483 System.Type type = ob.GetType ();
484 if (type == typeof(System.Web.Services.Protocols.Soap12FaultDetail))
487 throw CreateUnknownTypeException (ob);
490 if (writeWrappingElem) {
491 WriteStartElement (element, namesp, ob);
494 if (needType) WriteXsiType("Detail", "http://www.w3.org/2003/05/soap-envelope");
496 ICollection o16 = ob.@Attributes;
498 foreach (XmlAttribute o17 in o16)
499 if (o17.NamespaceURI != xmlNamespace)
500 WriteXmlAttribute (o17, ob);
503 if (ob.@Children != null) {
504 foreach (XmlNode o18 in ob.@Children) {
506 if (o19 is XmlElement) {
508 else o19.WriteTo (Writer);
509 WriteElementLiteral (o19, "", "", false, true);
512 WriteValue (ob.@Text);
513 if (writeWrappingElem) WriteEndElement (ob);
516 void WriteObject_Text (System.Web.Services.Protocols.Soap12FaultReasonText ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
518 if (((object)ob) == null)
521 WriteNullTagLiteral(element, namesp);
525 System.Type type = ob.GetType ();
526 if (type == typeof(System.Web.Services.Protocols.Soap12FaultReasonText))
529 throw CreateUnknownTypeException (ob);
532 if (writeWrappingElem) {
533 WriteStartElement (element, namesp, ob);
536 if (needType) WriteXsiType("Text", "http://www.w3.org/2003/05/soap-envelope");
538 WriteAttribute ("lang", "http://www.w3.org/XML/1998/namespace", ob.@XmlLang);
540 WriteValue (ob.@Value);
541 if (writeWrappingElem) WriteEndElement (ob);
544 protected override void InitCallbacks ()
551 internal class Soap12FaultBaseSerializer : System.Xml.Serialization.XmlSerializer
553 protected override System.Xml.Serialization.XmlSerializationReader CreateReader () {
554 return new Soap12FaultReader ();
557 protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter () {
558 return new Soap12FaultWriter ();
561 public override bool CanDeserialize (System.Xml.XmlReader xmlReader) {
566 internal sealed class Fault12Serializer : Soap12FaultBaseSerializer
568 protected override void Serialize (object obj, System.Xml.Serialization.XmlSerializationWriter writer) {
569 ((Soap12FaultWriter)writer).WriteRoot_Soap12Fault(obj);
572 protected override object Deserialize (System.Xml.Serialization.XmlSerializationReader reader) {
573 return ((Soap12FaultReader)reader).ReadRoot_Soap12Fault();
577 internal class Soap12FaultSerializerImplementation : System.Xml.Serialization.XmlSerializerImplementation
579 System.Collections.Hashtable readMethods = null;
580 System.Collections.Hashtable writeMethods = null;
581 System.Collections.Hashtable typedSerializers = null;
583 public override System.Xml.Serialization.XmlSerializationReader Reader {
585 return new Soap12FaultReader();
589 public override System.Xml.Serialization.XmlSerializationWriter Writer {
591 return new Soap12FaultWriter();
595 public override System.Collections.Hashtable ReadMethods {
598 if (readMethods == null) {
599 readMethods = new System.Collections.Hashtable ();
600 readMethods.Add (@"", @"ReadRoot_Soap12Fault");
607 public override System.Collections.Hashtable WriteMethods {
610 if (writeMethods == null) {
611 writeMethods = new System.Collections.Hashtable ();
612 writeMethods.Add (@"", @"WriteRoot_Soap12Fault");
619 public override System.Collections.Hashtable TypedSerializers {
622 if (typedSerializers == null) {
623 typedSerializers = new System.Collections.Hashtable ();
624 typedSerializers.Add (@"", new FaultSerializer());
626 return typedSerializers;
631 public override XmlSerializer GetSerializer (Type type)
633 switch (type.FullName) {
634 case "System.Web.Services.Protocols.Soap12Fault":
635 return (XmlSerializer) TypedSerializers [""];
638 return base.GetSerializer (type);
641 public override bool CanSerialize (System.Type type) {
642 if (type == typeof(System.Web.Services.Protocols.Soap12Fault)) return true;