21

XHTML strict の魅力がよくわかりません。インライン JavaScript は通常、XHTML との互換性を確保し、MSIE 5 および 6 との半後方互換性を確保するために、ネズミの巣状のエスケープを必要とします。次に、不正な文字を見逃さないようにするために、ユーザー入力が十分に OCD ではないという問題があります。 . それは、その価値よりも多くの努力のように思えます。私が一緒に働いたほぼすべての開発者が、サーバーから返された content-type が、text/html から application/xhtml+xml への XHTML ページに対してリセットされるようにすることを忘れ続けていることに気をつけてください。

ブロガーの名前を知りたいのですが、他の誰かが指摘したところによると、XHTML に準拠していると思われる Web サイトとオープン ソース パッケージの大半は、実際には最後の問題のせいではなく、コンテンツ タイプ ヘッダーを正しく設定するのを忘れています。

XHTML がなぜ有用なのかを理解しようとしています。または、私が影響を与える将来のプロジェクトで XHTML が使用されないように、十分な数の議論を構築したいと考えています。

4

13 に答える 13

23

XHTML1 と HTML4 および Strict と Transitional は、完全に直交する問題です。

XML は今日のブラウザーに大きな利点をもたらさないかもしれませんが、サーバー側では、XML を使用してドキュメントを処理する方が、実際には HTML4 ではない昔ながらの SGML を除いて混乱したものを解析しようとするよりも桁違いに簡単です。

[X]HTML Strict に自分自身を制限しても、それ自体では何も達成されません。とにかく使用すべきではない、保守性の低い古い手法の使用を思いとどまらせるだけです。

インライン JavaScript は通常、XHTML と互換性を持たせるためにエスケープのネズミの巣を必要とします

文字 < または & を使用しない限り、エスケープなしで回避できます。そして '// < [CDATA[' は '< よりもそれほど悪くはありません。!--' は昔のことです。

いずれにせよ、スクリプトを外部に保持する方がはるかに扱いやすいです。インラインで重要なことをしたくありません。

次に、不正な文字を見逃さないようにするために、ユーザー入力が十分にOCDにならないという問題があります。

HTML4 Transitional では、XHTML1 Strict とまったく同じように帯域外文字は無効です。

ユーザーが送信した HTML を受け入れて、適切な形式のエラーを防ぐのに十分な細心の注意を払ってチェック/エスケープしない場合、単に doctype に準拠するよりもはるかに大きな問題が発生します。インジェクション ハッキングを許し、サイトをクロスサイト スクリプティングのセキュリティ ホールに対して脆弱にすることになります。

サーバーから返された content-type が XHTML ページの text/html から application/html+xml にリセットされることを確認するのを忘れていました。

これは「忘れる」のではなく、意図的なものです。現在、application/xhtml+xml を提供する意味はあまりありません。IE を考慮するには、UA をスニッフィングする必要があります。次に、両方の解析モードでポップアップする CSS と JavaScript の違いを理解していることを確認してください。技術的な能力を証明するためにそれを行うことはできますが、実際には何も得られません。 .

XHTML を従来の HTML として提供することは理想的ではないかもしれませんが、よりシンプルで処理しやすい XML の構文 (および SVG などの他の XML 言語との潜在的な相互運用性) を維持しながら、ブラウザーフレンドリーを維持できます。

人々は整形式エラーのうるささについて不満を言っていますが、それらのエラーをすぐに見つけて修正してもらう方が、黙ってそこに置いて、将来のブラウザーをつまずかせる準備ができているよりもはるかに優れています.

于 2008-11-10T19:22:29.813 に答える
7

XHTML @ Beware of XHTMLの使用法に関する素晴らしい投稿があります。

お役に立てば幸いです, ブルーノ・フィゲイレド

于 2008-11-10T18:42:58.740 に答える
5

XHTML 1.0 Strict は、次の 4 つの問題を解決しようとしています。

  1. XML は W3C テクノロジーであり、HTML4 はそれを使用していませんでした。あなたの問題ではありません。

  2. Strict は、表現主義に関しては、Transitional よりも理論的に純粋であることを目指しています。しかし、これはXHTML と HTML の問題ではありません。

  3. XML パーサーはおそらくより単純です。(完全に正しいわけではありません。DTD 部分を処理するためのコードはかなり複雑です。) 最近では、XML パーサーとHTML パーサーの両方が既製で入手できるので、これは問題ではありません。(余談:モバイルの議論は完全に偽物です。)

  4. application/xhtml+xml (ただし、有効な XHTML 1.0 Strict ではありません!) を使用すると、他の語彙を混在させることができます。現在インラインの MathML または SVG を使用したい場合、これが現在 application/xhtml+xml を使用する主な理由です。しかし、HTML5 の作業が進められている方向は、text/html で MathML と SVG を使用できるようにすることです。

于 2008-11-11T13:01:06.633 に答える
4

XHTML が便利なのは、HTML よりも単純な変換スタイルシートを作成したり、独自のパーサーをロールしたりする方がはるかに簡単だからです。

于 2008-11-10T18:40:36.700 に答える
3

HTML をプログラムで解析する必要がありますか? テストのために o ですか? 次に、XHTML を使用します。

他のすべてについては、HTML 4.01 (strict、loose、transitional など) は完全に「標準」であり、「面倒」ではありません。

于 2008-11-10T18:49:19.507 に答える
2

XHTML を使用すると、それ自体が XML である SVG (スケーラブル ベクター グラフィックス) のような高度なレンダリングを行うことができますが、<embed> または <object> を使用せずに XML 名前空間拡張を使用して XHTML に簡単に埋め込むことができます。残念ながら、Firefox と Safari のみがサポートしています。IE6 ユーザーの皆様、申し訳ありません。

