|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Description
{
using System;
using System.ServiceModel.Channels;
using System.ServiceModel;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
[XmlRoot(MetadataStrings.MetadataExchangeStrings.Metadata, Namespace = MetadataStrings.MetadataExchangeStrings.Namespace)]
public class MetadataSet : IXmlSerializable
{
Collection<MetadataSection> sections = new Collection<MetadataSection>();
Collection<XmlAttribute> attributes = new Collection<XmlAttribute>();
internal ServiceMetadataExtension.WriteFilter WriteFilter;
public MetadataSet()
{
}
public MetadataSet(IEnumerable<MetadataSection> sections)
: this()
{
if (sections != null)
foreach (MetadataSection section in sections)
this.sections.Add(section);
}
[XmlElement(MetadataStrings.MetadataExchangeStrings.MetadataSection, Namespace = MetadataStrings.MetadataExchangeStrings.Namespace)]
public Collection<MetadataSection> MetadataSections
{
get { return this.sections; }
}
[XmlAnyAttribute]
public Collection<XmlAttribute> Attributes
{
get { return attributes; }
}
//Reader should write the <Metadata> element
public void WriteTo(XmlWriter writer)
{
WriteMetadataSet(writer, true);
}
//Reader is on the <Metadata> element
public static MetadataSet ReadFrom(XmlReader reader)
{
if (reader == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
MetadataSetSerializer xs = new MetadataSetSerializer();
return (MetadataSet)xs.Deserialize(reader);
}
System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema()
{
return null;
}
//Reader in on the <Metadata> element
void IXmlSerializable.ReadXml(XmlReader reader)
{
if (reader == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
MetadataSetSerializer xs = new MetadataSetSerializer();
xs.ProcessOuterElement = false;
MetadataSet metadataSet = (MetadataSet)xs.Deserialize(reader);
this.sections = metadataSet.MetadataSections;
this.attributes = metadataSet.Attributes;
}
//Reader has just written the <Metadata> element can still write attribs here
void IXmlSerializable.WriteXml(XmlWriter writer)
{
WriteMetadataSet(writer, false);
}
void WriteMetadataSet(XmlWriter writer, bool processOuterElement)
{
if (writer == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer");
if (this.WriteFilter != null)
{
ServiceMetadataExtension.WriteFilter filter = this.WriteFilter.CloneWriteFilter();
filter.Writer = writer;
writer = filter;
}
MetadataSetSerializer xs = new MetadataSetSerializer();
xs.ProcessOuterElement = processOuterElement;
xs.Serialize(writer, this);
}
}
#pragma warning disable
/* The Following code is a generated XmlSerializer. It was created by:
* (*) Removing the IXmlSerializable from MetadataSet
* (*) Changing typeof(WsdlNS.ServiceDescription) and typeof(XsdNS.XmlSchema) to typeof(string) and typeof(int) on the [XmlElement] attribute on
* MetadataSection.Metadata
* (*) running "sgen /a:System.ServiceModel.dll /t:System.ServiceModel.Description.MetadataSet /k" to generate the code
* (*) Revert the above changes.
*
* and then doing the following to fix it up:
*
* (*) Change the classes from public to internal
* (*) Add ProcessOuterElement to MetadataSetSerializer, XmlSerializationReaderMetadataSet, and XmlSerializationWriterMetadataSet
private bool processOuterElement = true;
public bool ProcessOuterElement
{
get { return processOuterElement; }
set { processOuterElement = value; }
}
* (*) Set XmlSerializationWriterMetadataSet.ProcessOuterElement with MetadataSetSerializer.ProcessOuterElement
* in MetadataSetSerializer.Serialize
* ((XmlSerializationWriterMetadataSet)writer).ProcessOuterElement = this.processOuterElement;
*
* (*) Set XmlSerializationReaderMetadataSet.ProcessOuterElement with MetadataSetSerializer.ProcessOuterElement
* in MetadataSetSerializer.Deserialize
* ((XmlSerializationReaderMetadataSet)reader).ProcessOuterElement = this.processOuterElement;
* (*) wrap anything in XmlSerializationWriterMetadataSet.Write*_Metadata or
* XmlSerializationWriterMetadataSet.Write*_MetadataSet that outputs the outer
* element with "if(processOuterElement) { ... }"
* (*) Add "!processOuterElement ||" to checks for name and namespace of the outer element
* in XmlSerializationReaderMetadataSet.Read*_Metadata and XmlSerializationReaderMetadataSet.Read*_MetadataSet.
* (*) In XmlSerializationReaderMetadataSet.Read*_MetadataSection change the if clause writing the XmlSchema from
*
* o.@Metadata = Reader.ReadElementString();
* to
o.@Metadata = System.Xml.Schema.XmlSchema.Read(this.Reader, null);
if (this.Reader.NodeType == XmlNodeType.EndElement)
ReadEndElement();
*
*
* (*) In XmlSerializationWriterMetadataSet Write*_MetadataSection change
*
* else if (o.@Metadata is global::System.Int32) {
* WriteElementString(@"schema", @"http://www.w3.org/2001/XMLSchema", ((global::System.Int32)o.@Metadata));
* }
* to
*
else if (o.@Metadata is global::System.Xml.Schema.XmlSchema)
{
((global::System.Xml.Schema.XmlSchema)o.@Metadata).Write(this.Writer);
}
*
* (*) In XmlSerializationReaderMetadataSet.Read*_MetadataSection change
*
* o.@Metadata = Reader.ReadElementString();
* to
* o.@Metadata = System.Web.Services.Description.ServiceDescription.Read(this.Reader);
*
*
* (*) In XmlSerializationWriterMetadataSet Write*_MetadataSection change
*
* if (o.@Metadata is global::System.String) {
* WriteElementString(@"definitions", @"http://schemas.xmlsoap.org/wsdl/", ((global::System.String)o.@Metadata));
* }
* to
*
if (o.@Metadata is global::System.Web.Services.Description.ServiceDescription) {
((global::System.Web.Services.Description.ServiceDescription)o.@Metadata).Write(this.Writer);
}
*
* (*) In XmlSerializationWriterMetadataSet Write*_MetadataSet add
*
XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add(MetadataStrings.MetadataExchangeStrings.Prefix, MetadataStrings.MetadataExchangeStrings.Namespace);
WriteNamespaceDeclarations(xmlSerializerNamespaces);
*
* immediately before 'if (needType) WriteXsiType(@"MetadataSet", @"http://schemas.xmlsoap.org/ws/2004/09/mex");'
*
* (*) In XmlSerializationWriterMetadataSet Write*_MetadataSection replace
* WriteStartElement(n, ns, o, false, null);
* with
*
XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add(string.Empty, string.Empty);
WriteStartElement(n, ns, o, true, xmlSerializerNamespaces);
*
* (*) In XmlSerializationWriterMetadataSet Write*_XmlSchema replace
* WriteStartElement(n, ns, o, false, o.@Namespaces);
* with
* WriteStartElement(n, ns, o, true, o.@Namespaces);
*
* (*) Make sure you keep the #pragmas surrounding this block.
*
* (*) Make sure to replace all exception throw with standard throw using DiagnosticUtility.ExceptionUtility.ThrowHelperError;
* change:
*
* throw CreateUnknownTypeException(*);
* to
* throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException(*));
*
* throw CreateUnknownNodeException();
* to
* throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownNodeException());
*
* throw CreateInvalidAnyTypeException(elem);
* to
* throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateInvalidAnyTypeException(elem));
*
* throw CreateInvalidEnumValueException(*);
* to
* throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateInvalidEnumValueException(*));
*
* throw CreateUnknownConstantException(*);
* to
* throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownConstantException(*));
*
*/
internal class XmlSerializationWriterMetadataSet : System.Xml.Serialization.XmlSerializationWriter
{
bool processOuterElement = true;
public bool ProcessOuterElement
{
get { return processOuterElement; }
set { processOuterElement = value; }
}
public void Write68_Metadata(object o)
{
if (processOuterElement)
{
WriteStartDocument();
if (o == null)
{
WriteNullTagLiteral(@"Metadata", @"http://schemas.xmlsoap.org/ws/2004/09/mex");
return;
}
TopLevelElement();
}
Write67_MetadataSet(@"Metadata", @"http://schemas.xmlsoap.org/ws/2004/09/mex", ((global::System.ServiceModel.Description.MetadataSet)o), true, false);
}
void Write67_MetadataSet(string n, string ns, global::System.ServiceModel.Description.MetadataSet o, bool isNullable, bool needType)
{
if (processOuterElement)
{
if ((object)o == null)
{
if (isNullable) WriteNullTagLiteral(n, ns);
return;
}
}
if (!needType)
{
System.Type t = o.GetType();
if (t == typeof(global::System.ServiceModel.Description.MetadataSet))
{
}
else
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException(o));
}
}
if (processOuterElement)
{
WriteStartElement(n, ns, o, false, null);
}
XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add(MetadataStrings.MetadataExchangeStrings.Prefix, MetadataStrings.MetadataExchangeStrings.Namespace);
WriteNamespaceDeclarations(xmlSerializerNamespaces);
if (needType) WriteXsiType(@"MetadataSet", @"http://schemas.xmlsoap.org/ws/2004/09/mex");
{
global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute> a = (global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute>)o.@Attributes;
if (a != null)
{
for (int i = 0; i < ((System.Collections.ICollection)a).Count; i++)
{
global::System.Xml.XmlAttribute ai = (global::System.Xml.XmlAttribute)a[i];
WriteXmlAttribute(ai, o);
}
}
}
{
global::System.Collections.ObjectModel.Collection<global::System.ServiceModel.Description.MetadataSection> a = (global::System.Collections.ObjectModel.Collection<global::System.ServiceModel.Description.MetadataSection>)o.@MetadataSections;
if (a != null)
{
for (int ia = 0; ia < ((System.Collections.ICollection)a).Count; ia++)
{
Write66_MetadataSection(@"MetadataSection", @"http://schemas.xmlsoap.org/ws/2004/09/mex", ((global::System.ServiceModel.Description.MetadataSection)a[ia]), false, false);
}
}
}
if (processOuterElement)
{
WriteEndElement(o);
}
}
void Write66_MetadataSection(string n, string ns, global::System.ServiceModel.Description.MetadataSection o, bool isNullable, bool needType)
{
if ((object)o == null)
{
if (isNullable) WriteNullTagLiteral(n, ns);
return;
}
if (!needType)
{
System.Type t = o.GetType();
if (t == typeof(global::System.ServiceModel.Description.MetadataSection))
{
}
else
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException(o));
}
}
XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add(string.Empty, string.Empty);
WriteStartElement(n, ns, o, true, xmlSerializerNamespaces);
if (needType) WriteXsiType(@"MetadataSection", @"http://schemas.xmlsoap.org/ws/2004/09/mex");
{
global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute> a = (global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute>)o.@Attributes;
if (a != null)
{
for (int i = 0; i < ((System.Collections.ICollection)a).Count; i++)
{
global::System.Xml.XmlAttribute ai = (global::System.Xml.XmlAttribute)a[i];
WriteXmlAttribute(ai, o);
}
}
}
WriteAttribute(@"Dialect", @"", ((global::System.String)o.@Dialect));
WriteAttribute(@"Identifier", @"", ((global::System.String)o.@Identifier));
{
if (o.@Metadata is global::System.Web.Services.Description.ServiceDescription)
{
((global::System.Web.Services.Description.ServiceDescription)o.@Metadata).Write(this.Writer);
}
else if (o.@Metadata is global::System.Xml.Schema.XmlSchema)
{
((global::System.Xml.Schema.XmlSchema)o.@Metadata).Write(this.Writer);
}
else if (o.@Metadata is global::System.ServiceModel.Description.MetadataSet)
{
Write67_MetadataSet(@"Metadata", @"http://schemas.xmlsoap.org/ws/2004/09/mex", ((global::System.ServiceModel.Description.MetadataSet)o.@Metadata), false, false);
}
else if (o.@Metadata is global::System.ServiceModel.Description.MetadataLocation)
{
Write65_MetadataLocation(@"Location", @"http://schemas.xmlsoap.org/ws/2004/09/mex", ((global::System.ServiceModel.Description.MetadataLocation)o.@Metadata), false, false);
}
else if (o.@Metadata is global::System.ServiceModel.Description.MetadataReference)
{
WriteSerializable((System.Xml.Serialization.IXmlSerializable)((global::System.ServiceModel.Description.MetadataReference)o.@Metadata), @"MetadataReference", @"http://schemas.xmlsoap.org/ws/2004/09/mex", false, true);
}
else if (o.@Metadata is System.Xml.XmlElement)
{
System.Xml.XmlElement elem = (System.Xml.XmlElement)o.@Metadata;
if ((elem) is System.Xml.XmlNode || elem == null)
{
WriteElementLiteral((System.Xml.XmlNode)elem, @"", null, false, true);
}
else
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateInvalidAnyTypeException(elem));
}
}
else
{
if (o.@Metadata != null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException(o.@Metadata));
}
}
}
WriteEndElement(o);
}
void Write65_MetadataLocation(string n, string ns, global::System.ServiceModel.Description.MetadataLocation o, bool isNullable, bool needType)
{
if ((object)o == null)
{
if (isNullable) WriteNullTagLiteral(n, ns);
return;
}
if (!needType)
{
System.Type t = o.GetType();
if (t == typeof(global::System.ServiceModel.Description.MetadataLocation))
{
}
else
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException(o));
}
}
WriteStartElement(n, ns, o, false, null);
if (needType) WriteXsiType(@"MetadataLocation", @"http://schemas.xmlsoap.org/ws/2004/09/mex");
{
WriteValue(((global::System.String)o.@Location));
}
WriteEndElement(o);
}
protected override void InitCallbacks()
{
}
}
internal class XmlSerializationReaderMetadataSet : System.Xml.Serialization.XmlSerializationReader
{
bool processOuterElement = true;
public bool ProcessOuterElement
{
get { return processOuterElement; }
set { processOuterElement = value; }
}
public object Read68_Metadata()
{
object o = null;
Reader.MoveToContent();
if (Reader.NodeType == System.Xml.XmlNodeType.Element)
{
if (!processOuterElement || (((object)Reader.LocalName == (object)id1_Metadata && (object)Reader.NamespaceURI == (object)id2_Item)))
{
o = Read67_MetadataSet(true, true);
}
else
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownNodeException());
}
}
else
{
UnknownNode(null, @"http://schemas.xmlsoap.org/ws/2004/09/mex:Metadata");
}
return (object)o;
}
global::System.ServiceModel.Description.MetadataSet Read67_MetadataSet(bool isNullable, bool checkType)
{
System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
bool isNull = false;
if (isNullable) isNull = ReadNull();
if (checkType)
{
if (!processOuterElement || (xsiType == null || ((object)((System.Xml.XmlQualifiedName)xsiType).Name == (object)id3_MetadataSet && (object)((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id2_Item)))
{
}
else
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType));
}
if (isNull) return null;
global::System.ServiceModel.Description.MetadataSet o;
o = new global::System.ServiceModel.Description.MetadataSet();
global::System.Collections.ObjectModel.Collection<global::System.ServiceModel.Description.MetadataSection> a_0 = (global::System.Collections.ObjectModel.Collection<global::System.ServiceModel.Description.MetadataSection>)o.@MetadataSections;
global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute> a_1 = (global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute>)o.@Attributes;
bool[] paramsRead = new bool[2];
while (Reader.MoveToNextAttribute())
{
if (!IsXmlnsAttribute(Reader.Name))
{
System.Xml.XmlAttribute attr = (System.Xml.XmlAttribute)Document.ReadNode(Reader);
ParseWsdlArrayType(attr);
a_1.Add(attr);
}
}
Reader.MoveToElement();
if (Reader.IsEmptyElement)
{
Reader.Skip();
return o;
}
Reader.ReadStartElement();
Reader.MoveToContent();
int whileIterations0 = 0;
int readerCount0 = ReaderCount;
while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None)
{
if (Reader.NodeType == System.Xml.XmlNodeType.Element)
{
if (((object)Reader.LocalName == (object)id4_MetadataSection && (object)Reader.NamespaceURI == (object)id2_Item))
{
if ((object)(a_0) == null) Reader.Skip(); else a_0.Add(Read66_MetadataSection(false, true));
}
else
{
UnknownNode((object)o, @"http://schemas.xmlsoap.org/ws/2004/09/mex:MetadataSection");
}
}
else
{
UnknownNode((object)o, @"http://schemas.xmlsoap.org/ws/2004/09/mex:MetadataSection");
}
Reader.MoveToContent();
CheckReaderCount(ref whileIterations0, ref readerCount0);
}
ReadEndElement();
return o;
}
global::System.ServiceModel.Description.MetadataSection Read66_MetadataSection(bool isNullable, bool checkType)
{
System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
bool isNull = false;
if (isNullable) isNull = ReadNull();
if (checkType)
{
if (xsiType == null || ((object)((System.Xml.XmlQualifiedName)xsiType).Name == (object)id4_MetadataSection && (object)((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id2_Item))
{
}
else
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType));
}
if (isNull) return null;
global::System.ServiceModel.Description.MetadataSection o;
o = new global::System.ServiceModel.Description.MetadataSection();
global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute> a_0 = (global::System.Collections.ObjectModel.Collection<global::System.Xml.XmlAttribute>)o.@Attributes;
bool[] paramsRead = new bool[4];
while (Reader.MoveToNextAttribute())
{
if (!paramsRead[1] && ((object)Reader.LocalName == (object)id5_Dialect && (object)Reader.NamespaceURI == (object)id6_Item))
{
o.@Dialect = Reader.Value;
paramsRead[1] = true;
}
else if (!paramsRead[2] && ((object)Reader.LocalName == (object)id7_Identifier && (object)Reader.NamespaceURI == (object)id6_Item))
{
o.@Identifier = Reader.Value;
paramsRead[2] = true;
}
else if (!IsXmlnsAttribute(Reader.Name))
{
System.Xml.XmlAttribute attr = (System.Xml.XmlAttribute)Document.ReadNode(Reader);
ParseWsdlArrayType(attr);
a_0.Add(attr);
}
}
Reader.MoveToElement();
if (Reader.IsEmptyElement)
{
Reader.Skip();
return o;
}
Reader.ReadStartElement();
Reader.MoveToContent();
int whileIterations1 = 0;
int readerCount1 = ReaderCount;
while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None)
{
if (Reader.NodeType == System.Xml.XmlNodeType.Element)
{
if (!paramsRead[3] && ((object)Reader.LocalName == (object)id1_Metadata && (object)Reader.NamespaceURI == (object)id2_Item))
{
o.@Metadata = Read67_MetadataSet(false, true);
paramsRead[3] = true;
}
else if (!paramsRead[3] && ((object)Reader.LocalName == (object)id8_schema && (object)Reader.NamespaceURI == (object)id9_Item))
{
o.@Metadata = System.Xml.Schema.XmlSchema.Read(this.Reader, null);
if (this.Reader.NodeType == XmlNodeType.EndElement)
ReadEndElement();
paramsRead[3] = true;
}
else if (!paramsRead[3] && ((object)Reader.LocalName == (object)id10_definitions && (object)Reader.NamespaceURI == (object)id11_Item))
{
{
o.@Metadata = System.Web.Services.Description.ServiceDescription.Read(this.Reader);
}
paramsRead[3] = true;
}
else if (!paramsRead[3] && ((object)Reader.LocalName == (object)id12_MetadataReference && (object)Reader.NamespaceURI == (object)id2_Item))
{
o.@Metadata = (global::System.ServiceModel.Description.MetadataReference)ReadSerializable((System.Xml.Serialization.IXmlSerializable)System.Activator.CreateInstance(typeof(global::System.ServiceModel.Description.MetadataReference), System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.CreateInstance | System.Reflection.BindingFlags.NonPublic, null, new object[0], null));
paramsRead[3] = true;
}
else if (!paramsRead[3] && ((object)Reader.LocalName == (object)id13_Location && (object)Reader.NamespaceURI == (object)id2_Item))
{
o.@Metadata = Read65_MetadataLocation(false, true);
paramsRead[3] = true;
}
else
{
o.@Metadata = (global::System.Xml.XmlElement)ReadXmlNode(false);
}
}
else
{
UnknownNode((object)o, @"http://schemas.xmlsoap.org/ws/2004/09/mex:Metadata, http://www.w3.org/2001/XMLSchema:schema, http://schemas.xmlsoap.org/wsdl/:definitions, http://schemas.xmlsoap.org/ws/2004/09/mex:MetadataReference, http://schemas.xmlsoap.org/ws/2004/09/mex:Location");
}
Reader.MoveToContent();
CheckReaderCount(ref whileIterations1, ref readerCount1);
}
ReadEndElement();
return o;
}
global::System.ServiceModel.Description.MetadataLocation Read65_MetadataLocation(bool isNullable, bool checkType)
{
System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
bool isNull = false;
if (isNullable) isNull = ReadNull();
if (checkType)
{
if (xsiType == null || ((object)((System.Xml.XmlQualifiedName)xsiType).Name == (object)id14_MetadataLocation && (object)((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id2_Item))
{
}
else
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType));
}
if (isNull) return null;
global::System.ServiceModel.Description.MetadataLocation o;
o = new global::System.ServiceModel.Description.MetadataLocation();
bool[] paramsRead = new bool[1];
while (Reader.MoveToNextAttribute())
{
if (!IsXmlnsAttribute(Reader.Name))
{
UnknownNode((object)o);
}
}
Reader.MoveToElement();
if (Reader.IsEmptyElement)
{
Reader.Skip();
return o;
}
Reader.ReadStartElement();
Reader.MoveToContent();
int whileIterations2 = 0;
int readerCount2 = ReaderCount;
while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None)
{
string tmp = null;
if (Reader.NodeType == System.Xml.XmlNodeType.Element)
{
UnknownNode((object)o, @"");
}
else if (Reader.NodeType == System.Xml.XmlNodeType.Text ||
Reader.NodeType == System.Xml.XmlNodeType.CDATA ||
Reader.NodeType == System.Xml.XmlNodeType.Whitespace ||
Reader.NodeType == System.Xml.XmlNodeType.SignificantWhitespace)
{
tmp = ReadString(tmp, false);
o.@Location = tmp;
}
else
{
UnknownNode((object)o, @"");
}
Reader.MoveToContent();
CheckReaderCount(ref whileIterations2, ref readerCount2);
}
ReadEndElement();
return o;
}
protected override void InitCallbacks()
{
}
string id60_documentation;
string id22_targetNamespace;
string id10_definitions;
string id65_lang;
string id31_attribute;
string id47_ref;
string id4_MetadataSection;
string id54_refer;
string id83_union;
string id127_Item;
string id53_XmlSchemaKeyref;
string id27_import;
string id75_all;
string id128_XmlSchemaSimpleContent;
string id139_XmlSchemaInclude;
string id78_namespace;
string id18_attributeFormDefault;
string id100_XmlSchemaFractionDigitsFacet;
string id32_attributeGroup;
string id64_XmlSchemaDocumentation;
string id93_maxLength;
string id49_type;
string id86_XmlSchemaSimpleTypeRestriction;
string id96_length;
string id104_XmlSchemaLengthFacet;
string id17_XmlSchema;
string id134_public;
string id77_XmlSchemaAnyAttribute;
string id24_id;
string id71_simpleContent;
string id51_key;
string id67_XmlSchemaKey;
string id80_XmlSchemaAttribute;
string id126_Item;
string id23_version;
string id121_XmlSchemaGroupRef;
string id90_maxInclusive;
string id116_memberTypes;
string id20_finalDefault;
string id120_any;
string id112_XmlSchemaMaxExclusiveFacet;
string id15_EndpointReference;
string id45_name;
string id122_XmlSchemaSequence;
string id73_sequence;
string id82_XmlSchemaSimpleType;
string id48_substitutionGroup;
string id111_XmlSchemaMinInclusiveFacet;
string id7_Identifier;
string id113_XmlSchemaSimpleTypeList;
string id41_default;
string id125_extension;
string id16_Item;
string id1000_Item;
string id124_XmlSchemaComplexContent;
string id72_complexContent;
string id11_Item;
string id25_include;
string id34_simpleType;
string id91_minExclusive;
string id94_pattern;
string id2_Item;
string id95_enumeration;
string id114_itemType;
string id115_XmlSchemaSimpleTypeUnion;
string id59_XmlSchemaAnnotation;
string id28_notation;
string id84_list;
string id39_abstract;
string id103_XmlSchemaWhiteSpaceFacet;
string id110_XmlSchemaMaxInclusiveFacet;
string id55_selector;
string id43_fixed;
string id57_XmlSchemaXPath;
string id118_XmlSchemaAll;
string id56_field;
string id119_XmlSchemaChoice;
string id123_XmlSchemaAny;
string id132_XmlSchemaGroup;
string id35_element;
string id129_Item;
string id30_annotation;
string id44_form;
string id21_elementFormDefault;
string id98_totalDigits;
string id88_maxExclusive;
string id42_final;
string id46_nillable;
string id9_Item;
string id61_appinfo;
string id38_maxOccurs;
string id70_mixed;
string id87_base;
string id13_Location;
string id12_MetadataReference;
string id97_whiteSpace;
string id29_group;
string id92_minLength;
string id99_fractionDigits;
string id137_schemaLocation;
string id26_redefine;
string id101_value;
string id63_source;
string id89_minInclusive;
string id133_XmlSchemaNotation;
string id52_keyref;
string id33_complexType;
string id135_system;
string id50_unique;
string id74_choice;
string id66_Item;
string id105_XmlSchemaEnumerationFacet;
string id107_XmlSchemaMaxLengthFacet;
string id36_XmlSchemaElement;
string id106_XmlSchemaPatternFacet;
string id37_minOccurs;
string id130_Item;
string id68_XmlSchemaUnique;
string id131_XmlSchemaAttributeGroup;
string id40_block;
string id81_use;
string id85_restriction;
string id1_Metadata;
string id69_XmlSchemaComplexType;
string id117_XmlSchemaAttributeGroupRef;
string id138_XmlSchemaRedefine;
string id6_Item;
string id102_XmlSchemaTotalDigitsFacet;
string id58_xpath;
string id5_Dialect;
string id14_MetadataLocation;
string id3_MetadataSet;
string id79_processContents;
string id76_anyAttribute;
string id19_blockDefault;
string id136_XmlSchemaImport;
string id109_XmlSchemaMinExclusiveFacet;
string id108_XmlSchemaMinLengthFacet;
string id8_schema;
string id62_XmlSchemaAppInfo;
protected override void InitIDs()
{
id60_documentation = Reader.NameTable.Add(@"documentation");
id22_targetNamespace = Reader.NameTable.Add(@"targetNamespace");
id10_definitions = Reader.NameTable.Add(@"definitions");
id65_lang = Reader.NameTable.Add(@"lang");
id31_attribute = Reader.NameTable.Add(@"attribute");
id47_ref = Reader.NameTable.Add(@"ref");
id4_MetadataSection = Reader.NameTable.Add(@"MetadataSection");
id54_refer = Reader.NameTable.Add(@"refer");
id83_union = Reader.NameTable.Add(@"union");
id127_Item = Reader.NameTable.Add(@"XmlSchemaComplexContentRestriction");
id53_XmlSchemaKeyref = Reader.NameTable.Add(@"XmlSchemaKeyref");
id27_import = Reader.NameTable.Add(@"import");
id75_all = Reader.NameTable.Add(@"all");
id128_XmlSchemaSimpleContent = Reader.NameTable.Add(@"XmlSchemaSimpleContent");
id139_XmlSchemaInclude = Reader.NameTable.Add(@"XmlSchemaInclude");
id78_namespace = Reader.NameTable.Add(@"namespace");
id18_attributeFormDefault = Reader.NameTable.Add(@"attributeFormDefault");
id100_XmlSchemaFractionDigitsFacet = Reader.NameTable.Add(@"XmlSchemaFractionDigitsFacet");
id32_attributeGroup = Reader.NameTable.Add(@"attributeGroup");
id64_XmlSchemaDocumentation = Reader.NameTable.Add(@"XmlSchemaDocumentation");
id93_maxLength = Reader.NameTable.Add(@"maxLength");
id49_type = Reader.NameTable.Add(@"type");
id86_XmlSchemaSimpleTypeRestriction = Reader.NameTable.Add(@"XmlSchemaSimpleTypeRestriction");
id96_length = Reader.NameTable.Add(@"length");
id104_XmlSchemaLengthFacet = Reader.NameTable.Add(@"XmlSchemaLengthFacet");
id17_XmlSchema = Reader.NameTable.Add(@"XmlSchema");
id134_public = Reader.NameTable.Add(@"public");
id77_XmlSchemaAnyAttribute = Reader.NameTable.Add(@"XmlSchemaAnyAttribute");
id24_id = Reader.NameTable.Add(@"id");
id71_simpleContent = Reader.NameTable.Add(@"simpleContent");
id51_key = Reader.NameTable.Add(@"key");
id67_XmlSchemaKey = Reader.NameTable.Add(@"XmlSchemaKey");
id80_XmlSchemaAttribute = Reader.NameTable.Add(@"XmlSchemaAttribute");
id126_Item = Reader.NameTable.Add(@"XmlSchemaComplexContentExtension");
id23_version = Reader.NameTable.Add(@"version");
id121_XmlSchemaGroupRef = Reader.NameTable.Add(@"XmlSchemaGroupRef");
id90_maxInclusive = Reader.NameTable.Add(@"maxInclusive");
id116_memberTypes = Reader.NameTable.Add(@"memberTypes");
id20_finalDefault = Reader.NameTable.Add(@"finalDefault");
id120_any = Reader.NameTable.Add(@"any");
id112_XmlSchemaMaxExclusiveFacet = Reader.NameTable.Add(@"XmlSchemaMaxExclusiveFacet");
id15_EndpointReference = Reader.NameTable.Add(@"EndpointReference");
id45_name = Reader.NameTable.Add(@"name");
id122_XmlSchemaSequence = Reader.NameTable.Add(@"XmlSchemaSequence");
id73_sequence = Reader.NameTable.Add(@"sequence");
id82_XmlSchemaSimpleType = Reader.NameTable.Add(@"XmlSchemaSimpleType");
id48_substitutionGroup = Reader.NameTable.Add(@"substitutionGroup");
id111_XmlSchemaMinInclusiveFacet = Reader.NameTable.Add(@"XmlSchemaMinInclusiveFacet");
id7_Identifier = Reader.NameTable.Add(@"Identifier");
id113_XmlSchemaSimpleTypeList = Reader.NameTable.Add(@"XmlSchemaSimpleTypeList");
id41_default = Reader.NameTable.Add(@"default");
id125_extension = Reader.NameTable.Add(@"extension");
id16_Item = Reader.NameTable.Add(@"http://schemas.xmlsoap.org/ws/2004/08/addressing");
id1000_Item = Reader.NameTable.Add(@"http://www.w3.org/2005/08/addressing");
id124_XmlSchemaComplexContent = Reader.NameTable.Add(@"XmlSchemaComplexContent");
id72_complexContent = Reader.NameTable.Add(@"complexContent");
id11_Item = Reader.NameTable.Add(@"http://schemas.xmlsoap.org/wsdl/");
id25_include = Reader.NameTable.Add(@"include");
id34_simpleType = Reader.NameTable.Add(@"simpleType");
id91_minExclusive = Reader.NameTable.Add(@"minExclusive");
id94_pattern = Reader.NameTable.Add(@"pattern");
id2_Item = Reader.NameTable.Add(@"http://schemas.xmlsoap.org/ws/2004/09/mex");
id95_enumeration = Reader.NameTable.Add(@"enumeration");
id114_itemType = Reader.NameTable.Add(@"itemType");
id115_XmlSchemaSimpleTypeUnion = Reader.NameTable.Add(@"XmlSchemaSimpleTypeUnion");
id59_XmlSchemaAnnotation = Reader.NameTable.Add(@"XmlSchemaAnnotation");
id28_notation = Reader.NameTable.Add(@"notation");
id84_list = Reader.NameTable.Add(@"list");
id39_abstract = Reader.NameTable.Add(@"abstract");
id103_XmlSchemaWhiteSpaceFacet = Reader.NameTable.Add(@"XmlSchemaWhiteSpaceFacet");
id110_XmlSchemaMaxInclusiveFacet = Reader.NameTable.Add(@"XmlSchemaMaxInclusiveFacet");
id55_selector = Reader.NameTable.Add(@"selector");
id43_fixed = Reader.NameTable.Add(@"fixed");
id57_XmlSchemaXPath = Reader.NameTable.Add(@"XmlSchemaXPath");
id118_XmlSchemaAll = Reader.NameTable.Add(@"XmlSchemaAll");
id56_field = Reader.NameTable.Add(@"field");
id119_XmlSchemaChoice = Reader.NameTable.Add(@"XmlSchemaChoice");
id123_XmlSchemaAny = Reader.NameTable.Add(@"XmlSchemaAny");
id132_XmlSchemaGroup = Reader.NameTable.Add(@"XmlSchemaGroup");
id35_element = Reader.NameTable.Add(@"element");
id129_Item = Reader.NameTable.Add(@"XmlSchemaSimpleContentExtension");
id30_annotation = Reader.NameTable.Add(@"annotation");
id44_form = Reader.NameTable.Add(@"form");
id21_elementFormDefault = Reader.NameTable.Add(@"elementFormDefault");
id98_totalDigits = Reader.NameTable.Add(@"totalDigits");
id88_maxExclusive = Reader.NameTable.Add(@"maxExclusive");
id42_final = Reader.NameTable.Add(@"final");
id46_nillable = Reader.NameTable.Add(@"nillable");
id9_Item = Reader.NameTable.Add(@"http://www.w3.org/2001/XMLSchema");
id61_appinfo = Reader.NameTable.Add(@"appinfo");
id38_maxOccurs = Reader.NameTable.Add(@"maxOccurs");
id70_mixed = Reader.NameTable.Add(@"mixed");
id87_base = Reader.NameTable.Add(@"base");
id13_Location = Reader.NameTable.Add(@"Location");
id12_MetadataReference = Reader.NameTable.Add(@"MetadataReference");
id97_whiteSpace = Reader.NameTable.Add(@"whiteSpace");
id29_group = Reader.NameTable.Add(@"group");
id92_minLength = Reader.NameTable.Add(@"minLength");
id99_fractionDigits = Reader.NameTable.Add(@"fractionDigits");
id137_schemaLocation = Reader.NameTable.Add(@"schemaLocation");
id26_redefine = Reader.NameTable.Add(@"redefine");
id101_value = Reader.NameTable.Add(@"value");
id63_source = Reader.NameTable.Add(@"source");
id89_minInclusive = Reader.NameTable.Add(@"minInclusive");
id133_XmlSchemaNotation = Reader.NameTable.Add(@"XmlSchemaNotation");
id52_keyref = Reader.NameTable.Add(@"keyref");
id33_complexType = Reader.NameTable.Add(@"complexType");
id135_system = Reader.NameTable.Add(@"system");
id50_unique = Reader.NameTable.Add(@"unique");
id74_choice = Reader.NameTable.Add(@"choice");
id66_Item = Reader.NameTable.Add(@"http://www.w3.org/XML/1998/namespace");
id105_XmlSchemaEnumerationFacet = Reader.NameTable.Add(@"XmlSchemaEnumerationFacet");
id107_XmlSchemaMaxLengthFacet = Reader.NameTable.Add(@"XmlSchemaMaxLengthFacet");
id36_XmlSchemaElement = Reader.NameTable.Add(@"XmlSchemaElement");
id106_XmlSchemaPatternFacet = Reader.NameTable.Add(@"XmlSchemaPatternFacet");
id37_minOccurs = Reader.NameTable.Add(@"minOccurs");
id130_Item = Reader.NameTable.Add(@"XmlSchemaSimpleContentRestriction");
id68_XmlSchemaUnique = Reader.NameTable.Add(@"XmlSchemaUnique");
id131_XmlSchemaAttributeGroup = Reader.NameTable.Add(@"XmlSchemaAttributeGroup");
id40_block = Reader.NameTable.Add(@"block");
id81_use = Reader.NameTable.Add(@"use");
id85_restriction = Reader.NameTable.Add(@"restriction");
id1_Metadata = Reader.NameTable.Add(@"Metadata");
id69_XmlSchemaComplexType = Reader.NameTable.Add(@"XmlSchemaComplexType");
id117_XmlSchemaAttributeGroupRef = Reader.NameTable.Add(@"XmlSchemaAttributeGroupRef");
id138_XmlSchemaRedefine = Reader.NameTable.Add(@"XmlSchemaRedefine");
id6_Item = Reader.NameTable.Add(@"");
id102_XmlSchemaTotalDigitsFacet = Reader.NameTable.Add(@"XmlSchemaTotalDigitsFacet");
id58_xpath = Reader.NameTable.Add(@"xpath");
id5_Dialect = Reader.NameTable.Add(@"Dialect");
id14_MetadataLocation = Reader.NameTable.Add(@"MetadataLocation");
id3_MetadataSet = Reader.NameTable.Add(@"MetadataSet");
id79_processContents = Reader.NameTable.Add(@"processContents");
id76_anyAttribute = Reader.NameTable.Add(@"anyAttribute");
id19_blockDefault = Reader.NameTable.Add(@"blockDefault");
id136_XmlSchemaImport = Reader.NameTable.Add(@"XmlSchemaImport");
id109_XmlSchemaMinExclusiveFacet = Reader.NameTable.Add(@"XmlSchemaMinExclusiveFacet");
id108_XmlSchemaMinLengthFacet = Reader.NameTable.Add(@"XmlSchemaMinLengthFacet");
id8_schema = Reader.NameTable.Add(@"schema");
id62_XmlSchemaAppInfo = Reader.NameTable.Add(@"XmlSchemaAppInfo");
}
}
internal abstract class XmlSerializer1 : System.Xml.Serialization.XmlSerializer
{
protected override System.Xml.Serialization.XmlSerializationReader CreateReader()
{
return new XmlSerializationReaderMetadataSet();
}
protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter()
{
return new XmlSerializationWriterMetadataSet();
}
}
internal sealed class MetadataSetSerializer : XmlSerializer1
{
bool processOuterElement = true;
public bool ProcessOuterElement
{
get { return processOuterElement; }
set { processOuterElement = value; }
}
public override System.Boolean CanDeserialize(System.Xml.XmlReader xmlReader)
{
return xmlReader.IsStartElement(@"Metadata", @"http://schemas.xmlsoap.org/ws/2004/09/mex");
}
protected override void Serialize(object objectToSerialize, System.Xml.Serialization.XmlSerializationWriter writer)
{
((XmlSerializationWriterMetadataSet)writer).ProcessOuterElement = this.processOuterElement;
((XmlSerializationWriterMetadataSet)writer).Write68_Metadata(objectToSerialize);
}
protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader)
{
((XmlSerializationReaderMetadataSet)reader).ProcessOuterElement = this.processOuterElement;
return ((XmlSerializationReaderMetadataSet)reader).Read68_Metadata();
}
}
internal class XmlSerializerContract : global::System.Xml.Serialization.XmlSerializerImplementation
{
public override global::System.Xml.Serialization.XmlSerializationReader Reader { get { return new XmlSerializationReaderMetadataSet(); } }
public override global::System.Xml.Serialization.XmlSerializationWriter Writer { get { return new XmlSerializationWriterMetadataSet(); } }
System.Collections.Hashtable readMethods = null;
public override System.Collections.Hashtable ReadMethods
{
get
{
if (readMethods == null)
{
System.Collections.Hashtable _tmp = new System.Collections.Hashtable();
_tmp[@"System.ServiceModel.Description.MetadataSet:http://schemas.xmlsoap.org/ws/2004/09/mex:Metadata:True:"] = @"Read68_Metadata";
if (readMethods == null) readMethods = _tmp;
}
return readMethods;
}
}
System.Collections.Hashtable writeMethods = null;
public override System.Collections.Hashtable WriteMethods
{
get
{
if (writeMethods == null)
{
System.Collections.Hashtable _tmp = new System.Collections.Hashtable();
_tmp[@"System.ServiceModel.Description.MetadataSet:http://schemas.xmlsoap.org/ws/2004/09/mex:Metadata:True:"] = @"Write68_Metadata";
if (writeMethods == null) writeMethods = _tmp;
}
return writeMethods;
}
}
System.Collections.Hashtable typedSerializers = null;
public override System.Collections.Hashtable TypedSerializers
{
get
{
if (typedSerializers == null)
{
System.Collections.Hashtable _tmp = new System.Collections.Hashtable();
_tmp.Add(@"System.ServiceModel.Description.MetadataSet:http://schemas.xmlsoap.org/ws/2004/09/mex:Metadata:True:", new MetadataSetSerializer());
if (typedSerializers == null) typedSerializers = _tmp;
}
return typedSerializers;
}
}
public override System.Boolean CanSerialize(System.Type type)
{
if (type == typeof(global::System.ServiceModel.Description.MetadataSet)) return true;
return false;
}
public override System.Xml.Serialization.XmlSerializer GetSerializer(System.Type type)
{
if (type == typeof(global::System.ServiceModel.Description.MetadataSet)) return new MetadataSetSerializer();
return null;
}
}
// end generated code
#pragma warning restore
}
|