namespace System.Web.Services.Description {
using System.Xml;
using System.IO;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Text;
using System.Web.Services.Configuration;
///
[XmlFormatExtension("binding", SoapBinding.Namespace, typeof(Binding))]
[XmlFormatExtensionPrefix("soap", SoapBinding.Namespace)]
[XmlFormatExtensionPrefix("soapenc", "http://schemas.xmlsoap.org/soap/encoding/")]
public class SoapBinding : ServiceDescriptionFormatExtension {
SoapBindingStyle style = SoapBindingStyle.Document;
string transport;
static XmlSchema schema = null;
///
public const string Namespace = "http://schemas.xmlsoap.org/wsdl/soap/";
///
public const string HttpTransport = "http://schemas.xmlsoap.org/soap/http";
///
[XmlAttribute("transport")]
public string Transport {
get { return transport == null ? string.Empty : transport; }
set { transport = value; }
}
///
[XmlAttribute("style"), DefaultValue(SoapBindingStyle.Document)]
public SoapBindingStyle Style {
get { return style; }
set { style = value; }
}
///
///
/// [To be supplied.]
///
public static XmlSchema Schema {
get {
if (schema == null) {
schema = XmlSchema.Read(new StringReader(Schemas.Soap), null);
}
return schema;
}
}
}
///
public enum SoapBindingStyle {
///
[XmlIgnore]
Default,
///
[XmlEnum("document")]
Document,
///
[XmlEnum("rpc")]
Rpc,
}
///
[XmlFormatExtension("operation", SoapBinding.Namespace, typeof(OperationBinding))]
public class SoapOperationBinding : ServiceDescriptionFormatExtension {
string soapAction;
SoapBindingStyle style;
///
[XmlAttribute("soapAction")]
public string SoapAction {
get { return soapAction == null ? string.Empty : soapAction; }
set { soapAction = value; }
}
///
[XmlAttribute("style"), DefaultValue(SoapBindingStyle.Default)]
public SoapBindingStyle Style {
get { return style; }
set { style = value; }
}
}
///
[XmlFormatExtension("body", SoapBinding.Namespace, typeof(InputBinding), typeof(OutputBinding), typeof(MimePart))]
public class SoapBodyBinding : ServiceDescriptionFormatExtension {
SoapBindingUse use;
string ns;
string encoding;
string[] parts;
///
[XmlAttribute("use"), DefaultValue(SoapBindingUse.Default)]
public SoapBindingUse Use {
get { return use; }
set { use = value; }
}
///
[XmlAttribute("namespace"), DefaultValue("")]
public string Namespace {
get { return ns == null ? string.Empty : ns; }
set { ns = value; }
}
///
[XmlAttribute("encodingStyle"), DefaultValue("")]
public string Encoding {
get { return encoding == null ? string.Empty : encoding; }
set { encoding = value; }
}
///
[XmlAttribute("parts")]
public string PartsString {
get {
if (parts == null)
return null;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < parts.Length; i++) {
if (i > 0) builder.Append(' ');
builder.Append(parts[i]);
}
return builder.ToString();
}
set {
if (value == null)
parts = null;
else
parts = value.Split(new char[] { ' ' });
}
}
///
[XmlIgnore]
public string[] Parts {
get { return parts; }
set { parts = value; }
}
}
///
public enum SoapBindingUse {
///
[XmlIgnore]
Default,
///
[XmlEnum("encoded")]
Encoded,
///
[XmlEnum("literal")]
Literal,
}
///
[XmlFormatExtension("fault", SoapBinding.Namespace, typeof(FaultBinding))]
public class SoapFaultBinding : ServiceDescriptionFormatExtension {
SoapBindingUse use;
string ns;
string encoding;
string name;
///
[XmlAttribute("use"), DefaultValue(SoapBindingUse.Default)]
public SoapBindingUse Use {
get { return use; }
set { use = value; }
}
///
[XmlAttribute("name")]
public string Name {
get { return name; }
set { name = value; }
}
///
[XmlAttribute("namespace")]
public string Namespace {
get { return ns == null ? string.Empty : ns; }
set { ns = value; }
}
///
[XmlAttribute("encodingStyle"), DefaultValue("")]
public string Encoding {
get { return encoding == null ? string.Empty : encoding; }
set { encoding = value; }
}
}
///
[XmlFormatExtension("header", SoapBinding.Namespace, typeof(InputBinding), typeof(OutputBinding))]
public class SoapHeaderBinding : ServiceDescriptionFormatExtension {
XmlQualifiedName message = XmlQualifiedName.Empty;
string part;
SoapBindingUse use;
string encoding;
string ns;
bool mapToProperty;
SoapHeaderFaultBinding fault;
///
[XmlIgnore]
public bool MapToProperty {
get { return mapToProperty; }
set { mapToProperty = value; }
}
///
[XmlAttribute("message")]
public XmlQualifiedName Message {
get { return message; }
set { message = value; }
}
///
[XmlAttribute("part")]
public string Part {
get { return part; }
set { part = value; }
}
///
[XmlAttribute("use"), DefaultValue(SoapBindingUse.Default)]
public SoapBindingUse Use {
get { return use; }
set { use = value; }
}
///
[XmlAttribute("encodingStyle"), DefaultValue("")]
public string Encoding {
get { return encoding == null ? string.Empty : encoding; }
set { encoding = value; }
}
///
[XmlAttribute("namespace"), DefaultValue("")]
public string Namespace {
get { return ns == null ? string.Empty : ns; }
set { ns = value; }
}
///
[XmlElement("headerfault")]
public SoapHeaderFaultBinding Fault {
get { return fault; }
set { fault = value; }
}
}
///
public class SoapHeaderFaultBinding : ServiceDescriptionFormatExtension {
XmlQualifiedName message = XmlQualifiedName.Empty;
string part;
SoapBindingUse use;
string encoding;
string ns;
///
[XmlAttribute("message")]
public XmlQualifiedName Message {
get { return message; }
set { message = value; }
}
///
[XmlAttribute("part")]
public string Part {
get { return part; }
set { part = value; }
}
///
[XmlAttribute("use"), DefaultValue(SoapBindingUse.Default)]
public SoapBindingUse Use {
get { return use; }
set { use = value; }
}
///
[XmlAttribute("encodingStyle"), DefaultValue("")]
public string Encoding {
get { return encoding == null ? string.Empty : encoding; }
set { encoding = value; }
}
///
[XmlAttribute("namespace"), DefaultValue("")]
public string Namespace {
get { return ns == null ? string.Empty : ns; }
set { ns = value; }
}
}
///
[XmlFormatExtension("address", SoapBinding.Namespace, typeof(Port))]
public class SoapAddressBinding : ServiceDescriptionFormatExtension {
string location;
///
[XmlAttribute("location")]
public string Location {
get { return location == null ? string.Empty : location; }
set { location = value; }
}
}
}