背景
I have made the decision to serve my website as application/xhtml+xml
to anyone who will accept it. I understand that there are consequences, which consequences I'm willing to accept.
Problem
I'm trying to validate XHTML5 in PHP. That way, I can serve the file as text/html
if validation fails (hey, ain't nobody perfect). My question has merit even when taken outside of my situation, though.
那么我有哪些选项来验证 XHTML5?
我做了什么:
我已经在使用 PHP 了DOMDocument
在我的源代码中作为模板的形式,所以我希望能够使用DOMDocument::relaxNGValidate or DOMDocument::schemaValidate。我都找不到.xsd
nor .rng
使用。不过,我想我已经找到了制作 rng 语法的目录在......之外。在今天之前,我从未听说过 Relax NG。对这个方向有帮助吗?
正如 @Kevin Peno 指出的那样,HTML5 不是 XML,尽管这最初让我感到不舒服,但我已经接受了它,并决定仅将 HTML5 视为最终输出格式,而不是有潜力的文档。通过 XML 工具重新使用和转换。
如果您希望走这条路,我的建议是通过保证 XML 有效的清理过程传递您的 HTML5 标记(我会想到 Tidy 等工具)。
您的另一个选择是重新考虑您的方法并将 HTML 视为最终输出格式。使用不同的标记语言来存储内容,甚至可能存储网站的结构。
例如,您可以将 Markdown 用于内容(轻松转换为 HTML)。如果您更愿意坚持使用 XML,也许可以定义您自己的 DSL,或者重复使用诸如简化文档手册。过去这对我来说效果很好。
然后利用 XSL 将 XML 混搭转换为 HTML5 或您喜欢的任何输出格式。
现在,要尝试直接回答您的问题,您肯定需要“整理” HTML5 标记,以确保它是有效的 XML,然后再使用 RelaxNG 或 XML Schema 等验证工具。至于您的 RNG 架构文件,我建议首先查找 XHTML 1.0 Strict .rng,然后仔细阅读 HTML5 规范并根据需要添加元素和属性。谷歌快速搜索出现了下列.
如果您在 RNG 和 XML Schema 之间做出选择,请选择 RelaxNG,这样可以省去一些麻烦。这是我的观点,但我已经广泛使用了这两种方法,并且 RelaxNG 更具人类可读性并且更易于使用!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)