ODRL Version 2.0 XML Encoding

You are viewing an old revision of this post, from 30 March, 2012 @ 12:48. See below for differences between this version and the current revision.

Draft Specification: 30 March 2012 – Barcelona Edition

 

Editors:
Renato Iannella, Semantic Identity, riATsemanticidentity.com

Status of this document

The W3C ODRL Community Group publishes a Draft Specification to indicate that the document is believed to be stable and to encourage implementation by the wider community. The W3C ODRL Community Group expects to advance this document to Specification once demonstrable interoperability has been achieved.

Discussion of this document takes place on the W3C ODRL Community Group mailing list (see Contributor Archive). Feedback from the public is encouraged and can be send to public-odrl@w3.org (see Public Archive).

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”. Publication as a Draft Specification does not imply endorsement by the W3C ODRL Community Group.

Table of contents


1. Overview


The ODRL Version 2.0 language is defined by the ODRL Model [ODRL-MODEL] and ODRL Common Vocabulary [ODRL-VOCAB] in an abstract manner to capture the semantics of the expression, without any specific syntax and/or encoding method.

This document describes how to encode both the Model and Common Vocabulary, including any community developed Profiles, using the XML syntax [XML] with XML Schema [XML-SCHEMA] and XML Schema Datatypes [XML-SCHEMA-DT]

This document utlilises the key words “MUST”, “MAY”, “REQUIRED”, and “OPTIONAL” in accordance to [RFC2119]. Lowercase wording is used in this document.

2. Namespace and Identifiers

The XML Namespace [XML-NAME] for the ODRL Version 2.0 Core Model semantics id defined as:


http://w3.org/ns/odrl/2/

This Namespace URI must be used to uniquely identify ODRL Version 2.0 core model elements.

Examples in this document will use “o” as the prefix for this Namespace. However, any prefix may be utilised as long as it is associated with the correct URI Namespace.

To enable compact URIs, this encoding also supports the use of Qualified Names (QNames) [XML-NAME] for the specification of the value identifiers. In addition, Qualified Codes [Q-CODE] may also be used for vocabulary values. QCodes are similar to QNames but also allow numeric values as the first characters of the value.

3. XML Encoding

Each of the core entities (UML Classes) from the ODRL Model will be represented by an XML element of the same name. Additionally, each entity attribute will be represented as an XML attribute of the parent element. The fixed values defined in the Model are represented as enumerated types. Cardinalities are also represented with XML Schema occurrence rules.

The Policy element contains the following attributes:

  • uid – a URI/Qname/Qcode (required)
  • type – a URI/Qname/Qcode (required)
  • conflict – fixed enumeration (defined in XML Schema)
  • undefined – fixed enumeration (defined in XML Schema)
  • inheritAllowed – a boolean
  • inheritFrom – a URI/Qname/Qcode
  • inheritRelation – a URI/Qname/Qcode

The Policy element contains the following elements:

  • permission – (required)
  • prohibition

The Asset and Relation association class are merged into a single Asset element to represent both the Asset and how it is related to the Permission/Prohibition/Duty. The Asset element contains the following attributes:

  • uid – a URI/Qname/Qcode (required, if no idref attribute)
  • relation – a URI/Qname/Qcode (required, if no id/idref attribute)
  • id – an local identifier for this element (optional)
  • idref – a reference to an Asset element (optional, and if present, must be the only attribute in the element)

The cardinality of the Asset element attributes MUST be either:

      uid (required), relation (required), id (optional)

        idref (required)

The Party and Role association class are merged into a single Party element to represent both the Party and the role to the Permission/Prohibition/Duty. The Party element contains the following attributes:

  • uid – a URI/Qname/Qcode (required)
  • function – a URI/Qname/Qcode (required)
  • scope – a URI/Qname/Qcode
  • id – an local identifier for this element (optional)
  • idref – a reference to a Party element (optional, and if present, must be the only attribute in the element)

The Permission element contains the following elements:

  • asset – (required)
  • action – (required)
  • constraint
  • party
  • duty

The Prohibition element contains the following elements:

  • asset – (required)
  • action – (required)
  • constraint
  • party

The Duty element contains the following elements:

  • action – (required)
  • constraint
  • asset
  • party

The Duty element contains the following attributes:

  • uid – a URI/Qname/Qcode (optional, and if present, must be the only attribute in the element)
  • id – an local identifier for this element (optional, and if present, must be the only attribute in the element)
  • idref – a reference to an Duty element (optional, and if present, must be the only attribute in the element)

The Action element contains the following attribute:

  • name – a URI/Qname/Qcode (required)
  • id – an local identifier for this element (optional)
  • idref – a reference to an Action element (optional, and if present, must be the only attribute in the element)

The Constraint element contains the following attributes:

  • name – a URI/Qname/Qcode (required)
  • operator – a URI/Qname/Qcode (required)
  • rightOperand – string, space separated list for set values (required)
  • status – string
  • id – an local identifier for this element (optional)
  • idref – a reference to an Constraint element (optional, and if present, must be the only attribute in the element)

In some cases where Duties refer to (external) Assets, it will be necessary to package the ODRL XML expression with the representation of that (external) Asset. This XML Encoding specification does not mandate any specific packaging mechanism as communities will utilise their preferred options for data interoperability.

The examples in Section 5 give concrete instances of these XML encoding rules for the Model and Common Vocabulary. Appendix A shows the formal XML Schema that encapsulates these rules.

4. XML Linking

4.1 XML Elements

To support repeating the same element content across Permissions and Prohibitions, the Asset, Party, Constraint, Action, and Duty elements support the id and idref attributes. Any of these element that has been identified using the id attribute can then be referred to by an element with the same name using the idref attribute. In this case, the referring element must have no other content. As shown in the below example, the Prohibition refers to elements defined in the Permission, except for the Constraint element. In this case, the assignee can play the music asset in Italy but not in France.

    <o:permission>
        <o:asset id="as1" uid="http://example.com/music:1234908" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action id="ac1" name="http://w3.org/ns/odrl/vocab#play"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#spatial" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.itu.int/tML/tML-ISO-3166:it"/>
        <o:party id="p1" uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party id= "p2" uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assignee"/>
    </o:permission>
    <o:prohibition>
        <o:asset idref="as1"/>
        <o:action idref="ac1"/>
        <o:constraint  name="http://w3.org/ns/odrl/vocab#spatial" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.itu.int/tML/tML-ISO-3166:fr"/>
        <o:party idref="p1"/>
        <o:party idref="p2"/>
    </o:prohibition>

Note that there is an important distinction when using this feature with the Duty element which also has the uid attribute. The uid attribute is used to refer to the same Duty from multiple Permissions. In this case the Duty has to be performed only once to gain access to all the Permissions. When using the id and idref attributes then the semantics change as in this case the Duty must be performed for each time it is referenced (potentially, many times). Note that the use of the uid and id attribute for the same Duty element is not permitted.

4.2 Inline Assets

In some scenarios, the Asset of an ODRL Policy maybe also be XML or HTML markup. In these specific cases, it makes sense to enable the ODRL Policy to be articulated as part of the Asset and to support abbreviated expressions. All default values should be assumed. The typical scenario would require either a Permission or a Prohibition element to be linked to the XML/HTML markup. The preferred method of linking is to utilise the XML ID attribute. The source Asset markup may be identified with an ID attribute and the ODRL Asset element can then refer to this ID as the UID (as a URI hash fragment). An example is shown below.

<rnews:Article xml:id="item8HEX">
    <rnews:title>Allies are Split<rnews:title>
    <rnews:description>Rebel fighters take control...<rnews:description>
    ...
    <o:permission>
        <o:asset uid="#item8HEX"/>
        <o:action name="http://w3.org/ns/odrl/vocab#distribute"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#dateTime" operator="http://w3.org/ns/odrl/vocab#gteq" rightOperand="2011-11-11"/>
    </o:prohibition>  
</rnews:Article>

5. Scenario Examples

These examples represent the XML Encodings for all the Scenarios described in the [ODRL-Model] document.

4.1 Set

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#set" uid="http://example.com/policy:0099">
    <o:permission>
        <o:asset uid="http://example.com/asset:9898" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#publish"/>
    </o:permission>
    <o:prohibition>
        <o:asset uid="http://example.com/asset:9898" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#modify"/>
    </o:prohibition>  
</o:policy>

4.2 Offer

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#offer" uid="http://example.com/policy:0231">
    <o:permission>
        <o:asset uid="http://example.com/music:4545" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#play"/>
        <o:party uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:duty uid="d1">
            <o:action name="http://w3.org/ns/odrl/vocab#pay"/>
            <o:asset uid="http://example.com/ubl:AUD0.50" relation="http://w3.org/ns/odrl/vocab#target"/>
        </o:duty>
    </o:permission>
    <o:permission>
        <o:asset uid="http://example.com/music:4545" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#copy"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#numberOfUses" operator="http://w3.org/ns/odrl/vocab#lteq" rightOperand="1"/>
        <o:party uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:duty uid="#d1"/>
    </o:permission>  
</o:policy>

<!-- External Asset -->
<ubl:PriceAmount xml:id="http://example.com/ubl:AUD0.50"
    xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    currencyID="AUD">0.50</ubl:PriceAmount>
<!-- External Asset -->

4.3 Agreement

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#agreement" uid="http://example.com/policy:9001">
    <o:permission>
        <o:asset uid="http://example.com/music:4545" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#play"/>
        <o:party uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assignee"/>
        <o:duty uid="d1">
            <o:action name="http://w3.org/ns/odrl/vocab#pay"/>
            <o:asset uid="http://example.com/ubl:AUD0.50" relation="http://w3.org/ns/odrl/vocab#target"/>
        </o:duty>
    </o:permission>
    <o:permission>
        <o:asset uid="http://example.com/music:4545" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#copy"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#numberOfUses" operator="http://w3.org/ns/odrl/vocab#lteq" rightOperand="1"/>
        <o:party uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assignee"/>
        <o:duty uid="#d1"/>
    </o:permission>  
</o:policy>

<!-- External Asset -->
<ubl:PriceAmount xml:id="http://example.com/ubl:AUD0.50"
    xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    currencyID="AUD">0.50</ubl:PriceAmount>
<!-- External Asset -->

4.4 Request

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#request" uid="http://example.com/policy:04311">
    <o:permission>
        <o:asset uid="http://example.com/news:0099" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#display"/>
        <o:party uid="http://example.com/guest:0589" function="http://w3.org/ns/odrl/vocab#assignee"/>
    </o:permission>
</o:policy>

4.5 Ticket

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#ticket" uid="http://example.com/policy:04311">
    <o:permission>
        <o:asset uid="http://example.com/game:4589" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#play"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#currentDate" operator="http://w3.org/ns/odrl/vocab#lteq" rightOperand="2010-12-31"/>
    </o:permission>
</o:policy>

4.6 Offer and Next Policy

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#offer" uid="http://example.com/policy:5531">
    <o:permission>
        <o:asset uid="http://example.com/wallpaper:2321" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#distribute"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#spatial" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.itu.int/tML/tML-ISO-3166:it"/>
        <o:party uid="http://example.com/sony:99" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:duty uid="d1">
            <o:action name="http://w3.org/ns/odrl/vocab#pay"/>
            <o:asset uid="http://example.com/ubl:EU1000.00" relation="http://w3.org/ns/odrl/vocab#target"/>
        </o:duty>
        <o:duty uid="d2">
            <o:action name="http://w3.org/ns/odrl/vocab#nextPolicy"/>
            <o:asset uid="http://example.com/policy:7777" relation="http://w3.org/ns/odrl/vocab#target"/>
        </o:duty>
    </o:permission>
</o:policy>

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#set" uid="http://example.com/policy:7777">
    <o:permission>
        <o:asset uid="http://example.com/wallpaper:2321" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#display"/>
    </o:permission>
</o:policy>

<!-- External Asset -->
<ubl:PriceAmount xml:id="http://example.com/ubl:EU1000.00"
    xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    currencyID="EUR">1000.00</ubl:PriceAmount>
<!-- External Asset -->

4.7 Privacy

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#privacy" uid="http://example.com/policy:1111">
    <o:permission>
        <o:asset uid="http://example.com/billie:888:personal-data" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#distribute"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#purpose" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.w3.org/2002/01/P3Pv1:contact"/>
        <o:party uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/gov:health:au" function="http://w3.org/ns/odrl/vocab#assignee"/>
        <o:duty>
            <o:action name="http://w3.org/ns/odrl/vocab#delete"/>
            <o:asset uid="http://example.com/billie:888:personal-data" relation="http://w3.org/ns/odrl/vocab#target"/>
            <o:constraint name="http://w3.org/ns/odrl/vocab#dateTime" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="P30D"/>
        </o:duty>
    </o:permission>
