Ostatnio chcialem napisac swoj parser dla plikow HTML 4.01 w jezyku C. Dlatego siegnalem po specyfikacje HTML 4.01 na stronie W3C http://www.w3.org/TR/html4/ i w tagu DL mozemy przeczytac (s.106) jak i na samej gorze strony 34 jako przyklad:
<!-- definition lists - DT for term, DD for its definition -->
<!ELEMENT DL - - (DT|DD)+ -- definition list -->
Natomiast co oznaczaja elementy skladni: (...)
, |
oraz +
czytamy na stronie 33:
( ... )
Delimits a group.
[...]
A+
A must occur one or more times.
[...]
A | B
Either A or B must occur, but not both.
[...]Here are some examples from the HTML DTD:
<!ELEMENT DL - - (DT|DD)+ >
[...]The DL element must contain one or more DT or DD elements in any order.
No wlasnie. "Element DL musi zawierac jeden lub wiecej elementow DT lub DD w dowolnej kolejnosci". Ponadto na stronie 107 podane sa nawet 2 przyklady uzycia (podam jeden z nich):
<DL>
<DT>Dweeb
<DD>young excitable person who may mature
into a <EM>Nerd</EM> or <EM>Geek</EM>
<DT>Hacker
<DD>a cleverprogrammer
<DT>Nerd
<DD>technically bright but socially inept person
</DL>
Czyli jak widac w tagu DL jednak moga pojawic sie tagi DT i DD razem. Pojawienie sie jednego wcale nie wyklucza pojawienie sie drugiego mimo, ze w definicji elementu DL sa zgrupowane alternatywa wykluczajaca |. Z tego co wiem to "either ... or ..." = albo ... albo ...
Jak to jest w koncu? Czyzby blad dokumentacji? Czy ja tez czegos niedoczytalem?