2

バックグラウンド

私は自分のウェブサイトapplication/xhtml+xmlを受け入れてくれる人なら誰にでも提供することにしました。私は結果があることを理解しており、私はその結果を喜んで受け入れます。

問題

PHP で XHTML5 を検証しようとしています。そうすれば、検証が失敗したかのようにファイルを提供できtext/htmlます (完璧な人はいません)。ただし、私の質問は、私の状況の外に出された場合でもメリットがあります。

では、XHTML5 を検証するためのオプションは何ですか?


私がやったこと:

テンプレートの形式として、ソース コードで既に PHP を使用しているため、 DOMDocument::relaxNGValidateまたはDOMDocument::DOMDocument schemaValidateを使用できるようにしたいと考えています。見つけることも使うこともできません。しかし、 rng 文法を作成するためのディレクトリを見つけたと思います。今日まで、Relax NG という言葉さえ聞いたことがありませんでした。この方向について何か助けはありますか?.xsd.rng

4

2 に答える 2

2

新しい (Nu) HTML5 Validatorには、XHTML5 を含むさまざまなプリセット用の RELAX NG スキーマがあります。

見るhttps://bitbucket.org/validator/syntax/src/ed90a83ab0fd/relaxng https://github.com/validator/validator/tree/master/syntax/relaxng

これはあなたが探しているものですか、それとも私が混乱していますか?

于 2012-06-16T23:19:04.790 に答える
2

@Kevin Peno が指摘したように、HTML5 は XML ではありません。最初は間違った方法でこすったものの、私はそれに同意し、HTML5 を最終的な出力形式としてのみ扱うことにしました。 XML ツールを介して再利用および再変換できます。

この道をたどりたい場合は、有効な XML を保証するクリーンアップ プロセスに HTML5 マークアップを渡すことをお勧めします (Tidy などのツールが思い浮かびます)。

もう 1 つのオプションは、アプローチを少し考え直して、HTML を最終的な出力形式として扱うことです。別のマークアップ言語を使用してコンテンツを保存し、場合によっては Web サイトの構造を保存します。

たとえば、コンテンツに Markdown を使用できます (簡単に HTML に変換できます)。XML にこだわりたい場合は、独自の DSL を定義するか、 Simplified DocBookなどを再利用してください。それは過去に私にとってうまくいきました。

次に、XSL を活用して、XML マッシュアップを HTML5 または任意の出力形式に変換します。

質問に直接答えるには、RelaxNG や XML スキーマなどの検証ツールを使用する前に、HTML5 マークアップを「整理」して有効な XML であることを確認する必要があります。RNG スキーマ ファイルについては、最初に XHTML 1.0 Strict .rng を探し、次に HTML5 仕様を熟読し、必要に応じて要素と属性を追加することをお勧めします。簡単なグーグル検索で次のことがわかりました

RNG と XML スキーマのどちらかを決定している場合は、頭の痛い問題を解決して、RelaxNG を使用してください。これは私の意見ですが、私は両方を広範囲に使用してきましたが、RelaxNG ははるかに人間が判読でき、操作が簡単です!

于 2012-05-17T19:13:08.140 に答える