XmlMemberMapping.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. //
  2. // System.Xml.Serialization.XmlMemberMapping
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. // Lluis Sanchez Gual ([email protected])
  7. //
  8. // Copyright (C) Tim Coleman, 2002
  9. //
  10. using System.Xml.Schema;
  11. namespace System.Xml.Serialization
  12. {
  13. public class XmlMemberMapping {
  14. XmlTypeMapMember _mapMember;
  15. string _elementName;
  16. string _memberName;
  17. string _namespace;
  18. string _typeNamespace;
  19. XmlSchemaForm _form;
  20. internal XmlMemberMapping (string memberName, string defaultNamespace, XmlTypeMapMember mapMem, bool encodedFormat)
  21. {
  22. _mapMember = mapMem;
  23. _memberName = memberName;
  24. if (mapMem is XmlTypeMapMemberAnyElement)
  25. {
  26. XmlTypeMapMemberAnyElement anyelem = (XmlTypeMapMemberAnyElement) mapMem;
  27. XmlTypeMapElementInfo info = (XmlTypeMapElementInfo) anyelem.ElementInfo[anyelem.ElementInfo.Count-1];
  28. _elementName = info.ElementName;
  29. _namespace = info.Namespace;
  30. if (info.MappedType != null) _typeNamespace = info.MappedType.Namespace;
  31. else _typeNamespace = "";
  32. }
  33. else if (mapMem is XmlTypeMapMemberElement)
  34. {
  35. XmlTypeMapElementInfo info = (XmlTypeMapElementInfo) ((XmlTypeMapMemberElement)mapMem).ElementInfo[0];
  36. _elementName = info.ElementName;
  37. if (encodedFormat)
  38. {
  39. _namespace = defaultNamespace;
  40. if (info.MappedType != null) _typeNamespace = "";
  41. else _typeNamespace = info.DataTypeNamespace;
  42. }
  43. else
  44. {
  45. _namespace = info.Namespace;
  46. if (info.MappedType != null) _typeNamespace = info.MappedType.Namespace;
  47. else _typeNamespace = "";
  48. _form = info.Form;
  49. }
  50. }
  51. else
  52. {
  53. _elementName = _memberName;
  54. _namespace = "";
  55. }
  56. if (_form == XmlSchemaForm.None)
  57. _form = XmlSchemaForm.Qualified;
  58. }
  59. #region Properties
  60. public bool Any {
  61. get { return _mapMember is XmlTypeMapMemberAnyElement; }
  62. }
  63. public string ElementName {
  64. get { return _elementName; }
  65. }
  66. public string MemberName {
  67. get { return _memberName; }
  68. }
  69. public string Namespace {
  70. get { return _namespace; }
  71. }
  72. public string TypeFullName {
  73. get { return _mapMember.TypeData.FullTypeName; }
  74. }
  75. public string TypeName {
  76. get { return _mapMember.TypeData.XmlType; }
  77. }
  78. public string TypeNamespace {
  79. get { return _typeNamespace; }
  80. }
  81. internal XmlTypeMapMember TypeMapMember {
  82. get { return _mapMember; }
  83. }
  84. internal XmlSchemaForm Form {
  85. get { return _form; }
  86. }
  87. #if NET_1_1
  88. public bool CheckSpecified
  89. {
  90. get { return _mapMember.IsOptionalValueType; }
  91. }
  92. #endif
  93. #endregion // Properties
  94. }
  95. }