</o:policy>

4.8 Permission and Prohibition

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#agreement" uid="http://example.com/policy:3433" conflict="perm">
    <o:permission>
        <o:asset uid="http://example.com/music:1234908" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#play"/>
        <o:party uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assignee"/>
    </o:permission>
    <o:prohibition>
        <o:asset uid="http://example.com/music:1234908" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://oma.org/drm:ringtone"/>
        <o:party uid="http://example.com/sony:10" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assignee"/>
    </o:prohibition>
</o:policy>

4.9 Inheritance

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#agreement" uid="http://example.com/policy:5531" inheritAllowed="true">
    <o:permission>
        <o:asset uid="http://example.com/report:2321" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#print"/>
        <o:party uid="http://example.com/pub:88" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/billie:888" function="http://w3.org/ns/odrl/vocab#assignee"/>
    </o:permission>
</o:policy>

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#agreement" uid="http://example.com/policy:9999" inheritFrom="http://example.com/policy:5531">
    <o:permission>
        <o:asset uid="http://example.com/report:2333" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#display"/>
        <o:party uid="http://example.com/pub:88" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/class:IT01" function="http://w3.org/ns/odrl/vocab#assignee" scope="http://w3.org/ns/odrl/vocab#group"/>
    </o:permission>
</o:policy>

4.10 Social Network

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#agreement" uid="http://example.com/policy:5109">
    <o:permission>
        <o:asset uid="http://example.com/myPlace:billie:photos:football2010" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#display"/>
        <o:party uid="http://example.com/myPlace:billie" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:party uid="http://example.com/myPlace:network:football" function="http://w3.org/ns/odrl/vocab#assignee" scope="http://w3.org/ns/odrl/vocab#group"/>
    </o:permission>
</o:policy>

4.11 Multiple Assets

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" xmlns:x="http:example.com" type="http://w3.org/ns/odrl/vocab#set" uid="http://example.com/policy:881212">
    <o:permission>
        <o:asset uid="http://example.com/archive2010" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:asset uid="http://example.com/x/dataase" relation="x:collection"/>
        <o:action name="http://w3.org/ns/odrl/vocab#index"/>
    </o:permission>
</o:policy>

6. Other Examples

6.1 W3C Privacy Rulesets

The W3C Privacy Rulesets Editor’s Draft has been developed by the W3C Device APIs and Policy Working Group as a scheme for defining privacy rulesets: bundles of user privacy preferences that can be conveyed together with user data in the context of a web site or application interaction. The document defines three Privacy Elements with a number of attributes, summarised here:

  • Sharing, with attributes to scope the extend of sharing to; internal, affiliates, unrelated-companies, public
  • Secondary Use, with defined purposes; contextual, customization, marketing-or-profiling
  • Retention, with defined periods; no, short (retained for the baseline period of 35 days), long

The following example shows how to represent the Privacy Ruleset “Internal customization/personalization” from the document.

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#privacy" uid="http://example.com/policy:2442">
    <o:permission>
        <o:asset uid="http://example.comjane-doe:personal-data" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#sharing"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#purpose" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.w3.org/2009/dap:internal"/>
        <o:duty uid="d1">
            <o:action name="http://w3.org/ns/odrl/vocab#delete"/>
            <o:constraint name="http://w3.org/ns/odrl/vocab#dateTime" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="P35D"/>
        </o:duty>
    </o:permission>
    <o:permission>
        <o:asset uid="http://example.com/jane-doe:personal-data" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#secondaryUse"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#purpose" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.w3.org/2009/dap:customization"/>
        <o:duty uid="#d1"/>
    </o:permission>
</o:policy>

6.2 Open Data Commons

The Open Data Commons provides a number of licenses for the sharing of open databases. One example is the Open Database License (ODbL) v1.0 which enables you to “share, create, and adapt” the database as long as you “attribute, share-a-like, and keep open” the outcomes.

The following example shows how to represent that license in ODRL. Note that the “keep open” option is represented as a distribute Prohibition with “drm-restriction” constraint. Also, since Open Data Commons are “instant” licenses, no assignee is indicated, but assumed to be the recipient of the database asset.

<o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#agreement" uid="http://example.com/policy:0101Z">
    <o:permission>
        <o:asset uid="http://example.com/gov.au:database:environment" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#share"/>
        <o:party uid="http://example.com/gov.au:env-dept" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:duty uid="d1">
            <o:action name="http://w3.org/ns/odrl/vocab#attribute"/>
        </o:duty>
        <o:duty uid="d2">
            <o:action name="http://w3.org/ns/odrl/vocab#attachPolicy"/>
        </o:duty>
        <o:duty uid="d3">
            <o:action name="http://w3.org/ns/odrl/vocab#shareAlike"/>
        </o:duty>
    </o:permission>
    <o:permission>
        <o:asset uid="http://example.com/database:environment" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#derive"/>
        <o:party uid="http://example.com/gov.au:env-dept" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:duty uid="#d1"/>
        <o:duty uid="#d2"/>
        <o:duty uid="#d3"/>
    </o:permission>
    <o:permission>
        <o:asset uid="http://example.com/database:environment" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#transform"/>
        <o:party uid="http://example.com/gov.au:env-dept" function="http://w3.org/ns/odrl/vocab#assigner"/>
        <o:duty uid="#d1"/>
        <o:duty uid="#d2"/>
        <o:duty uid="#d3"/>
    </o:permission>
    <o:prohibition>
        <o:asset uid="http://example.com/database:environment" relation="http://w3.org/ns/odrl/vocab#target"/>
        <o:action name="http://w3.org/ns/odrl/vocab#distribute"/>
        <o:constraint name="http://w3.org/ns/odrl/vocab#system" operator="http://w3.org/ns/odrl/vocab#eq" rightOperand="http://www.opendatacommons.org:drm-restriction"/>
        <o:party uid="http://example.com/gov.au:env-dept" function="http://w3.org/ns/odrl/vocab#assigner"/>
    </o:prohibition>
</o:policy>

6.3 ODRL over XMPP

The Extensible Messaging and Presence Protocol [XMPP-CORE] provides a real-time transport mechanism for structured XML information which may be useful for transporting ODRL information over XMPP. ODRL XML expressions may be sent via the XML message stanza defined in XMPP Core using either of the following:

The message stanza should not have a ‘type’ attribute, but may have any defined type that is appropriate to the communications context. The policy element should be the only child element of the message stanza. The ‘id’ attribute of the message stanza may be set to the value of the ODRL Policy uid.

The following example shows “Scenario 4.4 Request” sent as a direct message from the requester to the asset owner.

<message from="william@shakespeare.biz" to="hamlet@denmark.lit" id="uuid:3932ASDC4192SUAS3281">
     <o:policy xmlns:o="http://w3.org/ns/odrl/2/" type="http://w3.org/ns/odrl/vocab#request" uid="http://example.com/policy:04311">
        <o:permission>
           <o:asset uid="http://example.com/news:0099" relation="http://w3.org/ns/odrl/vocab#target"/>
           <o:action name="http://w3.org/ns/odrl/vocab#display"/>
           <o:party uid="http://example.com/guest:0589" function="http://w3.org/ns/odrl/vocab#assignee"/>
        </o:permission>
    </o:policy>
</message>

The XMPP publish-subscribe protocol provides a way to send information to a number of subscribers.

The following example shows “Scenario 4.5 Ticket” published to a pubsub node sent to all subscribers.

<iq type="set" from="hamlet@denmark.lit" to="pubsub.jabber.org" id="someID">
 <pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish node="ODRL-TICKETS">
   <item id="uuid:2341SEFS9827WGAS1234">
     <o:policy xmlns:o="http://w3.org/ns/odrl/2" type="http://w3.org/ns/odrl/vocab#ticket" uid="http://example.com/policy:04311">
      <o:permission>
            <o:asset uid="http://example.com/game:4589" relation="http://w3.org/ns/odrl/vocab#target"/>
            <o:action name="http://w3.org/ns/odrl/vocab#play"/>
            <o:constraint name="http://w3.org/ns/odrl/vocab#dateTime" operator="http://w3.org/ns/odrl/vocab#lteq" rightOperand="2010-12-31"/>
        </o:permission>
     </o:policy>
   </item>
  </publish>
 </pubsub>
</iq>

XMPP is used by a number of distributed Social Networks, such as OneSocialWeb. In such cases, the use of an “access-control” language can be addressed with ODRL policy expressions for the fine-grained permissions to profile, activity, and social relationship data.

The example below shows a user’s Birthday attribute (from vCard) allowed to be viewed for friends only (taken from the vCard over XMPP draft document). (See Section 4 on referring to inline Assets.)

<birthday xml:id="bd">
    <datetime>1850-04-06T21:23:00-07:00</datetime>
    <place>Stratford-upon-Avon</place>
    ...
</birthday>
<o:permission>
    <o:asset uid="#bd"/>
    <o:action name="http://w3.org/ns/odrl/vocab#display"/>
    <o:party uid="hamlet@denmark.lit" function="http://w3.org/ns/odrl/vocab#assignee" scope="http://w3.org/ns/odrl/vocab#allConnections" />
</o:permission>

The example below shows a Status Update for everyone to view (taken from the Activity Stream over XMPP draft document).

    
<entry>
    <activity:object xml:id="ao100">
      <activity:object-type>http://onesocialweb.org/spec/1.0/object/status</activity:object-type>
      <content type="text/plain">to be or not to be ?</content>
    </activity:object>
    <o:permission>
       <o:asset uid="#ao100"/>
       <o:action name="http://w3.org/ns/odrl/vocab#display"/>
       <o:party uid="hamlet@denmark.lit" function="http://w3.org/ns/odrl/vocab#assignee" scope="http://w3.org/ns/odrl/vocab#all" />
    </o:permission>
</entry>

Appendix-A. XML Schema (Normative)

The XML Schema for ODRL Version 2.0 is shown below.

To support extensibility and reuse all the elements and their respective datatypes are global. Additionally, the elements have been defined to include xs:any element and xs:anyAttribute attribute from any (non-odrl) namespace. Note that to support the id/idref attributes some of the attributes that would normally be mandatory are now optional. They must be mandatory when not referring to an element using an idref attribute.

