XmlElementAttribute.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. //
  2. // XmlElementAttribute.cs:
  3. //
  4. // Author:
  5. // John Donagher ([email protected])
  6. //
  7. // (C) 2002 John Donagher
  8. //
  9. using System.Xml.Schema;
  10. using System;
  11. namespace System.Xml.Serialization
  12. {
  13. /// <summary>
  14. /// Summary description for XmlElementAttribute.
  15. /// </summary
  16. [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field
  17. | AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple=true)]
  18. public class XmlElementAttribute : Attribute
  19. {
  20. private string dataType;
  21. private string elementName;
  22. private XmlSchemaForm form;
  23. private string ns;
  24. private bool isNullable;
  25. private Type type;
  26. public XmlElementAttribute ()
  27. {
  28. }
  29. public XmlElementAttribute (string elementName)
  30. {
  31. ElementName = elementName;
  32. }
  33. public XmlElementAttribute (Type type)
  34. {
  35. Type = type;
  36. }
  37. public XmlElementAttribute (string elementName, Type type)
  38. {
  39. ElementName = elementName;
  40. Type = type;
  41. }
  42. public string DataType {
  43. get {
  44. return dataType;
  45. }
  46. set {
  47. dataType = value;
  48. }
  49. }
  50. public string ElementName {
  51. get {
  52. return elementName;
  53. }
  54. set {
  55. elementName = value;
  56. }
  57. }
  58. public XmlSchemaForm Form {
  59. get {
  60. return form;
  61. }
  62. set {
  63. form = value;
  64. }
  65. }
  66. public string Namespace {
  67. get {
  68. return ns;
  69. }
  70. set {
  71. ns = value;
  72. }
  73. }
  74. public bool IsNullable {
  75. get {
  76. return isNullable;
  77. }
  78. set {
  79. isNullable = value;
  80. }
  81. }
  82. public Type Type {
  83. get {
  84. return type;
  85. }
  86. set {
  87. type = value;
  88. }
  89. }
  90. internal void AddKeyHash (System.Text.StringBuilder sb)
  91. {
  92. sb.Append ("XEA ");
  93. KeyHelper.AddField (sb, 1, ns);
  94. KeyHelper.AddField (sb, 2, elementName);
  95. KeyHelper.AddField (sb, 3, form.ToString(), XmlSchemaForm.None.ToString());
  96. KeyHelper.AddField (sb, 4, dataType);
  97. KeyHelper.AddField (sb, 5, type);
  98. KeyHelper.AddField (sb, 6, isNullable);
  99. sb.Append ('|');
  100. }
  101. }
  102. }