Răsfoiți Sursa

2002-07-22 Tim Coleman <[email protected]>
* Binding.cs:
* BindingCollection.cs:
* DocumentableItem.cs:
* FaultBinding.cs:
* FaultBindingCollection.cs:
* HttpAddressBinding.cs:
* HttpBinding.cs:
* HttpOperationBinding.cs:
* HttpUrlEncodedBinding.cs:
* HttpUrlReplacementBinding.cs:
* Import.cs:
* ImportCollection.cs:
* InputBinding.cs:
* Message.cs:
* MessageBinding.cs:
* MessageCollection.cs:
* MessagePart.cs:
* MessagePartCollection.cs:
* MimeContentBinding.cs:
* MimeMultipartRelatedBinding.cs:
* MimePart.cs:
* MimePartCollection.cs:
* MimeTextBinding.cs:
* MimeTextMatch.cs:
* MimeTextMatchCollection.cs:
* MimeXmlBinding.cs:
* Operation.cs:
* OperationBinding.cs:
* OperationBindingCollection.cs:
* OperationCollection.cs:
* OperationFaultCollection.cs:
* OperationFlow.cs:
* OperationMessage.cs:
* OperationMessageCollection.cs:
* OutputBinding.cs:
* Port.cs:
* PortCollection.cs:
* PortType.cs:
* PortTypeCollection.cs:
* ProtocolImporter.cs:
* Service.cs:
* ServiceCollection.cs:
* ServiceDescription.cs:
* ServiceDescriptionBaseCollection.cs:
* ServiceDescriptionCollection.cs:
* ServiceDescriptionFormatExtension.cs:
* ServiceDescriptionFormatExtensionCollection.cs:
* ServiceDescriptionImportWarnings.cs:
* SoapAddressBinding.cs:
* SoapBinding.cs:
* SoapBindingStyle.cs:
* SoapBindingUse.cs:
* SoapBodyBinding.cs:
* SoapExtensionImporter.cs:
* SoapExtensionReflector.cs:
* SoapFaultBinding.cs:
* SoapHeaderBinding.cs:
* SoapHeaderFaultBinding.cs:
* SoapOperationBinding.cs:
* SoapTransportImporter.cs:
* Types.cs:
1. Add missing attributes as determined by reflection
2. Fix protection levels where appropriate
3. Add missing items where appropriate
Basically, this was a change to remove all the X's from
the project status page for this namespace :)

svn path=/trunk/mcs/; revision=6024

Tim Coleman 23 ani în urmă
părinte
comite
6810cc9ca8
62 a modificat fișierele cu 387 adăugiri și 49 ștergeri
  1. 9 3
      mcs/class/System.Web.Services/System.Web.Services.Description/Binding.cs
  2. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/BindingCollection.cs
  3. 68 0
      mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
  4. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/DocumentableItem.cs
  5. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/FaultBinding.cs
  6. 4 0
      mcs/class/System.Web.Services/System.Web.Services.Description/FaultBindingCollection.cs
  7. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/HttpAddressBinding.cs
  8. 6 0
      mcs/class/System.Web.Services/System.Web.Services.Description/HttpBinding.cs
  9. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/HttpOperationBinding.cs
  10. 3 0
      mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlEncodedBinding.cs
  11. 3 0
      mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlReplacementBinding.cs
  12. 4 0
      mcs/class/System.Web.Services/System.Web.Services.Description/Import.cs
  13. 1 0
      mcs/class/System.Web.Services/System.Web.Services.Description/ImportCollection.cs
  14. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/InputBinding.cs
  15. 3 1
      mcs/class/System.Web.Services/System.Web.Services.Description/Message.cs
  16. 6 2
      mcs/class/System.Web.Services/System.Web.Services.Description/MessageBinding.cs
  17. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/MessageCollection.cs
  18. 5 1
      mcs/class/System.Web.Services/System.Web.Services.Description/MessagePart.cs
  19. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/MessagePartCollection.cs
  20. 8 1
      mcs/class/System.Web.Services/System.Web.Services.Description/MimeContentBinding.cs
  21. 6 1
      mcs/class/System.Web.Services/System.Web.Services.Description/MimeMultipartRelatedBinding.cs
  22. 6 1
      mcs/class/System.Web.Services/System.Web.Services.Description/MimePart.cs
  23. 1 0
      mcs/class/System.Web.Services/System.Web.Services.Description/MimePartCollection.cs
  24. 7 1
      mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextBinding.cs
  25. 17 2
      mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatch.cs
  26. 1 0
      mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatchCollection.cs
  27. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/MimeXmlBinding.cs
  28. 12 3
      mcs/class/System.Web.Services/System.Web.Services.Description/Operation.cs
  29. 9 0
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationBinding.cs
  30. 1 0
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationBindingCollection.cs
  31. 1 0
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationCollection.cs
  32. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationFaultCollection.cs
  33. 1 2
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationFlow.cs
  34. 4 1
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessage.cs
  35. 2 2
      mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessageCollection.cs
  36. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/OutputBinding.cs
  37. 7 1
      mcs/class/System.Web.Services/System.Web.Services.Description/Port.cs
  38. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/PortCollection.cs
  39. 4 0
      mcs/class/System.Web.Services/System.Web.Services.Description/PortType.cs
  40. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/PortTypeCollection.cs
  41. 1 1
      mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs
  42. 7 2
      mcs/class/System.Web.Services/System.Web.Services.Description/Service.cs
  43. 4 0
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceCollection.cs
  44. 18 4
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescription.cs
  45. 1 10
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionBaseCollection.cs
  46. 2 0
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionCollection.cs
  47. 5 1
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtension.cs
  48. 2 1
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs
  49. 1 0
      mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportWarnings.cs
  50. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapAddressBinding.cs
  51. 14 0
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapBinding.cs
  52. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingStyle.cs
  53. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingUse.cs
  54. 13 0
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapBodyBinding.cs
  55. 1 1
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionImporter.cs
  56. 1 1
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionReflector.cs
  57. 10 1
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapFaultBinding.cs
  58. 15 2
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderBinding.cs
  59. 13 2
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderFaultBinding.cs
  60. 12 0
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapOperationBinding.cs
  61. 1 1
      mcs/class/System.Web.Services/System.Web.Services.Description/SoapTransportImporter.cs
  62. 5 0
      mcs/class/System.Web.Services/System.Web.Services.Description/Types.cs

