Prolog xml nie jest wymagany w xhtml-u. Do tego użycie go może spowodować nieoczekiwane wyniki. Cytat z ksiązki Jeffreya Zeldmana.
Cytat
Wiele stron XHTML rozpoczyna się od prologu XML, nazwanego również deklaracją XML. Jeżeli zostanie użyty, prolog XML poprzedza deklarację DOCTYPE opisaną wcześniej. Przeznaczeniem prologu jest wskazanie wersji XML-a oraz typu kodowania znaków w danym momencie.
W3c rekomenduje rozpoczynanie każdego dokumentu XML, czyli również dokumentów XHTML, prologiem XML. [...]
Niestety, wiele przeglądarek, również tych pochodzących z "dobrych domów", nie potrafi obsłużyć prologu XML. Po "łyknięciu" tego elementu XML, zataczają się, potykają i w końcu upadają, przynosząc hańbę swoim rodzinm tracąc miejsce w społeczeństwie.
W rzeczywistości przeglądarki nie ponoszą żadnej kary. Cierpią jednie odwiedzający, kiedy strona nie może się wyświetlić. W niektórych przypadkach cała strona pozostaje zupełnie pusta. Prolog XML może również doprowadzić do krytycznego błędu przeglądarki. Nawet jeśli przeglądarka nie "wysypie się", wyświetla dokument niepoprawnie (tak zachowuje się IE/6 Windows po napotkaniu prologu)
Prawda jest taka, że w XML-u prolog potrzebny jest do poinformowania przeglądarki o kodowaniu znaków. Taką również role pełni w XHTML-u. Są 3 sposoby na poinformowanie przeglądarki o kodowaniu, a właśnie ten, rekomendowany jest przez W3C. Zamiast tego używamy znaczniku meta, który działa poprawnie we wszystkich przeglądarkach.
pozdrawiam