WAP, well really WML (WAP is the protocol, like HTTP), is an XML format, so that's easy (note though that the WAP forum have dropped WML in favour of XHTML for future devices).
PDF is not possible to generate directly, because XML has no concept of certain binary characters that PDFs would need. However you can do something called XSL-FO (FO stands for formatting objects), which allows you to generate PDFs or Postscript. The way this would work in a pipelined system is you'd first transform your XML into some sort of enhanced view, then one pipeline might transform that to HTML via XSLT, then another might transform that to XSL-FO, and then on to PDF via some sort of XSL-FO engine. Note that XSLT engines are very different beasts to XSL-FO engines. AxKit can do XSL-FO PDF generation via PassiveTeX.
TeX is a little tricky, because there are some special characters that are hard to output via XSLT, and XSLT doesn't have very good text manipulation facilities (the designers expected you to do the text manipulation before you do the transformation I guess).
In summary, XSLT has three output modes: XML, HTML, and Text. You're free to do whatever you want to within the limitations of those output modes, and within the limitations of XSLT.
<code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>