Jaki problem rozwiązuje XHTML strict?

Naprawdę nie rozumiem fascynacji XHTML strict. Inline JavaScript zazwyczaj wymaga gniazda szczurów ucieczki, aby był kompatybilny z XHTML i częściowo wstecznie kompatybilny z MSIE 5 & 6. Następnie jest problem nie jest OCD wystarczy na wejście użytkownika, aby upewnić się, że nie przegapisz żadnych nielegalnych znaków. To po prostu wydaje się więcej wysiłku niż jego wartość. Nie ważne, że prawie każdy programista, z którym pracowałem, zapomina o tym, aby zapewnić, że zawartość wraca z serwer jest resetowany dla stron XHTML z text / html do application / xhtml+xml.

Chciałbym znać nazwę blogera, ale ktoś inny zauważył, że większość rzekomo zgodnych z XHTML stron internetowych i pakietów open source nie jest w rzeczywistości z powodu tego ostatniego problemu, zapominając o prawidłowym ustawieniu nagłówka content-type.

Chcę zrozumieć, dlaczego XHTML jest przydatny, lub zbudować wystarczająco dużo argumentów, aby zapobiec użyciu go w przyszłych projektach, które mam wpływ na.

Author: Simon, 2008-11-10

13 answers

XHTML1 vs HTML4 i Strict vs Transitional są całkowicie ortogonalnymi kwestiami.

XML może dziś nie dać żadnej ogromnej przewagi przeglądarkom, ale na końcu serwera przetwarzanie dokumentów za pomocą XML jest o rząd wielkości łatwiejsze niż próba przeanalizowania bałaganu, który jest old-school-SGML-except-not-really HTML4.

Ograniczenie się do [X] HTML Strict nie osiągnie nic w sobie, poza tym, że zniechęca do używania starych, mniej konserwowalnych technik i tak nie powinieneś brać.

Inline javascript zazwyczaj wymaga odpowiedniego kodu aby był kompatybilny z XHTML

Możesz uciec bez uciekania, o ile nie używasz znaków

W każdym razie utrzymywanie skryptów na zewnątrz jest znacznie łatwiejsze do opanowania; nie chcesz robić niczego znaczącego w linii.

Wtedy jest problem nie jest OCD wystarczy na wejście użytkownika, aby upewnić się, że nie przegapisz żadnych nielegalnych znaków.

Znaki spoza pasma są dokładnie tak samo nieprawidłowe W HTML4 Transitional jak w XHTML1 Strict.

Jeśli akceptujesz kod HTML przesłany przez użytkownika i nie sprawdzasz/unikasz go za pomocą wystarczająco cienkiego grzebienia, aby zapobiec błędom dobrej formy, masz znacznie większe problemy niż tylko przestrzeganie doctype. Będziesz pozwalał na hacki wtryskowe i sprawiał, że Twoja witryna była podatna na dziury w zabezpieczeniach.

Zapominanie o upewnieniu się, że content-type zwracany z serwera jest resetowany dla stron XHTML z text / html do application / html+xml.

To nie jest "zapominanie", to jest celowe: tak naprawdę nie ma sensu serwować application/xhtml+xml dzisiaj. Aby uwzględnić IE musisz powąchać UA, a następnie upewnij się, że rozumiesz różnice CSS i JavaScript, które pojawiają się w obu trybach parsowania... możesz to zrobić, aby udowodnić swoją sprawność techniczna, ale tak naprawdę nic nie daje.

Serwowanie XHTML jako starszego HTML może nie być idealne, ale pozwala zachować prostszą, bardziej przetwarzalną składnię XML (i potencjalną interoperacyjność z innymi językami XML, takimi jak SVG), a jednocześnie jest przyjazne dla przeglądarki.

Ludzie narzekają na wybredność błędów dobrze formowanych, ale posiadanie tych błędów od razu, aby je naprawić, jest o wiele lepsze niż pozostawienie ich tam w milczeniu, gotowym do potknięcia się jakaś przyszła przeglądarka.

 23
Author: bobince,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 19:29:26

Jest świetny post o używaniu XHTML @ Uwaga na XHTML .

Hope it helps, Bruno Figueiredo

 7
