2016-12-06 3 views
0

私はPHPでニュースレタービルダーを構築しています。私の要件の1つは、電子メールがHTMLで構成されたら、それがw3標準を満たしているかどうかを確認し、検証実行から無効なエラーが検出された場合は、エンドユーザーに通知します。w3validator API - XHTML1 DOCTYPEのテスト

モーメントの時、私はこの次のPHPカールの要求を介しw3validatorのAPIを使用しています:https://github.com/validator/validator/wiki/Service:-Input:-POST-body

私の問題は、私はXHTML1のDOCTYPEを使用してHTMLコンテンツを処理するためにバリデータを取得するように見えることができないということです。デフォルトでは、HTML5のdoctypeが表示されますが、クエリ文字列パラメータ( 'parser')を設定することはできますが、テストできる最小限のバージョンはHTML4と思われます。

また、 'parser'パラメータを空白にして、値 'html'を残そうとしました。これは、バリデータがhtmlコンテンツのdoctypeセットを検証のために使用するはずでしたが、これはうまくいきません。

XHTML1を有効にするためにw3standards apiを使用できますか?そうでない場合は、私たちがそうするための代替APIがありますか?

+0

どのようなコンテンツタイプを送信しますか? –

答えて

2

W3C HTMLチェッカー(バリデータ)の管理者はこちら。

XHTML1スキーマに対して文書を確認するには、あなたが送信する必要があります。

  • http://s.validator.nu/xhtml10/xhtml-strict.rnc
  • schemaクエリのparam curlを使用して例えば値application/xhtml+xml; charset=utf-8

Content-Typeヘッダ、要求を送信するには、次のようになります。

curl -H "Content-Type: application/xhtml+xml; charset=utf-8" \ 
--data-binary @FILE.xhtml \ 
'https://validator.w3.org/nu/?schema=http://s.validator.nu/xhtml10/xhtml-strict.rnc&out=json' 

... FILE.xhtmlは、チェックする実際のファイルの名前に置き換えられ、out=jsonクエリパラメータは、チェッカーからJSON形式の結果を取得するように指定します。 (あなたはXML形式の結果をしたい場合out=xmlを使用するか、GNUエラー形式で結果を得るためout=gnu。)

http://s.validator.nu/xhtml10/xhtml-strict.rncはチェッカーはXHTML 1.0の厳密なスキーマのために内部的に認識するだけの識別子です。そのURLのWebには実際のスキーマはありません。

チェッカーは、次のファイルにある認識し、そのような識別子のリスト:

curl -H "Content-Type: application/xhtml+xml; charset=utf-8" \ 
--data-binary @FILE.xhtml \ 
'https://validator.w3.org/nu/?schema=http://s.validator.nu/xhtml10/xhtml-strict.rnc%20http://s.validator.nu/html4/assertions.sch%20http://c.validator.nu/all-html4/&out=json' 
:あなたは schema値に他の識別子を追加することによって、いくつかの追加のチェックを含めることができ

https://github.com/validator/validator/blob/master/resources/presets.txt

注意

スキーマ識別子は、%20(パーセント符号化されたスペース文字)で区切る必要があります。