<xs:schema xmlns:o="http://w3.org/ns/odrl/2/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://w3.org/ns/odrl/2/" elementFormDefault="qualified" attributeFormDefault="unqualified">

    <xs:element name="policy" type="o:policyCT"/>
    <xs:complexType name="policyCT">
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                    <xs:element ref="o:permission" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="o:prohibition" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:attribute name="uid" type="o:URIQnameQcode" use="required"/>
                <xs:attribute name="type" type="o:URIQnameQcode" use="required"/>
                <xs:attribute name="conflict" type="o:conflictENUM"/>
                <xs:attribute name="undefined" type="o:undefinedENUM"/>
                <xs:attribute name="inheritAllowed" type="xs:boolean"/>
                <xs:attribute name="inheritFrom" type="o:URIQnameQcode"/>
                <xs:attribute name="inheritRelation" type="o:URIQnameQcode"/>
                <xs:anyAttribute namespace="##other" processContents="lax"/>     
    </xs:complexType>
    
    <xs:element name="permission" type="o:permCT"/>
    <xs:complexType name="permCT">
           <xs:sequence>
                    <xs:element ref="o:asset" maxOccurs="unbounded"/>
                    <xs:element ref="o:action" />
                    <xs:element ref="o:constraint"  minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="o:party"  minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="o:duty"  minOccurs="0" maxOccurs="unbounded"/>
                    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
           </xs:sequence>
           <xs:attributeGroup ref="o:idAttributes"/>        
    </xs:complexType>
    
    <xs:element name="prohibition" type="o:prohibCT"/> 
    <xs:complexType name="prohibCT">
        <xs:sequence>
            <xs:element ref="o:asset"  maxOccurs="unbounded"/>
            <xs:element ref="o:action" />
            <xs:element ref="o:constraint" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="o:party"  minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attributeGroup ref="o:idAttributes"/>
    </xs:complexType>
    
    <xs:element name="duty" type="o:dutyCT"/>
    <xs:complexType name="dutyCT">
        <xs:sequence>
            <xs:element ref="o:action" minOccurs="0"/> <!--Required Element-->
            <xs:element ref="o:asset"  minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="o:constraint"  minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="o:party"  minOccurs="0" maxOccurs="unbounded"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="uid" type="o:URIQnameQcode"/>
        <xs:attributeGroup ref="o:idAttributes"/>
    </xs:complexType>
    
    <xs:element name="asset" type="o:assetCT"/> 
    <xs:complexType name="assetCT">
        <xs:attribute name="uid" type="o:URIQnameQcode" /> <!--Required Attribute-->
        <xs:attribute name="relation" type="o:URIQnameQcode" /> <!--Required Attribute-->
        <xs:attributeGroup ref="o:idAttributes"/>
    </xs:complexType>
    
    <xs:element name="party" type="o:partyCT"/>
    <xs:complexType name="partyCT">
        <xs:attribute name="uid" type="o:URIQnameQcode"/> <!--Required Attribute-->
        <xs:attribute name="function" type="o:URIQnameQcode" /> <!--Required Attribute-->
        <xs:attribute name="scope" type="o:URIQnameQcode"/>
        <xs:attributeGroup ref="o:idAttributes"/>
    </xs:complexType>
 
    <xs:element name="action" type="o:actionCT"/>
    <xs:complexType name="actionCT">
        <xs:attribute name="name" type="o:URIQnameQcode" /> <!--Required Attribute-->
        <xs:attributeGroup ref="o:idAttributes"/>
    </xs:complexType>
    
    <xs:element name="constraint" type="o:constraintCT"/>
    <xs:complexType name="constraintCT">
        <xs:attribute name="name" type="o:URIQnameQcode" /> <!--Required Attribute-->
        <xs:attribute name="operator" type="o:URIQnameQcode" /> <!--Required Attribute-->
        <xs:attribute name="rightOperand" type="o:listOfValues" /> <!--Required Attribute-->
        <xs:attribute name="status" type="xs:string" />
        <xs:attributeGroup ref="o:idAttributes"/>
    </xs:complexType>
    
    <xs:simpleType name="listOfValues">
        <xs:list itemType="xs:string"/>
    </xs:simpleType>
     
    <xs:simpleType name="conflictENUM">
        <xs:restriction base="xs:string">
            <xs:enumeration value="perm"/>
            <xs:enumeration value="prohibit"/>
            <xs:enumeration value="invalid"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="undefinedENUM">
        <xs:restriction base="xs:string">
            <xs:enumeration value="support"/>
            <xs:enumeration value="ignore"/>
            <xs:enumeration value="invalid"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="URIQnameQcode">
        <xs:union memberTypes="xs:anyURI xs:QName o:QCode"/>
    </xs:simpleType>
    
    <xs:simpleType name="QCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\s:]+:[^\s]+"/>
        </xs:restriction>
        
    </xs:simpleType>
    <xs:attributeGroup name="idAttributes">
        <xs:attribute name="id" type="xs:ID"/>
        <xs:attribute name="idref" type="xs:IDREF"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:attributeGroup>
</xs:schema>

Acknowledgements


The editors gratefully acknowledge feedback and contributions to this document from:


  • All members of the W3C ODRL Community Group
  • Especially Stuart Myles, Michael Steidl, Francis Cave, Jim Earley, Helge Hundacker, Daniel Paehler, Andreas Kasten, Rainer Weissenfels

References

























[ODRL-MODEL] R. Iannella & S. Guth & D. Paehler & A. Kasten (eds). Open Digital Rights Language (ODRL) Version 2.0 – Core Model. Draft Specification, W3C ODRL Community Group, 2011. http://www.w3.org/community/odrl/two/model/
[ODRL-VOCAB] S. Guth & R. Iannella (eds). Open Digital Rights Language (ODRL) Version 2.0 – Common Vocabulary.
Draft Specification, W3C ODRL Community Group, 2012.
http://www.w3.org/community/odrl/two/vocab/
[Q-CODE] NewsML Specification Version 2.4. International Press Telecommunications Council (IPTC) 2009
http://www.iptc.org/std/NewsML-G2/2.4/specification/NewsML-G2_2.4-spec-PCL.pdf
[RFC2119] Key words for use in RFCs to Indicate Requirement Levels, S. Bradner.
The Internet Society, March 1997. http://www.ietf.org/rfc/rfc2119.txt
[XML] T. Bray & J. Paoli & C. M. Sperberg-McQueen & E. Maler & F. Yergeau (eds). Extensible Markup Language (XML) 1.0 (Fifth Edition). W3C Recommendation 26 November 2008.
http://www.w3.org/TR/xml/
[XML-SCHEMA] H. S. Thompson & D. Beech & M. Maloney & N. Mendelsohn (eds). XML Schema Part 1: Structures Second Edition.
W3C Recommendation 28 October 2004.
http://www.w3.org/TR/xmlschema-1/
[XML-SCHEMA-DT] P. V. Biron & K. Permanente & A. Malhotra (eds). XML Schema Part 2: Datatypes Second Edition.
W3C Recommendation 28 October 2004.
http://www.w3.org/TR/xmlschema-2/
[XML-NAME] T. Bray & D. Hollander & A. Layman & R. Tobin & H. S. Thompson (eds). Namespaces in XML 1.0 (Third Edition).
W3C Recommendation 8 December 2009.
http://www.w3.org/TR/xml-names/
[XMPP-CORE] P. Saint-Andre (ed). Extensible Messaging and Presence Protocol (XMPP): Core.
IETF RFC3920 October 2004.
http://tools.ietf.org/html/rfc3920

Post Revisions:

Changes:

30 March, 2012 @ 12:48Current Revision
Content
<h3>Draft Specification: 30 March 2012 - Barcelona Edition</h3>  <h3>Final Specification: 24 April 2012</h3>
  <h4>Location: http://www.w3.org/ community/odrl/ two/xml/</h4>
<p>&nbsp;</p> <p>&nbsp;</p>
<dl> <dl>
<dt>Editors:</dt>  <dt>Editors:</dt>
<dd>Renato Iannella, Semantic Identity, ri<img src="http://www.w3.org/ community/odrl/ files/2011/11/at.gif" alt="AT">semanticidentity.com</dd>   <dd>Renato Iannella, Semantic Identity, ri<img src="https:// www.w3.org/community/odrl/ files/2011/11/at.gif" alt="AT">semanticidentity.com</dd>
</dl> </dl>
<hr> <hr>
<h2>Status of this document</h2> <h2>Status of this document</h2>
  <p>This specification was published by the <a href="//www.w3.org/ community/odrl/">W3C ODRL Community Group</a>. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the <a href="//www.w3.org/ community/about/agreements/ cla/”">W3C Community Contributor License Agreement (CLA)</a> there is a limited opt-out and other conditions apply. Learn more about <a href="//www.w3.org/ community/”">W3C Community and Business Groups</a>.</p>
<p>The W3C ODRL Community Group publishes a Draft Specification to indicate that the document is believed to be stable and to encourage implementation by the wider community. The W3C ODRL Community Group expects to advance this document to Specification once demonstrable interoperability has been achieved.</p>  <p>The <a href="//www.w3.org/ community/odrl/">W3C ODRL Community Group</a> publishes a Final Specification to indicate that the document is believed to be mature and stable for implementation by the wider community. This Final Specification is now endorsed by the <a href="//www.w3.org/ community/odrl/">W3C ODRL Community Group</a> as appropriate for widespread deployment and that promotes the Community Groups's mission.
  </p>
  <p>
<p>Discussion of this document takes place on the W3C ODRL Community Group mailing list (see <a href="http:// lists.w3.org/ Archives/Public/ public-odrl-contrib/ ">Contributor Archive</a>). Feedback from the public is encouraged and can be send to <a href="mailto: public-odrl@w3.org">public- odrl@w3.org</a> (see <a href="http:// lists.w3.org/ Archives/Public/ public-odrl/">Public Archive</a>).</p>  Discussion and feedback of this document takes place on the W3C ODRL Community Group mailing list (see <a href="http:// lists.w3.org/ Archives/Public/ public-odrl-contrib/ ">Contributor Archive</a>). Feedback from the public is encouraged and can be send to <a href="mailto: public-odrl@w3.org">public- odrl@w3.org</a> (see <a href="http:// lists.w3.org/ Archives/Public/ public-odrl/">Public Archive</a>).</p>
<p>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". Publication as a Draft Specification does not imply endorsement by the W3C ODRL Community Group.</p>  
  <blockquote><p>
  <strong><br />
  Copyright © 2012 the Contributors to the Final Specification, published by the <a href="//www.w3.org/ community/odrl/">W3C ODRL Community Group</a> under the <a href="http:// www.w3.org/community/about/ agreements/final/">W3C Community Final Specification Agreement (FSA)</a>. A human-readable <a href="http:// www.w3.org/community/about/ agreements/fsa- deed/">summary</a> is available.</strong>
  </p></blockquote>
<H2><A name="contents">Table of contents</A></H2> <H2><A name="contents">Table of contents</A></H2>
<ul> <ul>
<li><A href="#section-1">1. Overview</A></li>  <li><A href="#section-1">1. Overview</A></li>
<li><A href="#section-2">2. Namespace and Identifiers</A></li>  <li><A href="#section-2">2. Namespace and Identifiers</A></li>
<li><A href="#section-3">3. XML Encoding</A></li>  <li><A href="#section-3">3. XML Encoding</A></li>
<li><A href="#section-4">4. XML Linking</A></li>  <li><A href="#section-4">4. XML Linking</A></li>
<li><A href="#section-5">5. Scenario Examples</A></li>  <li><A href="#section-5">5. Scenario Examples</A></li>
<li><A href="#section-6">6. Other Examples (Informative)</A></li>  <li><A href="#section-6">6. Other Examples (Informative)</A></li>
<li><A href="#appendix- a">Appendix-A. XML Schema (Normative)</A></li>  <li><A href="#appendix- a">Appendix-A. XML Schema (Normative)</A></li>
<li><A href="#section- Acknowledgements" >Acknowledgements</A></li>  <li><A href="#section- Acknowledgements" >Acknowledgements</A></li>
<li><A href="#section- References">References</A></li>  <li><A href="#section- References">References</A></li>
</ul> </ul>
<HR> <HR>
<H2><A name="section-1"></A>1. Overview</H2> <H2><A name="section-1"></A>1. Overview</H2>
<P>The ODRL Version 2.0 language is defined by the ODRL Model <a href="#section- References">[ODRL-MODEL] </a> and ODRL Common Vocabulary <a href="#section- References">[ODRL-VOCAB]</a> in an abstract manner to capture the semantics of the expression, without any specific syntax and/or encoding method. <P>The ODRL Version 2.0 language is defined by the ODRL Model <a href="#section- References">[ODRL-MODEL] </a> and ODRL Common Vocabulary <a href="#section- References">[ODRL-VOCAB]</a> in an abstract manner to capture the semantics of the expression, without any specific syntax and/or encoding method.
</P> </P>
<p>This document describes how to encode both the Model and Common Vocabulary, including any community developed Profiles, using the XML syntax <a href="#section- References">[XML]</a> with XML Schema <a href="#section- References">[XML-SCHEMA]</a> and XML Schema Datatypes <a href="#section- References">[XML- SCHEMA-DT]</a></p> <p>This document describes how to encode both the Model and Common Vocabulary, including any community developed Profiles, using the XML syntax <a href="#section- References">[XML]</a> with XML Schema <a href="#section- References">[XML-SCHEMA]</a> and XML Schema Datatypes <a href="#section- References">[XML- SCHEMA-DT]</a></p>
<P>This document utlilises the key words "MUST", "MAY", "REQUIRED", and "OPTIONAL" in accordance to <A href="#section- References">[RFC2119]</A>. Lowercase wording is used in this document.</P> <P>This document utlilises the key words "MUST", "MAY", "REQUIRED", and "OPTIONAL" in accordance to <A href="#section- References">[RFC2119]</A>. Lowercase wording is used in this document.</P>
<H2><A name="section-2"></A>2. Namespace and Identifiers</H2> <H2><A name="section-2"></A>2. Namespace and Identifiers</H2>
<P>The XML Namespace <a href="#section- References">[XML-NAME]</a> for the ODRL Version 2.0 Core Model semantics id defined as: </P> <P>The XML Namespace <a href="#section- References">[XML-NAME]</a> for the ODRL Version 2.0 Core Model semantics id defined as: </P>
[xml light="true"] [xml light="true"]
http://w3.org/ns/odrl/2/  http://w3.org/ns/odrl/2/
[/xml] [/xml]
<p>This Namespace URI must be used to uniquely identify ODRL Version 2.0 core model elements. </p> <p>This Namespace URI must be used to uniquely identify ODRL Version 2.0 core model elements. </p>
<p>Examples in this document will use <b>"o"</b> as the prefix for this Namespace. However, any prefix may be utilised as long as it is associated with the correct URI Namespace. </p> <p>Examples in this document will use <b>"o"</b> as the prefix for this Namespace. However, any prefix may be utilised as long as it is associated with the correct URI Namespace. </p>
<P>To enable compact URIs, this encoding also supports the use of Qualified Names (QNames) <a href="#section- References">[XML-NAME]</a> for the specification of the value identifiers. In addition, Qualified Codes <a href="#section- References">[Q-CODE]</a> may also be used for vocabulary values. QCodes are similar to QNames but also allow numeric values as the first characters of the value. <P>To enable compact URIs, this encoding also supports the use of Qualified Names (QNames) <a href="#section- References">[XML-NAME]</a> for the specification of the value identifiers. In addition, Qualified Codes <a href="#section- References">[Q-CODE]</a> may also be used for vocabulary values. QCodes are similar to QNames but also allow numeric values as the first characters of the value.
</p> </p>
<H2><A name="section-3"></A>3. XML Encoding</H2> <H2><A name="section-3"></A>3. XML Encoding</H2>
<p>Each of the core entities (UML Classes) from the ODRL Model will be represented by an XML element of the same name. Additionally, each entity attribute will be represented as an XML attribute of the parent element. The fixed values defined in the Model are represented as enumerated types. Cardinalities are also represented with XML Schema occurrence rules.</p> <p>Each of the core entities (UML Classes) from the ODRL Model will be represented by an XML element of the same name. Additionally, each entity attribute will be represented as an XML attribute of the parent element. The fixed values defined in the Model are represented as enumerated types. Cardinalities are also represented with XML Schema occurrence rules.</p>
<p>The Policy element contains the following attributes:</p> <p>The Policy element contains the following attributes:</p>
<ul>  <ul>
<li>uid - a URI/Qname/Qcode (required)</li>  <li>uid - a URI/Qname/Qcode (required)</li>
<li>type - a URI/Qname/Qcode (required)</li>  <li>type - a URI/Qname/Qcode (required)</li>
<li>conflict - fixed enumeration (defined in XML Schema)</li>  <li>conflict - fixed enumeration (defined in XML Schema)</li>
<li>undefined - fixed enumeration (defined in XML Schema)</li>  <li>undefined - fixed enumeration (defined in XML Schema)</li>
<li>inheritAllowed - a boolean </li>  <li>inheritAllowed - a boolean </li>
<li>inheritFrom - a URI/Qname/Qcode</li>  <li>inheritFrom - a URI/Qname/Qcode</li>
<li>inheritRelation - a URI/Qname/Qcode</li>  <li>inheritRelation - a URI/Qname/Qcode</li>
</ul> </ul>
<P>The Policy element contains the following elements:<p> <P>The Policy element contains the following elements:<p>
<ul>  <ul>
<li>permission - (required) </li>  <li>permission - (required) </li>
<li>prohibition </li>  <li>prohibition </li>
</ul> </ul>
<p>The Asset and Relation association class are merged into a single Asset element to represent both the Asset and how it is related to the Permission/Prohibition/Duty. The Asset element contains the following attributes:</p> <p>The Asset and Relation association class are merged into a single Asset element to represent both the Asset and how it is related to the Permission/Prohibition/Duty. The Asset element contains the following attributes:</p>
<ul> <ul>
<li>uid - a URI/Qname/Qcode (required, if no idref attribute)</li>  
<li>relation - a URI/Qname/Qcode (required, if no id/idref attribute)</li>  
   <li>uid - a URI/Qname/Qcode</li>
   <li>relation - a URI/Qname/Qcode</li>
