在基于组件的Web框架中验证标记的最佳方法是什么?

时间:2010-02-05 15:39:05

标签: html validation w3c web-frameworks

如果您使用的是基于组件(又名Pull-based)的Web框架(例如Tapestry,Wicket等),您如何确定您的标记通过了W3C验证?我想到了两种方法:

抓取正在运行的应用

  • 页面上存在验证所需的所有标记。

缺点:

  • 每个页面和每个案例都会非常复杂。
  • 如果出现问题,可能不明显哪个组件导致问题(特别是在大型应用程序中)。
  • 您可能会反复验证相同的组件(重复工作)。
  • 如果页面/组件很多,可能需要很长时间。

离线抓取HTML模板

优点:

  • 您只需要验证一次组件。
  • 如果您发现问题,您将确切知道导致它的组件。

缺点:

我能想到的大多数缺点都涉及丢失组件的上下文,因为您没有页面的完整标记。

  • 您可能不知道给定组件的DOCTYPE。
  • 可能很难知道组件的父级是什么,这可能会导致问题。例如。检测包含块标记的内嵌标记(例如<span>)的无效大小写(例如<form><p>)。
  • 这些类型的框架中的HTML模板通常包含无效的属性和特殊符号(通常用于向框架指示某些内容),但不会进行验证。

所以问题是,如果您使用的是基于组件的体系结构,那么如何验证您的标记?有没有推荐的技术,或者更好的工具呢?

编辑:我对此没有更多答案感到有些惊讶。在使用基于组件的框架时验证标记是不常见的吗?或者只有不少人使用它们?

1 个答案:

答案 0 :(得分:1)

您确实希望使用完整的服务文档进行大多数此类验证和测试。这可以确保您验证的内容确实是Web浏览器所看到的内容。

根据您需要验证的网址数量,这是一个很好的选择,就是使用WDG的批量验证服务。

http://htmlhelp.org/tools/validator/batch.html.en

或者wdg和w3c有一个离线验证器,您可以使用脚本来聚合测试结果。一个快速的谷歌搜索将给你几个,如果你这么倾向他们并不难做到。

您需要自己生成网址列表,使用抓取脚本或从数据库生成。如果某些页面的动态内容无法被最终用户“破坏”,则可以减少实际验证的页面数。