SVG の詳細については、http://en.wikipedia.org/wiki/Svgを参照してください。

于 2008-11-10T20:02:24.880 に答える
0

XHTML には xml の利点があります。しかし、なぜ厳密なバリアントなのですか?

非推奨の関数との類似点がいくつか見られます。このバージョンでも引き続き使用できますが、次のバージョンでは削除される可能性があります。したがって、移行バージョンは非推奨の使用と見なしています。それはまだ機能し、いくつかのバージョンで機能しますが、将来のためにビルドしたい場合は、strict バージョンを使用してください。

于 2008-11-10T18:50:12.267 に答える
0

Strict は、コンテンツとスタイルの混合をより困難にすることで、コンテンツとスタイルの分離を形式化することを目的としています。Elliotte Rusty Harold は、彼の著書の 1 つで XHTML について詳しく説明しています。「Why XHTML」の関連する抜粋を次に示します。

于 2008-11-10T18:50:47.303 に答える
0

XHTML は、HTML を世界の他のすべての xml ベースの構造と直交させます。これには、主に 2 つの利点があります。

xml を扱う際に使用するデザイン パターンは、html にも適用できます。

ソフトウェア ツールも同様です。

于 2008-11-10T18:41:37.510 に答える
0

XHTML によって解決されたのを私が見た唯一のことは、Safari を使用しているユーザーの「問題」です。バグがまだあるかどうかはわかりませんが、最後に XHTML で書くように求められたとき、 XHTML は Safari では使用できません。XHTML では、アンパサンドがエスケープされていないため、アンカー タグで次の URL を使用することはできません。

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

だからあなたがしなければならないことは、それを & に置き換えることです。このような:

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

しかし、Safari は &; を変換します。に & この URL を取得します。

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

...そして、ハッシュ記号は、PHP に関する限り、URL を終了します。他の方法で 2 つの変数を渡すことができる醜いハックがあることは知っていますが、XHTML が醜いハックを使用することを強制する場合は、それを使用しない方がよいでしょう。

于 2008-11-11T09:13:06.610 に答える
0

個人的には、XHTML の概念が気に入りました。私たちが目にするほとんどの HTML よりもはるかに簡潔で、解析と検証が容易です。みんなと同じように、私も XH​​TML ページのコーディングを始めました。ところで、インライン JavaScript に問題は見られません。コードを CDATA に配置する場合、エスケープは必要ありません。そして幸いなことに、IE5 はブラウザーの世界から少し外れています。Netscape 4 のように、純粋な XML/ >の代わりに./>

今、私は多くの記事を読みました.Brunoによってリンクされた記事のように、ほとんどの場合、その使用に対して多くの良い議論があります. 基本的に、ほとんどのブラウザーは厳密な XHTML (XML として提供される) に対応していないだけでなく、XHTML を HTML としてサーバーに提供することはあまり意味がなく、とにかく大部分のサイトではそれほど役に立たないと言われています。

上記の引数を見てください: それらは完全に有効であり、MathML または SVG をページに直接配置し、XSLT パーサーで XML を変換し、XML パーサーでページを処理できることは素晴らしいことです。

しかし、どのくらいの頻度でそれを行いますか? ページの解析は、ほとんどの場合、優れた HTML パーサーを使用できるエンド ユーザーの問題です。また、MathML、SVG、または XSLT を管理できるブラウザーの数を考慮すると、広大なインターネットよりもイントラネットが必要です。

優れた XHTML ページを吐き出す e コマース、ブログ、またはフォーラムを持つことができます。そして、説明、記事、またはメッセージを書いている人は、そうでない場合、または他のエキゾチックな構造の<p><p><p>場合に、いくつかの行をスキップするために挿入します...<p/>

私は XHTML を信じていますが、自分のサイトの小さなページにはもう使用しないと思います。適切に記述されたコード (引用符で囲まれた属性、省略可能であっても終了タグなど) を含む HTML 4 を使用します。
結局のところ、もし W3C が HTML 5 で機能しているのなら、それには理由があります: HTML にはまだ先があります。

于 2008-11-11T09:22:24.953 に答える
-1

これは世界標準の問題です

これは xHTML だけでなく、世界中のすべての標準についてです。バージョンごとに、物事をより明確にする必要があります。

xHTML は正方形であり、コーダーにコードにセマンティックな価値を追加するよう促します。XML と完全に互換性があるため、解析やスタイル設定などが容易になります。

コードはコーダーだけのものではなく、マシンのためのボットでもあることを忘れないでください。10 年後には、ブラウザーやライブラリーを作成する人々は、古い HTML 処理に同じ複雑なルールを実装することを望まず、できるだけクリーンなものを期待するようになるでしょう。

検索エンジンは、値の間にセマンティック リンクを構築するために依存するものを必要とします。そのため、それを行う簡単な方法が 1 つしかない方がよいでしょう。

そして、私はスクリーンリーダーについて話しているのではありません...

スタンダードとは、何よりも、すべての人のニーズに合う 1 つのユニークなオープン ソリューションを目指すことです。新しい光沢のある機能を追加するだけではありません。

于 2008-11-10T18:51:20.000 に答える
-1

XHTML は、HTML とは異なり、定義上 XML です。

これは、簡単に検証して解析するなど、ファンキーで便利なことを行うことができることを意味します (XML であることがわかっているため、利用可能な無数のツールを使用できるため)。

また、オタクは物事を「より正確」にするのが好きです;-)

于 2008-11-10T18:42:43.077 に答える