public static ServiceDescription Read(XmlReader reader, bool validate) { if (!validate) { return((ServiceDescription)Serializer.Deserialize(reader)); } XmlReaderSettings settings = new XmlReaderSettings { ValidationType = ValidationType.Schema, ValidationFlags = XmlSchemaValidationFlags.ProcessIdentityConstraints }; settings.Schemas.Add(Schema); settings.Schemas.Add(SoapBinding.Schema); settings.ValidationEventHandler += new ValidationEventHandler(ServiceDescription.InstanceValidation); warnings.Clear(); XmlReader xmlReader = XmlReader.Create(reader, settings); if (reader.ReadState != ReadState.Initial) { xmlReader.Read(); } ServiceDescription description = (ServiceDescription)Serializer.Deserialize(xmlReader); description.SetWarnings(warnings); return(description); }