Z HTML-a na XML
Przekształcenie strony zapisanej w HTML-u na poprawny dokument
XML (XHTML) wymaga zachowania kilku reguł. Przede wszystkim musimy
pamiętać o tym, że o ile przeglądarki WWW zazwyczaj tolerują
formalnie niepoprawny kod HTML (jak choćby opisywany na początku
tekstu przykład ze "skrzyżowanymi" znacznikami) i mimo to
wyświetlają stronę, o tyle w specyfikacji XML-a jawnie wymaga się od
programu przetwarzającego ten język, aby odrzucał każdy
formalnie niepoprawny dokument. Dokumenty XML-a muszą zatem
bezwzględnie być poprawne. Pierwszym krokiem dla przekształcenia
dokumentu HTML w dokument XML jest zatem zapewnienie formalnej
poprawności strony napisanej w HTML-u. Można to zrobić korzystając z
programów takich jak np. CSE HTML Validator
(http://htmlvalidator.com/), badających zgodność składni dokumentu z
DTD dla wybranej wersji języka HTML i wykazujących wszystkie błędy,
wraz z sugerowanymi sposobami ich poprawienia.
Uzyskany przy pomocy takiego programu formalnie poprawny
dokument HTML jest jednak poprawny z punktu widzenia SGML-a, a nie
XML-a; oryginalne DTD HTML-a wykorzystują kilka konstrukcji SGML-a,
które nie są dopuszczalne w XML-u. Musimy więc zwrócić uwagę na
następujące kwestie:
- opuszczanie zamykającego znacznika </P>. W specyfikacji HTML-a
<P> jest elementem; znaczniki <P> i </P> występują parami. Jednak
pominięcie znacznika zamykającego jest dopuszczalne; napotkanie w
dokumencie kolejnego znacznika <P> bez zamknięcia poprzedniego
powoduje "domyślne" dodanie </P> bezpośrednio przed nim.
W XML-u jest to niedopuszczalne, tak więc wszystkie akapity
musimy ująć w pary znaczników <P> ... </P>. Analogiczna sytuacja
dotyczy znaczników <LI>, <DT> i <DD> określających kolejne elementy
wykazów - one także muszą zostać uzupełnione o odpowiednie znaczniki
zamykające.
- niejednakowe wielkości liter w znacznikach otwierającym i
zamykającym - np. rozpoczęcie akapitu znacznikiem <P>, a
zakończenie znacznikiem </p>. W HTML-u nie jest to błąd; w XML-u
litery w znacznikach otwierającym i zamykającym muszą być tej samej
wielkości.
- w HTML-u niektóre wartości atrybutów znaczników nie muszą być
ujmowane w cudzysłowy (składające się z samych cyfr, tak jak w
<FONT SIZE=5>). W XML-u wszystkie wartości atrybutów muszą
występować w cudzysłowach.
- zgodnie ze składnią XML-a, wszystkie znaczniki występujące
"samodzielnie", bez znacznika zamykającego, jak np. <IMG>, <HR>,
<BR> itp. powinny zawierać na końcu znak "/". Stanowi to jednak
pewien problem, gdyż takie znaczniki przestają już być poprawne w
HTML-u i mogą nie zostać prawidłowo zinterpretowane przez
przeglądarkę! Aby zachować zgodność z przeglądarkami WWW, należy
przed znakiem "/" kończącym znacznik umieścić spację, a więc np.
nie <BR/>, lecz <BR />.
Nie należy też zapomnieć o usunięciu na koniec z dokumentu
odwołania do odpowiedniej DTD, której dodanie było niezbędne dla
uzyskania formalnie poprawnego dokumentu HTML - jak bowiem wspomniano
uprzednio, definicje te zapisane są w języku SGML i nie "pasują" do
XML-a.
Większość wymienionych powyżej czynności dostosowujących kod
HTML do wymagań XML-a można też wykonać półautomatycznie, posługując
się udostępnianym za darmo przez World Wide Web Consortium programem
HTML Tidy, dostępnym pod adresem:
http://www.w3.org/People/Raggett/tidy.