Se in un WebMethod si passa come parametro un oggetto complesso si può ottenere un errore del tipo:
System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: A circular reference was detected while serializing an object of type MyObjectType.
at System.Xml.Serialization.XmlSerializationWriter.Writ
Liberamente tratto da MSDN riporto il codice per la validazione di un file XML da uno schema XSD. ...qui