Soweit ist es immernoch XML, wenn ich jedoch <div id="<?php echo $id; ?>"> schreibe nicht mehr.
Ja, das ist klar. PHP ist ja eben auch nicht dazu gedacht, als XML verarbeitet zu werden. ;)
XML-Valid desshalb, damit ich beispielsweise mit meinem programmierten Template-Editor die XML-Tags per drag&drop verschieben kann (javascript).
Dann ist dein Template-Editor schwachsinnig, wenn der verlangt, das PHP-Codes XML-valid sind.
Noch ein kleiner Tipp: Schreib doch anstatt
<div id="<?php echo $id; ?>">
<?php echo "<div id="$id;">"; ?>
Das müsste dann eigentlich als XML verarbeitbar sein.