web-dev-qa-db-ja.com

公式のXSLTバリデーター?

HTMLとXHTMLの http://validator.w3.org/ のような公式のXSLTバリデーターはありますか?

http://validator.w3.org/ は、XMLおよびXSLドキュメントの検証にも使用できます。ただし、XML構造として検証されます。

有効なXHTMLでは、たとえば、<span><div>...</div></span>は無効です。ブロック要素がインライン要素内に表示されるべきではないためです。

では、XSLドキュメントを直接検証する便利な方法はありますか?

(私たちは、XMLとXSLを組み合わせ、XHTMLを出力し、それを検証する可能性があると思います。しかし、これは直接ではなく、不便です。)

ありがとう!

15
midnite

XSLTスタイルシートを検証することで、既に整形式のXMLドキュメント(XSLTコードのように見える)の要素、属性などがXSLT W3C仕様に準拠しているかどうかを確認することになると思います。

まず、XMLドキュメントの整形式と有効性には違いがあることに注意してください。含まれる要素が適切にネストされている場合、単一のルート要素がある場合など、これは整形式です(これはXML仕様で定義されています)。また参照してください 「有効なxml」と「整形式のxml」の間に違いはありますか? .

XMLドキュメントの有効性は、XMLスキーマ(またはDTD、またはRelaxNG ...)と一緒にのみ検証できます。スキーマは、たとえば、どの要素と属性がどの順序で許可されるかを定義する一連のルールです。

今、あなたの質問に答えるために:W3Cからのそのようなサービスはありませんが、利用可能なスキーマがあります。 http://www.w3.org/2007/schema-for-xslt20.xsd 「標準」のすべての構造を組み込んだスキーマの場合XSLT 2.0

このスキーマに対してXSLTコードを検証できます。それでも、XSLTプロセッサでコードを実行し、それによって生成される警告とエラーを探す方がより洞察力があります。


さらに、XSLTコードの有効性とそれが出力するXHTMLの有効性は同じではないことに注意してください。 XSLTがXSLT仕様に関して完全に有効であっても、結果のXHTMLが妥当であるとは限りません。

11
Mathias Müller

一般的なケースでは、任意のXSLTスタイルシートを使用して、それが有効なXHTMLを生成することを静的に証明することはできません。ただし、スキーマ認識を利用するようにスタイルシートが作成されている場合は、検出されないかなりのケースを検出できます。これには、静的チェックを行うスキーマ対応のXSLTプロセッサ(Saxon-EEなど)が必要であり、(a)xslt:import-schemaを使用してスキーマをインポートし、(b)で検証を呼び出すためのスタイルシートが必要です。 [xsl:] validation = "strict"を使用した結果要素。これにより、スタイルシート出力の静的エラー(スタイルシートのコンパイル中)と残りの動的エラー(実行中)のいくつかの妥当性エラーが検出されます。

2
Michael Kay

エラーを強調するのに十分な(X)HTMLの構造を知っている多くのXML編集ツール(そしておそらくいくつかのHTMLツールも)があります。たとえば、Visual Studioは、XHTMLまたはXSLを含むスキーマを使用して、任意のXMLドキュメントを検証できます。スパン内でdivが許可されるかどうかは、XHTMLスキーマで定義されます。

0
Flynn1179