I think the confusion is XML is just a universal way of encoding a document. So you're not testing XML, you're testing your application. So what we need to know is what your website/webservice does, and what you need to test in that website/webservice.
As for the API, unless it's related to the XML testing, it's much like any other application you're testing. You have data in the form of requests that are going into the API and you're going to check the results out of the back end. Depending upon the API, there are a number of tools for that.
You'll have to be more specific. Do you mean validating XML Data as input to your application. API testing would involve writing code in the particular language. Anyways PM/email me and we could look into it in detail.
For issue#1 and #2, You can write a test program in C# / Vb.net or any other language which you prefer.
#1: I am not sure if you have to validate your xml data against some specific XSD or it could be just a normal data validation. For instance, Verify that <phonenumber>123-123-1234</phonenumber> is a valid format
#2: You need to use the specific API in your test program and if you have proper documentation of that API, you can call the methods of that API to do your testing