I may just have not understood you very well, but do you mean that you want to return an XML document to the client? Or that you want to client to send an XML document to the server?
To return an XML document to the client is very easy:
<?php
header("Content-type: text/xml"); // tell the client that XML data coming
// note that you musn't send any other output before the header
?>
<\?xml version="1.0" \?>
<document>
<?
// logic and XML
?>
</document>
To receive XML data from the client is more tricky. One way would be with a straight file upload, though this requires that the client user creates an XML document in their local filesystem.
Another would be to use an HTML <textarea> element for the client user to type in their XML data and then submit it with a form.
If you want to compose data from the client into an XML document, then do so in exactly the same way you would compose data into HTML - present him with a form and, on submission, collect the data from the $POST or $GET array and compose it into a document using XML markup.
Regarding SOAP and XML-RPC. Note that these are communications protocols that use XML to encode requests and responses. They are not principally intended for sending arbitrary XML documents around. (Both are available in PHP, though).