You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
807 lines
38 KiB
807 lines
38 KiB
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
<html lang="en">
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
|
|
|
|
<title>HTML+RDFa</title>
|
|
<meta content="text/html; charset=us-ascii" http-equiv="Content-Type">
|
|
<style type="text/css">
|
|
pre { margin-left: 2em; white-space: pre-wrap; }
|
|
h2 { margin: 3em 0 1em 0; }
|
|
h3 { margin: 2.5em 0 1em 0; }
|
|
h4 { margin: 2.5em 0 0.75em 0; }
|
|
h5, h6 { margin: 2.5em 0 1em; }
|
|
h1 + h2, h1 + h2 + h2 { margin: 0.75em 0 0.75em; }
|
|
h2 + h3, h3 + h4, h4 + h5, h5 + h6 { margin-top: 0.5em; }
|
|
p { margin: 1em 0; }
|
|
hr:not(.top) { display: block; background: none; border: none; padding: 0; margin: 2em 0; height: auto; }
|
|
dl, dd { margin-top: 0; margin-bottom: 0; }
|
|
dt { margin-top: 0.75em; margin-bottom: 0.25em; clear: left; }
|
|
dt + dt { margin-top: 0; }
|
|
dd dt { margin-top: 0.25em; margin-bottom: 0; }
|
|
dd p { margin-top: 0; }
|
|
dd dl + p { margin-top: 1em; }
|
|
dd table + p { margin-top: 1em; }
|
|
p + * > li, dd li { margin: 1em 0; }
|
|
dt, dfn { font-weight: bold; font-style: normal; }
|
|
dt dfn { font-style: italic; }
|
|
pre, code { font-size: inherit; font-family: monospace; font-variant: normal; }
|
|
pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
|
|
pre em { font-weight: bolder; font-style: normal; }
|
|
@media screen { code { color: orangered; } code :link, code :visited { color: inherit; } }
|
|
var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
|
|
table { border-collapse: collapse; border-style: hidden hidden none hidden; }
|
|
table thead { border-bottom: solid; }
|
|
table tbody th:first-child { border-left: solid; }
|
|
table td, table th { border-left: solid; border-right: solid; border-bottom: solid thin; vertical-align: top; padding: 0.2em; }
|
|
blockquote { margin: 0 0 0 2em; border: 0; padding: 0; font-style: italic; }
|
|
|
|
.bad, .bad *:not(.XXX) { color: gray; border-color: gray; background: transparent; }
|
|
.matrix, .matrix td { border: none; text-align: right; }
|
|
.matrix { margin-left: 2em; }
|
|
.dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
|
|
.dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
|
|
.dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
|
|
.applies th > * { display: block; white-space: nowrap; }
|
|
.applies thead code { display: block; }
|
|
.applies td { text-align: center; }
|
|
.applies .yes { background: yellow; }
|
|
|
|
.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
|
|
img.extra { float: right; }
|
|
pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em 1em; }
|
|
pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
|
|
pre.css { border: solid thin; background: #FFFFEE; color: black; padding: 0.5em 1em; }
|
|
pre.css:first-line { color: #AAAA50; }
|
|
dl.domintro { color: green; margin: 2em 0 2em 2em; padding: 0.5em 1em; border: none; background: #EEFFEE; }
|
|
hr + dl.domintro, div.impl + dl.domintro { margin-top: 2.5em; margin-bottom: 1.5em; }
|
|
dl.domintro dt, dl.domintro dt * { color: black; text-decoration: none; }
|
|
dl.domintro dd { margin: 0.5em 0 1em 2em; padding: 0; }
|
|
dl.domintro dd p { margin: 0.5em 0; }
|
|
dl.switch { padding-left: 2em; }
|
|
dl.switch > dt { text-indent: -1.5em; }
|
|
dl.switch > dt:before { content: '\21AA'; padding: 0 0.5em 0 0; display: inline-block; width: 1em; text-align: right; line-height: 0.5em; }
|
|
dl.triple { padding: 0 0 0 1em; }
|
|
dl.triple dt, dl.triple dd { margin: 0; display: inline }
|
|
dl.triple dt:after { content: ':'; }
|
|
dl.triple dd:after { content: '\A'; white-space: pre; }
|
|
.diff-old { text-decoration: line-through; color: silver; background: transparent; }
|
|
.diff-chg, .diff-new { text-decoration: underline; color: green; background: transparent; }
|
|
a .diff-new { border-bottom: 1px blue solid; }
|
|
|
|
h2 { page-break-before: always; }
|
|
h1 + h2, hr + h2.no-toc { page-break-before: auto; }
|
|
|
|
p > span:not([title=""]):not([class="XXX"]):not([class="impl"]), li > span:not([title=""]):not([class="XXX"]):not([class="impl"]) { border-bottom: solid #9999CC; }
|
|
|
|
div.head { margin: 0 0 1em; padding: 1em 0 0 0; }
|
|
div.head p { margin: 0; }
|
|
div.head h1 { margin: 0; }
|
|
div.head .logo { float: right; margin: 0 1em; }
|
|
div.head .logo img { border: none } /* remove border from top image */
|
|
div.head dl { margin: 1em 0; }
|
|
p.copyright { font-size: x-small; font-style: oblique; margin: 0; }
|
|
|
|
body > .toc > li { margin-top: 1em; margin-bottom: 1em; }
|
|
body > .toc.brief > li { margin-top: 0.35em; margin-bottom: 0.35em; }
|
|
body > .toc > li > * { margin-bottom: 0.5em; }
|
|
body > .toc > li > * > li > * { margin-bottom: 0.25em; }
|
|
.toc, .toc li { list-style: none; }
|
|
|
|
.brief { margin-top: 1em; margin-bottom: 1em; line-height: 1.1; }
|
|
.brief li { margin: 0; padding: 0; }
|
|
.brief li p { margin: 0; padding: 0; }
|
|
|
|
.category-list { margin-top: -0.75em; margin-bottom: 1em; line-height: 1.5; }
|
|
.category-list::before { content: '\21D2\A0'; font-size: 1.2em; font-weight: 900; }
|
|
.category-list li { display: inline; }
|
|
.category-list li:not(:last-child)::after { content: ', '; }
|
|
.category-list li > span, .category-list li > a { text-transform: lowercase; }
|
|
.category-list li * { text-transform: none; } /* don't affect <code> nested in <a> */
|
|
|
|
.XXX { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
|
|
.XXX > :first-child { margin-top: 0; }
|
|
p .XXX { line-height: 3em; }
|
|
.annotation { border: solid thin black; background: #0C479D; color: white; position: relative; margin: 8px 0 20px 0; }
|
|
.annotation:before { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 6px -6px -6px 6px; background: #333333; z-index: -1; content: ''; }
|
|
.annotation :link, .annotation :visited { color: inherit; }
|
|
.annotation :link:hover, .annotation :visited:hover { background: transparent; }
|
|
.annotation span { border: none ! important; }
|
|
.note { color: green; background: transparent; font-family: sans-serif; }
|
|
.warning { color: red; background: transparent; }
|
|
.note, .warning { font-weight: bolder; font-style: italic; }
|
|
p.note, div.note { padding: 0.5em 2em; }
|
|
span.note { padding: 0 2em; }
|
|
.note p:first-child, .warning p:first-child { margin-top: 0; }
|
|
.note p:last-child, .warning p:last-child { margin-bottom: 0; }
|
|
.warning:before { font-style: normal; }
|
|
p.note:before { content: 'Note: '; }
|
|
p.warning:before { content: '\26A0 Warning! '; }
|
|
|
|
.bookkeeping:before { display: block; content: 'Bookkeeping details'; font-weight: bolder; font-style: italic; }
|
|
.bookkeeping { font-size: 0.8em; margin: 2em 0; }
|
|
.bookkeeping p { margin: 0.5em 2em; display: list-item; list-style: square; }
|
|
|
|
h4 { position: relative; z-index: 3; }
|
|
h4 + .element, h4 + div + .element { margin-top: -2.5em; padding-top: 2em; }
|
|
.element {
|
|
background: #EEEEFF;
|
|
color: black;
|
|
margin: 0 0 1em 0.15em;
|
|
padding: 0 1em 0.25em 0.75em;
|
|
border-left: solid #9999FF 0.25em;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
.element:before {
|
|
position: absolute;
|
|
z-index: 2;
|
|
top: 0;
|
|
left: -1.15em;
|
|
height: 2em;
|
|
width: 0.9em;
|
|
background: #EEEEFF;
|
|
content: ' ';
|
|
border-style: none none solid solid;
|
|
border-color: #9999FF;
|
|
border-width: 0.25em;
|
|
}
|
|
|
|
.example {
|
|
display: block;
|
|
color: #222222;
|
|
background: #FCFCFC;
|
|
border-left: double;
|
|
margin-left: 2em;
|
|
padding-left: 1em;
|
|
}
|
|
|
|
.tall-and-narrow {
|
|
font-size: 0.6em;
|
|
column-width: 25em;
|
|
column-gap: 1em;
|
|
-moz-column-width: 25em;
|
|
-moz-column-gap: 1em;
|
|
-webkit-column-width: 25em;
|
|
-webkit-column-gap: 1em;
|
|
}
|
|
|
|
ul.domTree, ul.domTree ul { padding: 0 0 0 1em; margin: 0; }
|
|
ul.domTree li { padding: 0; margin: 0; list-style: none; position: relative; }
|
|
ul.domTree li li { list-style: none; }
|
|
ul.domTree li:first-child::before { position: absolute; top: 0; height: 0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
|
|
ul.domTree li:not(:last-child)::after { position: absolute; top: 0; bottom: -0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
|
|
ul.domTree span { font-style: italic; font-family: serif; }
|
|
ul.domTree .t1 code { color: purple; font-weight: bold; }
|
|
ul.domTree .t2 { font-style: normal; font-family: monospace; }
|
|
ul.domTree .t2 .name { color: black; font-weight: bold; }
|
|
ul.domTree .t2 .value { color: blue; font-weight: normal; }
|
|
ul.domTree .t3 code, .domTree .t4 code, .domTree .t5 code { color: gray; }
|
|
ul.domTree .t7 code, .domTree .t8 code { color: green; }
|
|
ul.domTree .t10 code { color: teal; }
|
|
|
|
</style>
|
|
<link href="data:text/css," rel="stylesheet" title="Complete specification"
|
|
type="text/css">
|
|
<link href="data:text/css,.impl%20{%20display:%20none;%20}" rel=
|
|
"alternate stylesheet" title="Author documentation only">
|
|
<link href="data:text/css,.impl%20{%20background:%20%23FFEEEE;%20}" rel=
|
|
"alternate stylesheet" title="Highlight implementation requirements">
|
|
<link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet" type=
|
|
"text/css"><!-- ZZZ ED vs WD -->
|
|
</head>
|
|
|
|
<body>
|
|
<div class="head">
|
|
<p><a href="http://www.w3.org/"><img alt="W3C" height="48" src=
|
|
"http://www.w3.org/Icons/w3c_home" width="72"></a></p>
|
|
|
|
<h1>HTML+RDFa</h1>
|
|
|
|
<h2 class="no-num no-toc" id="a-mechanism-for-embedding-rdf-in-html">A
|
|
mechanism for embedding RDF in HTML</h2>
|
|
|
|
<h2 class="no-num no-toc" id="editor-s-draft-date-13-October-2009">W3C
|
|
Working Draft 15 October 2009</h2><!--:ZZZ-->
|
|
|
|
<dl>
|
|
<!-- ZZZ: update the month/day (twice), (un)comment out
|
|
<dt>This Version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/2009/WD-html5-20090423/">http://www.w3.org/TR/2009/WD-html5-20090423/</a></dd>
|
|
:ZZZ -->
|
|
|
|
<dt>This Version</dt>
|
|
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/2009/WD-rdfa-in-html-20091015/">http://www.w3.org/TR/2009/WD-rdfa-in-html-20091015/</a></dd>
|
|
|
|
<dt>Latest Version</dt>
|
|
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/rdfa-in-html/">http://www.w3.org/TR/rdfa-in-html/</a></dd>
|
|
|
|
<dt>Authors (alphabetical order):</dt>
|
|
|
|
<dd>Ben Adida (Chair, RDFa Task Force, Creative Commons)</dd>
|
|
|
|
<dd>Mark Birbeck (Editor, XHTML+RDFa and inventor of RDFa concept, Web
|
|
Backplane Ltd.)</dd>
|
|
|
|
<dd>Shane McCarron (Editor, XHTML+RDFa, Applied Testing and Technology,
|
|
Inc.)</dd>
|
|
|
|
<dd>Steven Pemberton (Chair, XHTML2 and RDFa Task Force member,
|
|
CWI)</dd>
|
|
|
|
<dd><a href="mailto:msporny@digitalbazaar.com">Manu Sporny</a>,
|
|
(Editor, HTML+RDFa and RDFa Task Force member, Digital Bazaar,
|
|
Inc.)</dd>
|
|
</dl>
|
|
|
|
<p class="copyright"><a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
|
|
© 2009 <a href="http://www.w3.org/"><abbr title=
|
|
"World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href=
|
|
"http://www.csail.mit.edu/"><abbr title=
|
|
"Massachusetts Institute of Technology">MIT</abbr></a>, <a href=
|
|
"http://www.ercim.org/"><abbr title=
|
|
"European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
|
|
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
|
|
<a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
|
|
<a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
|
|
and <a href=
|
|
"http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
|
|
rules apply.</p>
|
|
</div>
|
|
<hr class="top">
|
|
|
|
<h2 class="no-num no-toc" id="abstract">Abstract</h2>
|
|
|
|
<p>This specification defines rules and guidelines for adapting the RDF in
|
|
XHTML: Syntax and Processing (RDFa) specification for use in the HTML5 and
|
|
XHTML5 members of the HTML family. The rules defined in this document not
|
|
only apply to HTML5 documents in non-XML and XML mode, but also to HTML4
|
|
documents interpreted through the HTML5 parsing rules.</p>
|
|
|
|
<h2 class="no-num no-toc" id="status-of-this-document">Status of this
|
|
document</h2><!-- intro boilerplate (required) -->
|
|
|
|
<p><em>This section describes the status of this document at the time of
|
|
its publication. Other documents may supersede this document. A list of
|
|
current W3C publications and the latest revision of this technical report
|
|
can be found in the <a href="http://www.w3.org/TR/">W3C technical reports
|
|
index</a> at http://www.w3.org/TR/.</em></p>
|
|
|
|
<p>This is the First Public Working Draft of the "HTML+RDFa: A mechanism
|
|
for embedding RDF in HTML" specification for review by W3C members and
|
|
other interested parties.</p>
|
|
|
|
<p>If you wish to make comments regarding this document, please send them
|
|
to <a href=
|
|
"mailto:public-rdf-in-xhtml-tf@w3.org">public-rdf-in-xhtml-tf@w3.org</a>
|
|
(<a href=
|
|
"mailto:public-rdf-in-xhtml-tf-request@w3.org?subject=subscribe">subscribe</a>,
|
|
<a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/">archives</a>)
|
|
or to <a href=
|
|
"mailto:public-html-comments@w3.org">public-html-comments@w3.org</a>
|
|
(<a href=
|
|
"mailto:public-html-comments-request@w3.org?subject=subscribe">subscribe</a>,
|
|
<a href=
|
|
"http://lists.w3.org/Archives/Public/public-html-comments/">archives</a>),
|
|
or submit them using the <a href=
|
|
"http://www.w3.org/Bugs/Public/enter_bug.cgi">W3C's public bug
|
|
database</a>.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- stability (required) -->
|
|
|
|
<p>Implementors should be aware that this specification is not stable.
|
|
<strong>Implementors who are not taking part in the discussions are likely
|
|
to find the specification changing out from under them in incompatible
|
|
ways.</strong> Vendors interested in implementing this specification before
|
|
it eventually reaches the Candidate Recommendation stage should join the
|
|
aforementioned mailing lists and take part in the discussions.</p>
|
|
<!-- not everyone agrees with html5 (requested before fpwd) -->
|
|
|
|
<p>Publication as a Working Draft does not imply endorsement by the W3C
|
|
Membership. This is a draft document and may be updated, replaced or
|
|
obsoleted by other documents at any time. It is inappropriate to cite this
|
|
document as other than work in progress.</p>
|
|
|
|
<p>The publication of this document by the W3C as a W3C Working Draft does
|
|
not imply that all of the participants in the W3C HTML working group
|
|
endorse the contents of the specification. Indeed, for any section of the
|
|
specification, one can usually find many members of the working group or of
|
|
the W3C as a whole who object strongly to the current text, the existence
|
|
of the section at all, or the idea that the working group should even spend
|
|
time discussing the concept of that section.</p>
|
|
<!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- version history or list of changes (required) -->
|
|
|
|
<p>The latest stable version of the editor's draft of this specification is
|
|
always available on <a href="http://dev.w3.org/html5/rdfa/">the W3C CVS
|
|
server</a>. The <a href=
|
|
"http://html5.digitalbazaar.com/specs/rdfa.html">latest editor's working
|
|
copy</a> (which may contain unfinished text in the process of being
|
|
prepared) is also available.</p>
|
|
<!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING LIST TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- status of document, group responsible (required) -->
|
|
|
|
<p>The W3C <a href="http://www.w3.org/html/wg/">HTML Working Group</a> is
|
|
the W3C working group responsible for this specification's progress along
|
|
the W3C Recommendation track.</p>
|
|
<!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) -->
|
|
|
|
<p>This specification is an extension to the HTML5 language. All normative
|
|
content in the HTML5 specification, unless specifically overridden by this
|
|
specification, is intended to be the basis for this specification.</p>
|
|
<!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- required patent boilerplate -->
|
|
|
|
<p>This document was produced by a group operating under the <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C
|
|
Patent Policy</a>. W3C maintains a <a href=
|
|
"http://www.w3.org/2004/01/pp-impl/40318/status" rel="disclosure">public
|
|
list of any patent disclosures</a> made in connection with the deliverables
|
|
of the group; that page also includes instructions for disclosing a patent.
|
|
An individual who has actual knowledge of a patent which the individual
|
|
believes contains <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
|
|
Claim(s)</a> must disclose the information in accordance with <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
|
|
6 of the W3C Patent Policy</a>.</p>
|
|
|
|
<h2 class="no-num no-toc" id="contents">Table of contents</h2>
|
|
<!--begin-toc-->
|
|
|
|
<ol class="toc">
|
|
<li>
|
|
<a href="#introduction"><span class="secno">1</span> Introduction</a>
|
|
|
|
<ol>
|
|
<li><a href="#history"><span class="secno">1.1</span>
|
|
History</a></li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#parsing-model"><span class="secno">2</span> Parsing Model</a>
|
|
|
|
<ol>
|
|
<li><a href="#modifying-the-input-document"><span class=
|
|
"secno">2.1</span> Modifying the Input Document</a></li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#conformance-requirements"><span class="secno">3</span>
|
|
Conformance Requirements</a>
|
|
|
|
<ol>
|
|
<li><a href="#document-conformance"><span class="secno">3.1</span>
|
|
Document Conformance</a></li>
|
|
|
|
<li><a href="#user-agent-conformance"><span class="secno">3.2</span>
|
|
User Agent Conformance</a></li>
|
|
|
|
<li><a href="#rdfa-processor-conformance"><span class=
|
|
"secno">3.3</span> RDFa Processor Conformance</a></li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#modifications-to-xhtml-rdfa"><span class="secno">4</span>
|
|
Modifications to XHTML+RDFa</a>
|
|
|
|
<ol>
|
|
<li><a href="#specifying-the-language-for-a-literal"><span class=
|
|
"secno">4.1</span> Specifying the language for a literal</a></li>
|
|
|
|
<li><a href="#invalid-xmlliteral-values"><span class=
|
|
"secno">4.2</span> Invalid XMLLiteral values</a></li>
|
|
|
|
<li><a href="#xmlns:-prefixed-attributes"><span class=
|
|
"secno">4.3</span> <code>xmlns:</code>-Prefixed Attributes</a></li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#extensions-to-the-html5-syntax"><span class="secno">5</span>
|
|
Extensions to the HTML5 Syntax</a>
|
|
|
|
<ol>
|
|
<li><a href="#the-rdfa-attributes-and-valid-values"><span class=
|
|
"secno">5.1</span> The RDFa Attributes and Valid Values</a></li>
|
|
|
|
<li><a href=
|
|
"#conformance-criteria-for-xmlns:-prefixed-attributes"><span class=
|
|
"secno">5.2</span> Conformance Criteria for
|
|
<code>xmlns:</code>-Prefixed Attributes</a></li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#references"><span class="secno">6</span> References</a>
|
|
|
|
<ol>
|
|
<li><a href="#normative-references"><span class="secno">6.1</span>
|
|
Normative References</a></li>
|
|
|
|
<li><a href="#non-normative-references"><span class=
|
|
"secno">6.2</span> Non-Normative References</a></li>
|
|
</ol>
|
|
</li>
|
|
</ol><!--end-toc-->
|
|
<hr>
|
|
|
|
<h2 id="introduction"><span class="secno">1</span> Introduction</h2>
|
|
|
|
<p class="XXX annotation"><b>Status:</b> <i>Working draft</i></p>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p>Today's web is built predominantly for human consumption. Even as
|
|
machine-readable data begins to permeate the web, it is typically
|
|
distributed in a separate file, with a separate format, and very limited
|
|
correspondence between the human and machine versions. As a result, web
|
|
browsers can provide only minimal assistance to humans in parsing and
|
|
processing web data: browsers only see presentation information. RDFa is
|
|
intended to solve the problem of machine-readable data in HTML documents.
|
|
RDFa provides a set of HTML attributes to augment visual data with
|
|
machine-readable hints. Using RDFa, authors may turn their existing
|
|
human-visible text and links into machine-readable data without repeating
|
|
content.</p>
|
|
|
|
<h3 id="history"><span class="secno">1.1</span> History</h3>
|
|
|
|
<p class="XXX annotation"><b>Status:</b> <i>Working draft</i></p>
|
|
|
|
<p>In early 2004, Mark Birbeck published a document named [<a href=
|
|
"#refsXHTMLRDF">XHTMLRDF</a>] via the XHTML2 Working Group wherein he laid
|
|
the groundwork for what would eventually become RDFa (The Resource
|
|
Description Framework in Attributes).</p>
|
|
|
|
<p>In 2006, the work was co-sponsored by the Semantic Web Deployment Work
|
|
Group, which began to formalize a technology to express semantic data in
|
|
XHTML. This technology was successfully developed and reached consensus at
|
|
the W3C, later published as an official W3C Recommendation. While HTML
|
|
provides a mechanism to express the structure of a document (title,
|
|
paragraphs, links), RDFa provides a mechanism to express the meaning in a
|
|
document (people, places, events).</p>
|
|
|
|
<p>The document, titled "RDF in XHTML: Syntax and Processing" [<a href=
|
|
"#refsXHTMLRDFA">XHTML+RDFa</a>], defined a set of attributes and rules for
|
|
processing those attributes that resulted in the output of machine-readable
|
|
semantic data. While the document applied to XHTML, the attributes and
|
|
rules were always intended to operate across any tree-based structure
|
|
containing attributes on tree nodes (such as HTML4, SVG and ODF).</p>
|
|
|
|
<p>While RDFa was initially specified for use in XHTML, adoption by a
|
|
number of large organizations on the Web spurred RDFa's use in non-XHTML
|
|
languages. Its use in HTML4, before an official specification was developed
|
|
for those languages, caused concern regarding document conformance.</p>
|
|
|
|
<p>Over the years, the members of the RDFa Task Force [<a href=
|
|
"http://rdfa.info/">RDFaTF</a>] had discussed the possibility of applying
|
|
the same attributes and processing rules outlined in the XHTML+RDFa
|
|
specification to all HTML family documents. By design, the possibility of a
|
|
unified semantic data expression mechanism between all HTML and XHTML
|
|
family documents was squarely in the realm of possibility.</p>
|
|
|
|
<p>This section describes the modifications to the original XHTML+RDFa
|
|
specification that permit the use of RDFa in all HTML family documents. By
|
|
using the attributes and processing rules described in the XHTML+RDFa
|
|
specification and heeding the minor changes in this section, authors can
|
|
expect to generate markup that produces the same semantic data output in
|
|
HTML4, HTML5 and XHTML5.</p>
|
|
|
|
<h2 id="parsing-model"><span class="secno">2</span> Parsing Model</h2>
|
|
|
|
<p><em>This section is normative.</em></p>
|
|
|
|
<p><a href="http://www.w3.org/TR/rdfa-syntax/#sec_5.5.">Section 5.5:
|
|
Sequence</a>, of the [<a href=
|
|
"http://www.w3.org/TR/rdfa-syntax/">XHTML+RDFa</a>] specification defines a
|
|
generic processing model for extracting RDF from a tree-based model. The
|
|
method of transforming an input document into a model suited for the RDFa
|
|
processing rules is intentionally not defined in the XHTML+RDFa
|
|
specification. The method of transformation was intended to be defined in
|
|
the implementation language, in this case, this section of the HTML+RDFa
|
|
specification.</p>
|
|
|
|
<p>The HTML5 and XHTML5 DOMs are each a super-set of the tree-based model
|
|
on which the RDFa processing rules operate. Therefore, a mapping mechanism
|
|
to translate from a DOM to a tree-model is not necessary. The HTML5 and
|
|
XHTML5 DOM, or equivalent data structure, should be used as input to the
|
|
RDFa processing rules. The normative language for construction of the HTML5
|
|
DOM and XHTML5 DOM is contained in the HTML5 specification.</p>
|
|
|
|
<h3 id="modifying-the-input-document"><span class="secno">2.1</span>
|
|
Modifying the Input Document</h3>
|
|
|
|
<p><em>This section is informative.</em></p>
|
|
|
|
<p>RDFa's tree-based processing rules, outlined in <a href=
|
|
"http://www.w3.org/TR/rdfa-syntax/#sec_5.5.">Section 5.5: Sequence</a> of
|
|
the XHTML+RDFa specification, allow an input document to be automatically
|
|
corrected, cleaned-up, re-arranged, or modified in any way that is approved
|
|
by the host language prior to processing. For example, element nesting
|
|
issues in HTML documents may be corrected before the input document is
|
|
translated into the DOM, a valid tree-based model, on which the RDFa
|
|
processing rules will operate.</p>
|
|
|
|
<p>Any mechanism that generates a data structure equivalent to the HTML5 or
|
|
XHTML5 DOM, such as the html5lib library, may be used as the mechanism to
|
|
construct the tree-based model provided as input to the RDFa processing
|
|
rules.</p>
|
|
|
|
<h2 id="conformance-requirements"><span class="secno">3</span> Conformance
|
|
Requirements</h2>
|
|
|
|
<p class="XXX annotation"><b>Status:</b> <i>Working draft</i></p>
|
|
|
|
<p><em>This section is normative.</em></p>
|
|
|
|
<p>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
"SHOULD", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
|
|
interpreted as described in [<a class="nref" href=
|
|
"#refsRFC2119">RFC2119</a>].</p>
|
|
|
|
<h3 id="document-conformance"><span class="secno">3.1</span> Document
|
|
Conformance</h3>
|
|
|
|
<p>In order for a document to claim that it is a conforming HTML+RDFa
|
|
document, it must provide the facilities described as mandatory in this
|
|
section. The document conformance criteria are listed below, of which only
|
|
a subset are mandatory:</p>
|
|
|
|
<ol>
|
|
<li>All document conformance requirements stated as mandatory in the
|
|
HTML5 specification must be met.</li>
|
|
|
|
<li>There should be a <code>version</code> attribute on the
|
|
<code>html</code> element. The value of the <code>version</code>
|
|
attribute should be "HTML+RDFa 1.0" if the document is a non-XML mode
|
|
document, or "XHTML+RDFa 1.0" if the document is a XML mode
|
|
document.</li>
|
|
|
|
<li>There may be a <code>link</code> element contained in the
|
|
<code>head</code> element that contains <code>profile</code> for the the
|
|
<code>rel</code> attribute and
|
|
<code>http://www.w3.org/1999/xhtml/vocab</code> for the <code>href</code>
|
|
attribute.</li>
|
|
</ol>
|
|
|
|
<h3 id="user-agent-conformance"><span class="secno">3.2</span> User Agent
|
|
Conformance</h3>
|
|
|
|
<p>A conforming RDFa user agent must:</p>
|
|
|
|
<ul>
|
|
<li>Conform to all requirements listed in the <span>Conformance
|
|
requirements</span> section of the HTML5 specification.</li>
|
|
|
|
<li>Implement all of the features required by this specification.</li>
|
|
|
|
<li>Implement all of the features specified in the XHTML+RDFa
|
|
specification, excluding those features which are specifically overridden
|
|
by this specification as detailed in the <a href=
|
|
"#modifications-to-xhtml-rdfa">Modifications to XHTML+RDFa</a>.</li>
|
|
</ul>
|
|
|
|
<h3 id="rdfa-processor-conformance"><span class="secno">3.3</span> RDFa
|
|
Processor Conformance</h3>
|
|
|
|
<p>A conforming RDFa Processor must implement all of the mandatory features
|
|
specified in the XHTML+RDFa specification. It must also support any
|
|
mandatory features specified in this specification.</p>
|
|
|
|
<h2 id="modifications-to-xhtml-rdfa"><span class="secno">4</span>
|
|
Modifications to XHTML+RDFa</h2>
|
|
|
|
<p><em>This section is normative.</em></p>
|
|
|
|
<p>The [<a href="http://www.w3.org/TR/rdfa-syntax/">XHTML+RDFa</a>]
|
|
Recommendation is the base document on which this specification builds.
|
|
XHTML+RDFa specifies the attributes, in <a href=
|
|
"http://www.w3.org/TR/rdfa-syntax/#rdfa-attributes">Section 2.1: The RDFa
|
|
Attributes</a>, and processing model, in <a href=
|
|
"http://www.w3.org/TR/rdfa-syntax/#s_model">Section 5: Processing
|
|
Model</a>, for extracting RDF from an XHTML document. This section
|
|
specifies changes to the attributes and processing model defined in
|
|
XHTML+RDFa in order to support extracting RDF from HTML documents.</p>
|
|
|
|
<p>The requirements and rules, as specified in XHTML+RDFa and further
|
|
modified in this document, apply to all HTML5 documents. The RDFa Processor
|
|
operating on HTML and XHTML documents, specifically the resulting DOMs,
|
|
must apply the same processing rules for both types of serializations and
|
|
DOMs.</p>
|
|
|
|
<h3 id="specifying-the-language-for-a-literal"><span class=
|
|
"secno">4.1</span> Specifying the language for a literal</h3>
|
|
|
|
<p>The <code>lang</code> attribute must be processed in the same manner as
|
|
the <code>xml:lang</code> attribute is in the XHTML+RDFa specification,
|
|
<a href="http://www.w3.org/TR/rdfa-syntax/#sec_5.5.">Section 5.5:
|
|
Sequence</a>, step #3.</p>The rules for determining the language of a node
|
|
are specified in the section titled <a href=
|
|
"http://www.w3.org/TR/html5/Overview.html#the-lang-and-xml:lang-attributes">
|
|
The lang and xml:lang attributes</a> in the HTML5 specification.
|
|
|
|
<p>If an author is editing an HTML fragment and is unsure of the final
|
|
encapsulating MIME type for their markup, it is suggested that the author
|
|
specify both <code>lang</code> and <code>xml:lang</code> where the value in
|
|
both attributes is exactly the same.</p>
|
|
|
|
<h3 id="invalid-xmlliteral-values"><span class="secno">4.2</span> Invalid
|
|
XMLLiteral values</h3>
|
|
|
|
<p>When generating literals of type XMLLiteral, the processor must ensure
|
|
that the output XMLLiteral is a namespace well-formed XML fragment. A
|
|
namespace well-formed XML fragment has the following properties:</p>
|
|
|
|
<ul>
|
|
<li>The XML fragment, when placed inside of a single root element, must
|
|
validate as well-formed XML. The normative language that describes a
|
|
well-formed XML document is specified in <a href=
|
|
"http://www.w3.org/TR/REC-xml/#sec-well-formed">Section 2.1 "Well-Formed
|
|
XML Documents"</a> of the XML specification.</li>
|
|
|
|
<li>A case-insensitive match for the currently active <code>xmlns</code>
|
|
attribute as well as all currently active attributes starting with
|
|
<code>xmlns:</code> must be preserved in the generated XMLLiteral. This
|
|
preservation must be accomplished by placing all active namespaces in
|
|
each top-level element in the generated XMLLiteral, taking care to not
|
|
over-write pre-existing namespace values.</li>
|
|
</ul>If the input is not a namespace well-formed XML fragment, the
|
|
processor must transform the input text in a way that ensures the
|
|
well-formedness rules described in this section. If a sequence of
|
|
characters cannot be transformed into a namespace well-formed XML fragment,
|
|
the triple containing the XMLLiteral must not be generated.
|
|
|
|
<p>An RDFa Processor that transforms the XML fragment must use the <a href=
|
|
"http://www.w3.org/TR/html5/Overview.html#coercing-an-html-dom-into-an-infoset">
|
|
Coercing an HTML DOM into an Infoset</a> rules, as specified in the HTML5
|
|
specification, prior to generating the triple containing the XMLLiteral.
|
|
The serialization algorithm that must be used for generating the XMLLiteral
|
|
is normatively defined in the <a href=
|
|
"http://www.w3.org/TR/html5/Overview.html#serializing-xhtml-fragments">Serializing
|
|
XHTML Fragments</a> section of the HTML5 specification.</p>
|
|
|
|
<p>Transformation to a namespace well-formed XML fragment is required
|
|
because an application that consumes XMLLiteral data expects that data to
|
|
be a namespace well-formed XML fragment.</p>
|
|
|
|
<p>The transformation requirement does not apply to input data that are
|
|
text-only, such as literals that contain a <code>datatype</code> attribute
|
|
with an empty value (<code>""</code>), or input data that that contain only
|
|
text nodes.</p>
|
|
|
|
<p>An example transformation demonstrating the preservation of namespace
|
|
values is provided below. The → symbol is used to denote that the line
|
|
is a continuation of the previous line and is included purely for the
|
|
purposes of readability:</p>
|
|
<pre>
|
|
<p xmlns:ex="http://example.org/vocab#"
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
Two rectangles (the example markup for them are stored in a triple):
|
|
<svg xmlns="http://www.w3.org/2000/svg" property="ex:markup" datatype="rdf:XMLLiteral">
|
|
→ <rect width="300" height="100"
|
|
→ style="fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)"/>
|
|
→ <rect width="50" height="50"
|
|
→ style="fill:rgb(255,0,0);stroke-width:2;
|
|
→ stroke:rgb(0,0,0)"/></svg>
|
|
</p>
|
|
|
|
</pre>The markup above should produce the following triple:
|
|
<pre>
|
|
<>
|
|
<http://example.org/vocab#markup>
|
|
"<rect xmlns=\"http://www.w3.org/2000/svg\" width=\"300\"
|
|
→ height=\"100\" style=\"fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)\"/>
|
|
→ <rect xmlns=\"http://www.w3.org/2000/svg\" width=\"50\"
|
|
→ height=\"50\" style=\"fill:rgb(255,0,0);stroke-width:2;
|
|
→ stroke:rgb(0,0,0)\"/>"^^http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
|
|
|
|
</pre>Note the preservation of the SVG namespace by injecting a new
|
|
<code>xmlns</code> attribute. Since the <code>ex</code> and <code>rdf</code>
|
|
namespaces are not used in either <code>rect</code> element, they are not
|
|
preserved in the XMLLiteral.
|
|
|
|
<h3 id="xmlns:-prefixed-attributes"><span class="secno">4.3</span>
|
|
<code>xmlns:</code>-Prefixed Attributes</h3>
|
|
|
|
<p class="XXX">While this section outlines xmlns: processing in RDFa, the
|
|
support for distributed extensibility in non-XML mode HTML5 (using xmlns
|
|
and xmlns:) is still an open issue. This section may be further modified
|
|
before Last Call based on progress made on the distributed extensibility
|
|
issue.</p>
|
|
|
|
<p>CURIE prefix mappings specified using attributes prepended with
|
|
<code>xmlns:</code> must be processed using the rules specified in <a href=
|
|
"">Section 5.4, CURIE and URI Processing,</a> contained in the XHTML+RDFa
|
|
specification.</p>
|
|
|
|
<p>Since CURIE prefix mappings have been specified using
|
|
<code>xmlns:</code>, and since HTML attribute names are case-insensitive,
|
|
CURIE prefix names declared using the <code>xmlns:</code>attribute-name
|
|
pattern <code>xmlns:<PREFIX>="<URI>"</code> should be specified
|
|
using only lower-case characters. For example, the text
|
|
"<code>xmlns:</code>" and the text in <code>"<PREFIX>"</code> should
|
|
be lower-case only. This is to ensure that prefix mappings are interpreted
|
|
in the same way between HTML (case-insensitive attribute names) and XHTML
|
|
(case-sensitive attribute names) document types.</p>
|
|
|
|
<h2 id="extensions-to-the-html5-syntax"><span class="secno">5</span>
|
|
Extensions to the HTML5 Syntax</h2>
|
|
|
|
<p><em>This section is normative.</em></p>
|
|
|
|
<p>There are a few changes that are required to the HTML5 specification in
|
|
order to fully support RDFa. The following sub-sections outline the
|
|
necessary modifications to the base HTML5 specification.</p>
|
|
|
|
<h3 id="the-rdfa-attributes-and-valid-values"><span class=
|
|
"secno">5.1</span> The RDFa Attributes and Valid Values</h3>
|
|
|
|
<p>All RDFa attributes and valid values (including CURIEs), as listed in
|
|
<a href="http://www.w3.org/TR/rdfa-syntax/#rdfa-attributes">Section 2.1:
|
|
The RDFa Attributes</a>, are conforming when used in an HTML5 or XHTML5
|
|
document.</p>
|
|
|
|
<h3 id="conformance-criteria-for-xmlns:-prefixed-attributes"><span class=
|
|
"secno">5.2</span> Conformance Criteria for <code>xmlns:</code>-Prefixed
|
|
Attributes</h3>
|
|
|
|
<p class="XXX">While this section outlines xmlns: conformance criteria for
|
|
HTML+RDFa, the support for distributed extensibility in non-XML mode HTML5
|
|
(using xmlns and xmlns:) is still an open issue. This section may be
|
|
further modified before Last Call based on progress made on the distributed
|
|
extensibility issue.</p>
|
|
|
|
<p>Since RDFa uses attributes starting with <code>xmlns:</code> to specify
|
|
CURIE prefixes, it is important that any attribute starting with a
|
|
case-insensitive match on the text string "<code>xmlns:</code>" be
|
|
preserved in the DOM or other tree-like model that is passed to the RDFa
|
|
Processor. While it is specified that HTML5 must preserve these attributes
|
|
in the DOM, it must also accept these attributes as conforming in non-XML
|
|
HTML5. For documents conforming to this specification, attributes with
|
|
names that have the case insensitive prefix "<code>xmlns:</code>" are
|
|
conforming in both HTML5 and XHTML5.</p>
|
|
|
|
<h2 id="references"><span class="secno">6</span> References</h2>
|
|
|
|
<p class="XXX annotation"><b>Status:</b> <i>First draft</i></p>
|
|
|
|
<h3 id="normative-references"><span class="secno">6.1</span> Normative
|
|
References</h3>
|
|
|
|
<dl>
|
|
<dt id="refsHTML5">[<a href="http://www.w3.org/TR/html5/">HTML5</a>]
|
|
(currently not a REC)</dt>
|
|
|
|
<dd>The HTML5 Specification, Ian Hickson. W3C, Work in Progress</dd>
|
|
|
|
<dt id="refsRFC2119">[<a href=
|
|
"http://www.ietf.org/rfc/rfc2119.txt">RFC2119</a>]</dt>
|
|
|
|
<dd>RFC2119: Key words for use in RFCs to Indicate Requirement Levels, S.
|
|
Bradner. IETF, March 1997.</dd>
|
|
|
|
<dt id="refsXHTMLRDFA">[<a href=
|
|
"http://www.w3.org/TR/rdfa-syntax/">XHTML+RDFA</a>]</dt>
|
|
|
|
<dd>RDFa in XHTML: Syntax and Processing, Mark Birbeck, Shane McCarron,
|
|
Steven Pemberton. W3C, October 2008.</dd>
|
|
</dl>
|
|
|
|
<h3 id="non-normative-references"><span class="secno">6.2</span>
|
|
Non-Normative References</h3>
|
|
|
|
<dl>
|
|
<dt id="refsXHTMLRDF">[<a href=
|
|
"http://www.w3.org/MarkUp/2004/02/xhtml-rdf.html">XHTMLRDF</a>]</dt>
|
|
|
|
<dd>XHTML and RDF, Mark Birbeck. W3C, February 2008.</dd>
|
|
</dl>
|
|
</body>
|
|
</html>
|