全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-17 12 分钟 ✍️ juanwangdev

RDFa

RDFa 是 W3C 标准,将 RDF 语义数据嵌入 HTML 属性,实现内容与语义的紧密绑定。

RDFa 基础

RDF 三元组

text
RDF数据模型 = 三元组:
- 主体(Subject):被描述的资源
-  predicates(Predicate):属性/关系
- 客体(Object):属性值或另一个资源

示例:
张三(S) - 职业(P) - 前端工程师(O)

RDFa 属性

属性用途
vocab指定词汇表URL
typeof定义资源类型
property定义属性
resource定义资源URI
rel定义关系(指向另一资源)
rev定义反向关系
datatype指定数据类型
content指定属性值(替代可见内容)

RDFa 1.1 基本语法

简洁模式

HTML
<div vocab="https://schema.org/" typeof="Person">
  <span property="name">张三</span>
  <span property="jobTitle">前端工程师</span>
  <span property="email">zhangsan@example.com</span>
</div>

属性解析

text
vocab="https://schema.org/" → 指定Schema.org词汇表
typeof="Person" → 主体类型为Person
property="name" → 属性名为name,值为"张三"

复杂结构

嵌套资源

HTML
<div vocab="https://schema.org/" typeof="Article">
  <h1 property="headline">语义化HTML指南</h1>

  <div property="author" typeof="Person">
    <span property="name">小智</span>
    <span property="jobTitle">技术作者</span>
  </div>

  <time property="datePublished" datetime="2026-05-17">
    2026年5月17日
  </time>
</div>

关系链接

HTML
<div vocab="https://schema.org/" typeof="Person" resource="#作者1">
  <span property="name">张三</span>

  <a rel="url" href="https://zhangsan.com">个人主页</a>
  <a rel="knows" resource="#作者2">认识李四</a>
</div>

RDFa Lite(简化版)

RDFa Lite 属性

HTML
<div vocab="https://schema.org/" typeof="LocalBusiness">
  <span property="name">科技公司</span>
  <span property="address">北京市朝阳区</span>
  <span property="telephone">010-12345678</span>
</div>

RDFa Lite 仅使用 5 个属性:

  • vocab
  • typeof
  • property
  • resource
  • prefix

多词汇表混用

prefix 定义

HTML
<div prefix="schema: https://schema.org/
             foaf: http://xmlns.com/foaf/0.1/"
     typeof="foaf:Person">

  <span property="foaf:name">张三</span>
  <span property="schema:jobTitle">前端工程师</span>
</div>

常用词汇表

词汇表URL用途
Schema.orghttps://schema.org/通用结构化数据
FOAFhttp://xmlns.com/foaf/0.1/人物/朋友关系
Dublin Corehttp://purl.org/dc/terms/文档元数据
SIOChttp://rdfs.org/sioc/ns社交内容

RDFa 与其他方式对比

特性RDFaMicrodataJSON-LD
标准W3CWHATWGW3C
与HTML关系紧密嵌入紧密嵌入分离
表达能力完整RDF有限完整
学习成本
搜索引擎支持支持支持推荐

完整示例

产品页面

HTML
<div vocab="https://schema.org/" typeof="Product" resource="#产品1">
  <h1 property="name">iPhone 15 Pro</h1>

  <img property="image" src="iphone.jpg" alt="产品图">

  <div property="offers" typeof="Offer">
    <span property="price" content="5999">¥5999</span>
    <meta property="priceCurrency" content="CNY">
    <link property="availability" href="https://schema.org/InStock">
  </div>

  <div property="aggregateRating" typeof="AggregateRating">
    <span property="ratingValue">4.5</span>
    <span property="reviewCount">128</span>条评价
  </div>
</div>

使用 content 属性

HTML
<!-- 可见内容与语义值不同 -->
<span property="price" content="5999">¥5999元</span>

<!-- 隐藏元数据 -->
<meta property="priceCurrency" content="CNY">

注意:RDFa 属性内容应与可见内容一致,仅在必要时使用 content 属性覆盖。

要点总结

  • RDFa 基于 RDF 三元组模型,语义表达完整
  • vocab 指定词汇表,typeof 定义类型,property 定义属性
  • rel 定义指向其他资源的关系
  • prefix 可混用多个词汇表
  • 内容与语义紧密绑定,适合语义化增强场景

📝 发现内容有误?点击此处直接编辑

← 上一篇 JSON-LD
下一篇 → Schema.org词汇表
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库