2006-11-01 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 1 Nov 2006 19:56:21 +0000 (19:56 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 1 Nov 2006 19:56:21 +0000 (19:56 -0000)
* SchemaImporterExtensionCollection.cs,
  SchemaImporterExtension.cs : moved from S.X.Serialization.

* DateTimeSerializationSection.cs
  SerializationSectionGroup.cs
  XmlSerializerSection.cs
  SchemaImporterExtensionElementCollection.cs
  SchemaImporterExtensionsSection.cs
  SchemaImporterExtensionElement.cs : new files. config support it
  not functional yet.

svn path=/branches/atsushi/mcs/; revision=67231

mcs/class/System.XML/System.Xml.Serialization.Advanced/SchemaImporterExtension.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollection.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Configuration/DateTimeSerializationSection.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionElement.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionElementCollection.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionsSection.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Configuration/SerializationSectionGroup.cs [new file with mode: 0644]
mcs/class/System.XML/System.Xml.Serialization.Configuration/XmlSerializerSection.cs [new file with mode: 0644]

diff --git a/mcs/class/System.XML/System.Xml.Serialization.Advanced/SchemaImporterExtension.cs b/mcs/class/System.XML/System.Xml.Serialization.Advanced/SchemaImporterExtension.cs
new file mode 100644 (file)
index 0000000..cd67288
--- /dev/null
@@ -0,0 +1,98 @@
+// 
+// System.Xml.Serialization.SchemaImporterExtension.cs 
+//
+// Author:
+//   Lluis Sanchez Gual (lluis@novell.com)
+//
+// Copyright (C) Novell, Inc., 2004
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.CodeDom;
+using System.CodeDom.Compiler;
+using System.Collections;
+using System.Collections.Specialized;
+using System.Xml.Schema;
+
+namespace System.Xml.Serialization.Advanced
+{
+       public abstract class SchemaImporterExtension
+       {
+               protected SchemaImporterExtension ()
+               {
+               }
+
+               public virtual string ImportAnyElement (
+                       XmlSchemaAny any, 
+                       bool mixed, 
+                       XmlSchemas schemas, 
+                       XmlSchemaImporter importer, 
+                       CodeCompileUnit codeCompileUnit, 
+                       CodeNamespace codeNamespace, 
+                       CodeGenerationOptions options, 
+                       CodeDomProvider codeProvider
+               )
+               {
+                       return null;
+               }
+               
+               public virtual CodeExpression ImportDefaultValue (string value, string type)
+               {
+                       return null;
+               }
+               
+               public virtual string ImportSchemaType (
+                       XmlSchemaType type, 
+                       XmlSchemaObject context, 
+                       XmlSchemas schemas, 
+                       XmlSchemaImporter importer, 
+                       CodeCompileUnit codeCompileUnit, 
+                       CodeNamespace codeNamespace, 
+                       CodeGenerationOptions options, 
+                       CodeDomProvider codeProvider
+               )
+               {
+                       return null;
+               }
+               
+               public virtual string ImportSchemaType (
+                       string name, 
+                       string ns, 
+                       XmlSchemaObject context, 
+                       XmlSchemas schemas, 
+                       XmlSchemaImporter importer, 
+                       CodeCompileUnit codeCompileUnit, 
+                       CodeNamespace codeNamespace, 
+                       CodeGenerationOptions options, 
+                       CodeDomProvider codeProvider
+               )
+               {
+                       return null;
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollection.cs b/mcs/class/System.XML/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollection.cs
new file mode 100644 (file)
index 0000000..08309ac
--- /dev/null
@@ -0,0 +1,141 @@
+// 
+// System.Xml.Serialization.SchemaImporterExtensionCollection.cs 
+//
+// Author:
+//   Lluis Sanchez Gual (lluis@novell.com)
+//   Atsushi Enomoto (atsushi@ximian.com)
+//
+// Copyright (C) Novell, Inc., 2004, 2006
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace System.Xml.Serialization.Advanced
+{
+       public class SchemaImporterExtensionCollection : CollectionBase
+       {
+               Dictionary<string,SchemaImporterExtension> named_items =
+                       new Dictionary<string,SchemaImporterExtension> ();
+
+               public SchemaImporterExtensionCollection ()
+               {
+               }
+
+               public int Add (SchemaImporterExtension extension)
+               {
+                       if (extension == null)
+                               throw new ArgumentNullException ("extension");
+                       return List.Add (extension);
+               }
+
+               public int Add (string key, Type type)
+               {
+                       if (key == null)
+                               throw new ArgumentNullException ("key");
+                       if (type == null)
+                               throw new ArgumentNullException ("type");
+                       if (!type.IsSubclassOf (typeof (SchemaImporterExtension)))
+                               throw new ArgumentException ("The type argument must be subclass of SchemaImporterExtension.");
+
+                       SchemaImporterExtension e = (SchemaImporterExtension) Activator.CreateInstance (type);
+                       if (named_items.ContainsKey (key))
+                               throw new InvalidOperationException (String.Format ("A SchemaImporterExtension keyed by '{0}' already exists.", key));
+                       int ret = Add (e);
+                       named_items.Add (key, e);
+                       return ret;
+               }
+       
+               public new void Clear ()
+               {
+                       named_items.Clear ();
+                       List.Clear ();
+               }
+       
+               public bool Contains (SchemaImporterExtension extension)
+               {
+                       if (extension == null)
+                               throw new ArgumentNullException ("extension");
+                       foreach (SchemaImporterExtension e in List)
+                               if (extension.Equals (e))
+                                       return true;
+                       return false;
+               }
+               
+               public void CopyTo (SchemaImporterExtension [] array, int index)
+               {
+                       List.CopyTo (array, index);
+               }
+               
+               public int IndexOf (SchemaImporterExtension extension)
+               {
+                       if (extension == null)
+                               throw new ArgumentNullException ("extension");
+                       int i = 0;
+                       foreach (SchemaImporterExtension e in List) {
+                               if (extension.Equals (e)) {
+                                       return i;
+                               }
+                               i++;
+                       }
+                       return -1;
+               }
+               
+               public void Insert (int index, SchemaImporterExtension extension)
+               {
+                       if (extension == null)
+                               throw new ArgumentNullException ("extension");
+                       List.Insert (index, extension);
+               }
+               
+               public void Remove (SchemaImporterExtension extension)
+               {
+                       int idx = IndexOf (extension);
+                       if (idx >= 0)
+                               List.RemoveAt (idx);
+               }
+               
+               public void Remove (string name)
+               {
+                       if (name == null)
+                               throw new ArgumentNullException ("name");
+                       if (!named_items.ContainsKey (name))
+                               return;
+                       SchemaImporterExtension e = named_items [name];
+                       Remove (e);
+                       named_items.Remove (name);
+               }
+               
+               public SchemaImporterExtension this [int index] 
+               {
+                       get { return (SchemaImporterExtension) List [index]; }
+                       set { List [index] = value; }
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Configuration/DateTimeSerializationSection.cs b/mcs/class/System.XML/System.Xml.Serialization.Configuration/DateTimeSerializationSection.cs
new file mode 100644 (file)
index 0000000..f101a61
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// DateTimeSerializationSection.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0 && CONFIGURATION_DEP
+using System;
+using System.Collections;
+using System.Configuration;
+using System.Globalization;
+using System.Xml;
+using System.Text;
+
+namespace System.Xml.Serialization.Configuration
+{
+       public sealed class DateTimeSerializationSection : ConfigurationSection
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty mode;
+
+               static DateTimeSerializationSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       mode = new ConfigurationProperty ("mode", typeof (DateTimeSerializationMode), DateTimeSerializationMode.Roundtrip, ConfigurationPropertyOptions.None);
+                       properties.Add (mode);
+               }
+
+               public enum DateTimeSerializationMode
+               {
+                       Default,
+                       Roundtrip,
+                       Local,
+               }
+
+               [ConfigurationProperty ("mode", DefaultValue = DateTimeSerializationMode.Roundtrip, Options = ConfigurationPropertyOptions.None)]
+               public DateTimeSerializationMode Mode {
+                       get { return (DateTimeSerializationMode) this [mode]; }
+                       set { this [mode] = value; }
+               }
+
+               protected override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionElement.cs b/mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionElement.cs
new file mode 100644 (file)
index 0000000..8ca05b7
--- /dev/null
@@ -0,0 +1,92 @@
+//
+// SchemaImporterExtensionElement.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0 && CONFIGURATION_DEP
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Configuration;
+using System.Globalization;
+using System.Xml;
+using System.Text;
+
+namespace System.Xml.Serialization.Configuration
+{
+       public sealed class SchemaImporterExtensionElement : ConfigurationElement
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty name, type;
+
+               static SchemaImporterExtensionElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       name = new ConfigurationProperty ("name", typeof (string), "", ConfigurationPropertyOptions.IsKey | ConfigurationPropertyOptions.IsRequired);
+                       type = new ConfigurationProperty ("type", typeof (Type), null, ConfigurationPropertyOptions.IsRequired);
+                       properties.Add (name);
+                       properties.Add (type);
+               }
+
+               public SchemaImporterExtensionElement ()
+               {
+               }
+
+               public SchemaImporterExtensionElement (string name, string type)
+               {
+                       Name = name;
+                       Type = Type.GetType (type);
+               }
+
+               public SchemaImporterExtensionElement (string name, Type type)
+               {
+                       Name = name;
+                       Type = type;
+               }
+
+               // huh? default value Type ?
+               [ConfigurationProperty ("name", DefaultValue = typeof (object), Options = ConfigurationPropertyOptions.IsKey | ConfigurationPropertyOptions.IsRequired)]
+               public string Name {
+                       get { return (string) this [name]; }
+                       set { this [name] = value; }
+               }
+
+               [ConfigurationProperty ("type", DefaultValue = typeof (object), Options = ConfigurationPropertyOptions.IsRequired)]
+               [TypeConverter (typeof (TypeConverter))]
+               public Type Type {
+                       get { return (Type) this [type]; }
+                       set { this [type] = value; }
+               }
+
+               protected override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionElementCollection.cs b/mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionElementCollection.cs
new file mode 100644 (file)
index 0000000..27a639f
--- /dev/null
@@ -0,0 +1,130 @@
+//
+// SchemaImporterExtensionElementCollection.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0 && CONFIGURATION_DEP
+using System;
+using System.Collections;
+using System.Configuration;
+using System.Globalization;
+using System.Xml;
+using System.Text;
+
+namespace System.Xml.Serialization.Configuration
+{
+       [ConfigurationCollection (typeof (SchemaImporterExtensionElement), CollectionType = ConfigurationElementCollectionType.AddRemoveClearMap)]
+       public sealed class SchemaImporterExtensionElementCollection : ConfigurationElementCollection
+       {
+               public SchemaImporterExtensionElement this [int index] {
+                       get {
+                               int i = 0;
+                               if (index >= this.Count || index < 0)
+                                       throw new ArgumentOutOfRangeException ("index is less than 0 or greater than the count of the collection.");
+                               foreach (SchemaImporterExtensionElement e in this)
+                                       if (i++ == index)
+                                               return e;
+                               return null; // should not happen
+                       }
+                       set {
+                               if (index >= this.Count || index < 0)
+                                       throw new ArgumentOutOfRangeException ("index is less than 0 or greater than the count of the collection.");
+                               RemoveAt (index);
+                               BaseAdd (index, value);
+                       }
+               }
+               public new SchemaImporterExtensionElement this [string name] {
+                       get {
+                               foreach (SchemaImporterExtensionElement e in this)
+                                       if (e.Name == name)
+                                               return e;
+                               return null;
+                       }
+                       set {
+                               Remove (name);
+                               Add (value);
+                       }
+               }
+
+               protected override ConfigurationElement CreateNewElement ()
+               {
+                       return new SchemaImporterExtensionElement ();
+               }
+
+               protected override object GetElementKey (ConfigurationElement element)
+               {
+                       return ((SchemaImporterExtensionElement) element).Name;
+               }
+
+               public void Add (SchemaImporterExtensionElement element)
+               {
+                       BaseAdd (element);
+               }
+
+               public void Clear ()
+               {
+                       BaseClear ();
+               }
+
+               public int IndexOf (SchemaImporterExtensionElement element)
+               {
+                       int i = 0;
+                       foreach (SchemaImporterExtensionElement e in this) {
+                               if (element.Equals (e))
+                                       return i;
+                               i++;
+                       }
+                       return -1;
+               }
+
+               public void Remove (string name)
+               {
+                       foreach (SchemaImporterExtensionElement el in this)
+                               if (name == el.Name) {
+                                       BaseRemove (el);
+                                       break;
+                               }
+               }
+
+               public void Remove (SchemaImporterExtensionElement element)
+               {
+                       foreach (SchemaImporterExtensionElement el in this)
+                               if (element.Name == el.Name) {
+                                       BaseRemove (el);
+                                       break;
+                               }
+               }
+
+               public void RemoveAt (int i)
+               {
+                       BaseRemoveAt (i);
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionsSection.cs b/mcs/class/System.XML/System.Xml.Serialization.Configuration/SchemaImporterExtensionsSection.cs
new file mode 100644 (file)
index 0000000..e6c63b3
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// SchemaImporterExtensionsSection.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0 && CONFIGURATION_DEP
+using System;
+using System.Collections;
+using System.Configuration;
+using System.Globalization;
+using System.Xml;
+using System.Text;
+
+namespace System.Xml.Serialization.Configuration
+{
+       public sealed class SchemaImporterExtensionsSection : ConfigurationSection
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty extensions;
+
+               static SchemaImporterExtensionsSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       extensions = new ConfigurationProperty ("", typeof (SchemaImporterExtensionElement), null, ConfigurationPropertyOptions.IsDefaultCollection);
+                       properties.Add (extensions);
+               }
+
+               [ConfigurationProperty ("", Options = ConfigurationPropertyOptions.IsDefaultCollection)]
+               public SchemaImporterExtensionElementCollection SchemaImporterExtensions {
+                       get { return (SchemaImporterExtensionElementCollection) this [extensions]; }
+               }
+
+               protected override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Configuration/SerializationSectionGroup.cs b/mcs/class/System.XML/System.Xml.Serialization.Configuration/SerializationSectionGroup.cs
new file mode 100644 (file)
index 0000000..0724be0
--- /dev/null
@@ -0,0 +1,65 @@
+//
+// SerializationSectionGroup.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0 && CONFIGURATION_DEP
+using System;
+using System.Collections;
+using System.Configuration;
+using System.Globalization;
+using System.Xml;
+using System.Text;
+
+namespace System.Xml.Serialization.Configuration
+{
+       public sealed class SerializationSectionGroup : ConfigurationSectionGroup
+       {
+               DateTimeSerializationSection dateTime =
+                       new DateTimeSerializationSection ();
+               XmlSerializerSection serializer = new XmlSerializerSection ();
+               SchemaImporterExtensionsSection extensions =
+                       new SchemaImporterExtensionsSection ();
+
+               [ConfigurationProperty ("dateTimeSerialization")]
+               public DateTimeSerializationSection DateTimeSerialization {
+                       get { return dateTime; }
+               }
+
+               [ConfigurationProperty ("schemaImporterExtensions")]
+               public SchemaImporterExtensionsSection SchemaImporterExtensions {
+                       get { return extensions; }
+               }
+
+               public XmlSerializerSection XmlSerializer {
+                       get { return serializer; }
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/System.Xml.Serialization.Configuration/XmlSerializerSection.cs b/mcs/class/System.XML/System.Xml.Serialization.Configuration/XmlSerializerSection.cs
new file mode 100644 (file)
index 0000000..632c190
--- /dev/null
@@ -0,0 +1,65 @@
+//
+// XmlSerializerSection.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0 && CONFIGURATION_DEP
+using System;
+using System.Collections;
+using System.Configuration;
+using System.Globalization;
+using System.Xml;
+using System.Text;
+
+namespace System.Xml.Serialization.Configuration
+{
+       public sealed class XmlSerializerSection : ConfigurationSection
+       {
+               static ConfigurationPropertyCollection properties;
+               static ConfigurationProperty checkDeserializeAdvances;
+
+               static XmlSerializerSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       checkDeserializeAdvances = new ConfigurationProperty ("checkDeserializeAdvances", typeof (bool), false, ConfigurationPropertyOptions.None);
+                       properties.Add (checkDeserializeAdvances);
+               }
+
+               [ConfigurationProperty ("checkDeserializeAdvances", DefaultValue = false, Options = ConfigurationPropertyOptions.None)]
+               public bool CheckDeserializeAdvances {
+                       get { return (bool) this [checkDeserializeAdvances]; }
+                       set { this [checkDeserializeAdvances] = value; }
+               }
+
+               protected override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+       }
+}
+
+#endif