Author: Bruno Shine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:42:58

XHTML 1.0 Strict próbuje rozwiązać cztery problemy:

  1. XML to technologia W3C, a HTML4 jej nie używał. To nie twój problem.

  2. Strict stara się być bardziej czysto teoretycznie niż przejściowo, jeśli chodzi o presentacjonalizm. Ale to nie jest problem XHTML vs. HTML .

  3. Parser XML jest podobno prostszy. (Nie do końca prawda; kod do radzenia sobie z częścią DTD jest dość złożony.) W dzisiejszych czasach dostajesz zarówno parsery XML jak i HTML z półki, więc to nie jest Twój problem. (Na bok: argument mobilny jest całkowicie fałszywy .)

  4. Application / xhtml+xml (choć nie poprawny XHTML 1.0 Strict!) pozwala na mieszanie innych słowników. Jeśli chcesz DZIŚ używać wbudowanego MathML lub SVG, jest to główny powód, dla którego należy dziś używać application/xhtml+xml. Jednak kierunek, w którym podąża HTML5, to umożliwienie użycia MathML i SVG w tekście / html.

 5
Author: hsivonen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:08:35

XHTML jest przydatny, ponieważ o wiele łatwiej jest stworzyć prosty arkusz stylów przekształcających lub wrzucić do niego własny parser, niż w przypadku HTML.

 4
Author: gnud,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:40:36

Czy musisz parsować swój HTML za pomocą programu, o dla niektórych testów? Następnie użyj XHTML.

Jeśli chodzi o Wszystko inne, HTML 4.01 (strict, loose, transitional, whatever) jest idealnie "standardowy" i mniej "kłopotliwy".

 3
Author: Filini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:49:19

XHTML umożliwia zaawansowane renderowanie, takie jak SVG (skalowalna grafika wektorowa), który sam w sobie jest XML, ale może być łatwo osadzony w XHTML poprzez rozszerzenie przestrzeni nazw XML bez lub . Niestety tylko Firefox i Safari go obsługują. Przepraszamy użytkowników IE6.

Więcej o SVG na http://en.wikipedia.org/wiki/Svg

 2
Author: yogman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 20:02:24

XHTML sprawia, że HTML jest ortogonalny ze wszystkimi innymi strukturami bazującymi na xml w naszym wszechświecie, co ma dwie podstawowe zalety.

Wzorce projektowe, których używamy do czynienia z xml mogą być stosowane do html.

Software tools ditto.

 0
Author: dkretz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:41:37

XHTML ma zalety xml. Ale dlaczego ścisły wariant?

Widzę pewne podobieństwa z przestarzałymi funkcjami. Nadal można z nich korzystać w tej wersji, ale są one prawdopodobnie usunięte w następnej wersji. Więc widzę wersję przejściową jako przestarzałe użycie. Nadal działa i będzie działać dla kilku wersji, ale jeśli chcesz budować na przyszłość, użyj ścisłej wersji.

 0
Author: Toon Krijthe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:50:12

Strict ma na celu sformalizowanie rozdziału między treścią i stylem poprzez utrudnienie ich mieszania. Elliotte Rusty Harold dobrze napisał o XHTML w jednej ze swoich książek, oto odpowiedni fragment " Dlaczego XHTML ".

 0
Author: sblundy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:50:47

Jedyną rzeczą, którą widziałem rozwiązaną przez XHTML jest "problem" użytkowników korzystających z Safari: Nie wiem, czy błąd nadal istnieje, ale kiedy ostatnio poproszono nas o napisanie w XHTML, natknęliśmy się na błąd, który sprawił, że XHTML był bezużyteczny z Safari. W XHTML następujący adres URL nie jest dozwolony w tagach anchor, ponieważ ampersand nie jest zabezpieczony:

http://www.example.com/page.php?arg1=val1&arg2=val2

Więc to, co musisz zrobić, to zastąpić je & w ten sposób:

http://www.example.com/page.php?arg1=val1&arg2=val2

Ale Safari konwertuje & na&, więc dostajesz ten URL:

http://www.example.com/page.php?arg1=val1&arg2=val2

