Η καλύτερη πηγή για τέτοιες ερωτήσεις είναι το ίδιο το documentation. Αν κοιτάξεις την ενότητα Validating XML Data with XmlReader θα δεις ότι το validation γίνεται από την κλάση XmlReader σε συνδυασμό με τα XmlReaderSettings και μπορείς να χρησιμοποιήσεις DTD ή XSD schema, inline (δηλαδή μέσα στο xml σου) ή εξωτερικό. Αν χρησιμοποιείς συχνά ένα schema μπορείς να το κρατήσεις στη μνήμη με την κλάση XmlSchemaSet αντί να το φορτώνεις κάθε φορά από ένα αρχείο ή URL.
Όσον αφορά το WCF τώρα, γιατί δεν χρησιμοποιείς ένα data contract και να αφήσεις το WCF το ίδιο να αναλάβει το validation? Μπορείς μάλιστα να χρησιμοποιήσεις το svcutil.exe για να δημιουργήσεις client κώδικα ο οποίος θα περιλαμβάνει τα datacontracts που αντιστοιχούν στο xsd σου. Κοίτα την παράγραφο "XML Schema Documents and the SvcUtil Tool" για περισσότερες λεπτομέρειες
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos