merge r67228-r67235, r67237, r67251 and r67256-67259 to trunk (they are
[mono.git] / mcs / class / System.XML / System.Xml.Serialization / XmlArrayAttribute.cs
index d0b67ab636d330ac260ebd6a7c05f991029b9a68..3197c7c0e562a5752f43cde5337d4a3bd93ed199 100644 (file)
@@ -1,12 +1,33 @@
-//
-// XmlArrayAttribute.cs: 
-//
-// Author:
-//   John Donagher (john@webmeta.com)
-//
-// (C) 2002 John Donagher
-//
-
+//\r
+// XmlArrayAttribute.cs: \r
+//\r
+// Author:\r
+//   John Donagher (john@webmeta.com)\r
+//\r
+// (C) 2002 John Donagher\r
+//\r
+\r
+//\r
+// Permission is hereby granted, free of charge, to any person obtaining\r
+// a copy of this software and associated documentation files (the\r
+// "Software"), to deal in the Software without restriction, including\r
+// without limitation the rights to use, copy, modify, merge, publish,\r
+// distribute, sublicense, and/or sell copies of the Software, and to\r
+// permit persons to whom the Software is furnished to do so, subject to\r
+// the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be\r
+// included in all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+//\r
+\r
 using System.Xml.Schema;\r
 using System;\r
 \r
@@ -23,7 +44,7 @@ namespace System.Xml.Serialization
                private XmlSchemaForm form;\r
                private bool isNullable;\r
                private string ns;\r
-               private int order;\r
+               private int order = -1;\r
 \r
                public XmlArrayAttribute()\r
                {\r
@@ -31,19 +52,17 @@ namespace System.Xml.Serialization
 \r
                public XmlArrayAttribute(string elementName)\r
                {\r
-                       ElementName = elementName;\r
+                       this.elementName = elementName;\r
                }\r
 \r
-               public string ElementName \r
-               {\r
-                       get\r
-                       {\r
+               public string ElementName {\r
+                       get {\r
+                               if (elementName == null) {\r
+                                       return string.Empty;\r
+                               }\r
                                return elementName;\r
-                       } \r
-                       set\r
-                       {\r
-                               elementName = value;\r
                        }\r
+                       set { elementName = value; }\r
                }\r
                public XmlSchemaForm Form \r
                {\r
@@ -78,13 +97,23 @@ namespace System.Xml.Serialization
                                ns = value;\r
                        }\r
                }\r
-               /// <summary>\r
-               /// Specifies Order in which Memberswill be serialized as Elements.\r
-               /// </summary>\r
-               internal int Order\r
+\r
+#if NET_2_0\r
+               [MonoTODO]\r
+               public int Order {\r
+                       get { return order; }\r
+                       set { order = value; }\r
+               }\r
+#endif\r
+               \r
+               internal void AddKeyHash (System.Text.StringBuilder sb)\r
                {\r
-                       get{ return  order; }\r
-                       set{ order = value; }\r
+                       sb.Append ("XAAT ");\r
+                       KeyHelper.AddField (sb, 1, ns);\r
+                       KeyHelper.AddField (sb, 2, elementName);\r
+                       KeyHelper.AddField (sb, 3, form.ToString(), XmlSchemaForm.None.ToString());\r
+                       KeyHelper.AddField (sb, 4, isNullable);\r
+                       sb.Append ('|');\r
                }\r
        }\r
 }\r