...oraz symbol hash kończy adres URL w PHP. Wiem, że istnieją brzydkie hacki, które pozwalają przekazać dwie zmienne na inne sposoby, ale jeśli XHTML zmusi cię do używania brzydkich hacków, lepiej ci bez niego.

 0
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-11 09:13:06

Osobiście podobała mi się koncepcja XHTML: dużo czystsza niż większość HTML, łatwiejsza do analizy i walidacji. Jak wszyscy, zacząłem kodować strony XHTML. BTW, nie widzę problemu z Inline JavaScript, nie ma potrzeby escapes jeśli umieścisz kod w CDATA. A IE5 jest na szczęście trochę poza krajobrazem przeglądarki, jak Netscape 4, który zmusił nas do napisania / > zamiast />, coś, co wciąż widzę w czystym XML kiedyś...

Przeczytałem kilka artykułów, takich jak ten linked by Bruno, który ma wiele dobrych argumentów przeciwko jego użyciu w większości przypadków . Zasadniczo mówi, że większość przeglądarek nie jest po prostu gotowa na ścisły XHTML (serwowany jako XML), nie ma sensu serwować XHTML jako HTML, a w każdym razie nie jest to przydatne w większości witryn.

Spójrz na powyższe argumenty: są one całkowicie poprawne i wspaniale jest móc umieścić MathML lub SVG bezpośrednio na stronie, przekształcić XML za pomocą parsera XSLT, przetworzyć stronę za pomocą XML parser.

Ale jak często to robisz? Parsowanie strony jest najczęściej problemem użytkowników końcowych, którzy mogą korzystać z dobrego parsera HTML. Biorąc pod uwagę liczbę przeglądarek zdolnych do zarządzania MathML, SVG lub XSLT, jest to bardziej potrzeba intranetu niż rozległego Internetu.

Możesz mieć e-commerce, bloga lub forum, które wypluwa dobre strony XHTML. A osoby piszące opisy, artykuły lub wiadomości wstawiają <p><p><p>, aby pominąć niektóre linijki, gdy nie jest to <p/> lub inne egzotyczne konstruuj...

Wierzę w XHTML, ale myślę, że nie będę już go używać do małych stron, które robię dla mojej strony. Będę używał HTML 4 z dobrze napisanym kodem(cytowane atrybuty, zamykanie tagów nawet jeśli opcjonalne, itp.).
A przecież jeśli W3C działa w HTML 5, to nie bez powodu: HTML ma jeszcze przed sobą życie, w przeciwnym razie zostałby zabity na rzecz XHTML 2.

 0
Author: PhiLho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-11 09:22:24

XHTML jest z definicji XML, w przeciwieństwie do HTML.

Oznacza to, że możesz robić z nim przydatne rzeczy, takie jak łatwo zweryfikować i przeanalizować (ponieważ wiesz, że to XML, a tym samym możesz korzystać z niezliczonej ilości dostępnych narzędzi).

Również maniacy lubią robić rzeczy "poprawniejsze"; -)

 -1
Author: SCdF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:42:43

Jest to globalny problem standardowy

Tu nie chodzi tylko o xHTML, ale o wszystkie standardy na świecie. Musisz uczynić rzeczy jaśniejszymi, od wersji do wersji.

XHTML jest kwadratowy i popycha kodery do dodania wartości semantycznej do kodu. Jest w pełni kompatybilny z XML i do tego łatwiej parsowalny, stylizowany itp.

Pamiętaj, że kod nie jest tylko dla programistów, bot dla maszyn też. Za 10 lat ludzie tworzący przeglądarki czy biblioteki nie będą chcieli implementować te same kompleksy reguły dla starego przetwarzania HTML, ale raczej oczekują czegoś tak czystego, jak to możliwe.

Wyszukiwarka potrzebuje czegoś, na czym można polegać, aby budować semantyczne powiązania między wartością, więc lepiej, jeśli jest tylko jeden łatwy sposób.

I nie mówię o czytnikach ekranu...

Standard, to przede wszystkim dążenie do jednego unikalnego rozwiązania otwartego, które pasuje do potrzeb każdego. Nie chodzi tylko o dodawanie nowych błyszczących funkcji.

 -1
Author: e-satis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 18:51:20