]>
Extensible Resource Descriptor (XRD) Version 1.0
$Id: xrd-1.0.xml 214 2010年11月01日 12:25:27Z willnorris $
&document-id;
&this-file;.xml
&this-file;.html
&this-file;.pdf
&previous-file;.xml
&previous-file;.html
&previous-file;.pdf
&latest-file;.xml
&latest-file;.html
&latest-file;.pdf
OASIS Extensible Resource Identifier (XRI) TC
PeterDavis
NeuStar Inc.
DrummondReed
XDI.org
EranHammer-Lahav
WillNorris
Google
&pubdate;
2010
OASIS Open, Inc. All Rights Reserved.
Related Work
This specification replaces or supersedes:
Extensible Resource Identifier (XRI) Resolution Version 2.0, Committee Specification 01,
April 2008
Declared XML Namespace
This document defines XRD, a simple generic format for describing and discovering resources.
Status
This document was last revised or approved by the OASIS Membership on the above date. The level of
approval is also listed above. Check the current location noted above for possible later revisions of this
document. This document is updated periodically on no particular schedule.
Technical Committee members should send comments on this specification to the Technical Committee's email
list. Others should send comments to the Technical Committee by using the "Send A Comment" button on the
Technical Committee's web page at .
For information on whether any patents have been disclosed that may be essential to implementing this
specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights
section of the Technical Committee web page
().
The non-normative errata page for this specification is located at
.
Notices
Copyright © OASIS Open 2010. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual
Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works that
comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and
distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice
and this section are included on all such copies and derivative works. However, this document itself may
not be modified in any way, including by removing the copyright notice or references to OASIS, except as
needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee
(in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed)
or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or
assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR
A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would
necessarily be infringed by implementations of this OASIS Final Deliverable, to notify OASIS TC
Administrator and provide an indication of its willingness to grant patent licenses to such patent claims
in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this deliverable.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any
patent claims that would necessarily be infringed by implementations of this OASIS Final Deliverable by a
patent holder that is not willing to provide a license to such patent claims in a manner consistent with
the IPR Mode of the OASIS Technical Committee that produced this OASIS Final Deliverable. OASIS may include
such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that
might be claimed to pertain to the implementation or use of the technology described in this OASIS Final
Deliverable or the extent to which any license under such rights might or might not be available; neither
does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures
with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found
on the OASIS website. Copies of claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to obtain a general license or permission
for the use of such proprietary rights by implementers or users of this OASIS Final Deliverable, can be
obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of
intellectual property rights will at any time be complete, or that any claims in such list are, in fact,
Essential Claims.
The names "OASIS" and "XRD" are trademarks of OASIS, the owner
and developer of this specification, and should be used only to refer to the organization and its official
outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the
right to enforce its marks against misleading uses. Please see
for above guidance.
Introduction
This document defines XRD (Extensible Resource Descriptor), a simple generic format for describing resources.
Resource descriptor documents provide machine-readable information about resources (resource metadata) for the
purpose of promoting interoperability. They also assist in interacting with unknown resources that support
known interfaces.
For example, a web page about an upcoming meeting can provide in its descriptor document the location of the
meeting organizer's free/busy information to potentially negotiate a different time. The descriptor for a
social network profile page can identify the location of the user's address book as well as accounts on other
sites. A web service implementing an API protocol can advertise which of the protocol's optional components
are supported.
Terminology
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 .
Normative References
Exclusive Canonicalization J. Boyer, D. Eastlake, J. Reagle.
Exclusive XML Canonicalization.
W3C Recommendation, 2002.
RFC 2119 S. Bradner.
Key words for use in RFCs to Indicate Requirement Levels.
IETF, 1997.
RFC 3023 M. Murata, S. St. Laurent, D. Kohn.
XML Media Types.
IETF, 2001.
RFC 3986 T. Berners-Lee, R. Fielding, L. Masinter.
Uniform Resource Identifier (URI): Generic Syntax.
IETF, 2005.
RFC 4288 N. Freed, J. Klensin.
Media Type Specifications and Registration Procedures.
IETF, 2005.
Web Linking M. Nottingham.
Web Linking.
IETF Draft, 2009.
XML 1.0 T. Bray, J. Paoli, C. Sperberg-McQueen, E. Maler, F. Yergeau.
Extensible Markup Language (XML) 1.0.
W3 Recommendation, 2008.
XML Schema H. Thompson, D. Beech, M. Maloney, N. Mendelsohn.
XML Schema Part 1: Structures Second Edition.
W3C Recommendation, 2004.
XML Schema Datatypes P. Biron, A. Malhotra.
XML Schema Part 2: Datatypes Second Edition.
W3 Recommendation, 2004.
XML Signature D. Eastlake, J. Reagle, D. Solo, F. Hirsch, T. Roessler.
XML Signature Syntax and Processing.
W3 Recommendation, 2008.
xml:id J. Marsh, D. Veillard, N. Walsh.
xml:id.
W3 Recommendation, 2005.
Non-Normative References
Atom 1.0 M. Nottingham, R. Sayre.
The Atom Syndication Format.
IETF, 2005.
HTML 4.01 D. Raggett, A. Le Hors, I. Jacobs.
HTML 4.01 Specification.
W3C Recommendation, 1999.
XRI Resolution 2.0 G. Wachob, D. Reed, L. Chasen, W. Tan, S. Churchill
Extensible Resource Identifier (XRI) Resolution V2.0.
OASIS, 2008.
Schema Organization and Namespaces
The XRD document structure is defined in a schema associated with the following XML namespace:
http://docs.oasis-open.org/ns/xri/xrd-1.0
The schema for (the "xml:" namespace), which is associated with the following XML
namespace, is imported into the XRD schema:
http://www.w3.org/XML/1998/namespace
The following fragment defines the XML namespaces and other header
information for the XRD schema:
Document identifier: xrd-schema-1.0
Location: http://docs.oasis-open.org/xri/xrd/v1.0/
...
]]>
The location of the normative XML Schema file for an XRD document as defined by this specification is:
. The following URI will always reference the latest
version of this file: &latest-file;.xsd.
Common Data Types
String Values
All XRD string values have or extend the type xs:string, which is
built in to the W3C specification. Unless otherwise noted in this
specification or particular profiles, all strings in XRD documents must
consist of at least one non-whitespace character (whitespace is defined in section 2.3 of
).
The following schema fragment defines the xrd:string complex type, which extends
xs:string to allow for arbitrary attributes (see
):
]]>
URI Values
All XRD URI reference values have or extend the type xs:anyURI,
which is built in to the W3C specification. Unless otherwise noted
in this specification or particular profiles, all URIs in XRD documents
must consist of at least one non-whitespace character (whitespace is
defined in section 2.3 of ).
The following schema fragment defines the xrd:anyURI complex type, which extends
xs:anyURI to allow for arbitrary attributes (see
):
]]>
Time Values
All XRD time values have the type xs:dateTime, which is built in
to the W3C specification. Time values
must be represented with the UTC designator 'Z'. XRD providers
must not generate time instants that specify leap seconds.
XRD Document Structure
XRD provides a simple and extensible XML format for describing a resource. An XRD document may describe the
properties of the resource itself, as well as the relations the resource has with other resources. XRD
builds directly on the typed link relations framework defined by , and used by
, , and other protocols.
An XRD document must (a) be a well-formed XML document as defined by
with a root element of
XRD,
(b) validate against the normative XRD schema identified in , and (c) adhere to the
additional syntactic constraints defined by and this section.
The XRD schema defines only the elements necessary to support the most common use cases, with the
explicit intention that applications will extend XRD as defined in
to include other metadata about the resources and links they describe.
Element XRD
The XRD element encapsulates the entire resource descriptor. It
contains the following attributes and elements:
xml:id [Optional]
This attribute, of type xs:ID, is defined by
. It provides a unique identifier for this XRD, and is used
as a signature reference.
Expires [Zero or One]
Specifies when this document expires. See .
Subject [Zero or One]
Provides the identifier of the resource described by this XRD. See
.
Alias [Zero or More]
Provides an additional identifier for the resource described by this XRD. See
.
Property [Zero or More]
Declares a property of the resource described by this XRD. See
.
Link [Zero or More]
Identifies another resource which is related to the resource described by this XRD, and
describes the semantics of that relation. See .
ds:Signature [Zero or More]
This XML Signature, included from the schema, protects the
integrity of the document, as described in .
Although allows a single document to contain multiple
signatures, the signing profile described in requires
only a single Signature element. Use of multiple
Signature elements in an XRD document is therefore
undefined. In order to aid certain types of XRD consumers, it is
recommended that XRD providers place the
Signature element of a signed XRD as near the
beginning of the document as possible.
The following schema fragment defines the XRD element and its
XRDType complex type:
]]>
Element Expires
The Expires element contains a time value which specifies the
instant at and after which the document has expired and should not
be used. The value must be expressed in UTC form, as specified in
, and must not use fractional seconds.
The semantics of this element apply to the metadata available in the XRD document and are independent
of the caching semantics of any transport protocol used to retrieve the document. If present, any
cache expiration date specified by the transport protocol should not
be later than the time instant indicated by the Expires element.
The following schema fragment defines the Expires element and its
ExpiresType complex type:
]]>
Element Subject
The Subject element contains a URI value which identifies
the resource described by this XRD. This value must be an absolute URI.
If Subject is not specified, it is expected that the resource described
by the XRD will be identified by other means. Comparison of this value
must be performed using the scheme-specific normalization rules for the
URI, as specified in Section 6.2.3 of .
The following schema fragment defines the Subject element:
]]>
Element Alias
The Alias element contains a URI value that is an additional
identifier for the resource described by the XRD. This value must be
an absolute URI. The Alias element does not identify additional
resources the XRD is describing, but rather provides additional identifiers for the same resource.
Comparison of this value must be performed using the scheme-specific
normalization rules for the URI, as specified in Section 6.2.3 of .
The following schema fragment defines the Alias element:
]]>
Element Property
The Property element declares a property of a resource (when used as a
child of the XRD element) or link
relation (when used as a child of the
Link element), expressed as a
key-value pair. The key is identified by the type attribute, and the
value expressed as the string content of the Property element. A
property may have no value if the type identifier alone is sufficient.
Property elements that contain no value
must include the xsi:nil
attribute with a value of true as defined in
. Property has the following
attributes:
type [Required]
The type attribute is a URI that identifies the
property being declared. This value must be an absolute
URI. This URI value is application-specific, and is used by the XRD provider to declare a
property to consumers familiar with the type identifier. Comparison of this value
must follow the same comparison rules used for comparing
Link Relation Types as defined in .
The following schema fragment defines the Property element and its
PropertyType complex type:
]]>
Element Link
The Link element serves as a container for metadata about a
relation between the resource described by the XRD and a related resource.
The semantics of this element are similar to the Link element, the
Link element, and the HTTP Link Header.
The one distinction is that the link relation described by the Link
element is between the resource described by the XRD (referred to as the
context resource by ) and the linked resource
(referred to as the target resource by ), and not
between the XRD document itself and the linked resource.
The Link element contains the following attributes and elements:
rel [Optional]
This URI value defines the semantics of the relation between the resource described by
the XRD and the linked resource. This value must be an
absolute URI or a registered relation type, as defined in .
Comparison of this value must follow the comparison rules
for Link Relation Types defined in .
With one exception, the rel attribute is semantically
and syntactically equivalent to the Link Relation Types defined in
. It differs in that it only allows for a single relation
type and does not allow for multiple space delimited values.
It is important to note that this value does not identify any property of the linked
resource. Rather, it describes only how the linked resource is related to the resource
described by the XRD.
type [Optional]
This string value identifies the media type of the linked resource, and
must be of the form of a media type as defined in
. The IANA media types registry can be found at
. Comparison of this value
must be done in accordance with .
Note that this is only a hint and does not override the media type declared by the
linked resource itself (e.g. the Content-Type header of a HTTP response obtained by
following the link).
href [Optional]
The href attribute provides the URI of the linked
resource. If no href attribute is defined, it is
assumed the URI can be obtained from a template
attribute or by application-specific means.
A Link element may
contain an href attribute or a
template attribute, but
must not contain both.
template [Optional]
The template attribute provides a URI template
which can be used to obtain the URI of the linked resource. Templates provide a
mechanism for URI construction, taking a list of variables as input, and producing a
URI string as an output. The template syntax and vocabulary are determined by the
application through which the XRD document is obtained and processed, and
may be specific to the link relation type indicated by
the rel attribute of the corresponding
Link element. Applications utilizing the template
mechanism must define the template syntax and processing
rules (including error handling) as well as the variable vocabulary.
A Link element may
contain an href attribute or a
template attribute, but
must not contain both.
Title [Zero or More]
Provides a human-readable description of the linked resource. See
.
Property [Zero or More]
Declares a property of this link relation, as described in
. It is important to note that this value does not
identify any property of the linked resource or the resource described by the XRD, but
rather of the link relation between the linked resources.
The following schema fragment defines the Link element and its
LinkType complex type:
]]>
Element Title
The Title element contains a string value that provides a
human-readable description for the link. This value is intended only for human consumption and
must not be used by an XRD consumer to affect the processing of the
document. Title contains the following attributes:
xml:lang [Optional]
This attribute is defined by the specification, and is used to
identify the natural language in which this element's content is written.
The following schema fragment defines the Title element and its
TitleType complex type:
]]>
XRD Extensibility
The XRD schema defines only the elements necessary to support the most common use cases, with the
explicit intention that applications will extend XRD to include other metadata about the resources
they describe. XRD documents can be extended by providing custom, meaningful values for certain URI-based
attributes and elements, as well as by extending the XML schema directly.
Identifier Extension
XRD uses URI-based identifiers for describing resources as well
as for describing the relations between resources. Whenever
possible, applications should use well-established URI identifiers for
these purposes to promote interoperability and shared semantics. Only when absolutely necessary should
new URI identifiers be defined. It is recommended that any new identifiers
be defined in a formal specification of use. The meaning of a given URI used as such an identifier
should not significantly change over time, and the identifier
should not be used to mean two different things.
Schema Extension
The XRD schema allows for the inclusion of attributes from arbitrary namespaces (except for the XRD
namespace) in almost all XRD elements. Additionally, the XRD
and Link elements allow for the inclusion of child elements from
arbitrary namespaces (except for the XRD namespace).
XML extensions must not require new interpretation of elements defined
in this document. If an extension attribute or element is present, an XRD consumer
must be able to ignore it and still correctly process the XRD document.
This specification does not define generic rules for the comparison of string or URI values. Therefore,
specifications that include XRD schema extensions must specify such
comparison rules where necessary.
Selecting Linked Resources
Link selection criteria is determined by the XRD consumer's needs, and should
be based on the presence, absence, or value of the Link element attributes
or child elements. The selection criteria is usually based on the value of the
rel attribute with the value of the
type attribute used as a hint (helping to determine if the linked
resource uses a familiar media type).
Selection based on multiple criteria should be handled by performing multiple
selections. Each selection is assigned preference order based on the consumer's needs, and the selection
results are compared to determine the most desired set. For example, an XRD consumer processing an XRD
document describing an article may wish to select linked resources about the article's author. If that
consumer prefers HTML documents over plain text, then the linked resource selection would occur in two steps.
First, all links with the author relation type would be selected, and if
more than one are found, then the most appropriate link would be selected based on its media type.
If multiple Link elements are matched by a given selection criteria, they
must be processed in the order in which they appear in the XRD document.
Therefore, XRD providers may indicate element priority by placing them in a
specific order. If the first Link is subsequently disqualified from the
set of selected elements, the consumer should attempt to select the next
matching element in document order. This process should be continued for all
other matching Link elements until success is achieved or all elements are
exhausted.
XRD Signature
An XRD provider may digitally sign an XRD document in order to enable XRD
consumers to verify the authenticity and integrity of the document. The
specification defines a general XML syntax for signing data that includes many options for flexibility. This
section details constraints on these options so that XRD consumers do not have to implement the full generality
of XML Signature processing.
References
XRD documents must supply a value for the
xml:id attribute on the root element of the XRD being signed. The
XRD's root element may or may not be the root element of the actual XML document containing the signed XRD
(e.g., it might be included within another document).
Signatures must contain a single
ds:Reference containing a same-document reference to the
xml:id attribute value of the root element of the XRD being signed.
For example, if the xml:id attribute value is
foo, then the URI attribute in
the ds:Reference element must be
#foo.
Canonicalization
XRD implementations must use without comments,
both in the ds:CanonicalizationMethod element of
ds:SignedInfo, and as a
ds:Transform algorithm.
Use of Exclusive Canonicalization facilitates the verification of signatures created over XRD instances
when placed into a different XML context than present during signing. Note that use of this algorithm
alone does not guarantee that a particular signed object can be moved from one context to another safely,
nor is that a requirement of signed XRD instances in general, though it may be required by particular
profiles.
KeyInfo
XML Signature defines usage of the ds:KeyInfo element. XRD does not
require the use of ds:KeyInfo, nor does it impose any restrictions on
its use. Therefore, ds:KeyInfo may be
absent.
XRD Sequence
In cases where an application requires a sequence of XRD elements in a
single XML document, this specification defines an alternate top-level element,
XRDS. This element should contain either
zero or more than one XRD elements. It has the following attributes and
elements, and is not otherwise extensible:
ref [Optional]
This URI value identifies the resource described by the sequence of
XRD elements.
XRD [Zero or More]
See .
The following schema fragment defines the XRDS element and its
XRDSType complex type:
]]>
Acknowledgments
The editors would like to thank the following current and former members of the OASIS XRI TC
for their particular contributions to this and previous versions of this specification:
Dirk Balfanz, Google
Bill Barnhill, Booz Allen Hamilton
John Bradley
Scott Cantor, Internet2
Les Chasen, NeuStar
Steven Churchill, XDI.org
Brian Eaton, Google
George Fletcher, AOL
Victor Grey, Planetwork
Joseph Holsten
Nika Jones
Breno de Medeiros, Google
Bob Morgan, Internet2
Markus Sabadello, XDI.org
Nat Sakimura, NRI
Tatsuki Sakushima, NRI
William Tan, NeuStar
Gabe Wachob
The editors would also like to acknowledge the contributions of the other members of the OASIS
XRI Technical Committee, whose other voting members at the time of publication were:
Giovanni Bartolomeo, University of Rome "Tor Vergata"
Owen Davis, Planetwork
Jeff Hodges
Fen Labalme, Planetwork
Ben Laurie, Google
XiaoDong Lee, China Internet Network Information Center
Nick Nicholas, Australian Department of Education
Marty Schleiff, The Boeing Company
Paul Trevithick
XRD Examples
Simple XRD Example
1970年01月01日T00:00:00Z
http://example.com/gpburdell
User Photo
Benutzerfoto
1970年01月01日
]]>
Signed XRD Example
Following is an example of a signed XRD document. The XML signature is valid, though the certificate is
self-signed.
1970年01月01日T00:00:00Z
http://example.com/gpburdell
http://people.example.com/gpburdell
acct:gpburdell@example.com
1.0
2.0
yi2N42KYR6b8dl6TCBKjs4duPuo=
NGJ/tVRnK8O7FwTic3nQjrEw1do+SgWE/LKE/Q2bgE+k4b3Go6d9fLZq0/DX8nyr
x0nYfpTgxzMUDVUVaDyvnp0MfnmTSJ/yL5bXAV2jW6+NWJH73DXjQoPKn0j1WY2G
UoTdgnMiiNzKYY+QhWYogy4QXJOmjOF+6OE+uONKvQU=
MIICsDCCAhmgAwIBAgIJAK6eiEXk2FoiMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTAwNTA3MDQ1MDAzWhcNMzgwMTE5MDQ1MDAzWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDVEftG6aMNrBRMu9hHaZUe4ZU5jrbtsaexNlh4OWnIOj9Tyyk2NfI9w1b2hp5f
KQf5B9HYeZjowuYKVuc+NQMYgkN7V+YvcJ9ohAjCBZuo9Xcm5CiKeFnz5E6Ad0Fs
BPnAHch9kZu2joz+iQOp6Av+A78Gvam9giG9ZT3rIj2LZQIDAQABo4GnMIGkMB0G
A1UdDgQWBBR3yN91g2lEACpJ9WaKm3fM+PAPqTB1BgNVHSMEbjBsgBR3yN91g2lE
ACpJ9WaKm3fM+PAPqaFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUt
U3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAK6eiEXk
2FoiMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAc3cepBp8h2rwwc+f
lFahLmJNVOePhw+uCyO8tLWu7Jcq9todVmeCNyqB9hGm2Rvt5yQ69tRpMxQ7Wmqs
O6HbDYzW5APuCPHEtlXoafEq4oWZS8ICPNel68MX5mnXg+XkUOb8cjuY8CwRNtBf
Ehs3jFzXUcMITIL1PmE7bb38Hug=
]]>