Fault12Serializer.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653
  1. #if NET_2_0
  2. using System;
  3. using System.Xml;
  4. using System.Xml.Schema;
  5. using System.Xml.Serialization;
  6. using System.Text;
  7. using System.Collections;
  8. using System.Globalization;
  9. namespace System.Web.Services.Protocols
  10. {
  11. internal class Soap12FaultReader : XmlSerializationReader
  12. {
  13. public object ReadRoot_Soap12Fault ()
  14. {
  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);
  19. }
  20. public System.Web.Services.Protocols.Soap12Fault ReadObject_Fault (bool isNullable, bool checkType)
  21. {
  22. System.Web.Services.Protocols.Soap12Fault ob = null;
  23. if (isNullable && ReadNull()) return null;
  24. if (checkType)
  25. {
  26. System.Xml.XmlQualifiedName t = GetXsiType();
  27. if (t == null)
  28. { }
  29. else if (t.Name != "Fault" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
  30. throw CreateUnknownTypeException(t);
  31. }
  32. ob = new System.Web.Services.Protocols.Soap12Fault ();
  33. Reader.MoveToElement();
  34. while (Reader.MoveToNextAttribute())
  35. {
  36. if (IsXmlnsAttribute (Reader.Name)) {
  37. }
  38. else {
  39. UnknownNode (ob);
  40. }
  41. }
  42. Reader.MoveToElement();
  43. if (Reader.IsEmptyElement) {
  44. Reader.Skip ();
  45. return ob;
  46. }
  47. Reader.ReadStartElement();
  48. Reader.MoveToContent();
  49. bool b0=false, b1=false, b2=false, b3=false, b4=false;
  50. while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
  51. {
  52. if (Reader.NodeType == System.Xml.XmlNodeType.Element)
  53. {
  54. if (Reader.LocalName == "Role" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b3) {
  55. b3 = true;
  56. ob.@Role = Reader.ReadElementString ();
  57. }
  58. else if (Reader.LocalName == "Detail" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b4) {
  59. b4 = true;
  60. ob.@Detail = ReadObject_Detail (false, true);
  61. }
  62. else if (Reader.LocalName == "Code" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b0) {
  63. b0 = true;
  64. ob.@Code = ReadObject_Code (false, true);
  65. }
  66. else if (Reader.LocalName == "Node" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b2) {
  67. b2 = true;
  68. ob.@Node = Reader.ReadElementString ();
  69. }
  70. else if (Reader.LocalName == "Reason" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b1) {
  71. b1 = true;
  72. ob.@Reason = ReadObject_Reason (false, true);
  73. }
  74. else {
  75. UnknownNode (ob);
  76. }
  77. }
  78. else
  79. UnknownNode(ob);
  80. Reader.MoveToContent();
  81. }
  82. ReadEndElement();
  83. return ob;
  84. }
  85. public System.Web.Services.Protocols.Soap12FaultDetail ReadObject_Detail (bool isNullable, bool checkType)
  86. {
  87. System.Web.Services.Protocols.Soap12FaultDetail ob = null;
  88. if (isNullable && ReadNull()) return null;
  89. if (checkType)
  90. {
  91. System.Xml.XmlQualifiedName t = GetXsiType();
  92. if (t == null)
  93. { }
  94. else if (t.Name != "Detail" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
  95. throw CreateUnknownTypeException(t);
  96. }
  97. ob = new System.Web.Services.Protocols.Soap12FaultDetail ();
  98. Reader.MoveToElement();
  99. int anyAttributeIndex = 0;
  100. System.Xml.XmlAttribute[] anyAttributeArray = null;
  101. while (Reader.MoveToNextAttribute())
  102. {
  103. if (IsXmlnsAttribute (Reader.Name)) {
  104. }
  105. else {
  106. System.Xml.XmlAttribute attr = (System.Xml.XmlAttribute) Document.ReadNode(Reader);
  107. anyAttributeArray = (System.Xml.XmlAttribute[]) EnsureArrayIndex (anyAttributeArray, anyAttributeIndex, typeof(System.Xml.XmlAttribute));
  108. anyAttributeArray[anyAttributeIndex] = ((System.Xml.XmlAttribute) attr);
  109. anyAttributeIndex++;
  110. }
  111. }
  112. anyAttributeArray = (System.Xml.XmlAttribute[]) ShrinkArray (anyAttributeArray, anyAttributeIndex, typeof(System.Xml.XmlAttribute), true);
  113. ob.@Attributes = anyAttributeArray;
  114. Reader.MoveToElement();
  115. if (Reader.IsEmptyElement) {
  116. Reader.Skip ();
  117. return ob;
  118. }
  119. Reader.ReadStartElement();
  120. Reader.MoveToContent();
  121. bool b5=false, b6=false;
  122. System.Xml.XmlElement[] o8;
  123. o8 = null;
  124. int n7=0;
  125. while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
  126. {
  127. if (Reader.NodeType == System.Xml.XmlNodeType.Element)
  128. {
  129. o8 = (System.Xml.XmlElement[]) EnsureArrayIndex (o8, n7, typeof(System.Xml.XmlElement));
  130. o8[n7] = ((System.Xml.XmlElement) ReadXmlNode (false));
  131. n7++;
  132. }
  133. else if (Reader.NodeType == System.Xml.XmlNodeType.Text || Reader.NodeType == System.Xml.XmlNodeType.CDATA)
  134. {
  135. ob.@Text = ReadString (ob.@Text);
  136. }
  137. else
  138. UnknownNode(ob);
  139. Reader.MoveToContent();
  140. }
  141. o8 = (System.Xml.XmlElement[]) ShrinkArray (o8, n7, typeof(System.Xml.XmlElement), true);
  142. ob.@Children = o8;
  143. ReadEndElement();
  144. return ob;
  145. }
  146. public System.Web.Services.Protocols.Soap12FaultCode ReadObject_Code (bool isNullable, bool checkType)
  147. {
  148. System.Web.Services.Protocols.Soap12FaultCode ob = null;
  149. if (isNullable && ReadNull()) return null;
  150. if (checkType)
  151. {
  152. System.Xml.XmlQualifiedName t = GetXsiType();
  153. if (t == null)
  154. { }
  155. else if (t.Name != "Code" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
  156. throw CreateUnknownTypeException(t);
  157. }
  158. ob = new System.Web.Services.Protocols.Soap12FaultCode ();
  159. Reader.MoveToElement();
  160. while (Reader.MoveToNextAttribute())
  161. {
  162. if (IsXmlnsAttribute (Reader.Name)) {
  163. }
  164. else {
  165. UnknownNode (ob);
  166. }
  167. }
  168. Reader.MoveToElement();
  169. if (Reader.IsEmptyElement) {
  170. Reader.Skip ();
  171. return ob;
  172. }
  173. Reader.ReadStartElement();
  174. Reader.MoveToContent();
  175. bool b9=false, b10=false;
  176. while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
  177. {
  178. if (Reader.NodeType == System.Xml.XmlNodeType.Element)
  179. {
  180. if (Reader.LocalName == "Value" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b9) {
  181. b9 = true;
  182. ob.@Value = ReadElementQualifiedName ();
  183. }
  184. else if (Reader.LocalName == "Subcode" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b10) {
  185. b10 = true;
  186. ob.@Subcode = ReadObject_Code (false, true);
  187. }
  188. else {
  189. UnknownNode (ob);
  190. }
  191. }
  192. else
  193. UnknownNode(ob);
  194. Reader.MoveToContent();
  195. }
  196. ReadEndElement();
  197. return ob;
  198. }
  199. public System.Web.Services.Protocols.Soap12FaultReason ReadObject_Reason (bool isNullable, bool checkType)
  200. {
  201. System.Web.Services.Protocols.Soap12FaultReason ob = null;
  202. if (isNullable && ReadNull()) return null;
  203. if (checkType)
  204. {
  205. System.Xml.XmlQualifiedName t = GetXsiType();
  206. if (t == null)
  207. { }
  208. else if (t.Name != "Reason" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
  209. throw CreateUnknownTypeException(t);
  210. }
  211. ob = new System.Web.Services.Protocols.Soap12FaultReason ();
  212. Reader.MoveToElement();
  213. while (Reader.MoveToNextAttribute())
  214. {
  215. if (IsXmlnsAttribute (Reader.Name)) {
  216. }
  217. else {
  218. UnknownNode (ob);
  219. }
  220. }
  221. Reader.MoveToElement();
  222. if (Reader.IsEmptyElement) {
  223. Reader.Skip ();
  224. return ob;
  225. }
  226. Reader.ReadStartElement();
  227. Reader.MoveToContent();
  228. bool b11=false;
  229. System.Web.Services.Protocols.Soap12FaultReasonText[] o13;
  230. o13 = null;
  231. int n12=0;
  232. while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
  233. {
  234. if (Reader.NodeType == System.Xml.XmlNodeType.Element)
  235. {
  236. if (Reader.LocalName == "Text" && Reader.NamespaceURI == "http://www.w3.org/2003/05/soap-envelope" && !b11) {
  237. o13 = (System.Web.Services.Protocols.Soap12FaultReasonText[]) EnsureArrayIndex (o13, n12, typeof(System.Web.Services.Protocols.Soap12FaultReasonText));
  238. o13[n12] = ReadObject_Text (false, true);
  239. n12++;
  240. }
  241. else {
  242. UnknownNode (ob);
  243. }
  244. }
  245. else
  246. UnknownNode(ob);
  247. Reader.MoveToContent();
  248. }
  249. o13 = (System.Web.Services.Protocols.Soap12FaultReasonText[]) ShrinkArray (o13, n12, typeof(System.Web.Services.Protocols.Soap12FaultReasonText), true);
  250. ob.@Texts = o13;
  251. ReadEndElement();
  252. return ob;
  253. }
  254. public System.Web.Services.Protocols.Soap12FaultReasonText ReadObject_Text (bool isNullable, bool checkType)
  255. {
  256. System.Web.Services.Protocols.Soap12FaultReasonText ob = null;
  257. if (isNullable && ReadNull()) return null;
  258. if (checkType)
  259. {
  260. System.Xml.XmlQualifiedName t = GetXsiType();
  261. if (t == null)
  262. { }
  263. else if (t.Name != "Text" || t.Namespace != "http://www.w3.org/2003/05/soap-envelope")
  264. throw CreateUnknownTypeException(t);
  265. }
  266. ob = new System.Web.Services.Protocols.Soap12FaultReasonText ();
  267. Reader.MoveToElement();
  268. while (Reader.MoveToNextAttribute())
  269. {
  270. if (Reader.LocalName == "lang" && Reader.NamespaceURI == "http://www.w3.org/XML/1998/namespace") {
  271. ob.@XmlLang = Reader.Value;
  272. }
  273. else if (IsXmlnsAttribute (Reader.Name)) {
  274. }
  275. else {
  276. UnknownNode (ob);
  277. }
  278. }
  279. Reader.MoveToElement();
  280. if (Reader.IsEmptyElement) {
  281. Reader.Skip ();
  282. return ob;
  283. }
  284. Reader.ReadStartElement();
  285. Reader.MoveToContent();
  286. bool b14=false;
  287. while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
  288. {
  289. if (Reader.NodeType == System.Xml.XmlNodeType.Element)
  290. {
  291. UnknownNode (ob);
  292. }
  293. else if (Reader.NodeType == System.Xml.XmlNodeType.Text || Reader.NodeType == System.Xml.XmlNodeType.CDATA)
  294. {
  295. ob.@Value = ReadString (ob.@Value);
  296. }
  297. else
  298. UnknownNode(ob);
  299. Reader.MoveToContent();
  300. }
  301. ReadEndElement();
  302. return ob;
  303. }
  304. protected override void InitCallbacks ()
  305. {
  306. }
  307. protected override void InitIDs ()
  308. {
  309. }
  310. }
  311. internal class Soap12FaultWriter : XmlSerializationWriter
  312. {
  313. const string xmlNamespace = "http://www.w3.org/2000/xmlns/";
  314. public void WriteRoot_Soap12Fault (object o)
  315. {
  316. WriteStartDocument ();
  317. System.Web.Services.Protocols.Soap12Fault ob = (System.Web.Services.Protocols.Soap12Fault) o;
  318. TopLevelElement ();
  319. WriteObject_Fault (ob, "Fault", "http://www.w3.org/2003/05/soap-envelope", true, false, true);
  320. }
  321. void WriteObject_Fault (System.Web.Services.Protocols.Soap12Fault ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
  322. {
  323. if (((object)ob) == null)
  324. {
  325. if (isNullable)
  326. WriteNullTagLiteral(element, namesp);
  327. return;
  328. }
  329. System.Type type = ob.GetType ();
  330. if (type == typeof(System.Web.Services.Protocols.Soap12Fault))
  331. { }
  332. else {
  333. throw CreateUnknownTypeException (ob);
  334. }
  335. if (writeWrappingElem) {
  336. WriteStartElement (element, namesp, ob);
  337. }
  338. if (needType) WriteXsiType("Fault", "http://www.w3.org/2003/05/soap-envelope");
  339. WriteObject_Code (ob.@Code, "Code", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
  340. WriteObject_Reason (ob.@Reason, "Reason", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
  341. WriteElementString ("Node", "http://www.w3.org/2003/05/soap-envelope", ((ob.@Node != null) ? (ob.@Node).ToString() : null));
  342. WriteElementString ("Role", "http://www.w3.org/2003/05/soap-envelope", ((ob.@Role != null) ? (ob.@Role).ToString() : null));
  343. WriteObject_Detail (ob.@Detail, "Detail", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
  344. if (writeWrappingElem) WriteEndElement (ob);
  345. }
  346. void WriteObject_Code (System.Web.Services.Protocols.Soap12FaultCode ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
  347. {
  348. if (((object)ob) == null)
  349. {
  350. if (isNullable)
  351. WriteNullTagLiteral(element, namesp);
  352. return;
  353. }
  354. System.Type type = ob.GetType ();
  355. if (type == typeof(System.Web.Services.Protocols.Soap12FaultCode))
  356. { }
  357. else {
  358. throw CreateUnknownTypeException (ob);
  359. }
  360. if (writeWrappingElem) {
  361. WriteStartElement (element, namesp, ob);
  362. }
  363. if (needType) WriteXsiType("Code", "http://www.w3.org/2003/05/soap-envelope");
  364. WriteElementQualifiedName ("Value", "http://www.w3.org/2003/05/soap-envelope", ob.@Value);
  365. WriteObject_Code (ob.@Subcode, "Subcode", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
  366. if (writeWrappingElem) WriteEndElement (ob);
  367. }
  368. void WriteObject_Reason (System.Web.Services.Protocols.Soap12FaultReason ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
  369. {
  370. if (((object)ob) == null)
  371. {
  372. if (isNullable)
  373. WriteNullTagLiteral(element, namesp);
  374. return;
  375. }
  376. System.Type type = ob.GetType ();
  377. if (type == typeof(System.Web.Services.Protocols.Soap12FaultReason))
  378. { }
  379. else {
  380. throw CreateUnknownTypeException (ob);
  381. }
  382. if (writeWrappingElem) {
  383. WriteStartElement (element, namesp, ob);
  384. }
  385. if (needType) WriteXsiType("Reason", "http://www.w3.org/2003/05/soap-envelope");
  386. if (ob.@Texts != null) {
  387. for (int n15 = 0; n15 < [email protected]; n15++) {
  388. WriteObject_Text (ob.@Texts[n15], "Text", "http://www.w3.org/2003/05/soap-envelope", false, false, true);
  389. }
  390. }
  391. if (writeWrappingElem) WriteEndElement (ob);
  392. }
  393. void WriteObject_Detail (System.Web.Services.Protocols.Soap12FaultDetail ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
  394. {
  395. if (((object)ob) == null)
  396. {
  397. if (isNullable)
  398. WriteNullTagLiteral(element, namesp);
  399. return;
  400. }
  401. System.Type type = ob.GetType ();
  402. if (type == typeof(System.Web.Services.Protocols.Soap12FaultDetail))
  403. { }
  404. else {
  405. throw CreateUnknownTypeException (ob);
  406. }
  407. if (writeWrappingElem) {
  408. WriteStartElement (element, namesp, ob);
  409. }
  410. if (needType) WriteXsiType("Detail", "http://www.w3.org/2003/05/soap-envelope");
  411. ICollection o16 = ob.@Attributes;
  412. if (o16 != null) {
  413. foreach (XmlAttribute o17 in o16)
  414. if (o17.NamespaceURI != xmlNamespace)
  415. WriteXmlAttribute (o17, ob);
  416. }
  417. if (ob.@Children != null) {
  418. foreach (XmlNode o18 in ob.@Children) {
  419. XmlNode o19 = o18;
  420. if (o19 is XmlElement) {
  421. }
  422. else o19.WriteTo (Writer);
  423. WriteElementLiteral (o19, "", "", false, true);
  424. }
  425. }
  426. WriteValue (ob.@Text);
  427. if (writeWrappingElem) WriteEndElement (ob);
  428. }
  429. void WriteObject_Text (System.Web.Services.Protocols.Soap12FaultReasonText ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
  430. {
  431. if (((object)ob) == null)
  432. {
  433. if (isNullable)
  434. WriteNullTagLiteral(element, namesp);
  435. return;
  436. }
  437. System.Type type = ob.GetType ();
  438. if (type == typeof(System.Web.Services.Protocols.Soap12FaultReasonText))
  439. { }
  440. else {
  441. throw CreateUnknownTypeException (ob);
  442. }
  443. if (writeWrappingElem) {
  444. WriteStartElement (element, namesp, ob);
  445. }
  446. if (needType) WriteXsiType("Text", "http://www.w3.org/2003/05/soap-envelope");
  447. WriteAttribute ("lang", "http://www.w3.org/XML/1998/namespace", ob.@XmlLang);
  448. WriteValue (ob.@Value);
  449. if (writeWrappingElem) WriteEndElement (ob);
  450. }
  451. protected override void InitCallbacks ()
  452. {
  453. }
  454. }
  455. internal class Soap12FaultBaseSerializer : System.Xml.Serialization.XmlSerializer
  456. {
  457. protected override System.Xml.Serialization.XmlSerializationReader CreateReader () {
  458. return new Soap12FaultReader ();
  459. }
  460. protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter () {
  461. return new Soap12FaultWriter ();
  462. }
  463. public override bool CanDeserialize (System.Xml.XmlReader xmlReader) {
  464. return true;
  465. }
  466. }
  467. internal sealed class Fault12Serializer : Soap12FaultBaseSerializer
  468. {
  469. protected override void Serialize (object obj, System.Xml.Serialization.XmlSerializationWriter writer) {
  470. ((Soap12FaultWriter)writer).WriteRoot_Soap12Fault(obj);
  471. }
  472. protected override object Deserialize (System.Xml.Serialization.XmlSerializationReader reader) {
  473. return ((Soap12FaultReader)reader).ReadRoot_Soap12Fault();
  474. }
  475. }
  476. internal class Soap12FaultSerializerImplementation : System.Xml.Serialization.XmlSerializerImplementation
  477. {
  478. System.Collections.Hashtable readMethods = null;
  479. System.Collections.Hashtable writeMethods = null;
  480. System.Collections.Hashtable typedSerializers = null;
  481. public override System.Xml.Serialization.XmlSerializationReader Reader {
  482. get {
  483. return new Soap12FaultReader();
  484. }
  485. }
  486. public override System.Xml.Serialization.XmlSerializationWriter Writer {
  487. get {
  488. return new Soap12FaultWriter();
  489. }
  490. }
  491. public override System.Collections.Hashtable ReadMethods {
  492. get {
  493. lock (this) {
  494. if (readMethods == null) {
  495. readMethods = new System.Collections.Hashtable ();
  496. readMethods.Add (@"", @"ReadRoot_Soap12Fault");
  497. }
  498. return readMethods;
  499. }
  500. }
  501. }
  502. public override System.Collections.Hashtable WriteMethods {
  503. get {
  504. lock (this) {
  505. if (writeMethods == null) {
  506. writeMethods = new System.Collections.Hashtable ();
  507. writeMethods.Add (@"", @"WriteRoot_Soap12Fault");
  508. }
  509. return writeMethods;
  510. }
  511. }
  512. }
  513. public override System.Collections.Hashtable TypedSerializers {
  514. get {
  515. lock (this) {
  516. if (typedSerializers == null) {
  517. typedSerializers = new System.Collections.Hashtable ();
  518. typedSerializers.Add (@"", new FaultSerializer());
  519. }
  520. return typedSerializers;
  521. }
  522. }
  523. }
  524. public override XmlSerializer GetSerializer (Type type)
  525. {
  526. switch (type.FullName) {
  527. case "System.Web.Services.Protocols.Soap12Fault":
  528. return (XmlSerializer) TypedSerializers [""];
  529. }
  530. return base.GetSerializer (type);
  531. }
  532. public override bool CanSerialize (System.Type type) {
  533. if (type == typeof(System.Web.Services.Protocols.Soap12Fault)) return true;
  534. return false;
  535. }
  536. }
  537. }
  538. #endif