<li>id - an local identifier for this element (optional)</li>   <li>id - an local identifier for this element</li>
<li>idref - a reference to an Asset element (optional, and if present, must be the only attribute in the element)</li>  
   <li>idref - a reference to an Asset element</li>
</ul> </ul>
<p>The cardinality of the Asset element attributes MUST be either:</p> <p>The cardinality of the Asset element attributes MUST be either:</p>
<ul>  <ol>
<ol>uid (required), relation (required), id (optional)   <li>uid (required), relation (required), id (optional)</li>
<ol>idref (required)   <li>idref (required)</li>
</ul>  </ol>
<p>The Party and Role association class are merged into a single Party element to represent both the Party and the role to the Permission/Prohibition/Duty. The Party element contains the following attributes:</p> <p>The Party and Role association class are merged into a single Party element to represent both the Party and the role to the Permission/Prohibition/Duty. The Party element contains the following attributes:</p>
<ul>  <ul>
<li>uid - a URI/Qname/Qcode (required)</li>   <li>uid - a URI/Qname/Qcode</li>
<li>function - a URI/Qname/Qcode (required)</li>   <li>function - a URI/Qname/Qcode</li>
<li>scope - a URI/Qname/Qcode </li>  <li>scope - a URI/Qname/Qcode </li>
<li>id - an local identifier for this element (optional)</li>   <li>id - an local identifier for this element</li>
<li>idref - a reference to a Party element (optional, and if present, must be the only attribute in the element)</li>  
   <li>idref - a reference to a Party element</li>
</ul> </ul>
  <p>The cardinality of the Party element attributes MUST be either:</p>
  <ol>
   <li>uid (required), function (required), scope (optional), id (optional)</li>
   <li>idref (required)</li>
  </ol>
<P>The Permission element contains the following elements:<p> <P>The Permission element contains the following elements:<p>
<ul>  <ul>
<li>asset - (required) </li>  <li>asset - (required) </li>
<li>action - (required) </li>  <li>action - (required) </li>
<li>constraint </li>  <li>constraint </li>
<li>party </li>  <li>party </li>
<li>duty </li>  <li>duty </li>
</ul> </ul>
<P>The Prohibition element contains the following elements:<p> <P>The Prohibition element contains the following elements:<p>
<ul>  <ul>
<li>asset - (required) </li>  <li>asset - (required) </li>
<li>action - (required) </li>  <li>action - (required) </li>
<li>constraint </li>  <li>constraint </li>
<li>party </li>  <li>party </li>
</ul> </ul>
<P>The Duty element contains the following elements:<p> <P>The Duty element contains the following elements:<p>
<ul>  <ul>
<li>action - (required) </li>  <li>action - (required) </li>
<li>constraint </li>  <li>constraint </li>
<li>asset</li>  <li>asset</li>
<li>party </li>  <li>party </li>
</ul> </ul>
<P>The Duty element contains the following attributes:<p> <P>The Duty element contains the following attributes:<p>
<ul>  <ul>
   <li>uid - a URI/Qname/Qcode </li>
<li>uid - a URI/Qname/Qcode (optional, and if present, must be the only attribute in the element) </li>  <li>id - an local identifier for this element</li>
<li>id - an local identifier for this element (optional, and if present, must be the only attribute in the element)</li>  
<li>idref - a reference to an Duty element (optional, and if present, must be the only attribute in the element)</li>  
   <li>idref - a reference to an Duty element</li>
</ul> </ul>
  <p>The cardinality of the Duty element attributes MUST be either:</p>
  <ol>
   <li>uid (optional)</li>
   <li>id (required)</li>
   <li>idref (required)</li>
  </ol>
<p>The Action element contains the following attribute:</p> <p>The Action element contains the following attribute:</p>
<ul>  <ul>
<li>name - a URI/Qname/Qcode (required)</li>   <li>name - a URI/Qname/Qcode</li>
<li>id - an local identifier for this element (optional)</li>   <li>id - an local identifier for this element</li>
<li>idref - a reference to an Action element (optional, and if present, must be the only attribute in the element)</li>  
   <li>idref - a reference to an Action element</li>
</ul> </ul>
  <p>The cardinality of the Action element attributes MUST be either:</p>
  <ol>
   <li>name (required), id (optional)</li>
   <li>idref (required)</li>
  </ol>
<p>The Constraint element contains the following attributes:</p> <p>The Constraint element contains the following attributes:</p>
<ul>  <ul>
<li>name - a URI/Qname/Qcode (required)</li>   <li>name - a URI/Qname/Qcode</li>
<li>operator - a URI/Qname/Qcode (required)</li>   <li>operator - a URI/Qname/Qcode</li>
<li>rightOperand - string, space separated list for set values (required)</li>   <li>rightOperand - string, space separated list for set values</li>
<li>status - string </li>  <li>status - string </li>
<li>id - an local identifier for this element (optional)</li>   <li>id - an local identifier for this element</li>
<li>idref - a reference to an Constraint element (optional, and if present, must be the only attribute in the element)</li>  
   <li>idref - a reference to an Constraint element</li>
</ul> </ul>
  <p>The cardinality of the Constraint element attributes MUST be either:</p>
  <ol>
   <li>name (required), operator (required), rightOperand (required), status (optional), id (optional)</li>
   <li>idref (required)</li>
  </ol>