+ 9 - 3
mcs/class/System.Web.Services/System.Web.Services.Description/Binding.cs

@@ -7,10 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
-using System.Web.Services;
+using System.Web.Services.Configuration;
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class Binding : DocumentableItem {
 
 		#region Fields
@@ -38,15 +40,18 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}
-	
+
+		[XmlAttribute ("name", DataType = "NCName")]	
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
-	
+
+		[XmlElement ("operation")]
 		public OperationBindingCollection Operations {
 			get { return operations; }
 		}
@@ -55,6 +60,7 @@ namespace System.Web.Services.Description {
 			get { return serviceDescription; }
 		}
 
+		[XmlAttribute ("type")]	
 		public XmlQualifiedName Type {
 			get { return type; }
 			set { type = value; }

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/BindingCollection.cs

@@ -35,6 +35,8 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (Binding) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public Binding this [string name] {

+ 68 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog

@@ -1,3 +1,71 @@
+2002-07-22 Tim Coleman <[email protected]>	
+	* Binding.cs:
+	* BindingCollection.cs:
+	* DocumentableItem.cs:
+	* FaultBinding.cs:
+	* FaultBindingCollection.cs:
+	* HttpAddressBinding.cs:
+	* HttpBinding.cs:
+	* HttpOperationBinding.cs:
+	* HttpUrlEncodedBinding.cs:
+	* HttpUrlReplacementBinding.cs:
+	* Import.cs:
+	* ImportCollection.cs:
+	* InputBinding.cs:
+	* Message.cs:
+	* MessageBinding.cs:
+	* MessageCollection.cs:
+	* MessagePart.cs:
+	* MessagePartCollection.cs:
+	* MimeContentBinding.cs:
+	* MimeMultipartRelatedBinding.cs:
+	* MimePart.cs:
+	* MimePartCollection.cs:
+	* MimeTextBinding.cs:
+	* MimeTextMatch.cs:
+	* MimeTextMatchCollection.cs:
+	* MimeXmlBinding.cs:
+	* Operation.cs:
+	* OperationBinding.cs:
+	* OperationBindingCollection.cs:
+	* OperationCollection.cs:
+	* OperationFaultCollection.cs:
+	* OperationFlow.cs:
+	* OperationMessage.cs:
+	* OperationMessageCollection.cs:
+	* OutputBinding.cs:
+	* Port.cs:
+	* PortCollection.cs:
+	* PortType.cs:
+	* PortTypeCollection.cs:
+	* ProtocolImporter.cs:
+	* Service.cs:
+	* ServiceCollection.cs:
+	* ServiceDescription.cs:
+	* ServiceDescriptionBaseCollection.cs:
+	* ServiceDescriptionCollection.cs:
+	* ServiceDescriptionFormatExtension.cs:
+	* ServiceDescriptionFormatExtensionCollection.cs:
+	* ServiceDescriptionImportWarnings.cs:
+	* SoapAddressBinding.cs:
+	* SoapBinding.cs:
+	* SoapBindingStyle.cs:
+	* SoapBindingUse.cs:
+	* SoapBodyBinding.cs:
+	* SoapExtensionImporter.cs:
+	* SoapExtensionReflector.cs:
+	* SoapFaultBinding.cs:
+	* SoapHeaderBinding.cs:
+	* SoapHeaderFaultBinding.cs:
+	* SoapOperationBinding.cs:
+	* SoapTransportImporter.cs:
+	* Types.cs:
+		1. Add missing attributes as determined by reflection
+		2. Fix protection levels where appropriate
+		3. Add missing items where appropriate
+		Basically, this was a change to remove all the X's from	
+		the project status page for this namespace :)
+
 2002-07-19 Tim Coleman  <[email protected]>	
 	* Binding.cs:
 	* BindingCollection.cs:

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/DocumentableItem.cs

@@ -7,6 +7,9 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public abstract class DocumentableItem {
 
@@ -27,6 +30,8 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlElement ("documentation")]
+		[DefaultValue ("")]
 		public string Documentation {
 			get { return documentation; }
 			set { documentation = value; }

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/FaultBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class FaultBinding : MessageBinding {
 
 		#region Fields
@@ -29,6 +33,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public override ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}

+ 4 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/FaultBindingCollection.cs

@@ -7,6 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services;
+
 namespace System.Web.Services.Description {
 	public sealed class FaultBindingCollection : ServiceDescriptionBaseCollection {
 
@@ -33,6 +35,8 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (FaultBinding) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public FaultBinding this [string name] {

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/HttpAddressBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization; 
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("address", "http://schemas.xmlsoap.org/wsdl/http/", typeof (Port))]
 	public sealed class HttpAddressBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -27,6 +31,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("location")]
 		public string Location { 	
 			get { return location; }
 			set { location = value; }

+ 6 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/HttpBinding.cs

@@ -7,7 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("binding", "http://schemas.xmlsoap.org/wsdl/http/", typeof (Binding))]
+	[XmlFormatExtensionPrefix ("http", "http://schemas.xmlsoap.org/wsld/http/")]
 	public sealed class HttpBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -28,6 +33,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("verb", DataType = "NMTOKEN")]
 		public string Verb { 	
 			get { return verb; }
 			set { verb = value; }

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/HttpOperationBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("operation", "http://schemas.xmlsoap.org/wsdl/http/", typeof (OperationBinding))]
 	public sealed class HttpOperationBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -27,6 +31,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("location")]
 		public string Location { 	
 			get { return location; }
 			set { location = value; }

+ 3 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlEncodedBinding.cs

@@ -7,7 +7,10 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("urlEncoded", "http://schemas.xmlsoap.org/wsdl/http/", typeof (InputBinding))]
 	public sealed class HttpUrlEncodedBinding : ServiceDescriptionFormatExtension {
 
 		#region Constructors

+ 3 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlReplacementBinding.cs

@@ -7,7 +7,10 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("urlReplacement", "http://schemas.xmlsoap.org/wsdl/http/", typeof (InputBinding))]
 	public sealed class HttpUrlReplacementBinding : ServiceDescriptionFormatExtension {
 
 		#region Constructors

+ 4 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/Import.cs

@@ -7,6 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public sealed class Import : DocumentableItem {
 
@@ -31,11 +33,13 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("location")]
 		public string Location {
 			get { return location; }
 			set { location = value; }
 		}
 
+		[XmlAttribute ("namespace")]
 		public string Namespace {
 			get { return ns; }
 			set { ns = value; }

+ 1 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/ImportCollection.cs

@@ -33,6 +33,7 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (Import) List[index]; 
 			}
+			set { List [index] = value; }
 		}
 
 		#endregion // Properties

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/InputBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class InputBinding : MessageBinding {
 
 		#region Fields
@@ -27,6 +31,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public override ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}

+ 3 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/Message.cs

@@ -9,6 +9,7 @@
 
 using System.Collections;
 using System.Web.Services;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
 	public sealed class Message : DocumentableItem {
@@ -34,14 +35,15 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("name", DataType = "NCName")]
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
 
+		[XmlElement ("part")]
 		public MessagePartCollection Parts {
 			get { return parts; }
-			set { parts = value; }
 		}
 
 		public ServiceDescription ServiceDescription {

+ 6 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/MessageBinding.cs

@@ -7,6 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public abstract class MessageBinding : DocumentableItem {
 
@@ -19,7 +21,7 @@ namespace System.Web.Services.Description {
 
 		#region Constructors
 		
-		public MessageBinding ()
+		protected MessageBinding ()
 		{
 			name = String.Empty;
 			operationBinding = new OperationBinding ();
@@ -29,10 +31,12 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public abstract ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get;
 		}
-	
+
+		[XmlAttribute ("name", DataType = "NMTOKEN")]	
 		public string Name {
 			get { return name; }
 			set { name = value; }

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/MessageCollection.cs

@@ -34,6 +34,8 @@ namespace System.Web.Services.Description {
 
 				return (Message) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public Message this [string name] {

+ 5 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/MessagePart.cs

@@ -8,6 +8,7 @@
 //
 
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
 	public sealed class MessagePart : DocumentableItem {
@@ -35,6 +36,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("element")]
 		public XmlQualifiedName Element {
 			get { return element; }
 			set { element = value; }
@@ -43,12 +45,14 @@ namespace System.Web.Services.Description {
 		public Message Message {
 			get { return message; }
 		}
-		
+	
+		[XmlAttribute ("name", DataType = "NMTOKEN")]
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
 
+		[XmlAttribute ("type")]
 		public XmlQualifiedName Type {
 			get { return type; }
 			set { type = value; }

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/MessagePartCollection.cs

@@ -33,6 +33,8 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (MessagePart) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public MessagePart this [string name] {

+ 8 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/MimeContentBinding.cs

@@ -7,7 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPrefix ("mime", "http://schemas.xmlsoap.org/wsdl/mime/")]
+	[XmlFormatExtension ("content", "http://schemas.xmlsoap.org/wsdl/mime/", typeof (InputBinding), typeof (OutputBinding))]
 	public sealed class MimeContentBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -29,12 +34,14 @@ namespace System.Web.Services.Description {
 		#endregion // Constructors
 
 		#region Properties
-	
+
+		[XmlAttribute ("part", DataType = "NMTOKEN")]	
 		public string Part {
 			get { return part; }
 			set { part = value; }
 		}
 
+		[XmlAttribute ("type")]
 		public string Type {
 			get { return type; }
 			set { type = value; }

+ 6 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/MimeMultipartRelatedBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("multipartRelated", "http://schemas.xmlsoap.org/wsdl/mime/", typeof (InputBinding), typeof (OutputBinding))]
 	public sealed class MimeMultipartRelatedBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -26,7 +30,8 @@ namespace System.Web.Services.Description {
 		#endregion // Constructors
 
 		#region Properties
-	
+
+		[XmlElement ("parts")]	
 		public MimePartCollection Parts {
 			get { return parts; }
 		}

+ 6 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/MimePart.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class MimePart : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -26,7 +30,8 @@ namespace System.Web.Services.Description {
 		#endregion // Constructors
 
 		#region Properties
-	
+
+		[XmlIgnore]	
 		public ServiceDescriptionFormatExtensionCollection Extensions {
 			get { return extensions; }
 		}

+ 1 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/MimePartCollection.cs

@@ -21,6 +21,7 @@ namespace System.Web.Services.Description {
 
 				return (MimePart) List[index]; 
 			}
+			set { List[index] = value; }
 		}
 
 		#endregion // Properties

+ 7 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextBinding.cs

@@ -7,7 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("text", "http://microsoft.com/wsdl/mime/textMatching/", typeof (InputBinding), typeof (OutputBinding), typeof (MimePart))]
+	[XmlFormatExtensionPrefix ("tm", "http://microsoft.com/wsdl/mime/textMatching/")]
 	public sealed class MimeTextBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -27,7 +32,8 @@ namespace System.Web.Services.Description {
 		#endregion // Constructors
 
 		#region Properties
-	
+
+		[XmlElement ("match", typeof (MimeTextMatch))]	
 		public MimeTextMatchCollection Matches {
 			get { return matches; }
 		}

+ 17 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatch.cs

@@ -7,8 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
-	public sealed class MimeTextMatch : ServiceDescriptionFormatExtension {
+	public sealed class MimeTextMatch {
 
 		#region Fields
 
@@ -41,6 +44,8 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[DefaultValue (0)]
+		[XmlAttribute ("capture")]
 		public int Capture {
 			get { return capture; }
 			set {
@@ -49,7 +54,9 @@ namespace System.Web.Services.Description {
 				capture = value; 
 			}
 		}
-		
+	
+		[DefaultValue (1)]	
+		[XmlAttribute ("group")]
 		public int Group {
 			get { return group; }
 			set {
@@ -59,25 +66,30 @@ namespace System.Web.Services.Description {
 			}
 		}
 
+		[XmlAttribute ("ignoreCase")]
 		public bool IgnoreCase {
 			get { return ignoreCase; }
 			set { ignoreCase = value; }
 		}
 
+		[XmlElement ("match")]
 		public MimeTextMatchCollection Matches {
 			get { return matches; }
 		}
 
+		[XmlAttribute ("name")]
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
 
+		[XmlAttribute ("pattern")]
 		public string Pattern {
 			get { return pattern; }
 			set { pattern = value; }
 		}
 
+		[XmlIgnore]
 		public int Repeats {
 			get { return repeats; }
 			set {
@@ -87,11 +99,14 @@ namespace System.Web.Services.Description {
 			}
 		}
 
+		[DefaultValue ("1")]
+		[XmlAttribute ("repeats")]
 		public string RepeatsString {
 			get { return Repeats.ToString (); }
 			set { Repeats = Int32.Parse (value); }
 		}
 
+		[XmlAttribute ("type")]
 		public string Type {
 			get { return type; }
 			set { type = value; }

+ 1 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatchCollection.cs

@@ -21,6 +21,7 @@ namespace System.Web.Services.Description {
 
 				return (MimeTextMatch) List [index]; 
 			}
+			set { List[index] = value; }
 		}
 
 		#endregion // Properties

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/MimeXmlBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("mimeXml", "http://schemas.xmlsoap.org/wsdl/mime/", typeof (MimePart), typeof (InputBinding), typeof (OutputBinding))]
 	public sealed class MimeXmlBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -27,6 +31,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("part", DataType = "NMTOKEN")]
 		public string Part {
 			get { return part; }
 			set { part = value; }

+ 12 - 3
mcs/class/System.Web.Services/System.Web.Services.Description/Operation.cs

@@ -7,7 +7,9 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
 	public sealed class Operation : DocumentableItem {
@@ -17,9 +19,9 @@ namespace System.Web.Services.Description {
 		OperationFaultCollection faults;
 		OperationMessageCollection messages;
 		string name;
-		public string[] parameterOrder;
-		public string parameterOrderString;
-		public PortType portType;
+		string[] parameterOrder;
+		string parameterOrderString;
+		PortType portType;
 
 		#endregion // Fields
 
@@ -39,24 +41,31 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlElement ("fault")]
 		public OperationFaultCollection Faults {
 			get { return faults; }
 		}
 
+		[XmlElement ("output", typeof (OperationOutput))]
+		[XmlElement ("input", typeof (OperationInput))]
 		public OperationMessageCollection Messages {
 			get { return messages; }
 		}
 
+		[XmlAttribute ("name", DataType = "NCName")]
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
 
+		[XmlIgnore]
 		public string[] ParameterOrder {
 			get { return parameterOrder; }
 			set { parameterOrder = value; }
 		}
 
+		[DefaultValue ("")]
+		[XmlAttribute ("parameterOrder")]
 		public string ParameterOrderString {
 			get { return String.Join (" ", parameterOrder); }
 			set { ParameterOrder = value.Split (' '); }

+ 9 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/OperationBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class OperationBinding : DocumentableItem {
 
 		#region Fields
@@ -40,24 +44,29 @@ namespace System.Web.Services.Description {
 			get { return binding; }
 		}
 
+		[XmlIgnore]
 		public ServiceDescriptionFormatExtensionCollection Extensions {
 			get { return extensions; }
 		}
 
+		[XmlElement ("fault")]
 		public FaultBindingCollection Faults {
 			get { return faults; }
 		}
 
+		[XmlElement ("input")]
 		public InputBinding Input {
 			get { return input; }
 			set { input = value; }
 		}
 
+		[XmlAttribute ("name", DataType = "NCName")]
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
 
+		[XmlElement ("output")]
 		public OutputBinding Output {
 			get { return output; }
 			set { output= value; }

+ 1 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/OperationBindingCollection.cs

@@ -33,6 +33,7 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (OperationBinding) List[index]; 
 			}
+			set { List[index] = value; }
 		}
 
 		#endregion // Properties

+ 1 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/OperationCollection.cs

@@ -33,6 +33,7 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (Operation) List[index]; 
 			}
+			set { List[index] = value; }
 		}
 
 		#endregion // Properties

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/OperationFaultCollection.cs

@@ -33,6 +33,8 @@ namespace System.Web.Services.Description {
 					throw new ArgumentOutOfRangeException ();
 				return (OperationFault) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public OperationFault this [string name] {

+ 1 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/OperationFlow.cs

@@ -7,9 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
-using System.Web.Services;
-
 namespace System.Web.Services.Description {
+	[Serializable]
 	public enum OperationFlow {
 		None,
 		Notification,

+ 4 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessage.cs

@@ -9,6 +9,7 @@
 
 using System.Web.Services;
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
 	public abstract class OperationMessage : DocumentableItem {
@@ -23,7 +24,7 @@ namespace System.Web.Services.Description {
 
 		#region Constructors
 		
-		public OperationMessage ()
+		protected OperationMessage ()
 		{
 			message = null;
 			name = String.Empty;
@@ -34,11 +35,13 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("message")]
 		public XmlQualifiedName Message {
 			get { return message; }
 			set { message = value; }
 		}
 
+		[XmlAttribute ("name", DataType = "NMTOKEN")]
 		public string Name {
 			get { return name; }
 			set { name = value; }

+ 2 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessageCollection.cs

@@ -46,7 +46,7 @@ namespace System.Web.Services.Description {
 
 		public OperationOutput Output {
 			[MonoTODO]
-			set { throw new NotImplementedException (); }
+			get { throw new NotImplementedException (); }
 		}
 
 		#endregion // Properties
@@ -98,7 +98,7 @@ namespace System.Web.Services.Description {
 			throw new NotImplementedException ();
 		}
 	
-		public void Remove (Operation operationMessage)
+		public void Remove (OperationMessage operationMessage)
 		{
 			List.Remove (operationMessage);
 		}

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/OutputBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class OutputBinding : MessageBinding {
 
 		#region Fields
@@ -27,6 +31,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public override ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}

+ 7 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/Port.cs

@@ -7,9 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class Port : DocumentableItem {
 
 		#region Fields
@@ -35,15 +38,18 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("binding")]
 		public XmlQualifiedName Binding {
 			get { return binding; }
 			set { binding = value; }
 		}
 
+		[XmlIgnore]
 		public ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}
-	
+
+		[XmlAttribute ("name", DataType = "NCName")]	
 		public string Name {
 			get { return name; }
 			set { name = value; }

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/PortCollection.cs

@@ -34,6 +34,8 @@ namespace System.Web.Services.Description {
 
 				return (Port) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public Port this [string name] {

+ 4 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/PortType.cs

@@ -7,6 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public sealed class PortType : DocumentableItem {
 
@@ -31,11 +33,13 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("name", DataType = "NCName")]
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
 
+		[XmlElement ("operation")]
 		public OperationCollection Operations {
 			get { return operations; }
 		}

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/PortTypeCollection.cs

@@ -34,6 +34,8 @@ namespace System.Web.Services.Description {
 
 				return (PortType) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public PortType this [string name] {

+ 1 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs

@@ -91,7 +91,7 @@ namespace System.Web.Services.Description {
 			get { throw new NotImplementedException (); }
 		}
 
-		public string MessageName {
+		public string MethodName {
 			[MonoTODO]	
 			get { throw new NotImplementedException (); }
 		}

+ 7 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/Service.cs

@@ -7,6 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public sealed class Service : DocumentableItem {
 
@@ -33,15 +35,18 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}
-	
+
+		[XmlAttribute ("name", DataType = "NCName")]	
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
-	
+
+		[XmlElement ("port")]	
 		public PortCollection Ports {
 			get { return ports; }
 		}

+ 4 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceCollection.cs

@@ -7,6 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services;
+
 namespace System.Web.Services.Description {
 	public sealed class ServiceCollection : ServiceDescriptionBaseCollection {
 		
@@ -34,6 +36,8 @@ namespace System.Web.Services.Description {
 
 				return (Service) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public Service this [string name] {

+ 18 - 4
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescription.cs

@@ -9,10 +9,13 @@
 
 using System.IO;
 using System.Web.Services;
+using System.Web.Services.Configuration;
 using System.Xml;
 using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
+	[XmlRoot ("definitions", Namespace = "http://schemas.xmlsoap.org/wsdl/")]
 	public sealed class ServiceDescription : DocumentableItem {
 
 		#region Fields
@@ -55,36 +58,44 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlElement ("binding")]
 		public BindingCollection Bindings {
 			get { return bindings; }
 		}
 
+		[XmlIgnore]
 		public ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}
 
+		[XmlElement ("import")]
 		public ImportCollection Imports {
 			get { return imports; }
 		}
 
+		[XmlElement ("message")]
 		public MessageCollection Messages {
 			get { return messages; }
 		}
-	
+
+		[XmlAttribute ("name", DataType = "NMTOKEN")]	
 		public string Name {
 			get { return name; }
 			set { name = value; }
 		}
-	
+
+		[XmlElement ("portType")]	
 		public PortTypeCollection PortTypes {
 			get { return portTypes; }
 		}
-		
+	
+		[XmlIgnore]	
 		public string RetrievalUrl {
 			get { return retrievalUrl; }
 			set { retrievalUrl = value; }
 		}
-		
+	
+		[XmlIgnore]	
 		public static XmlSerializer Serializer {
 			[MonoTODO]
 			get { throw new NotImplementedException (); }
@@ -98,15 +109,18 @@ namespace System.Web.Services.Description {
 			}
 		}
 
+		[XmlElement ("service")]
 		public ServiceCollection Services {
 			get { return services; }
 		}
 
+		[XmlAttribute ("targetNamespace")]
 		public string TargetNamespace {
 			get { return targetNamespace; }
 			set { targetNamespace = value; }
 		}
 
+		[XmlElement ("type")]
 		public Types Types {
 			get { return types; }
 			set { types = value; }

+ 1 - 10
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionBaseCollection.cs

@@ -15,19 +15,10 @@ namespace System.Web.Services.Description {
 		
 		#region Fields
 
-		Hashtable table;
+		Hashtable table = new Hashtable ();
 
 		#endregion // Fields
 
-		#region Constructors
-	
-		protected internal ServiceDescriptionBaseCollection ()
-		{
-			table = new Hashtable ();
-		}
-
-		#endregion // Constructors
-
 		#region Properties
 
 		protected virtual IDictionary Table {

+ 2 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionCollection.cs

@@ -30,6 +30,8 @@ namespace System.Web.Services.Description {
 
 				return (ServiceDescription) List[index]; 
 			}
+			[MonoTODO]
+			set { throw new NotImplementedException (); }
 		}
 
 		public ServiceDescription this [string ns] {

+ 5 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtension.cs

@@ -7,7 +7,8 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
-using System.Web.Services;
+using System.ComponentModel;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
 	public abstract class ServiceDescriptionFormatExtension {
@@ -33,6 +34,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public bool Handled {
 			get { return handled; }
 			set { handled = value; }
@@ -42,6 +44,8 @@ namespace System.Web.Services.Description {
 			get { return parent; }
 		}
 
+		[DefaultValue (false)]
+		[XmlAttribute ("required", Namespace = "http://schemas.xmlsoap.org/wsdl/")]
 		public bool Required {	
 			get { return required; }
 			set { required = value; }

+ 2 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs

@@ -21,7 +21,7 @@ namespace System.Web.Services.Description {
 
 		#region Constructors
 	
-		internal ServiceDescriptionFormatExtensionCollection (object parent) 
+		public ServiceDescriptionFormatExtensionCollection (object parent) 
 		{
 			this.parent = parent;
 		}
@@ -37,6 +37,7 @@ namespace System.Web.Services.Description {
 
 				return List[index]; 
 			}
+			set { List[index] = value; }
 		}
 
 		#endregion // Properties

+ 1 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportWarnings.cs

@@ -8,6 +8,7 @@
 //
 
 namespace System.Web.Services.Description {
+	[Serializable]
 	public enum ServiceDescriptionImportWarnings {
 		NoCodeGenerated,
 		NoMethodsGenerated,

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/SoapAddressBinding.cs

@@ -7,7 +7,11 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("address", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (Port))]
 	public sealed class SoapAddressBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -27,6 +31,7 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("location")]
 		public string Location { 	
 			get { return location; }
 			set { location = value; }

+ 14 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/SoapBinding.cs

@@ -7,7 +7,15 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPrefix ("soap", "http://schemas.xmlsoap.org/wsdl/soap/")]
+	[XmlFormatExtension ("binding", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (Binding))]
+	// FIXME: this won't compile! 
+	// [XmlFormatExtensionPrefix ("soapenc", "http://schemas.xmlsoap.org/soap/encoding/")]
 	public sealed class SoapBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -32,11 +40,17 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		// LAMESPEC: .NET says that the default value is SoapBindingStyle.Document but
+		// reflection shows this attribute is SoapBindingStyle.Default
+
+		[DefaultValue (SoapBindingStyle.Default)]
+		[XmlAttribute ("style")]
 		public SoapBindingStyle Style {
 			get { return style; }
 			set { style = value; }
 		}
 
+		[XmlAttribute ("transport")]
 		public string Transport {
 			get { return transport; }
 			set { transport = value; }

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingStyle.cs

@@ -7,10 +7,15 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public enum SoapBindingStyle {
+		[XmlIgnore]
 		Default,
+		[XmlEnum ("document")]
 		Document,
+		[XmlEnum ("rpc")]
 		Rpc
 	}
 }

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingUse.cs

@@ -7,10 +7,15 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
 	public enum SoapBindingUse {
+		[XmlIgnore]
 		Default,
+		[XmlEnum ("encoded")]
 		Encoded,
+		[XmlEnum ("literal")]
 		Literal
 	}
 }

+ 13 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/SoapBodyBinding.cs

@@ -7,7 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("body", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (InputBinding), typeof (OutputBinding), typeof (MimePart))]
 	public sealed class SoapBodyBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -33,26 +38,34 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[DefaultValue ("")]
+		[XmlAttribute ("encodingStyle")]
 		public string Encoding {
 			get { return encoding; }
 			set { encoding = value; }
 		}
 
+		[DefaultValue ("")]
+		[XmlAttribute ("namespace")]
 		public string Namespace {
 			get { return ns; }
 			set { ns = value; }
 		}
 
+		[XmlIgnore]
 		public string[] Parts {
 			get { return parts; }
 			set { parts = value; }
 		}
 
+		[XmlAttribute ("parts", DataType = "NMTOKENS")]
 		public string PartsString {
 			get { return String.Join (" ", Parts); }
 			set { Parts = value.Split (' '); }
 		}
 
+		[DefaultValue (SoapBindingUse.Default)]
+		[XmlAttribute ("use")]
 		public SoapBindingUse Use {
 			get { return use; }
 			set { use = value; }

+ 1 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionImporter.cs

@@ -20,7 +20,7 @@ namespace System.Web.Services.Description {
 
 		#region Constructors
 	
-		public SoapExtensionImporter ()
+		protected SoapExtensionImporter ()
 		{
 		}
 		

+ 1 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionReflector.cs

@@ -18,7 +18,7 @@ namespace System.Web.Services.Description {
 
 		#region Constructors
 	
-		public SoapExtensionReflector ()
+		protected SoapExtensionReflector ()
 		{
 		}
 		

+ 10 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/SoapFaultBinding.cs

@@ -7,7 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("fault", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (FaultBinding))]
 	public sealed class SoapFaultBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -31,16 +36,20 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("encodingStyle")]
 		public string Encoding {
 			get { return encoding; }
 			set { encoding = value; }
 		}
-		
+	
+		[XmlAttribute ("namespace")]	
 		public string Namespace {
 			get { return ns; }
 			set { ns = value; }
 		}
 
+		[DefaultValue (SoapBindingUse.Default)]
+		[XmlAttribute ("use")]
 		public SoapBindingUse Use {
 			get { return use; }
 			set { use = value; }

+ 15 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderBinding.cs

@@ -7,10 +7,14 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
 using System.Web.Services;
+using System.Web.Services.Configuration;
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("header", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (InputBinding), typeof (OutputBinding))]
 	public sealed class SoapHeaderBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -41,31 +45,40 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[DefaultValue ("")]
+		[XmlAttribute ("encodingStyle")]
 		public string Encoding {
 			get { return encoding; }
 			set { encoding = value; }
 		}
 
+		[XmlIgnore]
 		public bool MapToProperty {	
 			get { return mapToProperty; }
 			set { mapToProperty = value; }
 		}
-	
+
+		[XmlAttribute ("message")]	
 		public XmlQualifiedName Message {
 			get { return message; }
 			set { message = value; }
 		}
-		
+
+		[DefaultValue ("")]	
+		[XmlAttribute ("namespace")]	
 		public string Namespace {
 			get { return ns; }
 			set { ns = value; }
 		}
 
+		[XmlAttribute ("part", DataType = "NMTOKEN")]
 		public string Part {
 			get { return part; }
 			set { part = value; }
 		}
 
+		[DefaultValue (SoapBindingUse.Default)]
+		[XmlAttribute ("use")]
 		public SoapBindingUse Use {
 			get { return use; }
 			set { use = value; }

+ 13 - 2
mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderFaultBinding.cs

@@ -7,10 +7,13 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
-using System.Web.Services;
+using System.ComponentModel;
+using System.Web.Services.Configuration;
 using System.Xml;
+using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("headerfault", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (InputBinding), typeof (OutputBinding))]
 	public sealed class SoapHeaderFaultBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -41,26 +44,34 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[DefaultValue ("")]
+		[XmlAttribute ("encodingStyle")]
 		public string Encoding {
 			get { return encoding; }
 			set { encoding = value; }
 		}
 
+		[XmlAttribute ("message")]
 		public XmlQualifiedName Message {
 			get { return message; }
 			set { message = value; }
 		}
-		
+	
+		[DefaultValue ("")]
+		[XmlAttribute ("namespace")]	
 		public string Namespace {
 			get { return ns; }
 			set { ns = value; }
 		}
 
+		[XmlAttribute ("part", DataType = "NMTOKEN")]
 		public string Part {
 			get { return part; }
 			set { part = value; }
 		}
 
+		[DefaultValue (SoapBindingUse.Default)]
+		[XmlAttribute ("use")]
 		public SoapBindingUse Use {
 			get { return use; }
 			set { use = value; }

+ 12 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/SoapOperationBinding.cs

@@ -7,7 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
 namespace System.Web.Services.Description {
+	[XmlFormatExtension ("operation", "http://schema.xmlsoap.org/wsdl/soap/", typeof (OperationBinding))]
 	public sealed class SoapOperationBinding : ServiceDescriptionFormatExtension {
 
 		#region Fields
@@ -29,11 +34,18 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlAttribute ("soapAction")]
 		public string SoapAction {
 			get { return soapAction; }
 			set { soapAction = value; }
 		}
 
+		// LAMESPEC: .NET Documentation says that the default value for this property is
+		// SoapBindingStyle.Document (see constructor), but reflection shows that this 
+		// attribute value is SoapBindingStyle.Default
+
+		[DefaultValue (SoapBindingStyle.Default)]
+		[XmlAttribute ("style")]
 		public SoapBindingStyle Style {
 			get { return style; }
 			set { style = value; }

+ 1 - 1
mcs/class/System.Web.Services/System.Web.Services.Description/SoapTransportImporter.cs

@@ -18,7 +18,7 @@ namespace System.Web.Services.Description {
 
 		#region Constructors
 	
-		public SoapTransportImporter ()
+		protected SoapTransportImporter ()
 		{
 			importContext = null;
 		}

+ 5 - 0
mcs/class/System.Web.Services/System.Web.Services.Description/Types.cs

@@ -7,9 +7,12 @@
 // Copyright (C) Tim Coleman, 2002
 //
 
+using System.Web.Services.Configuration;
+using System.Xml.Schema;
 using System.Xml.Serialization;
 
 namespace System.Web.Services.Description {
+	[XmlFormatExtensionPoint ("Extensions")]
 	public sealed class Types : DocumentableItem {
 
 		#region Fields
@@ -31,10 +34,12 @@ namespace System.Web.Services.Description {
 
 		#region Properties
 
+		[XmlIgnore]
 		public ServiceDescriptionFormatExtensionCollection Extensions { 	
 			get { return extensions; }
 		}
 
+		[XmlElement ("schema", typeof (XmlSchema), Namespace = "http://www.w3.org/2001/XMLSchema")]
 		public XmlSchemas Schemas {
 			get { return schemas; }
 		}