html5-profile
<entry-title>HTML5 profile attribute</entry-title> The HTML5 profile attribute is a simple way for authors define URLs and meanings for vocabularies used in an element and its descendants. It is based on and generalizes the HTML4 head element's profile attribute for all elements.
- Editor
- Tantek Çelik (http://tantek.com/)
- Authors
- Tantek Çelik (affiliations above)
- Manu Sporny (Bitmunk - Digital Bazaar, Inc.)
copyright and patents statements apply.
Status
HTML5 profile attribute is a work in progress!
Please note that currently several sections are incomplete and are being actively worked on.
This document may be useful for general conceptual review at this point, but nothing more formal.
Public discussion on HTML5 profile attribute takes place on html5-profile-feedback, the #microformats irc channel on irc.freenode.net, and microformats-new mailing list.
Available languages
The English version of this document is the only normative version. For translations of this document see the #translations section.
Errata and Updates
Known errors and issues in this document are corrected in resolved and closed issues. Please check there before reporting issues.
This document is currently under development.
Introduction
HTML4 introduced the profile attribute.
XMDP clarified profile attribute processing, and introduced a profile document format based on XHTML which authors could produce and link to using the HTML4 profile attribute.
microformats have XMDP profiles and recommend linking to them using the profile attribute.
HTML5 has dropped the profile attribute from the head element.
This document is an extension/addition to HTML5 which provides both a more thorough/rigorous definition of the profile attribute and generalizes it to all elements for scoped indication of vocabularies (similar to how the HTML5 microdata document extends and adds to HTML5).
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Format
formal definition of the profile attribute, processing model.
The profile attribute contains a space separated ordered list of URLs to one or more profile documents.
These profile documents define and provide URLs for vocabulary terms - profile definitions.
These profile definitions apply to the element and its descendants.
For backwards compatibility with HTML4 and XHTML1:
- profile URLs specified on the head element are considered to be at the end of the list of profile URLs of the html element, and thus apply to the entire document.
...
Examples
This section is informative.
hCard with scoped profile
<div profile="http://microformats.org/wiki/hcard" class="vcard">
<a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
</div>
RDFa example
- using profile attribute with RDFa property attribute
microdata example
- a way that microdata could use definitions provided by the profile attribute without having to use full URLs in itemtype attribute values for example.
hybrid example
- using profile attribute to introduce/define/scope a vocabulary and then use in microdata, microformats, and RDFa markup simultaneously, as a demonstration that they can be used on the same data in a complementary overlapping fashion. not sure of the utility of doing this but demonstrating that they can compatibly be used in the same document or even on the same element may help both alleviate incompatibility concerns, and how to use shared vocabularies across multiple syntaxes.
HTML 4.01 Errata
This section is informative.
EDITORS NOTE: include XMDP
The HTML4 recommendation is inconsistent in its description of the profile attribute:
- The DTD specifies %URI;, which just expands to CDATA.
- On the other hand, the prose explains that
This attribute specifies the location of one or more meta data profiles, separated by white space. For future extensions, user agents should consider the value to be a list even though this specification only considers the first URI to be significant. Profiles are discussed below in the section on meta data.
Since the publication of HTML 4.01, a number of meta data profiles have been defined,
and many of them can be used in the same document. While the profile
attribute does not help in discovering which profile applies to which
part of the document, it does allow declaring which profiles
are in use, potentially triggering extended behavior in recipients.
This erratum restores consistency in HTML 4.01, explicitly allowing
multiple URIs in a single profile
attribute.
Corrections to HTML 4.01
Section 6.4 - URIs
After
URIs are represented in the DTD by the parameter entity %URI;.
add
Sets of whitespace-separated URIs are represented by the parameter entity %URIlist;.
Section 7.4.1 - The HEAD element
Replace
<tt>profile</tt> = <i>uri</i> [CT]
with
<tt>profile</tt> = <i>urilist</i> [CT]
(just replacing "uri" by "urilist", but not changing the link target)
Replace
profile %URI; #IMPLIED -- named dictionary of meta info --
with
profile %URIlist; #IMPLIED -- list of named meta info dictionaries, whitespace separated --
Update the attribute index accordingly.
Replace
This attribute specifies the location of one or more meta data profiles, separated by white space. For future extensions, user agents should consider the value to be a list even though this specification only considers the first URI to be significant. Profiles are discussed below in the section on meta data.
with
This attribute specifies the location of one or more meta data profiles, separated by white space. In case of ambiguities, profiles that appear earlier in the attribute value should be considered more significant. Profiles are discussed below in the section on meta data.
Section 7.4.4 - Meta Data Profiles
Replace
The profile attribute of the HEAD specifies the location of a meta data profile. The value of the profile attribute is a URI. User agents may use this URI in two ways:
with
The profile attribute of the HEAD specifies a set of locations of meta data profiles. The value of the profile attribute is a whitespace-separated list of URIs. User agents may use these URIs in two ways:
Section 21 - Document Type Definition
Note: the changes below apply both to the copy of the DTD in the HTML 4.01 spec, and the actual DTD files.
After the definition for URI, insert:
<!ENTITY % URIlist "CDATA" -- whitespace-separated list of Uniform Resource Identifiers, see [URI] -->
Replace the following definition:
<!ATTLIST HEAD %i18n; -- lang, dir -- profile %URI; #IMPLIED -- named dictionary of meta info -- >
with
<!ATTLIST HEAD %i18n; -- lang, dir -- profile %URIlist; #IMPLIED -- list of named meta info dictionaries, whitespace separated -- >
profile attribute for other languages
This section is informative.
The profile attribute as defined in this specification can be applied to other markup languages (including previous versions of HTML and XHTML) as follows.
informative profile attribute processing model for other languages
examples of HTML4, XHTML1, SVG, and other markup languages that have a class attribute
examples of Atom, and other markup languages that have a rel attribute
...
Copyright
Per the public domain contribution requirement of the microformats.org wiki, this specification is released into the public domain.
Patents
This specification is subject to a royalty free patent policy, e.g. per the W3C Patent Policy, and IETF RFC3667 & RFC3668.
References
Normative References
Informative References
This section is informative.
- HTML 4.01
- XHTML 1.0 SE
- XMDP description
- HTML 4.01 Errata as documented in Extended Processing Behavior in HTML5
Related Pages
Translations
Read the HTML5 profile attribute document in additional languages:
- none yet