<p>In some cases where Duties refer to (external) Assets, it will be necessary to package the ODRL XML expression with the representation of that (external) Asset. This XML Encoding specification does not mandate any specific packaging mechanism as communities will utilise their preferred options for data interoperability.</p> <p>In some cases where Duties refer to (external) Assets, it will be necessary to package the ODRL XML expression with the representation of that (external) Asset. This XML Encoding specification does not mandate any specific packaging mechanism as communities will utilise their preferred options for data interoperability.</p>
<p>The examples in Section 5 give concrete instances of these XML encoding rules for the Model and Common Vocabulary. Appendix A shows the formal XML Schema that encapsulates these rules.</p> <p>The examples in Section 5 give concrete instances of these XML encoding rules for the Model and Common Vocabulary. Appendix A shows the formal XML Schema that encapsulates these rules.</p>
<H2><A name="section-4"></A>4. XML Linking</H2> <H2><A name="section-4"></A>4. XML Linking</H2>
<H3><A name="section-41"></A>4.1 XML Elements</H2> <H3><A name="section-41"></A>4.1 XML Elements</H2>
To support repeating the same element content across Permissions and Prohibitions, the Asset, Party, Constraint, Action, and Duty elements support the <b>id</b> and <b>idref</b> attributes. Any of these element that has been identified using the <b>id</b> attribute can then be referred to by an element with the same name using the <b>idref</b> attribute. In this case, the referring element must have no other content. As shown in the below example, the Prohibition refers to elements defined in the Permission, except for the Constraint element. In this case, the assignee can play the music asset in Italy but not in France. To support repeating the same element content across Permissions and Prohibitions, the Asset, Party, Constraint, Action, and Duty elements support the <b>id</b> and <b>idref</b> attributes. Any of these element that has been identified using the <b>id</b> attribute can then be referred to by an element with the same name using the <b>idref</b> attribute. In this case, the referring element must have no other content. As shown in the below example, the Prohibition refers to elements defined in the Permission, except for the Constraint element. In this case, the assignee can play the music asset in Italy but not in France.
[xml light="true"] [xml light="true"]
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset id=&quot;as1&quot; uid=&quot;http: //example.com/ music:1234908&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset id=&quot;as1&quot; uid=&quot;http: //example.com/ music:1234908&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action id=&quot;ac1&quot; name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;  &lt;o:action id=&quot;ac1&quot; name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#spatial&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.itu.int/ tML/tML-ISO-3166: it&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#spatial&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.itu.int/ tML/tML-ISO-3166: it&quot;/&gt;
&lt;o:party id=&quot;p1&quot; uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party id=&quot;p1&quot; uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party id= &quot;p2&quot; uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party id= &quot;p2&quot; uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:prohibition&gt;  &lt;o:prohibition&gt;
&lt;o:asset idref=&quot;as1&quot;/&gt;  &lt;o:asset idref=&quot;as1&quot;/&gt;
&lt;o:action idref=&quot;ac1&quot;/&gt;  &lt;o:action idref=&quot;ac1&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#spatial&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.itu.int/ tML/tML-ISO-3166: fr&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#spatial&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.itu.int/ tML/tML-ISO-3166: fr&quot;/&gt;
&lt;o:party idref=&quot;p1&quot;/&gt;  &lt;o:party idref=&quot;p1&quot;/&gt;
&lt;o:party idref=&quot;p2&quot;/&gt;  &lt;o:party idref=&quot;p2&quot;/&gt;
&lt;/o:prohibition&gt;  &lt;/o:prohibition&gt;
[/xml] [/xml]
Note that there is an important distinction when using this feature with the Duty element which also has the <b>uid</b> attribute. The <b>uid</b> attribute is used to refer to the same Duty from multiple Permissions. In this case the Duty has to be performed only once to gain access to all the Permissions. When using the <b>id</b> and <b>idref</b> attributes then the semantics change as in this case the Duty must be performed for each time it is referenced (potentially, many times). Note that the use of the <b>uid</b> and <b>id</b> attribute for the same Duty element is not permitted. Note that there is an important distinction when using this feature with the Duty element which also has the <b>uid</b> attribute. The <b>uid</b> attribute is used to refer to the same Duty from multiple Permissions. In this case the Duty has to be performed only once to gain access to all the Permissions. When using the <b>id</b> and <b>idref</b> attributes then the semantics change as in this case the Duty must be performed for each time it is referenced (potentially, many times). Note that the use of the <b>uid</b> and <b>id</b> attribute for the same Duty element is not permitted.
<H3><A name="section-42"></A>4.2 Inline Assets</H2> <H3><A name="section-42"></A>4.2 Inline Assets</H2>
<p> <p>
In some scenarios, the Asset of an ODRL Policy maybe also be XML or HTML markup. In these specific cases, it makes sense to enable the ODRL Policy to be articulated as part of the Asset and to support abbreviated expressions. All default values should be assumed. The typical scenario would require either a Permission or a Prohibition element to be linked to the XML/HTML markup. The preferred method of linking is to utilise the XML ID attribute. The source Asset markup may be identified with an ID attribute and the ODRL Asset element can then refer to this ID as the UID (as a URI hash fragment). An example is shown below. In some scenarios, the Asset of an ODRL Policy maybe also be XML or HTML markup. In these specific cases, it makes sense to enable the ODRL Policy to be articulated as part of the Asset and to support abbreviated expressions. All default values should be assumed. The typical scenario would require either a Permission or a Prohibition element to be linked to the XML/HTML markup. The preferred method of linking is to utilise the XML ID attribute. The source Asset markup may be identified with an ID attribute and the ODRL Asset element can then refer to this ID as the UID (as a URI hash fragment). An example is shown below.
</p> </p>
[xml light="true"] [xml light="true"]
&lt;rnews:Article xml:id=&quot; item8HEX&quot;&gt; &lt;rnews:Article xml:id=&quot; item8HEX&quot;&gt;
&lt;rnews:title&gt;Allies are Split&lt;rnews:title&gt;  &lt;rnews:title&gt;Allies are Split&lt;rnews:title&gt;
&lt;rnews:description&gt;Rebel fighters take control...&lt; rnews:description&gt;  &lt;rnews:description&gt;Rebel fighters take control...&lt; rnews:description&gt;
...  ...
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;#item8HEX&quot;/&gt;  &lt;o:asset uid=&quot;#item8HEX&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#gteq&quot; rightOperand= &quot;2011-11- 11&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#gteq&quot; rightOperand= &quot;2011-11- 11&quot;/&gt;
&lt;/o:prohibition&gt;   &lt;/o:prohibition&gt;
&lt;/rnews:Article&gt; &lt;/rnews:Article&gt;
[/xml] [/xml]
<H2><A name="section-5"></A>5. Scenario Examples</H2> <H2><A name="section-5"></A>5. Scenario Examples</H2>
<p>These examples represent the XML Encodings for all the Scenarios described in the <a href="#section- References">[ODRL-Model]</a> document.</p> <p>These examples represent the XML Encodings for all the Scenarios described in the <a href="#section- References">[ODRL-Model]</a> document.</p>
<h4>4.1 Set </h4> <h4>4.1 Set </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#set&quot; uid=&quot;http: //example.com/ policy:0099&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#set&quot; uid=&quot;http: //example.com/ policy:0099&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ asset:9898&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ asset:9898&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#publish&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#publish&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:prohibition&gt;  &lt;o:prohibition&gt;
&lt;o:asset uid=&quot;http: //example.com/ asset:9898&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ asset:9898&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#modify&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#modify&quot;/&gt;
&lt;/o:prohibition&gt;   &lt;/o:prohibition&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.2 Offer </h4> <h4>4.2 Offer </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#offer&quot; uid=&quot;http: //example.com/ policy:0231&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#offer&quot; uid=&quot;http: //example.com/ policy:0231&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:duty uid=&quot;d1&quot;&gt;  &lt;o:duty uid=&quot;d1&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#pay&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#pay&quot;/&gt;
&lt;o:asset uid=&quot;http: //example.com/ ubl:AUD0.50&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ ubl:AUD0.50&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#copy&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#copy&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#numberOfUses&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;1&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#numberOfUses&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;1&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:duty uid=&quot;#d1&quot;/&gt;  &lt;o:duty uid=&quot;#d1&quot;/&gt;
&lt;/o:permission&gt;   &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
&lt;!-- External Asset --&gt; &lt;!-- External Asset --&gt;
&lt;ubl:PriceAmount xml:id=&quot; http://example.com/ ubl:AUD0.50&quot; &lt;ubl:PriceAmount xml:id=&quot; http://example.com/ ubl:AUD0.50&quot;
xmlns:ubl=&quot; urn:oasis:names: specification: ubl:schema:xsd: CommonBasicComponents-2&quot;  xmlns:ubl=&quot; urn:oasis:names: specification: ubl:schema:xsd: CommonBasicComponents-2&quot;
currencyID=&quot; AUD&quot;&gt; 0.50&lt;/ubl: PriceAmount&gt;  currencyID=&quot; AUD&quot;&gt; 0.50&lt;/ubl: PriceAmount&gt;
&lt;!-- External Asset --&gt; &lt;!-- External Asset --&gt;
[/xml] [/xml]
<h4>4.3 Agreement </h4> <h4>4.3 Agreement </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:9001&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:9001&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;o:duty uid=&quot;d1&quot;&gt;  &lt;o:duty uid=&quot;d1&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#pay&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#pay&quot;/&gt;
&lt;o:asset uid=&quot;http: //example.com/ ubl:AUD0.50&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ ubl:AUD0.50&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ music:4545&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#copy&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#copy&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#numberOfUses&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;1&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#numberOfUses&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;1&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;o:duty uid=&quot;#d1&quot;/&gt;  &lt;o:duty uid=&quot;#d1&quot;/&gt;
&lt;/o:permission&gt;   &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
&lt;!-- External Asset --&gt; &lt;!-- External Asset --&gt;
&lt;ubl:PriceAmount xml:id=&quot; http://example.com/ ubl:AUD0.50&quot; &lt;ubl:PriceAmount xml:id=&quot; http://example.com/ ubl:AUD0.50&quot;
xmlns:ubl=&quot; urn:oasis:names: specification: ubl:schema:xsd: CommonBasicComponents-2&quot;  xmlns:ubl=&quot; urn:oasis:names: specification: ubl:schema:xsd: CommonBasicComponents-2&quot;
currencyID=&quot; AUD&quot;&gt; 0.50&lt;/ubl: PriceAmount&gt;  currencyID=&quot; AUD&quot;&gt; 0.50&lt;/ubl: PriceAmount&gt;
&lt;!-- External Asset --&gt; &lt;!-- External Asset --&gt;
[/xml] [/xml]
<h4>4.4 Request </h4> <h4>4.4 Request </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#request&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#request&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ news:0099&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ news:0099&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ guest:0589&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ guest:0589&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.5 Ticket </h4> <h4>4.5 Ticket </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#ticket&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#ticket&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ game:4589&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ game:4589&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#currentDate&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;2010-12- 31&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#currentDate&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;2010-12- 31&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.6 Offer and Next Policy</h4> <h4>4.6 Offer and Next Policy</h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#offer&quot; uid=&quot;http: //example.com/ policy:5531&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#offer&quot; uid=&quot;http: //example.com/ policy:5531&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ wallpaper:2321&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ wallpaper:2321&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#spatial&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.itu.int/ tML/tML-ISO-3166: it&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#spatial&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.itu.int/ tML/tML-ISO-3166: it&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:99&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:99&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:duty uid=&quot;d1&quot;&gt;  &lt;o:duty uid=&quot;d1&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#pay&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#pay&quot;/&gt;
&lt;o:asset uid=&quot;http: //example.com/ ubl:EU1000.00&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ ubl:EU1000.00&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;o:duty uid=&quot;d2&quot;&gt;  &lt;o:duty uid=&quot;d2&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#nextPolicy&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#nextPolicy&quot;/&gt;
&lt;o:asset uid=&quot;http: //example.com/ policy:7777&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ policy:7777&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#set&quot; uid=&quot;http: //example.com/ policy:7777&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#set&quot; uid=&quot;http: //example.com/ policy:7777&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ wallpaper:2321&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ wallpaper:2321&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
&lt;!-- External Asset --&gt; &lt;!-- External Asset --&gt;
&lt;ubl:PriceAmount xml:id=&quot; http://example.com/ ubl:EU1000.00&quot; &lt;ubl:PriceAmount xml:id=&quot; http://example.com/ ubl:EU1000.00&quot;
xmlns:ubl=&quot; urn:oasis:names: specification: ubl:schema:xsd: CommonBasicComponents-2&quot;  xmlns:ubl=&quot; urn:oasis:names: specification: ubl:schema:xsd: CommonBasicComponents-2&quot;
currencyID=&quot; EUR&quot;&gt; 1000.00&lt;/ ubl:PriceAmount&gt;  currencyID=&quot; EUR&quot;&gt; 1000.00&lt;/ ubl:PriceAmount&gt;
&lt;!-- External Asset --&gt; &lt;!-- External Asset --&gt;
[/xml] [/xml]
<h4>4.7 Privacy </h4> <h4>4.7 Privacy </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#privacy&quot; uid=&quot;http: //example.com/ policy:1111&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#privacy&quot; uid=&quot;http: //example.com/ policy:1111&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/billie:888: personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/billie:888: personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#purpose&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.w3.org/2002/ 01/P3Pv1:contact&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#purpose&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.w3.org/2002/ 01/P3Pv1:contact&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ gov:health:au&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ gov:health:au&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;o:duty&gt;  &lt;o:duty&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#delete&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#delete&quot;/&gt;
&lt;o:asset uid=&quot;http: //example.com/billie:888: personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/billie:888: personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;P30D&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;P30D&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.8 Permission and Prohibition </h4> <h4>4.8 Permission and Prohibition </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:3433&quot; conflict=&quot; perm&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:3433&quot; conflict=&quot; perm&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ music:1234908&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ music:1234908&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:prohibition&gt;  &lt;o:prohibition&gt;
&lt;o:asset uid=&quot;http: //example.com/ music:1234908&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ music:1234908&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //oma.org/drm: ringtone&quot;/&gt;  &lt;o:action name=&quot;http: //oma.org/drm: ringtone&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ sony:10&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;/o:prohibition&gt;  &lt;/o:prohibition&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.9 Inheritance </h4> <h4>4.9 Inheritance </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:5531&quot; inheritAllowed= &quot;true&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:5531&quot; inheritAllowed= &quot;true&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ report:2321&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ report:2321&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#print&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#print&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ pub:88&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ pub:88&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ billie:888&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:9999&quot; inheritFrom=&quot; http://example.com/policy: 5531&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:9999&quot; inheritFrom=&quot; http://example.com/policy: 5531&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ report:2333&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ report:2333&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ pub:88&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ pub:88&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ class:IT01&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#group&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ class:IT01&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#group&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.10 Social Network </h4> <h4>4.10 Social Network </h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:5109&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:5109&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ myPlace:billie: photos:football2010&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ myPlace:billie: photos:football2010&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ myPlace:billie&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ myPlace:billie&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ myPlace:network: football&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#group&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ myPlace:network: football&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#group&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>4.11 Multiple Assets</h4> <h4>4.11 Multiple Assets</h4>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; xmlns:x=&quot; http:example.com&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#set&quot; uid=&quot;http: //example.com/ policy:881212&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; xmlns:x=&quot; http:example.com&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#set&quot; uid=&quot;http: //example.com/ policy:881212&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ archive2010&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ archive2010&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:asset uid=&quot;http: //example.com/ x/dataase&quot; relation=&quot; x:collection&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ x/dataase&quot; relation=&quot; x:collection&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#index&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#index&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<H2><A name="section-6"></A>6. Other Examples</H2> <H2><A name="section-6"></A>6. Other Examples</H2>
<h4>6.1 W3C Privacy Rulesets</h4> <h4>6.1 W3C Privacy Rulesets</h4>
<p> <p>
The <a href="http:// dev.w3.org/2009/ dap/privacy- rulesets/">W3C Privacy Rulesets</a> Editor's Draft has been developed by the W3C Device APIs and Policy Working Group as a scheme for defining privacy rulesets: bundles of user privacy preferences that can be conveyed together with user data in the context of a web site or application interaction. The document defines three Privacy Elements with a number of attributes, summarised here: </p> The <a href="http:// dev.w3.org/2009/ dap/privacy- rulesets/">W3C Privacy Rulesets</a> Editor's Draft has been developed by the W3C Device APIs and Policy Working Group as a scheme for defining privacy rulesets: bundles of user privacy preferences that can be conveyed together with user data in the context of a web site or application interaction. The document defines three Privacy Elements with a number of attributes, summarised here: </p>
<ul> <ul>
<li>Sharing, with attributes to scope the extend of sharing to; internal, affiliates, unrelated-companies, public</li>  <li>Sharing, with attributes to scope the extend of sharing to; internal, affiliates, unrelated-companies, public</li>
<li>Secondary Use, with defined purposes; contextual, customization, marketing-or- profiling</li>  <li>Secondary Use, with defined purposes; contextual, customization, marketing-or- profiling</li>
<li>Retention, with defined periods; no, short (retained for the baseline period of 35 days), long</li>  <li>Retention, with defined periods; no, short (retained for the baseline period of 35 days), long</li>
</ul> </ul>
<p>The following example shows how to represent the Privacy Ruleset "Internal customization/ personalization" from the document.</p> <p>The following example shows how to represent the Privacy Ruleset "Internal customization/ personalization" from the document.</p>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#privacy&quot; uid=&quot;http: //example.com/ policy:2442&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#privacy&quot; uid=&quot;http: //example.com/ policy:2442&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.comjane- doe:personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.comjane- doe:personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#sharing&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#sharing&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#purpose&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.w3.org/2009/ dap:internal&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#purpose&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.w3.org/2009/ dap:internal&quot;/&gt;
&lt;o:duty uid=&quot;d1&quot;&gt;  &lt;o:duty uid=&quot;d1&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#delete&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#delete&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;P35D&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;P35D&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ jane-doe:personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ jane-doe:personal-data&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#secondaryUse&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#secondaryUse&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#purpose&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.w3.org/2009/ dap:customization&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#purpose&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.w3.org/2009/ dap:customization&quot;/&gt;
&lt;o:duty uid=&quot;#d1&quot;/&gt;  &lt;o:duty uid=&quot;#d1&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<h4>6.2 Open Data Commons</h4> <h4>6.2 Open Data Commons</h4>
<p>The <a href="http:// www.opendatacommons.org/">Open Data Commons</a> provides a number of licenses for the sharing of open databases. One example is the <a href="http:// www.opendatacommons.org/licenses/ odbl/summary/">Open Database License (ODbL) v1.0</a> which enables you to "share, create, and adapt" the database as long as you "attribute, share-a-like, and keep open" the outcomes.</p> <p>The <a href="http:// www.opendatacommons.org/">Open Data Commons</a> provides a number of licenses for the sharing of open databases. One example is the <a href="http:// www.opendatacommons.org/licenses/ odbl/summary/">Open Database License (ODbL) v1.0</a> which enables you to "share, create, and adapt" the database as long as you "attribute, share-a-like, and keep open" the outcomes.</p>
<p>The following example shows how to represent that license in ODRL. Note that the "keep open" option is represented as a distribute Prohibition with "drm-restriction" constraint. Also, since Open Data Commons are "instant" licenses, no assignee is indicated, but assumed to be the recipient of the database asset.</p> <p>The following example shows how to represent that license in ODRL. Note that the "keep open" option is represented as a distribute Prohibition with "drm-restriction" constraint. Also, since Open Data Commons are "instant" licenses, no assignee is indicated, but assumed to be the recipient of the database asset.</p>
[xml light="true"] [xml light="true"]
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:0101Z&quot;&gt; &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#agreement&quot; uid=&quot;http: //example.com/ policy:0101Z&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ gov.au:database: environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ gov.au:database: environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#share&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#share&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:duty uid=&quot;d1&quot;&gt;  &lt;o:duty uid=&quot;d1&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#attribute&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#attribute&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;o:duty uid=&quot;d2&quot;&gt;  &lt;o:duty uid=&quot;d2&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#attachPolicy&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#attachPolicy&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;o:duty uid=&quot;d3&quot;&gt;  &lt;o:duty uid=&quot;d3&quot;&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#shareAlike&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#shareAlike&quot;/&gt;
&lt;/o:duty&gt;  &lt;/o:duty&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ database:environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ database:environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#derive&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#derive&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:duty uid=&quot;#d1&quot;/&gt;  &lt;o:duty uid=&quot;#d1&quot;/&gt;
&lt;o:duty uid=&quot;#d2&quot;/&gt;  &lt;o:duty uid=&quot;#d2&quot;/&gt;
&lt;o:duty uid=&quot;#d3&quot;/&gt;  &lt;o:duty uid=&quot;#d3&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ database:environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ database:environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#transform&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#transform&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;o:duty uid=&quot;#d1&quot;/&gt;  &lt;o:duty uid=&quot;#d1&quot;/&gt;
&lt;o:duty uid=&quot;#d2&quot;/&gt;  &lt;o:duty uid=&quot;#d2&quot;/&gt;
&lt;o:duty uid=&quot;#d3&quot;/&gt;  &lt;o:duty uid=&quot;#d3&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;o:prohibition&gt;  &lt;o:prohibition&gt;
&lt;o:asset uid=&quot;http: //example.com/ database:environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ database:environment&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#distribute&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#system&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.opendatacommons.org: drm-restriction&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#system&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#eq&quot; rightOperand= &quot;http:// www.opendatacommons.org: drm-restriction&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ gov.au:env-dept&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assigner&quot;/&gt;
&lt;/o:prohibition&gt;  &lt;/o:prohibition&gt;
&lt;/o:policy&gt; &lt;/o:policy&gt;
[/xml] [/xml]
<H4>6.3 ODRL over XMPP</H4> <H4>6.3 ODRL over XMPP</H4>
<p>The Extensible Messaging and Presence Protocol <a href="#section- References">[XMPP-CORE] </a> provides a real-time transport mechanism for structured XML information which may be useful for transporting ODRL information over XMPP. ODRL XML expressions may be sent via the XML message stanza defined in XMPP Core using either of the following:</p> <p>The Extensible Messaging and Presence Protocol <a href="#section- References">[XMPP-CORE] </a> provides a real-time transport mechanism for structured XML information which may be useful for transporting ODRL information over XMPP. ODRL XML expressions may be sent via the XML message stanza defined in XMPP Core using either of the following:</p>
<ul> <ul>
<li>Directly from the sender to a single recipient or a list of recipients (using <a href="http:// xmpp.org/extensions/ xep-0033.html">Extended Stanza Addressing</a>)  <li>Directly from the sender to a single recipient or a list of recipients (using <a href="http:// xmpp.org/extensions/ xep-0033.html">Extended Stanza Addressing</a>)
<li>Published to a list of subscribers via <a href="http:// xmpp.org/extensions/ xep-0060.html" >Publish-Subscribe</a>  <li>Published to a list of subscribers via <a href="http:// xmpp.org/extensions/ xep-0060.html" >Publish-Subscribe</a>
</ul> </ul>
<p>The message stanza should not have a 'type' attribute, but may have any defined type that is appropriate to the communications context. The policy element should be the only child element of the message stanza. The 'id' attribute of the message stanza may be set to the value of the ODRL Policy uid.</p> <p>The message stanza should not have a 'type' attribute, but may have any defined type that is appropriate to the communications context. The policy element should be the only child element of the message stanza. The 'id' attribute of the message stanza may be set to the value of the ODRL Policy uid.</p>
<p>The following example shows "Scenario 4.4 Request" sent as a direct message from the requester to the asset owner.</p> <p>The following example shows "Scenario 4.4 Request" sent as a direct message from the requester to the asset owner.</p>
[xml light="true"] [xml light="true"]
&lt;message from=&quot;william@shakespeare.biz&quot; to=&quot;hamlet@denmark.lit&quot; id=&quot;uuid: 3932ASDC4192SUAS3281&quot;&gt; &lt;message from=&quot;william@shakespeare.biz&quot; to=&quot;hamlet@denmark.lit&quot; id=&quot;uuid: 3932ASDC4192SUAS3281&quot;&gt;
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#request&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt;  &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#request&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ news:0099&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ news:0099&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;o:party uid=&quot;http: //example.com/ guest:0589&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;  &lt;o:party uid=&quot;http: //example.com/ guest:0589&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt;  &lt;/o:policy&gt;
&lt;/message&gt; &lt;/message&gt;
[/xml] [/xml]
<P>The XMPP publish-subscribe protocol provides a way to send information to a number of subscribers.</p> <P>The XMPP publish-subscribe protocol provides a way to send information to a number of subscribers.</p>
<p>The following example shows "Scenario 4.5 Ticket" published to a pubsub node sent to all subscribers.</p> <p>The following example shows "Scenario 4.5 Ticket" published to a pubsub node sent to all subscribers.</p>
[xml light="true"] [xml light="true"]
&lt;iq type=&quot;set&quot; from=&quot;hamlet@denmark.lit&quot; to=&quot;pubsub.jabber.org&quot; id=&quot;someID&quot;&gt; &lt;iq type=&quot;set&quot; from=&quot;hamlet@denmark.lit&quot; to=&quot;pubsub.jabber.org&quot; id=&quot;someID&quot;&gt;
&lt;pubsub xmlns=&quot;http: //jabber.org/ protocol/pubsub&quot;&gt;  &lt;pubsub xmlns=&quot;http: //jabber.org/ protocol/pubsub&quot;&gt;
&lt;publish node=&quot;ODRL- TICKETS&quot;&gt;  &lt;publish node=&quot;ODRL- TICKETS&quot;&gt;
&lt;item id=&quot;uuid: 2341SEFS9827WGAS1234&quot;&gt;  &lt;item id=&quot;uuid: 2341SEFS9827WGAS1234&quot;&gt;
&lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#ticket&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt;  &lt;o:policy xmlns:o=&quot; http://w3.org/ ns/odrl/2&quot; type=&quot;http: //w3.org/ns/odrl/ vocab#ticket&quot; uid=&quot;http: //example.com/ policy:04311&quot;&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;http: //example.com/ game:4589&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;  &lt;o:asset uid=&quot;http: //example.com/ game:4589&quot; relation=&quot; http://w3.org/ ns/odrl/vocab#target&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#play&quot;/&gt;
&lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;2010-12- 31&quot;/&gt;  &lt;o:constraint name=&quot;http: //w3.org/ns/odrl/ vocab#dateTime&quot; operator=&quot; http://w3.org/ ns/odrl/vocab#lteq&quot; rightOperand= &quot;2010-12- 31&quot;/&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/o:policy&gt;  &lt;/o:policy&gt;
&lt;/item&gt;  &lt;/item&gt;
&lt;/publish&gt;  &lt;/publish&gt;
&lt;/pubsub&gt;  &lt;/pubsub&gt;
&lt;/iq&gt; &lt;/iq&gt;
[/xml] [/xml]
<p>XMPP is used by a number of distributed Social Networks, such as <a href="http:// onesocialweb.org/ ">OneSocialWeb</a>. In such cases, the use of an "access-control" language can be addressed with ODRL policy expressions for the fine-grained permissions to profile, activity, and social relationship data. </p> <p>XMPP is used by a number of distributed Social Networks, such as <a href="http:// onesocialweb.org/ ">OneSocialWeb</a>. In such cases, the use of an "access-control" language can be addressed with ODRL policy expressions for the fine-grained permissions to profile, activity, and social relationship data. </p>
<p>The example below shows a user's Birthday attribute (from vCard) allowed to be viewed for friends only (taken from the <a href="http:// onesocialweb.org/spec/1.0/ osw-vcard4.html">vCard over XMPP</a> draft document). (See Section 4 on referring to inline Assets.)</p> <p>The example below shows a user's Birthday attribute (from vCard) allowed to be viewed for friends only (taken from the <a href="http:// onesocialweb.org/spec/1.0/ osw-vcard4.html">vCard over XMPP</a> draft document). (See Section 4 on referring to inline Assets.)</p>
[xml light="true"] [xml light="true"]
&lt;birthday xml:id=&quot; bd&quot;&gt; &lt;birthday xml:id=&quot; bd&quot;&gt;
&lt;datetime&gt; 1850-04-06T21: 23:00-07:00&lt; /datetime&gt;  &lt;datetime&gt; 1850-04-06T21: 23:00-07:00&lt; /datetime&gt;
&lt;place&gt; Stratford-upon- Avon&lt;/place&gt;  &lt;place&gt; Stratford-upon- Avon&lt;/place&gt;
...  ...
&lt;/birthday&gt; &lt;/birthday&gt;
&lt;o:permission&gt; &lt;o:permission&gt;
&lt;o:asset uid=&quot;#bd&quot;/&gt;  &lt;o:asset uid=&quot;#bd&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;o:party uid=&quot;hamlet@denmark.lit&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#allConnections&quot; /&gt;  &lt;o:party uid=&quot;hamlet@denmark.lit&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#allConnections&quot; /&gt;
&lt;/o:permission&gt; &lt;/o:permission&gt;
[/xml] [/xml]
<p>The example below shows a Status Update for everyone to view (taken from the <a href="http:// onesocialweb.org/spec/1.0/ osw-activities.html">Activity Stream over XMPP</a> draft document).</p> <p>The example below shows a Status Update for everyone to view (taken from the <a href="http:// onesocialweb.org/spec/1.0/ osw-activities.html">Activity Stream over XMPP</a> draft document).</p>
[xml light="true"]  [xml light="true"]
&lt;entry&gt; &lt;entry&gt;
&lt;activity:object xml:id=&quot; ao100&quot;&gt;  &lt;activity:object xml:id=&quot; ao100&quot;&gt;
&lt;activity: object-type&gt; http://onesocialweb.org/ spec/1.0/object/status&lt; /activity:object-type&gt;  &lt;activity: object-type&gt; http://onesocialweb.org/ spec/1.0/object/status&lt; /activity:object-type&gt;
&lt;content type=&quot;text/ plain&quot;&gt;to be or not to be ?&lt;/content&gt;  &lt;content type=&quot;text/ plain&quot;&gt;to be or not to be ?&lt;/content&gt;
&lt;/activity:object&gt;  &lt;/activity:object&gt;
&lt;o:permission&gt;  &lt;o:permission&gt;
&lt;o:asset uid=&quot;#ao100&quot;/&gt;  &lt;o:asset uid=&quot;#ao100&quot;/&gt;
&lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;  &lt;o:action name=&quot;http: //w3.org/ns/odrl/ vocab#display&quot;/&gt;
&lt;o:party uid=&quot;hamlet@denmark.lit&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#all&quot; /&gt;  &lt;o:party uid=&quot;hamlet@denmark.lit&quot; function=&quot; http://w3.org/ ns/odrl/vocab#assignee&quot; scope=&quot;http: //w3.org/ns/odrl/ vocab#all&quot; /&gt;
&lt;/o:permission&gt;  &lt;/o:permission&gt;
&lt;/entry&gt; &lt;/entry&gt;
[/xml] [/xml]
<H2><A name="appendix- a"></A>Appendix-A. XML Schema (Normative)</H2> <H2><A name="appendix- a"></A>Appendix-A. XML Schema (Normative)</H2>
<p>The XML Schema for ODRL Version 2.0 is shown below.</p> <p>The XML Schema for ODRL Version 2.0 is shown below.</p>
<p> To support extensibility and reuse all the elements and their respective datatypes are global. Additionally, the elements have been defined to include <b>xs:any</b> element and <b>xs:anyAttribute</b> attribute from any (non-odrl) namespace. Note that to support the <b>id/idref</b> attributes some of the attributes that would normally be mandatory are now optional. They must be mandatory when not referring to an element using an <b>idref</b> attribute. <p> To support extensibility and reuse all the elements and their respective datatypes are global. Additionally, the elements have been defined to include <b>xs:any</b> element and <b>xs:anyAttribute</b> attribute from any (non-odrl) namespace. Note that to support the <b>id/idref</b> attributes some of the attributes that would normally be mandatory are now optional. They must be mandatory when not referring to an element using an <b>idref</b> attribute.
</p> </p>
[xml light="true"] [xml light="true"]
&lt;xs:schema xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; xmlns:xs=&quot; http://www.w3.org/ 2001/XMLSchema&quot; &lt;xs:schema xmlns:o=&quot; http://w3.org/ ns/odrl/2/&quot; xmlns:xs=&quot; http://www.w3.org/ 2001/XMLSchema&quot;
targetNamespace= &quot;http:// w3.org/ns/odrl/2/&quot; elementFormDefault= &quot;qualified&quot; attributeFormDefault= &quot;unqualified&quot;&gt;  targetNamespace= &quot;http:// w3.org/ns/odrl/2/&quot; elementFormDefault= &quot;qualified&quot; attributeFormDefault= &quot;unqualified&quot;&gt;
&lt;xs:element name=&quot;policy&quot; type=&quot;o: policyCT&quot;/&gt;  &lt;xs:element name=&quot;policy&quot; type=&quot;o: policyCT&quot;/&gt;
&lt;xs:complexType name=&quot;policyCT&quot;&gt;  &lt;xs:complexType name=&quot;policyCT&quot;&gt;
&lt;xs:sequence minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;&gt;  &lt;xs:sequence minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;&gt;
&lt;xs:element ref=&quot;o:permission&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:permission&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:prohibition&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:prohibition&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;/xs:sequence&gt;  &lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot; use=&quot;required&quot;/&gt;  &lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot; use=&quot;required&quot;/&gt;
&lt;xs:attribute name=&quot;type&quot; type=&quot;o: URIQnameQcode&quot; use=&quot;required&quot;/&gt;  &lt;xs:attribute name=&quot;type&quot; type=&quot;o: URIQnameQcode&quot; use=&quot;required&quot;/&gt;
&lt;xs:attribute name=&quot;conflict&quot; type=&quot;o: conflictENUM&quot;/&gt;  &lt;xs:attribute name=&quot;conflict&quot; type=&quot;o: conflictENUM&quot;/&gt;
&lt;xs:attribute name=&quot;undefined&quot; type=&quot;o: undefinedENUM&quot;/&gt;  &lt;xs:attribute name=&quot;undefined&quot; type=&quot;o: undefinedENUM&quot;/&gt;
&lt;xs:attribute name=&quot;inheritAllowed&quot; type=&quot;xs: boolean&quot;/&gt;  &lt;xs:attribute name=&quot;inheritAllowed&quot; type=&quot;xs: boolean&quot;/&gt;
&lt;xs:attribute name=&quot;inheritFrom&quot; type=&quot;o: URIQnameQcode&quot;/&gt;  &lt;xs:attribute name=&quot;inheritFrom&quot; type=&quot;o: URIQnameQcode&quot;/&gt;
&lt;xs:attribute name=&quot;inheritRelation&quot; type=&quot;o: URIQnameQcode&quot;/&gt;  &lt;xs:attribute name=&quot;inheritRelation&quot; type=&quot;o: URIQnameQcode&quot;/&gt;
&lt;xs:anyAttribute namespace=&quot; ##other&quot; processContents= &quot;lax&quot;/&gt;   &lt;xs:anyAttribute namespace=&quot; ##other&quot; processContents= &quot;lax&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;permission&quot; type=&quot;o: permCT&quot;/&gt;  &lt;xs:element name=&quot;permission&quot; type=&quot;o: permCT&quot;/&gt;
&lt;xs:complexType name=&quot;permCT&quot;&gt;  &lt;xs:complexType name=&quot;permCT&quot;&gt;
&lt;xs:sequence&gt;  &lt;xs:sequence&gt;
&lt;xs:element ref=&quot;o:asset&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:asset&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:action&quot; /&gt;  &lt;xs:element ref=&quot;o:action&quot; /&gt;
&lt;xs:element ref=&quot;o:constraint&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:constraint&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:party&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:party&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:duty&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:duty&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;/xs:sequence&gt;  &lt;/xs:sequence&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;   &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;prohibition&quot; type=&quot;o: prohibCT&quot;/&gt;   &lt;xs:element name=&quot;prohibition&quot; type=&quot;o: prohibCT&quot;/&gt;
&lt;xs:complexType name=&quot;prohibCT&quot;&gt;  &lt;xs:complexType name=&quot;prohibCT&quot;&gt;
&lt;xs:sequence&gt;  &lt;xs:sequence&gt;
&lt;xs:element ref=&quot;o:asset&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:asset&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:action&quot; /&gt;  &lt;xs:element ref=&quot;o:action&quot; /&gt;
&lt;xs:element ref=&quot;o:constraint&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:constraint&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:party&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:party&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;/xs:sequence&gt;  &lt;/xs:sequence&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;  &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;duty&quot; type=&quot;o: dutyCT&quot;/&gt;  &lt;xs:element name=&quot;duty&quot; type=&quot;o: dutyCT&quot;/&gt;
&lt;xs:complexType name=&quot;dutyCT&quot;&gt;  &lt;xs:complexType name=&quot;dutyCT&quot;&gt;
&lt;xs:sequence&gt;  &lt;xs:sequence&gt;
&lt;xs:element ref=&quot;o:action&quot; minOccurs=&quot; 0&quot;/&gt; &lt;!--Required Element--&gt;  &lt;xs:element ref=&quot;o:action&quot; minOccurs=&quot; 0&quot;/&gt; &lt;!--Required Element--&gt;
&lt;xs:element ref=&quot;o:asset&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:asset&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:constraint&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:constraint&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:element ref=&quot;o:party&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:element ref=&quot;o:party&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;  &lt;xs:any namespace=&quot; ##other&quot; processContents= &quot;lax&quot; minOccurs=&quot;0&quot; maxOccurs=&quot; unbounded&quot;/&gt;
&lt;/xs:sequence&gt;  &lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot;/&gt;  &lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot;/&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;  &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;asset&quot; type=&quot;o: assetCT&quot;/&gt;   &lt;xs:element name=&quot;asset&quot; type=&quot;o: assetCT&quot;/&gt;
&lt;xs:complexType name=&quot;assetCT&quot;&gt;  &lt;xs:complexType name=&quot;assetCT&quot;&gt;
&lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attribute name=&quot;relation&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;relation&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;  &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;party&quot; type=&quot;o: partyCT&quot;/&gt;  &lt;xs:element name=&quot;party&quot; type=&quot;o: partyCT&quot;/&gt;
&lt;xs:complexType name=&quot;partyCT&quot;&gt;  &lt;xs:complexType name=&quot;partyCT&quot;&gt;
&lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot;/&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;uid&quot; type=&quot;o: URIQnameQcode&quot;/&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attribute name=&quot;function&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;function&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attribute name=&quot;scope&quot; type=&quot;o: URIQnameQcode&quot;/&gt;  &lt;xs:attribute name=&quot;scope&quot; type=&quot;o: URIQnameQcode&quot;/&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;  &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;action&quot; type=&quot;o: actionCT&quot;/&gt;  &lt;xs:element name=&quot;action&quot; type=&quot;o: actionCT&quot;/&gt;
&lt;xs:complexType name=&quot;actionCT&quot;&gt;  &lt;xs:complexType name=&quot;actionCT&quot;&gt;
&lt;xs:attribute name=&quot;name&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;name&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;  &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:element name=&quot;constraint&quot; type=&quot;o: constraintCT&quot;/&gt;  &lt;xs:element name=&quot;constraint&quot; type=&quot;o: constraintCT&quot;/&gt;
&lt;xs:complexType name=&quot;constraintCT&quot;&gt;  &lt;xs:complexType name=&quot;constraintCT&quot;&gt;
&lt;xs:attribute name=&quot;name&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;name&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attribute name=&quot;operator&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;operator&quot; type=&quot;o: URIQnameQcode&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attribute name=&quot;rightOperand&quot; type=&quot;o: listOfValues&quot; /&gt; &lt;!--Required Attribute--&gt;  &lt;xs:attribute name=&quot;rightOperand&quot; type=&quot;o: listOfValues&quot; /&gt; &lt;!--Required Attribute--&gt;
&lt;xs:attribute name=&quot;status&quot; type=&quot;xs: string&quot; /&gt;  &lt;xs:attribute name=&quot;status&quot; type=&quot;xs: string&quot; /&gt;
&lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;  &lt;xs:attributeGroup ref=&quot;o:idAttributes&quot;/&gt;
&lt;/xs:complexType&gt;  &lt;/xs:complexType&gt;
 
