【问题标题】:w3validator API - testing XHTML1 DOCTYPEw3c 验证器 API - 测试 XHTML DOCTYPE
【发布时间】:2016-12-06 14:05:27
【问题描述】:

我正在用 PHP 构建一个时事通讯构建器,我的一个要求是,一旦电子邮件用 HTML 编写,就会检查它是否符合 w3 标准,如果有任何无效错误,则会向最终用户发出通知从验证运行中找到。

目前我正在通过 PHP Curl 请求使用 w3validator API,如下所示:https://github.com/validator/validator/wiki/Service:-Input:-POST-body

我的问题是我似乎无法让验证器使用 XHTML1 doctype 处理 html 内容。默认情况下,它希望看到 HTML5 文档类型,虽然可以设置查询字符串参数(“解析器”),但我能够测试的最低版本似乎是 HTML4。

我还尝试将“解析器”参数留空,并保留值“html”,这应该使验证器使用 html 内容中设置的 doctype 进行验证,但这也不起作用。

是否可以使用 w3standards api 来验证 XHTML1?如果没有,是否有其他 API 可以让我们这样做?

【问题讨论】:

  • 您发送什么内容类型?

标签: php email w3c w3c-validation xhtml-1.0-strict


【解决方案1】:

这里是 W3C HTML 检查器(验证器)的维护者。

要根据 XHTML1 模式检查文档,您需要发送:

  • schema 查询参数,值为http://s.validator.nu/xhtml10/xhtml-strict.rnc
  • Content-Type 标头,其值为 application/xhtml+xml; charset=utf-8

例如,使用curl 发送请求,它看起来像这样:

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 Strict 模式识别的标识符。该 URL 上的 Web 上没有实际的架构。

检查器识别的此类标识符列表位于以下文件中:

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

请注意,您可以通过将其他标识符添加到 schema 值来包括一些额外的检查:

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'

架构标识符必须用%20(百分比编码的空格字符)分隔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多