关于Validator.nu
Validator.nu是验证2.0。
球场
无基于DTD的验证
基本用法
Validator.nu有两个方面:通用的(复杂UI)和(十) HTML5(简单UI)。
输入URL(http协议
,https(https)
或数据
IRI将成为精确)要在标记的字段中验证的文档“记录”并提交表格。这是它最多需要的案例。
在(十) HTML5面,将选择解析器和模式基于HTTP内容类型
文档的。在通用方面,将根据HTTP选择解析器内容类型
并根据根命名空间(对于XML)或doctype(对于文本/html
).
为了简单起见,HTML5方面只显示通过URL进行验证的UI。通过文本区域进行验证和通过文件上传可在通用方面.
以下是书签:
有一个命令行脚本那个将文档从本地文件系统上传到(X)HTML5验证器。集成到vim是可获得的.
可配置性
- 架构
当模式字段留空时,验证器将尝试自己选择一个模式。如果你对猜测不满意预设,可以通过选择预设或输入以空格分隔的架构URL列表(http协议
,https(https)
或数据
IRI)。除了实际的模式外,您还可以使用要调用的某些特殊URL棋盘格这看起来像是特殊的模式,但实际上并没有实现为模式.
- 分析器
如果自动选择解析器不适合您,您可以手动选择解析器。解析器的选择会影响HTTP接受
发送的请求头。
- 对HTTP内容类型松懈
设置lax选项后,文本/html
,文本/xsl
和文本/纯文本
允许作为XML内容类型和文本/纯文本
允许作为HTML内容类型,如果URL以结尾.rnc文件
,作为紧凑语法内容类型。此外,在lax模式下,US-ASCII默认为文本/*
未强制使用XML类型。
通常,使用RELAX NG XML语法的模式,Schematron模式并且需要提供待验证的XML文档使用XML内容类型。使用RELAX NG Compact语法的架构预计将使用应用程序/relax-ng-compact-syntax
内容类型。(未注册应用程序/vnd.relax-ng.rnc
内容类型也可以理解。)HTML文档应该是担任文本/html
.
- 显示图像报告
设置“Show Image Report”(显示图像报告)复选框后的替代方案国际货币基金组织
为了便于访问,显示了XHTML命名空间中的元素审查。
- 显示来源
您可以选中“Show Source”复选框以显示解码的正在检查的文档的源。请注意,来源如果解析器遇到致命错误,则可能不会全部显示错误。此外,show source功能显示解码的Unicode来源。原始源和中的错误字节序列将使验证器输出不一致的字符(例如U+0000)未如实表示。
Web服务API
如果您想创建自己的替代输入模式或致电Validator.nu(或您自己的本地副本)来自在您自己的应用程序中,有一个RESTful网状物服务API。除了输入模式外HTML表单,您还可以邮政要作为HTTP实体体检查的文档。除此之外默认的HTML输出,消息也可用作XHTML,XML、JSON、GNU错误格式和纯文本。
预设模式
- HTML5(实验)
HTML5(文本/html
-兼容的内容模型)
- HTML5+ARIA(实验)
HTML5与ARIA(无支撑集成原型)
Mike(tm)Smith已经为此架构生成的文档.
- HTML 4.01严格+IRI/XHTML 1.0严格+IRI
XHTML 1.0严格支持IRI。通常适合使用HTML 4.01严格检查同样,尽管理论上有错误的角落案例。使用后端口HTML5数据类型。
- HTML 4.01过渡+IRI/XHTML 1.0过渡+IRI
XHTML 1.0过渡版,支持IRI。通常适合使用HTML 4.01过渡检查同样,尽管理论上有错误的角落案例。使用后端口HTML5数据类型。
- HTML 4.01框架集+IRI/XHTML 1.0框架集+IRI
支持IRI的XHTML 1.0框架集。通常适合使用HTML 4.01框架集检查同样,尽管理论上有错误的角落案例。使用后端口HTML5数据类型。请勿使用。:-)
- XHTML5(实验)
XHTML5(兼容XML的内容模型)
- XHTML5+ARIA、SVG 1.1和MathML 2.0(实验性)
带有ARIA的XHTML5(未经证实的集成原型)、SVG 1.1、MathML 2.0以及OpenMath、RDF和Inkscape cruft的孔。
- XHTML 1.0严格版、SVG 1.1、MathML 2.0+IRI
XHTML 1.0(不是1.1)支持IRI的SVG 1.1和MathML 2.0。
- XHTML 1.0 Strict、Ruby、SVG 1.1、MathML 2.0+IRI
XHTML 1.0(不是1.1)支持IRI的Ruby、SVG 1.1和MathML 2.0。
- XHTML基本版+IRI
支持IRI的XHTML Basic模式。适合与HTML解析器一起使用。
- SVG 1.1+IRI
SVG 1.1完全支持IRI(不允许使用Inkscape cruft)。
非模式检查器
该服务支持几个映射到的特殊伪模式URI用图灵完全编程语言编写的跳棋。
http://c.validator.nu/table/
检查(X)HTML表的完整性。当前的实施应该是考虑了一个尚未更新以匹配HTML5的最新规范语言。(请参见更多详细讨论.)
-
http://c.validator.nu/nfc/
检查文档树中的构造是否使用Unicode规范化表格C,不要以“撰写”开头字符”。使用此伪模式还可以实现规范化检查源文本。(请参见更多详细讨论.)
-
http://c.validator.nu/text内容/
检查(X)HTML5的文本内容米
,进步
和时间
一致性要素。(这是一个原型被剥夺了自由。)
-
http://c.validator.nu/未选中/
警告RDF、OpenPath和Inkspace漏洞以及使用版本=“1.0”
在SVG中。
-
http://c.validator.nu/usemap/
检查主家
用于引用完整性的属性。
-
http://c.validator.nu/all/
的缩写http://c.validator.nu/table/http://c.validator.nu/nfc/ http://c.validator.nu/text内容/ http://c.validator.nu/未选中/ http://c.validator.nu/usemap/
.
-
http://c.validator.nu/all-html4/
的缩写http://c.validator.nu/table/http://c.validator.nu/nfc/ http://c.validator.nu/未选中/ http://c.validator.nu/usemap/
.
-
http://c.validator.nu/debug/
转储将事件解析为警告。
常见问题解答
我的服务器给HTML5验证器一个406状态。怎么了?
您的服务器无法正确处理接受
没有的标头*/*
很有可能您正在同时使用Apache 1.3、PHP和MultiViews。多视图认为你的页面类型是应用程序/x-httpd-php
,它不在接受
收割台。Apache 2没有有这个问题。
我可以获得“有效HTML5”徽章吗?
不,Validator.nu不提供徽章。
我注意到,一旦人们获得徽章,他们就会开始觉得自己有资格获得徽章,如果得到验证,就会怀有敌意服务已更改,因此以前的一些文档宣布有效的不再是。我不想故意煽动反对错误修复。我知道一些模式是不像相应的spec散文那样紧凑。如果我把它们弄得更紧,把它看作是一个bug修复。此外,HTML 5规范仍在更改,所以模式也会改变。最后,我可能(甚至打算)to)更改未来。
除了在之后更改验证器的问题外徽章已经颁发,徽章不要为读者提供价值第页,共页。验证是一个作为页面的工具作者-不是你的东西读者需要验证。然而,如果您正在写关于Web创作和想把其他人介绍给Validator.nu,请放心链接到Validator.nu。
Java?呃。你为什么不用Python或Ruby写呢?
当Ruby on Rails问世时,这个项目已经在进行中。然而,Ruby仍然是一个糟糕的选择如果我早些时候认真考虑过的话。Ruby缺少坚实的Unicode基础设施。我已经已经有了状况当我不得不停止编写应用程序代码时花时间写非常基础的Unicode码基础设施。我不想再陷入那种境地。红宝石缺乏坚实的XML基础结构也。
我选择Java而不是Python有三个原因:SAX、Jing和更多使用Java的经验。除了Java之外,感觉更安全选择是因为我对Java有更多的经验Python还涉及到基础设施。具有平台宽度将XML工具组合在一起的统一方法非常重要当您所做的工作需要插入XML工具时高效。
Java在XML工具方面处于独特的地位基础设施。Java有很多与XML相关的库它们几乎都插入同一个接口。不仅如此它是一个平台范围的XML API,也是XML API的完整性和正确性。从这个角度来看在RELAX NG中,Java是Jing所用的语言非常重要的考虑。Jing是一个非常好的软件。此外,Java是可扩展性的本地语言RELAX NG数据类型库的接口。
当我在肥皂盒上时,我应该提到ICU4J是一个非常好的软件,并且具有Java的概念Unicode从黎明一直冻结为UTF-16,直到永恒考虑到基础设施的稳定性,这一点很重要。它是一个Python程序的含义发生变化(由于数据类型在下面更改)取决于怎样翻译程序已编译.Unicode码针对16位单元进行了优化。粘附的稳定性RAM中的UTF-16超过了UTF-32的理论纯度(当然,在磁盘和网络上,使用UTF-8。)
我确实想使验证器功能可用于但不是用Java编写的应用程序。这就是为什么Validator.nu有一个Web服务接口那可以可以与在validator.nu上运行的实例一起使用,也可以与在localhost上运行的私有实例。我鼓励你写您最喜欢的编程中Web服务的包装器库语言。
DTD有什么问题?
我认为DTD在四个方面都不好:
DTD使用特定于模式的语法污染文档。自文件本身声明了规则,问题的答案是DTD验证不是应该问的问题。DTD公司验证回答了“此文档是否符合它自己声明的规则?”有趣的问题是“是吗这份文件符合这些规则吗?”当提问者问题选择了问题所涉及的规则。
DTD混合了验证机制、包含机制和信息集增强机制。包合机制主要是用于求解字符实体(但仅当DTD为已处理,不需要处理!)输入问题给接收者增加负担,而不是将输入事项保留在编辑软件和文档作者。
DTD并不是特别有表现力。
DTD不支持XML中的命名空间。
我希望为RELAX NG删除提供在线验证服务在线验证器需要DTD的借口。
验证具有明确准确的含义。你们这些孩子不会读ISO 8879吗?
名称和用户中的“Validation”和“validator”服务接口参考ISO/IEC FDIS 19757-2“验证器”(执行验证)的定义Schematron“验证”功能(由验证器),以及“验证器”的HTML 5定义。
已知问题和未来发展思路
XHTML 1.0的模式用于HTML 4.01,因为XHTML1.0应该是HTML 4.01的XML改写版。然而,在重新制定中引入了一些细微的规范错误。因此,HTML 4.01的一些错误是错误的。例如,XHTML 1.0(在DTD中)禁止名称
上的属性这个形式
元素,尽管它在HTML 4.01中是允许的。
请参阅bug tracker了解其他已知问题和用于对未来发展的设想.
报告错误和获取帮助
讨论与使用(十) HTML5验证器是WHATWG公司帮助邮件列表.讨论问题的首选论坛通常与实现(X)HTML5验证器有关,在特别是WHATWG公司实施者邮件列表。应向报告错误验证器.nu Bugzilla.
自定义架构的功能详细信息
RELAX NG中的ID/IDREF/IDREFS检查已为使用自己的模式并期望此功能的用户的好处但是,预设模式不使用RELAX NGID/IDREF/IDREFS功能,因为检查不精确足够(不能要求referent是特定类型)和使用这些功能对模式。
注释不向验证层公开,因此,在Schematron中无法匹配。
文件独立验证(但同时验证)针对每个模式。Schematron验证器没有看到IDnessRELAX NG验证器的赋值。
不支持嵌入式Schematron。
xml:标识
执行处理。此外属性身份证件
在任何命名空间中都没有给定IDness,除非主体元素是CML元素。这意味着两者xml:标识
和(X)HTML身份证件
与XPath匹配id()
功能。不遵守SVG 1.2 IDness规则。
支持以下数据类型库:
HTML解析器发出像解析等效的XHTML风格一样解析事件文档。因此,模式应该采用小写元素XHTML命名空间中的名称和无命名空间中的属性(除了这个朗
属性映射到xml:lang
).
HTML 4.01解析模式不使用SGML解析器。相反,HTML5解析器在HTML 4.01中使用兼容模式。布尔属性的名称重复为与XHTML 1.0模式兼容的值。(这不是在HTML5模式下发生。)
源代码
代码托管在GitHub上。请参阅构建说明.
鸣谢
我要感谢Mozilla基金会和Mozilla为该项目提供资金的公司。
我要感谢詹姆斯·克拉克写了《静》支持RELAX NG和XML。我还要感谢所有测试开发构建、测试用例的编写者和所有人世卫组织开发了该服务使用的库代码和模式。
Mike(tm)Smith为HTML5验证最活跃的开发人员的截至2014年的项目。
Philip Jägenstedt提供了微数据验证支持。
XHTML 1.0模式最初是由James Clark和Petr Nálevka对其进行了改进。
幻想曲设计(X)HTML5模式框架,编写(X)HTML 5核心模式和在我添加功能的过程中起到了很大的作用。
Simon Pieters提供了JavaScript比特、最喜欢的图标和许多错误报告。
RELAX NG和XSLT的模式是由James Clark编写的。
DocBook模式的主要作者是Norman Walsh。
SVG模式来自W3C。
MathML模式由Yutaka Furubayashi编写。
测试用例编写人幻想曲,安妮·范·凯斯特伦和克里斯托夫·施尼甘斯在开发此服务时非常有用。
本产品包括由The Apache software开发的软件基础(http://www.apache.org/).
本产品使用Michael Kay的SAXON XSLT处理器。
指向其他验证器的链接
- 瓦利多姆作者:瓦利多姆团队
专注于HTML、XHTML和WML。使用SGML DTD和自定义代码HTML格式。对XHTML使用XSD和自定义代码。最近添加的支持RSS和Atom,但该功能仍在不断变化。
-
XHTML 1.0模式验证器通过克里斯托夫·施尼甘斯
使用XHTML 1.0的XSD实现进行验证。
-
轻松的作者:Petr纳列夫卡
使用RELAX NG和Schematron验证XHTML和HTML。(这里作为预设提供的XHTML 1.0模式基于模式用于Relaxed。)
-
页面代客泊车由WebThing提供/尼克·邱
基于DTD的SGML和XML验证。
-
订阅源验证程序作者:Sam Ruby,Mark Pilgrim、Joseph Walton和Phil Ringnalda
检查Atom和RSS源。使用Python作为模式语言。:-)
-
W3C CSS验证服务
检查CSS样式表。
-
W3C标记验证服务
基于DTD的SGML和XML验证。
服务条款
这些条款仅适用于托管在验证器.nu
域。如果您是从其他人运行的软件的另一个实例(例如W3C)到达此页面的,则该实例可能具有不同的术语。
如果您不接受这些条款,请不要使用该服务。您可以在适用的开源许可证下运行自己的软件副本,而无需同意这些条款。
这些条款可能会不时更新。没有更新的电子邮件通知,以便不必收集您的电子邮件地址。
接触点
上的软件实例验证器编号
由Henri Sivonen在甘地的基础设施上运营。与上的部署实例相关的所有事项的联系人验证器编号
是亨利·西沃宁。(关于验证程序软件本身,而不是上的特定部署实例验证器编号
,请参阅GitHub问题软件项目的。)
服务水平无保障
绝对没有服务水平的保证或保证。如果您想要保证正常运行时间,请运行您自己的软件副本。服务可随时终止,恕不另行通知。
适当使用
位于的服务验证器编号
用于验证公共Web页面(GET请求模式)和验证准备在Web上发布的页面草稿(POST请求方式)。根据设计,该服务不会要求密码来验证登录后的页面。您不能在授予验证程序实例验证器编号
通过IP地址对您的站点进行特殊访问。如果您希望验证延迟页面或其他私人页面,请运行您自己的验证程序软件副本。不要将敏感数据作为POST请求上传。(例如,如果您正在开发处理此类数据的HTML UI,则不要在HTML中上传真正的机密记录。)
您不得使用该服务验证非法内容或参与看似僵尸网络活动的活动。
不要在服务上放置过多负载。使用个人博客内容管理系统中的API是可以的。如果你有一个大型博客托管服务,请运行你自己的软件副本。您不能使用将您浏览的每个页面的内容发送到验证器的浏览器扩展。如果您想看到每个页面的有效性指示器,请运行您自己的验证器软件副本。
隐私
对于HTTP请求,该服务通常配置为记录非个人识别的使用信息,包括访问的虚拟服务器主机名、访问的路径、HTTP方法、响应代码、传输的字节数、访问时间和用户代理
标头您发送的客户端软件(即Web浏览器的名称和版本)。
在成功的正常操作中,您的IP地址不会记录在清除中。即使在正常操作期间,也可以使用密钥散列函数记录其中的匿名散列,该函数的密钥保存在RAM中,并不时丢弃,以便进行一般使用统计分析,同时即使对于IPv4地址空间等较小的搜索空间,也不可能通过暴力来反转散列。
如果服务遇到错误,它可能会记录该错误,并在记录的错误事件中包括您的IP地址和/或正在验证的URL。在修复错误或将其视为不可访问后,会不时删除这些日志。可能会临时打开更通用的IP地址日志记录,以调查服务滥用情况。之后,IP地址将按照上述段落中的描述进行匿名化。然而,被认为导致滥用流量的IP地址可以作为阻止列表的一部分保留。
您验证的页面的URL可能会保留一段有限的时间,以了解服务的滥用情况。(由于任何人都可以验证其他人的公共网页,并且您只能通过URL验证公共网页,因此URL不会被视为请求验证的人的个人身份。)
这些日志本应仅对亨利·西沃宁可见,但他没有技术手段阻止甘地访问这些日志(尽管这些日志不应该看起来)。聚合使用统计数据可以公开共享。政府的要求可能会得到回应。
POST请求的内容可以写入临时文件。虽然在处理请求后会删除这些数据,但原则上它们可能会在磁盘上保留可恢复的数据,直到实际被覆盖。