&lt;xs:simpleType name=&quot;listOfValues&quot;&gt;  &lt;xs:simpleType name=&quot;listOfValues&quot;&gt;
&lt;xs:list itemType=&quot; xs:string&quot;/&gt;  &lt;xs:list itemType=&quot; xs:string&quot;/&gt;
&lt;/xs:simpleType&gt;  &lt;/xs:simpleType&gt;
 
&lt;xs:simpleType name=&quot;conflictENUM&quot;&gt;  &lt;xs:simpleType name=&quot;conflictENUM&quot;&gt;
&lt;xs:restriction base=&quot;xs: string&quot;&gt;  &lt;xs:restriction base=&quot;xs: string&quot;&gt;
&lt;xs:enumeration value=&quot;perm&quot;/&gt;  &lt;xs:enumeration value=&quot;perm&quot;/&gt;
&lt;xs:enumeration value=&quot;prohibit&quot;/&gt;  &lt;xs:enumeration value=&quot;prohibit&quot;/&gt;
&lt;xs:enumeration value=&quot;invalid&quot;/&gt;  &lt;xs:enumeration value=&quot;invalid&quot;/&gt;
&lt;/xs:restriction&gt;  &lt;/xs:restriction&gt;
&lt;/xs:simpleType&gt;  &lt;/xs:simpleType&gt;
 
