Возможно, это не то, что вы ищете, но я предлагаю не включать SQL в XML, если вы можете избежать этого. Если ваше приложение растет, вы можете захотеть использовать что-то еще для хранения данных (memcache?), И тогда вам придется написать переводчик SQL -> (что-то еще).
Итак, что-то вроде:
<customers>
<customer id="1">
<fetch />
<details>
<po>
<fetch />
</po>
...
Затем в вашем PHP вы можете анализировать XML с помощью методов DOM. Когда вы сталкиваетесь с тегом клиента, вы устанавливаете «текущий идентификатор клиента», удаляете тег подчиненной выборки, выполняете любой запрос, добавляете теги, содержащие результаты, и затем переходите по дереву к следующим тегам.
Когда вы нажимаете на тег извлечения внутри тега po, вы можете получить данные PO текущего клиента, повторяя описанную выше процедуру (удаление, запрос, добавление тегов).
Выходные данные будут содержать идентификатор клиента в том же формате, что и входные данные, что упрощает сопоставление выходных данных и входных данных.