Suits me just fine. I never used <?, but I use <?= heavily.
Break up the token and use:
echo '<' . '?xml ... ?' . '>';
No problems then. I do that whenever I need to generate an RSS feed. String concatenation solves tokenizing parser issues. Embedded Javascript has the same problem and people solve the problem the exact same way by breaking up tokens:
document.write('<' + 'script src=...><' + '/script>');
You have to ask yourself though, why can’t PHP just differentiate between ‘<?’, ‘<?=’, ‘<?php’, and ‘<?xml’ and be done with it? It can’t be performance-related because we’re only talking about a few extra CPU cycles per ‘<?’ to figure out if it is anything interesting. I chalk it up to the unbelievable stubbornness of the PHP devs. It took all sorts of discussions/rants from all sorts of people over past few years to just get them to grudgingly include ‘<?=’ support. Which is only a half-victory.
The only form of short tag that I won’t miss is ‘<%’ (ASP-style). I can understand getting away from that. I don’t know very many people who even know that those are even possible. And I don’t know anyone who actually uses them. But getting rid of ‘<?’ will cause an uproar. While YOU may not use short tags, I know lots of PHP users out there who DO use them (including me).