&lt;xs:simpleType name=&quot;undefinedENUM&quot;&gt;  &lt;xs:simpleType name=&quot;undefinedENUM&quot;&gt;
&lt;xs:restriction base=&quot;xs: string&quot;&gt;  &lt;xs:restriction base=&quot;xs: string&quot;&gt;
&lt;xs:enumeration value=&quot;support&quot;/&gt;  &lt;xs:enumeration value=&quot;support&quot;/&gt;
&lt;xs:enumeration value=&quot;ignore&quot;/&gt;  &lt;xs:enumeration value=&quot;ignore&quot;/&gt;
&lt;xs:enumeration value=&quot;invalid&quot;/&gt;  &lt;xs:enumeration value=&quot;invalid&quot;/&gt;
&lt;/xs:restriction&gt;  &lt;/xs:restriction&gt;
&lt;/xs:simpleType&gt;  &lt;/xs:simpleType&gt;
 
&lt;xs:simpleType name=&quot;URIQnameQcode&quot;&gt;  &lt;xs:simpleType name=&quot;URIQnameQcode&quot;&gt;
&lt;xs:union memberTypes=&quot;xs:anyURI xs:QName o:QCode&quot;/&gt;  &lt;xs:union memberTypes=&quot;xs:anyURI xs:QName o:QCode&quot;/&gt;
&lt;/xs:simpleType&gt;  &lt;/xs:simpleType&gt;
 
