在HTML5页面中合理使用XML数据以及语义标注技术,可以兼顾人类阅读与机器解析的需求。XML常用于结构化数据交换,而RDFa和Microdata则负责把语义信息嵌入普通网页。

如何将XML嵌入到HTML5中
HTML5本身是一种SGML演进后的标记语言,不直接把XML作为子文档解析,但我们可以用以下几种方式把XML内容放进页面。
使用script标签承载XML数据
最常见的方法是把XML放在type为text/xml的script标签里,浏览器不会渲染它,但可以用DOM读取。
<script id="myxml" type="text/xml">
<note>
<to>用户</to>
<from>系统</from>
<body>这是一段XML数据</body>
</note>
</script>
使用外层元素引入命名空间
如果要在HTML中直接使用XML标签,可以通过外层元素声明命名空间,例如嵌入SVG或MathML这种基于XML的语言。
<div xmlns:my="https://ipipp.com/ns"> <my:item>示例条目</my:item> </div>
RDFa是什么
RDFa全称Resource Description Framework in Attributes,它是一套在HTML标签属性中添加语义的方案。RDFa借用XML时代的RDF模型,用attribute如vocab、typeof、property来描述资源及关系。
<div vocab="https://schema.org/" typeof="Article"> <h1 property="name">示例文章</h1> <p>作者:<span property="author">张三</span></p> </div>
Microdata是什么
Microdata是HTML5规范原生提供的轻量语义标注方式,不需要理解复杂的RDF模型,只用itemscope、itemtype、itemprop几个属性就能标注。
<div itemscope itemtype="https://schema.org/Article"> <h1 itemprop="name">示例文章</h1> <p>作者:<span itemprop="author">张三</span></p> </div>
RDFa与Microdata的区别
| 对比项 | RDFa | Microdata |
|---|---|---|
| 来源 | 基于RDF的XML语义思路 | HTML5原生定义 |
| 学习成本 | 较高,需理解词汇表 | 较低,属性简单 |
| 兼容性 | 可用于XHTML与HTML | 主要用于HTML5 |
小结
将XML嵌入HTML5多以script或命名空间方式实现,而RDFa和Microdata解决的是同一问题:让网页内容被搜索引擎和其他程序理解。实际项目中,若已使用HTML5并追求简单,Microdata更合适;若需严格关联RDF数据集,RDFa更强大。