&lt;xs:simpleType name=&quot;QCode&quot;&gt;  &lt;xs:simpleType name=&quot;QCode&quot;&gt;
&lt;xs:restriction base=&quot;xs: string&quot;&gt;  &lt;xs:restriction base=&quot;xs: string&quot;&gt;
&lt;xs:pattern value=&quot;[^\s: ]+:[^\s]+&quot;/&gt;  &lt;xs:pattern value=&quot;[^\s: ]+:[^\s]+&quot;/&gt;
&lt;/xs:restriction&gt;  &lt;/xs:restriction&gt;
 
&lt;/xs:simpleType&gt;  &lt;/xs:simpleType&gt;
&lt;xs:attributeGroup name=&quot;idAttributes&quot;&gt;  &lt;xs:attributeGroup name=&quot;idAttributes&quot;&gt;
&lt;xs:attribute name=&quot;id&quot; type=&quot;xs: ID&quot;/&gt;  &lt;xs:attribute name=&quot;id&quot; type=&quot;xs: ID&quot;/&gt;
&lt;xs:attribute name=&quot;idref&quot; type=&quot;xs: IDREF&quot;/&gt;  &lt;xs:attribute name=&quot;idref&quot; type=&quot;xs: IDREF&quot;/&gt;
&lt;xs:anyAttribute namespace=&quot; ##other&quot; processContents= &quot;lax&quot;/&gt;  &lt;xs:anyAttribute namespace=&quot; ##other&quot; processContents= &quot;lax&quot;/&gt;
&lt;/xs:attributeGroup&gt;  &lt;/xs:attributeGroup&gt;
&lt;/xs:schema&gt; &lt;/xs:schema&gt;
[/xml] [/xml]
<H2><A name="section- Acknowledgements" ></A>Acknowledgements</H2> <H2><A name="section- Acknowledgements" ></A>Acknowledgements</H2>
<P>The editors gratefully acknowledge feedback and contributions to this document from:</P> <P>The editors gratefully acknowledge feedback and contributions to this document from:</P>
<UL> <UL>
<li> All members of the W3C ODRL Community Group</li>  <li> All members of the W3C ODRL Community Group</li>
<li> Especially Stuart Myles, Michael Steidl, Francis Cave, Jim Earley, Helge Hundacker, Daniel Paehler, Andreas Kasten, Rainer Weissenfels </li>  <li> Especially Stuart Myles, Michael Steidl, Francis Cave, Jim Earley, Helge Hundacker, Daniel Paehler, Andreas Kasten, Rainer Weissenfels </li>
</UL> </UL>
 
<H2><A name="section- References">< /A>References</H2> <H2><A name="section- References">< /A>References</H2>
<p> <p>
<TABLE cellspacing="0" cellpadding="5" width="100%" border="0"> <TABLE cellspacing="0" cellpadding="5" width="100%" border="0">
<TBODY>  <TBODY>
<TR>  <TR>
<TD vAlign="top" align="right" ><B>[ODRL-MODEL]</B></TD> <TD>R. Iannella &amp; S. Guth &amp; D. Paehler &amp; A. Kasten (eds). Open Digital Rights Language (ODRL) Version 2.0 - Core Model. Draft Specification, W3C ODRL Community Group, 2011. <A href="http:// www.w3.org/community/odrl/ two/model/">http: //www.w3.org/ community/odrl/ two/model/</A></TD>   <TD vAlign="top" align="right" ><B>[ODRL-MODEL]</B></TD> <TD>R. Iannella &amp; S. Guth &amp; D. Paehler &amp; A. Kasten (eds). Open Digital Rights Language (ODRL) Version 2.0 - Core Model. Final Specification, W3C ODRL Community Group, 19 April 2012. <A href="http:// www.w3.org/community/odrl/ two/model/">http: //www.w3.org/ community/odrl/ two/model/</A></TD>
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[ODRL-VOCAB]</B></TD>  <TD vAlign="top" align="right" ><B>[ODRL-VOCAB]</B></TD>
<TD>S. Guth &amp; R. Iannella (eds). Open Digital Rights Language (ODRL) Version 2.0 - Common Vocabulary.  
Draft Specification, W3C ODRL Community Group, 2012.<BR><A href="http:// www.w3.org/community/odrl/ two/vocab/">http: //www.w3.org/ community/odrl/ two/vocab/</A></TD>   <TD>S. Guth &amp; R. Iannella (eds). Open Digital Rights Language (ODRL) Version 2.0 - Common Vocabulary. Final Specification, W3C ODRL Community Group, 19 April 2012. <A href="http:// www.w3.org/community/odrl/ two/vocab/">http: //www.w3.org/ community/odrl/ two/vocab/</A></TD>
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[Q-CODE]</B></TD>  <TD vAlign="top" align="right" ><B>[Q-CODE]</B></TD>
<TD>NewsML Specification Version 2.4. International Press Telecommunications Council (IPTC) 2009<BR><A href="http:// www.iptc.org/ std/NewsML-G2/ 2.4/specification/NewsML- G2_2.4-spec-PCL.pdf">http: //www.iptc.org/std/NewsML- G2/2.4/specification/NewsML- G2_2.4-spec-PCL.pdf</A></TD>   <TD>NewsML Specification Version 2.4. International Press Telecommunications Council (IPTC) 2009 <A href="http:// www.iptc.org/ std/NewsML-G2/ 2.4/specification/NewsML- G2_2.4-spec-PCL.pdf">http: //www.iptc.org/std/NewsML- G2/2.4/specification/NewsML- G2_2.4-spec-PCL.pdf</A></TD>
</TR>  </TR>
<TR>  <TR>
<TD vAlign="top" align="right" ><B>[RFC2119]</B></TD>  <TD vAlign="top" align="right" ><B>[RFC2119]</B></TD>
<TD>Key words for use in RFCs to Indicate Requirement Levels, S. Bradner.  
The Internet Society, March 1997. <A href="http:// www.ietf.org/ rfc/rfc2119.txt" >http://www.ietf.org/rfc/ rfc2119.txt</A><BR></TD>   <TD>Key words for use in RFCs to Indicate Requirement Levels, S. Bradner. The Internet Society, March 1997. <A href="http:// www.ietf.org/ rfc/rfc2119.txt" >http://www.ietf.org/rfc/ rfc2119.txt</A></TD>
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[XML]</B></TD>  <TD vAlign="top" align="right" ><B>[XML]</B></TD>
<TD>T. Bray &amp; J. Paoli &amp; C. M. Sperberg-McQueen &amp; E. Maler &amp; F. Yergeau (eds). Extensible Markup Language (XML) 1.0 (Fifth Edition). W3C Recommendation 26 November 2008.<BR><A href="http:// www.w3.org/TR/xml/">http: //www.w3.org/ TR/xml/</A></TD>   <TD>T. Bray &amp; J. Paoli &amp; C. M. Sperberg-McQueen &amp; E. Maler &amp; F. Yergeau (eds). Extensible Markup Language (XML) 1.0 (Fifth Edition). W3C Recommendation 26 November 2008. <A href="http:// www.w3.org/TR/xml/">http: //www.w3.org/ TR/xml/</A></TD>
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[XML-SCHEMA]</B></TD>  <TD vAlign="top" align="right" ><B>[XML-SCHEMA]</B></TD>
<TD>H. S. Thompson &amp; D. Beech &amp; M. Maloney &amp; N. Mendelsohn (eds). XML Schema Part 1: Structures Second Edition.  
W3C Recommendation 28 October 2004.<BR><A href="http:// www.w3.org/TR/ xmlschema-1/ ">http://www.w3.org/ TR/xmlschema-1/</A></TD>   <TD>H. S. Thompson &amp; D. Beech &amp; M. Maloney &amp; N. Mendelsohn (eds). XML Schema Part 1: Structures Second Edition. W3C Recommendation 28 October 2004. <A href="http:// www.w3.org/TR/ xmlschema-1/ ">http://www.w3.org/ TR/xmlschema-1/</A></TD>
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[XML-SCHEMA- DT]</B></TD>  <TD vAlign="top" align="right" ><B>[XML-SCHEMA- DT]</B></TD>
<TD>P. V. Biron &amp; K. Permanente &amp; A. Malhotra (eds). XML Schema Part 2: Datatypes Second Edition.  
W3C Recommendation 28 October 2004.<BR><A href="http:// www.w3.org/TR/ xmlschema-1/ ">http://www.w3.org/ TR/xmlschema-2/</A></TD>   <TD>P. V. Biron &amp; K. Permanente &amp; A. Malhotra (eds). XML Schema Part 2: Datatypes Second Edition. W3C Recommendation 28 October 2004. <A href="http:// www.w3.org/TR/ xmlschema-1/ ">http://www.w3.org/ TR/xmlschema-2/</A></TD>
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[XML-NAME]</B></TD>  <TD vAlign="top" align="right" ><B>[XML-NAME]</B></TD>
<TD>T. Bray &amp; D. Hollander &amp; A. Layman &amp; R. Tobin &amp; H. S. Thompson (eds). Namespaces in XML 1.0 (Third Edition).   <TD>T. Bray &amp; D. Hollander &amp; A. Layman &amp; R. Tobin &amp; H. S. Thompson (eds). Namespaces in XML 1.0 (Third Edition). W3C Recommendation 8 December 2009. <A href="http:// www.w3.org/TR/xml-names/" >http://www.w3.org/TR/xml- names/</A></TD>
W3C Recommendation 8 December 2009.<BR><A href="http:// www.w3.org/TR/xml-names/" >http://www.w3.org/TR/xml- names/</A></TD>  
</TR>  </TR>
<tr>  <tr>
<TD vAlign="top" align="right" ><B>[XMPP-CORE]</B></TD>  <TD vAlign="top" align="right" ><B>[XMPP-CORE]</B></TD>
<TD>P. Saint-Andre (ed). Extensible Messaging and Presence Protocol (XMPP): Core.  
IETF RFC3920 October 2004.<BR><A href="http:// tools.ietf.org/ html/rfc3920" >http://tools.ietf.org/html/ rfc3920</A></TD>   <TD>P. Saint-Andre (ed). Extensible Messaging and Presence Protocol (XMPP): Core. IETF RFC3920 October 2004. <A href="http:// tools.ietf.org/ html/rfc3920" >http://tools.ietf.org/html/ rfc3920</A></TD>
</TR>  </TR>
</TBODY> </TBODY>
</TABLE> </TABLE>
</p> </p>

Note: Spaces may be added to comparison text to allow better line wrapping.