The Digital Media Project
INTEROPERABLE
DIGITAL RIGHTS MANAGEMENT
PLATFORM
Technical Specification, Phase II
9 February 2006
NOTICE
Use of the technologies described in this DMP Approved Document may infringe patents, copyrights or intellectual property rights of DMP Members or non-members. Under no circumstance shall DMP be held responsible for identifying any or all such rights.
Neither DMP nor any of its Members accept any responsibility whatsoever arising out of or in connection with the use of this DMP Approved Document and the information contained herein for damages or liability, direct or consequential.
This DMP Approved Document supersedes all previous versions and is subject to change without notice.
DMP is a non profit organisation registered in accordance to the laws of Switzerland.
Copyright © 2006 – The Digital Media Project
The Digital Media Project (DMP) is a non-profit Association registered in Geneva, Switzerland. Its mission is “to promote the successful development, deployment and use of digital media that respect the rights of creators and rights holders to exploit their works, the wish of end users to fully enjoy the benefits of digital media and the interests of value-chain players to provide products and services, according to the principles laid down in the Digital Media Manifesto” [10].
Membership in DMP is open to any corporation and individual firm, partnership, governmental body or international organisation. DMP does not restrict Membership on the basis of race, colour, sex, religion or national origin. By joining DMP each Member agrees, both individually and collectively, to adhere to open competition in the development of digital media technologies, products or services. DMP Members are not restricted in any way from designing, developing, marketing or procuring digital media technologies, hardware, software, systems or services. Members are not bound to implement or use specific digital media standards, recommendations and specifications by virtue of their participation in DMP.
The goals of DMP are realised by developing Technical Specifications, Technical References and Recommended Practices enabling businesses that support new or improved end-user experiences and Recommended Actions to appropriate entities to act on removal of barriers holding up exploitation of digital media. Technical Specifications, Technical References, Recommended Practices and Recommended Actions are collectively called "DMP Approved Documents" (AD).
DMP operates on the basis of open international collaboration of all interested parties: corporations and individual firms, partnerships, governmental bodies or international organisations, supporting the DMP mission and the means to achieve its goals. DMP ADs are developed according to the DMP Procedures of Work [11]. DMP seeks the involvement of creators and end users of Digital Media through appropriate mechanisms.
DMP ADs are publicly available documents whose copyright is retained by DMP. DMP contributes the results of its activities to appropriate formal standards bodies and other appropriate entities whenever this is instrumental to achieve the general DMP goals. Electronic copies of DMP ADs can be obtained free of charge from the DMP web site (http://www.dmpf.org/) or from the DMP Secretariat (secretariat@dmpf.org).
DMP has the intention to make ADs available in a form such that users can implement them either freely, or on a royalty-free basis or on fair and reasonable terms and non discriminatory (RAND) conditions following the IEC/ISO/ITU policy on IPR in international standards. When issuing Calls for Proposals DMP explicitly advises Respondents to the Calls of this policy. If DMP references an external standard or specification in a DMP AD, DMP expects that the same IPR policy, or a comparable one, has been adopted by the entity that produced the standard or specification.
However, it must be noted that DMP is not in a position to make any expressed or implied guarantee that licensing of any of the technologies relevant to any or all of its ADs can indeed be obtained either royalty free, or at RAND terms.
Media content has always played an important role in all societies and manifold technologies have been invented and deployed to provide means to store, distribute and consume it. The complexity of these technologies and the stimulus to provide ever-enhanced end-user experiences have created very complex media content value-chains populated by an increasing number of interacting intermediaries, each providing increasingly sophisticated services to the two extremes of the value-chains – creators and end users – as well as to the various intermediaries in between. Note that in DMP all players in the value chain – Creators, intermediaries and End-Users – are generically called Value-Chain Users or, simply, Users. Note that terms beginning with a capital letter are defined in the DMP Terminology [6].
Media value-chain technologies have been designed with two main purposes in mind: the first to provide or augment the end-user experience, and the second to provide or augment the capability to distribute media content. The latest round of technologies – the digital technologies – have augmented the end-user experience, e.g. by providing very high quality audio and video that does not deteriorate with time and use. Further digital networks have also dramatically increased the distribution potential of media content.
As a result the traditional means to manage the value of media content along the value-chain are rapidly losing their established meaning. This is the source of various difficulties and is the major cause of the poor exploitation of the potential of digital media technologies. Digital Rights Management (DRM) has been advocated by many as the set of technologies that can overcome these difficulties because Users are given the possibility to manage Content while it moves along the Value-Chain.
The Digital Media Project agrees that DRM has the potential to combine the benefit of digital technologies with the need for a virtuous circle that motivates Creators to continue creating because remuneration is facilitated by DRM technologies. However, DMP sees serious problems in the introduction of DRM technologies that are lacking Interoperability.
A DRM system can be described as a particular form of communication designed to provide controlled communication between two or more Users. Therefore the implementation of a DRM system may require a broad range of communication technologies. Unless these are designed in such a way as to enable communication of Content between two different implementations, DRM becomes an obstacle that prevent Users from having the seamless and rewarding communication that digital media technologies have enabled. This has particularly serious consequences in the case of the End-User because the lack of Interoperability detracts from the End-User experience and thus may seriously impede the take off of services designed to provide appropriate remuneration to relevant value-chain users.
Standards can bring benefits to the very special type of communication systems called DRM. However, the application of DRM standards obeys different rules because DRM is tightly connected to business practices. As the introduction of digital technologies is currently forcing changes in the way value-chain users conduct their business, it is hard to define today what kinds of standards are required, much less to forecast what kinds of standard will be needed in the future.
DMP approaches the problem of DRM Interoperability by specifying technologies – that DMP calls Tools – required to implement what DMP calls “Primitive Functions”. These are “smaller” functions obtained when the functions value-chain users perform when they do business between themselves are broken down into more atomic elements. It is expected that, while functions may undergo substantial changes as a consequence of the evolution of the media business in the value-chain, Primitive Functions will generally remain more stable.
Therefore DMP is not developing a universal “DRM standard” capable of providing interoperability between every variety of different Users in arbitrary Value-Chains or across different Value-Chains. DMP provides specifications of Tools enabling Primitive Functions along with examples of how Value-Chains serving specific goals can be set up using the standard Tools. DMP specifications are developed in phases, so as to achieve gradual development of standards technologies.
The DMP approach to DRM standardisation is based on the following process
1. For each phase Use Cases deemed to be significant are identified and documented;
2. Primitive Functions required to implement the selected Use Cases are singled out;
3. Requirements for Primitive Functions are developed through inputs from relevant Users;
4. Tools serving the needs represented by the Use Cases are standardised;
5. Calls for Proposals for Tools with the identified requirements are issued;
6. The Tools are selected and documented through an open process. DMP favours Tools that have already been developed, standardised or adopted by other bodies, possibly adapting them to DMP needs;
7. Specifications of how Tools can be assembled to implement the selected Use Cases are developed;
8. In subsequent phases, Calls for Proposals for additional Tools needed to support new Primitive Functions or additional functionalities of existing Tools are issued.
DMP calls the ensemble of all standardised DRM Tools “Interoperable DRM Platform (IDP)”. The IDP provides several major advantages:
1. The specifications are industry agnostic, i.e. Users are free to build a great variety of Value-Chains that suit their business models by combining the Tools appropriate for them;
2. The capabilities of a Value-Chain or new Value-Chains can be extended by adding more Tools, possibly through additional standardisation;
3. The cost to access standardised Tools may be reduce because in general Tools have multiple usages and may be provided by multiple suppliers;
4. Full interoperability can be achieved within a Value-Chain;
5. An enhanced degree of interoperability can be achieved between different Value-Chains;
6. Innovation can be continuously fed in the system.
In spite of the value DMP attaches to Interoperable DRM as the main digital media-enabling technology, DMP has noted that DRM has the potential to substantially alter the balance that has been in existence in the analogue world between different Users of Content, in particular when one of them is the End-User. If not appropriately remedied, this imbalance may lead to a significant reduction of the scope of Traditional Rights and Usages (TRU) of Users. A possible outcome is the outright rejection of the new technology on the part of some Users, in particular End-Users who will perceive the media experience in a DRM environment as inferior.
DMP is not claiming that an established TRU necessarily implies a right of a User to a particular Use of digital media but simply that, if Users have found a particular Use advantageous in the analogue domain, they are probably interested in continuing to exercise that Use in the digital domain as well. Leveraging upon this interest may provide multiple opportunities for new “Digital Media Business Models” that are attractive to Users but respectful of Rights Holders.
Therefore DMP intends to add technologies to its specifications to make the exercise of a broad range of TRUs technically possible. However, even a summary analysis shows that many TRUs have a legislative/regulatory impact that needs to be addressed by proper authorities. This can only be done within individual jurisdictions by determining which TRUs shall be mandated in Interoperable DRM Platforms operating under their jurisdiction and which TRUs can be left to private deals between Users. This is a challenging task because it requires blending knowledge encompassing the legal, social and economic fields with in-depth knowledge of the highly sophisticated and unusual DRM technologies.
DMP has produced the following ADs:
1. Chapter 1 – Value Chain Functions and Requirements [1]: a collection of Primitive Functions derived from today’s media value-chains with corresponding Requirements.
2. Chapter 2 - Architecture [2]: a general architecture that describes some of the digital extensions of today’s media value-chains and collects the basic assumptions and technologies underlying the establishment of IDP-enabled Value-Chains.
3. Chapter 3 – Interoperable DRM Platform [3]: a collection of technical specifications of basic Tools that are needed to implement Primitive Functions.
4. Chapter 4 – Use Cases and Value Chains [4]: a collection of all Use Cases along with normative specifications of examples of (portions of) Value-Chains implementing the Use Cases using the Tools drawn from the IDP Toolkit.
5. Chapter 5 – Certification and Registration Authorities [5]: a set of operational rules for Certification Authorities established to Certify Devices and DRM Tools, and Registration Authorities established to Assign Identifiers to Content, DRM Tools, Devices, Users and Domains.
6. Chapter 6 – Terminology [6]: a set of terms and corresponding definitions that are used throughout DMP ADs providedto overcome the problem of DRM being a new field that impacts many existing fields with their own established and sometimes conflicting terminologies.
In addition DMP is currently developing the following ADs:
7. Chapter 7 – Reference Software [7]: a software implementation of IDP Tools. DMP strives to provide the reference software as Open Source, with a license aligned to established practices. When this is not possible DMP provides the reference software with a “modify, use and distribute” license.
8. Chapter 8 – End-to-End Conformance [8]: a set of Recommended Practices that Value-Chain Users can reference to ascertain that the Tools employed by other parties conform to DMP Technical Specifications and Technical References.
9. Chapter 9 – Mapping of Traditional Rights and Usages to the Digital Space [9]: a set of example support of TRUs using DMP Tools possibly complemented by recommendations to appropriate authorities to enable the benefit of TRUs in a DMP-enabled world of digital media.
DMP is developing a series of specifications for Interoperable DRM called Interoperable DRM Platform (IDP) where each phase of the IDP specifications is indicated by a sequential number. The open IDP specifications enable Users to technically execute Functions using standard Protocols through standard Interfaces with predictable results.
Because there is such a broad variety of value-chains there can hardly be a “universal DRM system” to develop specifications for. Therefore it is expected that there will be a range of “implementations” of DRM systems designed to satisfy the needs of specific value-chain users. The DMP specifications can be used to realise the digital equivalent of the media value-chains that exist today, but also to make value-chains that have no obvious equivalent with today’s value-chains.
This unpredictable environment requires a different type of standardisation thanused for other standardisation efforts, e.g. video coding, that typically apply to well-defined environments. The DMP approach is based on protocols for lower-level functions (called Primitive Functions) between value-chain users. If Primitive Functions are well defined existing and possibly new Functions can be built as combinations of Primitive Functions. In the future new Functions could also be built using existing and new Primitive Functions.
This document documents the requirements upon which the Interoperable DRM specification has been developed. To achieve this, the following process – open to any party – has been invoked:
1. Ask a broad range of value-chain users to state their needs
2. Derive Functions from the stated needs
3. Develop requirements for implementing Functions
4. Identify prominent use cases used to focus the development of specifications
5. Issue Call for Proposals for technologies to implement Functions.
All documents produced at each of these steps have been made publicly available for comments on the DMP web site at http://www.digital-media-project.org/.
So far representatives of the following value-chain users have contributed to the process:
1. Civil Rights Associations
2. Association of People with Special Needs
3. Collective Management Societies
4. Device Manufacturers
5. Individuals
6. Producers
7. Public Service Broadcasters
8. Sheet Music Publishers
9. Telecommunication operators.
This document is work in progress as it is the starting point for the series of interoperable DRM specifications that DMP plans to develop. Those wishing to comment on or contribute to future versions of this Chapter 1 are requested to forward their submissions to Marc Gauvin (mgauvin@sdae.net). Submissions are typically discussed within the Ad hoc Group on Requirements for Interoperable DRM Platform, whose email reflector is idp-ied-rq@dmpf.org. To subscribe to the email reflector follow the instructions.
This Chapter 1 contains
1. The list of Value-Chain Users identified so far by DMP, and whose requirements the DMP expects to support (Chapter 2)
2. The list of General Requirements underpinning the DMP process (Chapter 3)
3. The table a Primitive Functions identified with indication of which IDP Phase supports the given Primitive Function (Chapter 4)
4. The full list of Functional Requirements of Primitive Functions (Chapter 5).
|
# |
Value-Chain User |
Acr. |
Definition |
|
1. |
Creator |
CRE |
A User who creates a Work and generates its first Manifestation |
|
2. |
Performer |
PRF |
A User who interprets a Manifestation of a Work making an Instance |
|
3. |
Registration Authority |
RAU |
A User managing Identifier name spaces, and appointing and overseeing Registration Agencies |
|
4. |
Registration Agency |
RAG |
A User appointed by a Registration Authority to Assign Identifiers |
|
5. |
Collective Management Society |
CMS |
A User who provides collective representation to its members, e.g. Authors, Performers, Publishers etc. |
|
6. |
Producer |
PRD |
A User who produces Content |
|
7. |
Publisher |
PBL |
A User who selects Content and makes it available to other Users |
|
8. |
Syndicator |
SND |
A User who manages and places Content to Retailers using a variety of purchasing options |
|
9. |
Metadata Resolution provider |
MRP |
A User who resolves, i.e. maps between disparate sets of Metadata |
|
10. |
Repository |
RPS |
A User who offers Services to long-term Store, Identify, describe, locate, Access, manage, and Validate Content and its Metadata |
|
11. |
Monitoring Service provider |
MNP |
A User who processes Use Data to provide information |
|
12. |
Marketer |
MKT |
A User who provides promotional, sale enhancement, brand enhancement and merchandising Services |
|
13. |
Aggregator |
AGG |
A User who provides procuring, packaging, presenting, cataloguing, archiving and indexing Services typically to Retailers |
|
14. |
Retailer |
RTL |
A User who sells or Licenses Content to an End-user |
|
15. |
Technology provider |
TCP |
A User who provides technology to make Devices |
|
16. |
Technology licensing provider |
TLP |
A User who provides Device Manufacturers with a license to utilise patented technology to make Devices |
|
17. |
Device Manufacturer |
DVM |
A User who manufactures or assembles hardware and/or software components to make Devices |
|
18. |
Connectivity provider |
CNP |
A User who provides point-to-point or point-to-multipoint connectivity between Users |
|
19. |
Network Service provider |
NTP |
A User who provides Internet Protocol (or equivalent) services and typically various other services above it, e.g. quality of service |
|
20. |
Tool provider |
TOP |
A User who sells or Licenses Tools to Users |
|
21. |
Certificate Authority |
CRA |
A User who issues digital Certificates used to create digital Signatures and public-private Keys |
|
22. |
Certification Authority |
CAU |
A User appointing and overseeing Certification Agencies |
|
23. |
Certification Agency |
CAG |
A User appointed by a Certification Authority to Certify Devices or DRM Tools |
|
24. |
Clearing House |
CLH |
A User who collects Value Expressions from other Users to distribute to Right Holders for the purchase of Use Rights over a given instance of Content |
|
25. |
Payment Service provider |
PSP |
A User who provides the infrastructure for financial transactions |
|
26. |
End-User |
ENU |
The last User in a Value-Chain |
|
27. |
Reseller |
RSL | A User who possesses the Right to control the disposition and transfer of Content from End-users to different End-users |
|
28. |
Public Authority |
PBA |
A User who provides rules relating to the Use of Content and taxation on transactions related to Content. |
|
1. |
The IDP shall be a “tool-kit” specification |
|
2. |
The IDP shall evolve in phases, each phase introducing new Tools keeping compatibility with the Tools of preceding phases |
|
3. |
The IDP shall be open to support all legitimate needs by · Value-Chain Users · Associations of People with Special Needs |
|
4. |
The IDP shall support Rights inheritance, i.e. that the set of Rights acquired by a given Value-Chain User is subject to the set of Rights that was available to the Value-Chain User granting the Rights |
|
5. |
The IDP shall support the ability of a given Value-Chain User to mask the Value-Chain Users supplying Services to it in support of the Services that it provides to its clients |
|
6. |
Licensing of technologies required to implement IDP tools shall be RAND and preferably royalty-free |
|
7. |
The IDP shall be designed in such a way that its use shall have a minimal impact on Users, ideally that its use should be transparent |
|
8. |
The IDP Tools must satisfy the relevant requirements expressed in this document |
|
9. |
All Entities must be capable of being uniquely and unambiguously Identified |
|
10. |
Information about Devices and Domains shall be restricted to the minimum required for these to operate in the DMP Environment |
The following table provides the current list of Primitive Functions grouped in categories. For each Primitive Function a cross in any of the last two right columns indicates whether or not it is currently specified and if so in which version of the Interoperable DRM Platform (AD #3). An X in both columns means that technology is provided by IDP-2 that adds to the technology already provided by IDP-1.
Table 1 – Primitive Functions
|
Category |
Primitive Function |
IDP#1 |
IDP#2 |
|
Represent |
|
|
|
|
|
Represent Identifier of Content |
X |
|
|
|
Represent Identifier of Device |
X |
|
|
|
Represent Identifier of User |
|
X |
|
|
Represent Identifier of Domain |
X |
|
|
|
Represent Identifier of DRM Tool |
|
X |
|
|
Represent Identifier of Footprint |
|
|
|
|
Represent Identifier of Class of Users |
|
|
|
|
Represent Identifier of Territory |
|
|
|
|
Represent Identifier of Jurisdiction |
|
|
|
|
Represent Content |
X |
X |
|
|
Represent Resource |
|
X |
|
|
Represent Metadata |
|
X |
|
|
Represent DRM information |
|
X |
|
|
Represent DRM Tool Body |
|
X |
|
|
Represent DRM Tool |
|
X |
|
|
Represent Rights Expression |
X |
X |
|
|
Represent Rights Data |
|
|
|
|
Represent Key Body |
|
X |
|
|
Represent Key |
X |
X |
|
|
Represent Device Information |
|
X |
|
|
Represent Domain Information |
|
X |
|
|
Represent Use Data |
X |
|
|
|
Represent Resource Format |
|
|
|
|
Represent Binarised XML |
|
|
|
Assign |
|
|
|
|
|
Assign Identifier |
|
|
|
|
Assign Metadata |
|
|
|
Revoke |
|
|
|
|
|
Revoke Content |
|
|
|
|
Revoke Content Element |
|
|
|
|
Revoke Device |
|
|
|
|
Revoke Domain |
|
|
|
|
Revoke User |
|
|
|
Authenticate |
|
|
|
|
|
Authenticate Content |
|
|
|
|
Authenticate Device |
X |
|
|
|
Authenticate DRM Tool |
|
X |
|
|
Authenticate User |
|
|
|
Verify |
|
|
|
|
|
Verify Content |
|
|
|
|
Verify Device |
|
|
|
Deliver |
|
|
|
|
|
Store |
|
|
|
|
Copy |
|
|
|
|
Move |
|
|
|
|
Backup |
|
|
|
|
Export |
|
|
|
|
Access |
X |
X |
|
|
Restore |
|
|
|
|
Import |
|
|
|
|
Update |
|
|
|
Manage |
|
|
|
|
|
Manage Domain |
X |
X |
|
|
Manage DRM Tool |
|
X |
|
|
Manage Use Data Confidentiality |
|
|
|
Package |
|
|
|
|
|
Package as File |
X |
|
|
|
Package as Broadcast |
|
X |
|
|
Package as Streaming |
|
X |
|
Process |
|
|
|
|
|
Encrypt/Decrypt |
X |
|
|
Pay |
|
|
|
|
Test Conformance |
|
|
|
|
|
Test Conformance of Rights Expressions |
|
|
|
|
Test Conformance of Enforcing Rights Expressions |
|
|
|
|
Test Conformance of Tamper resistance |
|
|
|
Certify |
|
|
|
|
|
Certify Content |
|
|
|
|
Certify Device |
|
|
|
|
Certify User |
|
|
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of Content so that it can be Processed by a Device |
|
Objective |
To enable accurate Governance of a Content Item |
|
Requirements |
1. Ability to provide unique and unambiguous identification of a Content Item 2. Ability to support versioning 3. Ability to extend the total number of Identifiers that can be Assigned in such a manner that previously Assigned Identifiers do not become obsolete 4. Ability to Identify Content by different Users to enable tracing the origin of Content when Licensed to other Users 5. Ability to Identify a Content Item for Use only within a specific Device or a Domain (e.g. a Broadcast Footprint, a company, a home) |
|
Benefits |
1. Flexible distribution schemes where different Content Elements may be supplied by different Providers 2. A given Content Element may be referenced in multiple parts of a Content Item 3. Multiple Content Items can refer to the same Content Element 4. Fine granularity of Rights Expressions. |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of a Device employed in a particular instance of Use so that it can be Processed by a Device |
|
Objective |
To enable various Device-related Functions such as · To support the association of a piece of Governed Content with a Device · To support Trust management |
|
Requirements |
· Ability to work in conjunction with existing industry schemes to administer customer/device-specific uses · Ability to extend the total number of Identifiers that can be Assigned in such a manner that previously Assigned Identifiers do not become obsolete · Ability to obtain Device capability information by reading the Device Identifier · Ability to support requirements for Domain Management |
|
Benefits |
· Allows reliable administration of Device-based Uses · Compatible with replacement strategies in cases where a Device is destroyed or otherwise replaced, or else used only for a period of time after which a different Device will be used. |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of a User in a particular instance of Use so that it can be Processed by a Device |
|
Objective |
To enable various User-related Functions such as License Content to an Identified User |
|
Requirements |
· Ability to support User Authentication · Ability to support Identification of any Value-Chain User · Ability to accommodate a variety of models for human interaction with Devices e.g.: o Allow a single User to use multiple Devices, o Allow multiple Users to share a single Device, o Allow the use of a confidential identity (e.g. prepaid card) · Ability to extend the total number of Identifiers that can be Assigned in such a manner that previously Assigned Identifiers do not become obsolete · Ability to access information related to the User that may be legally required for the provision of Content |
|
Benefits |
Depending on a given device's design, allows one User to employ multiple devices or allows multiple Users to use a single device |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of Domain so that it can be Processed by a Device |
|
Objective |
To enable Value-Chain Users to License Content to Identified groupings of Users and/or Devices |
|
Requirements |
· Ability to support the following types of Domains o Device-based o User-based o Location-based (e.g. DHCP) o Mixed Device, User and Location-based o Context-based § By reference to a legally established class of special users (e.g. students, people with special needs) · Ability to support a hierarchy of Domains |
|
Benefits |
Enable more Uses of Content by Identifying groupings of Users and/or Devices instead of just individual Users or Devices |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of executable code or hardware device that implements one or more DRM Functions on a Device so that it can be Processed by a Device |
|
Objective |
To facilitate Authentication of DRM Tools |
|
Requirements |
Ability to Identify individual DRM Tools Ability to Identify groups of DRM Tools as an Entity (Tool Group) Ability to Identify complete DRM Systems (Tool Packs) |
|
Benefits |
· To obtain and classify DRM Tools · To Authenticate DRM Tools |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of a primary broadcast distribution area so that it can be Processed by a Device |
|
Objective |
To enable Devices to Use Content intended for a particular Footprint |
|
Requirements |
Unique and unambiguous identification of a particular Footprint |
|
Benefits |
Enable Usage of Content within a particular Footprint |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of a particular class of Users so that it can be Processed by a Device |
|
Objective |
To enable Devices to Use Content intended for a particular class of Users |
|
Requirements |
Unique and unambiguous identification of a particular class of Users |
|
Benefits |
Enable Usage of Content within a particular class of Users |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of a particular geographical area so that it can be Processed by a Device |
|
Objective |
To enable Devices to Use Content intended for a particular Territory |
|
Requirements |
Unique and unambiguous identification of a particular Territory |
|
Benefits |
Enable Usage of Content within a particular Territory |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the identity of a particular Jurisdiction so that it can be Processed by a Device |
|
Objective |
To enable Devices to Use Content intended for a particular Jurisdiction |
|
Requirements |
Unique and unambiguous identification of a particular Jurisdiction |
|
Benefits |
Enable Usage of Content within a particular Jurisdiction |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the organisation and association of Content and Content Elements so that it can be Processed by a Device |
|
Objective |
To enable a predictable processing of Content and Content Elements according to the purposes of the Content Item design, i.e. to Represent the Governed Use of Work, Manifestation, Instance, Production, DRM Tool etc. |
|
Requirements |
· Ability to provide persistent association of Identifiers to Content and Content Elements · Ability to include Clear-text and Encrypted Identifiers, Content and Content Elements in a Content Item · Ability to apply Licenses to different Content Elements in a Content Item · Ability to Use individual Content Elements in a Content Item · Ability to associate to a Content Item Content Elements Stored at locations remote from each other · Ability to support temporary and permanent unavailability of Content Elements · Ability to Represent Content in a Delivery-System agnostic format · Ability to convey information related to § Key management § Encryption methods § Watermarking § Etc. |
|
Benefits |
· Standard format to securely communicate Resources and Governance information for Use · Multiple Uses of the same Resources (e.g. possibility to create multiple play lists) · Different Licenses for the same Content and/or Content Elements · Easy navigation · Easy repurposing |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the format of a Resource so that it can be Processed by a Device |
|
Objective |
To enable a Device to interpret the Representation so that the Resource can be Used |
|
Requirements |
· To be as simple as possible · To be as expressive as required |
|
Benefits |
Use of Resources by Devices |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe features and attributes associated with Content and Content Elements or Devices so that it can be Processed by a Device |
|
Objective |
· Facilitate interaction between Users for a plurality of purposes, e.g. o Classification o Description o Search and retrieval o Presentation o Etc. · Enable best Use of Content on Devices |
|
Requirements |
· Ability to support existing Metadata standards · Ability to signal the standard in use · Ability to employ a minimal Metadata standard set for End Users · Ability to describe Device features and capabilities |
|
Benefits |
Allow for an effective interchange of Content between Users and optimal Use of Content and Devices |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe Governance of Content so that it can be Processed by a Device |
|
Objective |
To enable a Device to interpret the information so that Content can be Used as determined by its Governance |
|
Requirements |
Ability to represent · DRM Tools required to Access Content · Initialisation and configuration data for DRM Tools · Decryption Keys · Information related to DRM Tool Management · Placeholders for Licenses |
|
Benefits |
Enable Content Governance by Devices |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the specific information used to describe DRM Tool embodiments used so that they can be Processed by a Device |
|
Objective |
To enable a Device to execute DRM Functions specific of a given Content Item |
|
Requirements |
· Ability to Represent a single Tool Body · Ability to Represent a Tool Pack Body |
|
Benefits |
Extend the number and scope of DRM Functions that a Device can execute |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the specific information used to describe the environment in which DRM Tools will operate so that they can be Processed by a Device |
|
Objective |
To provide the Device with the means to perform the required DRM functionality |
|
Requirements |
The Representation shall include: · Tool ID · DRM Processor type, including o Vendor o Model o Serial number · Target OS including o Vendor o Model o Serial number o Version o Virtual machine · CPU o Vendor o Model o Speed · Memory o Vendor o Model o Speed o Size · Auxiliary hardware o Smart card o Hard Key · Network · Downloading · RPC mechanism · Firmware · Tool API configuration o Instantiation API ID o Messaging API ID · Target HW · Format e.g. zip · Tool source · Authentication parameters · Update schedule info · Tool Validation info · License info · Others |
|
Benefits |
Upgradeable Device capable of executing multiple DRM functionalities |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe Permissions and Conditions so that it can be Processed by a Device |
|
Objective |
To allow conditional Use of Content, based on the Conditions being satisfied or fulfilled |
|
Requirements |
· Ability to interpret a Rights Expression o Without a return channel o With low payload o On a wide array of Device sophistication · Ability to unambiguously Identify o The User granting the Permission o The Device, User or Domain obtaining the Permission o The Content and Content Elements to which the Rights Expression refers · Ability to utilise (Rights data dictionary) o A User selectable Rights data dictionary o A minimal default Rights data dictionary · Ability to Represent (Permission sets) o Different subsets of Permissions o New Permissions when the need occurs · Ability to Represent (specific Permissions to Content) o Conditional expiry (e.g. Content may no longer be Used if Stored for longer than a determined period without Use) o One Rights Expression to many Content Elements o Many Rights Expressions each referring to a different Content Element § In particular a Content Item can have no Rights Expression (i.e. a Device can Use the Content without limits) o Content Uses e.g. § Period of time (e.g. play as long as the play time is greater than specified time and less than a specified time) and based on time/date § Count based (play up to a specified number of times) § User based § Device based § Domain based § Location based o Rights Expressions with Context Use limitations, e.g. age of End-User · Ability to support Delivery by: o Streaming o Broadcast o File download o Physical media · Ability to support (Conditions) o Territories o Jurisdictions o Footprints o Domains o Devices o Users o IP Entities · Ability to support (Functions) o Not to Encrypt clear-text Resources o Quote o Time-shifted Use o Annotation o Trick modes o Move/Copy § Between Devices § Within Domain § Within Footprint o Export to a movable media · Ability to support (Content types) o Reference to different IP Entities o Addition of Metadata o Use of the following types of Resources: audio, video, images, text and executables and groups/bundles thereof o Access of Content based on Rating (e.g. suitability for age) o Rights to segments of Content o Many Rights Expressions each referring to particular Content Elements of a Content Item · Ability to support (Rights of Users) o Ability to represent the sets of Rights pertaining to all Users e.g. Authors, Performers, Producers, Aggregators, Distributors, etc. o The Right of a User to License another User o Restriction to a class of Users o Multiple Licensors · Ability to support dynamic creation of Rights Expressions as a result of interaction between Users |
|
Benefits |
Potentially allow the full range of human contractual agreements to be embodied in the digital domain, especially including automatic processing of agreements that are stated in rigorous forms |
|
|
Detailed description of Requirements |
|
Definition |
The semantics of the data used in Permission and Conditions so that they can be interpreted by a Device in a predictable way |
|
Objective |
To enable a device to perform the Functions in an agreed and predictable way |
|
Requirements |
· Provide the semantics for the following: o Adapt (Resource) § Conversion of compression method § Video resolution § Sampling frequency o Backup o Copy o Edit o Encrypt o Export o Import o Move o Quote o Restore o Space-shifted Use o Store o Synchronise o Time-shifted Use o Transfer to an external rendering device o Etc. |
|
Benefits |
· Users have assurance that Devices behave predictably. · Essential input for conformance testing. |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe Keys and associated parameters so that it can be Processed by a Device |
|
Objective |
To provide a Device with the necessary information to utilize a Key |
|
Requirements |
· Ability to represent o Time dependent/independent Keys o Association of Keys to particular time segment of a Resource o Key type and related data (e.g. Authentication, Certificates, etc.) o Set of Key types |
|
Benefits |
The ability to use multiple Keys and Key Management schemes |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the capabilities of a Device to perform Functions so that it can be Processed by a Device |
|
Objective |
To describe the capability of a Device |
|
Requirements |
· To identify Device capabilities, e.g. o Capability to Process (e.g. Render) certain Resource Types o Capability to determine the applicability of certain Rights Expressions o etc. |
|
Benefits |
The ability to Access Content that is suitable for the Device |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the attributes of a Domain so that it can be Processed by a Device |
|
Objective |
To describe the minimum set of attributes of a Domain that is required to License Content for that Domain |
|
Requirements |
· The Representation shall include o Information about when the Domain was created o Domain Identifier o Domain Public and Private Keys o Domain Administrator’s name and password o List of Devices/Users in the Domain o Maximum number of Devices/Users o List of Revoked Devices/Users o Expiration date of Domain · The Representation may optionally include o Type of Devices o Maximum frequency of Devices/Users leaving and joining |
|
Benefits |
· For the Content Provider the ability to determine proper Licensing of its Content · For the End-User the ability to obtain Content for Use within his Domain |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the elements making up one or more instance of Use of Content, Device or User so that it can be Processed by a Device |
|
Objective |
To enable processing of Use Data in a predictable fashion |
|
Requirements |
· Ability to Identify Use Data · Ability to support protection of Use Data · Ability to convert Use Data to a human readable form · Ability to not Identify User or Device associated with Use Data · Ability to Represent a wide range of Content Uses e.g. time of Use, combinations of Content Items, Domains, Superdistribution Uses |
|
Benefits |
Provide a machine-processable record of Uses |
|
|
Detailed description of Requirements |
|
Definition |
The syntax of the information used to describe the format of Resources so that it can be Processed by a Device |
|
Objective |
To provide the means to Access Content containing suitable Resources for the Device |
|
Requirements |
· The ability to express relevant parameters in a Resource format o Compression algorithm used o Video resolution o Bitrate used for encoding o Audio sampling frequency o Number of channels o Etc. |
|
Benefits |
To facilitate Access to Content To be able to Access Content that is suitable for the Device |
|
|
Detailed description of Requirements |
|
Definition |
The efficient Representation of XML data |
|
Objective |
To save memory, transmission and processing capabilities when handling XML documents |
|
Requirements |
· To reduce the amount of information required to express an XML structure to a minimum · To allow for a lossless conversion between an XML structure its binary representation and the reconverted XML structure · To make processing of a binarised XML structure at least as easy to process as the original XML structure |
|
Benefits |
Better use of computing and transmission resources |
|
|
Detailed description of Requirements |
|
Definition |
The Function performed by a User when Assigning an Identifier to Identifiable Entities, e.g. Content, Content Elements (License and DRM Tool), Device, Domain and User |
|
Objective |
To associate data, e.g. a number, to Entities in a unique and unambiguous fashion |
|
Requirements |
To Assign Identifiers according to the rules laid down by the Registration Authority as implemented by the Registration Agency so that there exists a unique, unambiguous, persistent and trusted correspondence between the Identifier and the Entity it Identifies |
|
Benefits |
Form trusted relationships (i.e. Authenticate) by providing Users with the ability to Identify Entities such as Content, Content Elements (License and DRM Tool), Device, Domain or User. |
|
|
Detailed description of Requirements |
|
Definition |
The Function performed by a User when describing Entities within a DCI |
|
Objective |
To facilitate search for and Use of Content Entities |
|
Requirements |
· Ability to support the need of different Users to Assign Metadata that have mandatory descriptive fields, e.g.: o Author o Title o Genre of Authorship o Date of Creation of Work o … · Ability to facilitate cataloguing of Content for distribution to professional Users |
|
Benefits |
Secondary means to identify Entities |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a User ceases to recognise a Content Item |
|
Objective |
To prevent the further Use of a Content Item |
|
Requirements |
· Content must be Identified |
|
Benefits |
To discontinue Use of a Content Item, e.g. when the Content Item has been found unsuitable for distribution |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a User ceases to recognise a Content Element |
|
Objective |
To prevent the further Use of a Content Element |
|
Requirements |
· Content Element must be Identified |
|
Benefits |
To discontinue Use of a Content Element, e.g. when the Content Element is faulty |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a User ceases to recognise a device as a Device |
|
Objective |
To prevent the further Use of the Device |
|
Requirements |
· Device must be Identified |
|
Benefits |
To discontinue Use of a Device, e.g. when the Device has been compromised |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a Domain Manager ceases to recognise a Domain |
|
Objective |
To prevent the further operation of the Domain |
|
Requirements |
· Domain must be Identified · Devices or Users belonging to the Domain must be Identified |
|
Benefits |
To discontinue operation of a Domain, e.g. the Devices have been compromised |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a User ceases to recognise a device as a User |
|
Objective |
To prevent the further Use of Devices or Content by a User |
|
Requirements |
· User must be Identified |
|
Benefits |
To discontinue Use of Devices by a User, e.g. when the device representing the User has been compromised |
|
|
Detailed description of Requirements |
|
Definition |
The Function of proving the identity of a Content Item to a Device |
|
Objective |
To make sure that a Device Accesses the intended Content Item |
|
Requirements |
· Content must be Identified · Content must be Signed or Hashed |
|
Benefits |
To enable a Device to Use the intended Content |
|
|
Detailed description of Requirements |
|
Definition |
The Function of proving the identity of a Device to another Device a User or Domain. E.g. · A LPD Authenticates a DMD |
|
Objective |
To make sure that Content is Used by the intended Device |
|
Requirements |
· Device must be Identified · Ability to support different levels of Authentication |
|
Benefits |
To enable Content Uses on identified Devices |
|
|
Detailed description of Requirements |
|
Definition |
The Function of proving the identity of a DRM Tool to a Device |
|
Objective |
To make sure that the Content is processed by the intended DRM Tool |
|
Requirements |
· DRM Tool must be Identified |
|
Benefits |
Correct handling of Content Management and Protection |
|
|
Detailed description of Requirements |
|
Definition |
The Function of proving the identity of a User to a Device another User or Domain |
|
Objective |
To make sure that the User is the intended User |
|
Requirements |
· Shall support multiple protocols for the authentication of Users · Outside of DMP scope |
|
Benefits |
To enable Content Uses by identified Users |
|
|
Detailed description of Requirements |
|
Definition |
The procedure to detect corruption or loss of part of the Content |
|
Objective |
Delivery of the correct Content |
|
Requirements |
· Ability to detect that there is corruption or loss of part of the Content |
|
Benefits |
To assure Content Integrity and support Trust Management in the case of DRM Tools |
|
|
Detailed description of Requirements |
|
Definition |
The procedure to detect corruption of part of the software of a Device |
|
Objective |
To support Trust Management with a Device that may be remote from a User |
|
Requirements |
· Ability to detect whether there is corruption of the Device software |
|
Benefits |
The ability to support Trust Management with a Device that may be remote from a User |
|
|
Detailed description of Requirements |
|
Definition |
The Function of generating a human-perceivable signal from a Resource |
|
Objective |
To enable human perception of Content |
|
Requirements |
· A protocol to Deliver Content to a Device for Rendering |
|
Benefits |
To allow the Delivery of a Resource to the intended Rendering Device for human enjoyment in a way that was intended by the Rights Holder |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which Device A Delivers Content to Device B for the purpose of retaining it in Device B for possible Use at a different point in time |
|
Objective |
Allow a Device to retain Content and/or Resources for future Use |
|
Requirements |
· A protocol, including the point-to-multipoint case · The protocol should be secure · The protocol should lend itself to efficient implementations on a wide variety of Devices |
|
Benefits |
The User can Use a Content for a longer period of time as per License |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which Device A Stores Content in Device B, preserving the original Content in Device A |
|
Objective |
· To enable more use of the same Content Item · To Copy or Move as per Rights Expressions. · To accomplish the transfer of a piece of Governed Content between Devices |
|
Requirements |
· A protocol, including the point-to-multipoint case · The protocol should be secure · The protocol should lend itself to efficient implementations on a wide variety of Devices |
|
Benefits |
Allow controlled Copy of Content |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which Device A Stores Content in Device B deleting the original Content in Device A |
|
Objective |
· To enable more use of the same Content Item · To Move as per Rights Expressions. · To accomplish the transfer of a piece of Governed Content between Devices |
|
Requirements |
· A protocol, including the point-to-multipoint case · The protocol should be secure · The protocol should lend itself to efficient implementations on a wide variety of Devices |
|
Benefits |
Allow controlled Move of Content |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a Device can Copy a Content Item (in case the Rights Expression is a Stateless Rights Expression) to and from a Device where the Content Item is not for Use, e.g. for the purpose of later Restoring the Content Item. |
|
Objective |
To be able to backup/restore Content to and from an external device |
|
Requirements |
Backup requires that the Backup does not result in a second usable copy. |
|
Benefits |
· To be able to make room for Governed Content in a Device without losing permanently the Governed Content that is removed from the Device. · Not to lose the Content in case of Device failure. |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a Device makes available a Content Item for use by a non-DMP DRM system. |
|
Objective |
To enable use of a Content Item outside of an Environment. |
|
Requirements |
· A protocol to communicate with a non-DMP DRM system. This includes, as a minimum, a means to identify non-DMP DRM systems · In the event the other DRM system is not capable of accepting the encryption used the protocol should be capable of Decrypting and Exporting cleartext Resources, Metadata and Licenses so that it may be re-encrypted as required by the target DRM system. · A Secure Authenticated Channel (SAC) |
|
Benefits |
A Rights Holder has the ability to extend the range of use of their Content to other governed environments. |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which Device A obtains Content from Device B so that Device A can execute Functions |
|
Objective |
To enable a Device to process Content |
|
Requirements |
· Access Content via file download, broadcast and streaming |
|
Benefits |
Access to Content via an array of delivery mechanisms |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a Device can Copy a Content Item (in case the Rights Expression is a Stateless Rights Expression) to and from a Device where the Content Item is not for Use, e.g. for the purpose of later Restoring the Content Item. |
|
Objective |
To be able to backup/restore Content to and from an external device |
|
Requirements |
Backup requires that the Backup does not result in a second usable copy. |
|
Benefits |
· To be able to make room for Governed Content in a Device without losing permanently the Governed Content that is removed from the Device. · Not to lose the Content in case of Device failure. |
|
|
Detailed description of Requirements |
|
Definition |
The Function by which a Device accesses a piece of content governed by a non-DMP DRM system. |
|
Objective |
To enable Use of a piece of governed content by a Device. |
|
Requirements |
· A protocol to communicate with a non-DMP DRM system. This includes, as a minimum, a means to identify non-DMP DRM systems · The protocol should be capable of obtaining Clear-text Resources, Metadata and Licenses so that these may be re-encrypted as required by the Environment. · A Secure Authenticated Channel (SAC) |
|
Benefits |
Enables Environments to be populated with governed content from sources outside of DMP. |
|
|
Detailed description of Requirements |
|
Definition |
The means by which a Content Item may replaced by a new Content Item |
|
Objective |
Allow for Content to be Governed dynamically |
|
Requirements |
· Associate Content with License · Associate Content with DRM Tool |
|
Benefits |
· Enhanced flexibility in implementing Content Delivery and Use |
|
|
Detailed description of Requirements |
|
Definition |
Procedures to manage a set of Devices such that only those Devices can Use the Content Licensed to the Domain |
|
Objective |
To enable groups of Devices and/or Users e.g. belonging to a family to Use the same Content on any of the Devices in the group |
|
Requirements |
· Users with an authorised entitlement (Administrator) shall be able to fully control Domain membership and Content distribution. · Setting up a Domain, including the ability to distribute Rights Expressions that can only be used by Devices in the Domain · Joining a Domain · Authorising entry to a Domain · Leaving a Domain · Directing to leave a Domain, including the ability to exclude a Device so that it cannot process Rights Expressions associated with the Domain after the time of exclusion · Users without an authorised entitlement shall not be able to obtain confidential information related to the Domain · A Domain shall be configurable to permit a variety of distribution options between Devices belonging to the Domain, e.g. superdistribution of Content to Devices belonging to a sub-Domain within the Domain (e.g., specialized interest groups). |
|
Benefits |
Enables content distribution to be both very wide and very specific, supporting many possible business models. |
|
|
Detailed description of Requirements |
|
Definition |
Procedures to manage the communication of DRM Tools between themselves and a DRM Processor (parties) to enable a Device to Process Governed Content |
|
Objective |
To enable Use of a local or external DRM Tool by a Device |
|
Requirements |
It shall be possible for a DRM Tool to require: · To be informed of all the other DRM Tools operating at any time · To be notified when a new DRM Tool is instantiated · To be informed that a particular event occurs · The instantiation of another DRM Tool · The termination of another DRM Tool · The communication of the results of a DRM Tool · The exchange of a License or any part of it between two parties · The exchange of a Decryption Key along with associated information (i.e. timing) about its use between two parties · The mutual authentication with a party · The display of information to a User and the request for a User input |
|
Benefits |
To allow enhanced flexibility in the adoption of DRM technologies in Content Delivery and Use |
|
|
Detailed description of Requirements |
|
Definition |
The means to allow User A to negotiate the way User B will utilise acquired User and Use Data of User A |
|
Objective |
To let two Users determine how the information acquired during their interaction can be further utilised |
|
Requirements |
· Mechanism for protection of Use Data · Ability to decide the utilisation of Use Data |
|
Benefits |
Allows User confidence that their privacy will be protected, simultaneously allowing Providers to gain knowledge from User and Use Data to the extent this is agreed. |
|
|
Detailed description of Requirements |
|
Definition |
The Function of processing Content for the purpose of delivering it between Devices as File |
|
Objective |
To ensure proper delivery of Content as File |
|
Requirements |
· Minimum overhead compared to Content · The Content should be efficiently retrievable |
|
Benefits |
Ability to Deliver Content between Devices |
|
|
Detailed description of Requirements |
|
Definition |
The Function of processing Content for the purpose of delivering it between Devices as Broadcast |
|
Objective |
To ensure proper delivery of Content as Broadcast |
|
Requirements |
· Minimum overhead compared to Content · The Content should be efficiently retrievable · Transport of Content should be efficient and timely (e.g. an End-User should not have to wait for a long time before Using Content) |
|
Benefits |
Ability to Deliver Content between Devices |
|
|
Detailed description of Requirements |
|
Definition |
The Function of processing Content for the purpose of delivering it between Devices as Stream |
|
Objective |
To ensure proper delivery of Content as Stream |
|
Requirements |
· Minimum overhead compared to Content · The Content should be efficiently retrievable · Transport of Content should be efficient and timely (e.g. an End-User should not have to wait for a long time before Using Content) |
|
Benefits |
Ability to Deliver Content between Devices |
|
|
Detailed description of Requirements |
|
Definition |
Methods used to hide portions or totality of Content Elements |
|
Objective |
To prevent a User from Using Content, Resources or Fragments of Resources |
|
Requirements |
· Suitably flexible for a wide variety of Content · Efficiently implementable on a wide range of Devices · Based on Encryption Algorithms that are: o publicly disclosed o subject to constant scrutiny and evaluation by the worldwide cryptographic community o supporting stream and bulk ciphers o considered as secure o in broad use · The appropriate consideration of export restrictions. · Encryption methods that allow decryption by Devices with different processing capabilities · Support o Facilitate efficient prefetch and decryption of child resources. o Efficient random access to content blocks for all linear content types |
|
Benefits |
To protect Content and Rights Expressions from being read by unintended Users |
|
|
Detailed description of Requirements |
|
Definition |
Providing Use, User, Device and Governed Content information to a payment system external to an Environment |
|
Objective |
To enable flexible payment systems such as subscription, pre-payment or transaction-based payment by a single Device, a Domain or a User. |
|
Requirements |
· The ability to support multiple payment methods and mechanisms |
|
Benefits |
Automated payment |
|
|
Detailed description of Requirements |
|
Definition |
Checking that a Rights Expression is interpreted and provides the output as intended by the originator of the Rights Expression |
|
Objective |
To test conformance of the engine interpreting the Rights Expressions |
|
Requirements |
Device conformance shall be assessed and regulated according to industrial compliance regime |
|
Benefits |
It is essential for a Rights Holder that a Device will correctly interpret Rights Expressions. |
|
|
Detailed description of Requirements |
|
Definition |
Checking that the Functions corresponding to the output are executed as intended |
|
Objective |
To test conformance of the engine executing the Rights Expressions |
|
Requirements |
Device conformance shall be assessed and regulated according to industrial compliance regime |
|
Benefits |
It is essential for a Rights Holder that a Device will correctly execute the interpreted Rights Expressions. |
|
|
Detailed description of Requirements |
|
Definition |
Defining the levels of tamper resistance and the methods to be used when an implementation is put under test for tamper resistance to determine such levels |
|
Objective |
To test the robustness of a Device to attacks |
|
Requirements |
|
|
Benefits |
It is essential for a Rights Holder that a Device is implemented in a way that makes it difficult for an attacker to tamper with it. |
|
|
Detailed description of Requirements |
|
Definition |
The issuance of a statement that a given Content Item is conformant to the DMP specifications (either through Certified Content Creation Device or Authority and corresponding Agency) |
|
Objective |
To provide the means to assure when required that a Content Item is indeed Content |
|
Requirements |
· Content conformance testing tools · Procedures to Certify Content |
|
Benefits |
To guarantee system integrity |
|
|
Detailed description of Requirements |
|
Definition |
The issuance of a statement by an authority that the claim by a device to be a Device is guaranteed |
|
Objective |
To make sure that Governed Content is Used by a Device |
|
Requirements |
· Device conformance testing tools · Procedures to Certify Devices |
|
Benefits |
To provide a guarantee that a Content Item is Used by a Device |
(Currently outside of DMP)
|
|
Detailed description of Requirements |
|
Definition |
The issuance of a statement by an authority that the claim by a device (e.g. smart-card) to represent User is guaranteed |
|
Objective |
To make sure that Governed Content is Used by a User |
|
Requirements |
· Procedures to Certify Users |
|
Benefits |
To provide a guarantee that a Content Item is Used by a User |
To facilitate or enable use of content by end-users, there is often the need for a string of intermediaries whose job is to make sure that content, once created, is packaged and delivered to end-users for consumption. Because intermediaries typically exchange and add value in a chain they, including creators and end-users, are also called value-chain users or, simply, users. Particularly with the use of digital technologies value-chain users tend to operate in a network and the name value-network is also used to indicate such a “non-sequential” relationship between intermediaries. In this document, however, the still more common word “value-chain” will be used.
This document contains a high-level description of the operation of a generic media value-chain based on the assumption that those who hold rights associated with content moving along the value-chain wish to retain control of the use of that content. This type of content is called “governed” content.
The description can be considered as an architecture that is shared by value-chains handling governed content. The architecture has been designed to be capable of supporting value-chains that are by and large digital extensions of today’s analogue value-chains, even though digital value-chains can be vastly different from today’s media value-chains whose origins are rooted in the prehistory of analogue media. DMP may reconsider this architecture if and when new intrinsically digital value-chains will emerge that cannot be supported by the current architecture or its extensions.
Please note the following general remarks:
1. In this document words beginning with a capital letter have the meaning defined in Chapter 6 – Terminology;
2. The DMP architecture provides a broad view that serves to illustrate how Governed Content carrying Intellectual Property (IP) is generated, passed on through the Value-Chain and eventually consumed;
3. The term User or, when stressing the importance of his role in a Value-Chain is required, Value-Chain User, will be employed to indicate a Creator, an intermediary or an End-User;
4. Chapter 3 – Interoperable DRM Platform provides elementary technologies (“Tools”) in the form of an Interoperable DRM Platform (IDP) that can be employed to set up Value-Chains that handle Governed Content in an Interoperable way;
5. DMP specifications only address interoperability of the so-called DRM-layer, i.e. issues related to media coding and below (e.g. transport layer) are not addressed.
6. DMP is continually extending the scope of the architecture and adding new Tools to the IDP toolkit.
This Chapter 2 provides:
1. A walkthrough exercising the main elements of Value-Chains enabled by the Tools specified in Approved Documents No. 3 and the steps required to set up Value-Chains, including the principles of operation of Authorities and Agencies in charge of Certification and Registration specified in Chapter 5;
2. A series of models:
a. Creation Model identifying the major entities for which IP is attributed and describing their relationship to the digital objects involved in Content Creation;
b. Distribution Model identifying and describing the role of the principal Value-Chain Users engaged in distribution;
c. Delivery Model describing the two basic ways – File and Stream – in which Content can be Delivered between Devices;
d. DRM Tool Model describing the general operation of DRM Tools in Devices;
e. Device Model identifying and describing the principal Devices employed by Value-Chain Users;
f. Domain Model describing the operation of Domains of Devices and Users;
g. Import/Export Model describing how governed content can be converted to Governed Content and vice versa;
h. Data Model identifying and describing the different types of Data specified by DMP.
3. A summary description of the Tools specified by IDP-2.
Reading the Foreword of this Approved Document is a prerequisite for a proper understanding of this and other Approved Documents. It is also highly recommended that this document be read before delving in Chapter 3 – Interoperable DRM Platform (IDP) [ REF _Ref100641452 \r \h 3].
A Value-Chain is a group of interacting Users, connecting (and including) Creators to End-Users with the purpose of Delivering Content to End-Users. As indicated in the Figure below the main components are
1. Creation (including Adaptation)
2. Instantiation
3. Production
4. Content Provisioning
5. Service Provisioning
6. Consumption

Figure 1 – Value Chain
Note that dotted arrows mean that the output of a User can be Used by the same type of User to make Resources Representing the same type of IP Entity.
A Creator makes a Work that may be performed (“Instantiated”) by a performer and Used by a Producer to make a product – typically a combination of Resources – to be distributed by Content and Service Providers.
For proper management in a Value-Chain it is useful to combine different types of Resources with different types of Metadata and possibly other information types. DMP calls this combination Content. For the purpose of Using Content on Devices, Content has to be digitally Represented. DMP calls such digitally Represented Content, DMP Content Information (DCI).
A User wishing to express conditions to Use a Content Item can associate a License to it Granting Permissions under specified Conditions. The party Granting Permissions is referred to as Licensor and the party receiving them is referred to as Licensee. Chapter 3 supports the case in which the Licensee is
1. A Device
2. A User
3. A Domain.
A User who does not wish to express Conditions to Use a Content Item can do so by Releasing it without a License.
4. To enable a Device to interpret Permissions without human intervention, DMP uses a machine readable language called Rights Expressions Language (REL).
To support different business models Chapter 3 allows a License to be:
· Bundled within the Governed Content (i.e. it is part of the DCI)
· Not Bundled within the Governed Content (i.e. the DCI references an external License).
Chapter 3 allows other Content Elements in the DCI (e.g. Resources) to be in-line or referenced.
The Content Elements in Governed Content can either be in a form that allows immediate Processing, e.g. for Rendering by a Device (so-called Clear-text) or in a protected (i.e. Encrypted) form. To this end Chapter 3 provides various means to convey Keys and related DRM information.
Chapter 3 provides a basic selection of Encryption Tools that can be employed in restricted-capability Devices such as Portable Audio and Video (PAV) Devices (i.e. Devices without direct access to network). However, to support a broader range of applications such as those enabled by Stationary Audio and Video (SAV) Devices (i.e. Devices with network or broadcast access), Chapter 3 also provides the means to Represent in a DCI blocks of executable code (called DRM Tools or DRM Tool Packs) that are required to Process various types of Governed Content.
XML is the technology selected by DMP to Represent Content. XML is very powerful and flexible but Content Represented by means of XML can easily become bulky and unwieldy. Therefore DMP has selected an XML binarisation technology that not only reduces the size of a DCI but also allows simpler Processing in a Device without loss of information.
To Deliver Content between Device Entities it is necessary to Package a DCI (in binary form) and its referenced Resources. Chapter 3 supports 2 forms of Delivery:
1. As File. This is called DMP Content File (DCF);
2. As Stream. This is called DMP Content Broadcast (DCB) in the case of an MPEG-2 Transport Stream, and DMP Content Streaming (DCS), in the case of Real Time Protocol on Internet Protocol.
In general Users require Devices to perform the Functions proper of their role in the Value-Chain. To entrust his Content to a Device, however, a Rights Holder must have assurance that the Device will execute Functions according to Chapter 3. This is achieved by having the Device Certified.
Chapter 5 specifies how this task is performed by a number of organisations (Certification Agencies) that are properly appointed and overseen by a single root authority (Certification Authority). DMP appoints the Certification Authority after approving the Authority’s Certification policies. The figure below depicts this three-layer arrangement.

Figure 2 – Authorities appoint Agencies that Certify Entities
In general interacting Devices require the establishment of a Trust relationship between them, e.g. when they Deliver Content between them. A precondition for this to be possible is that a Device be Identified. The task of Assigning Identifiers to Devices is performed by special Devices called Device Identification Devices. Chapter 5 specifies how this task is performed by a number of organisations (Registration Agencies) that are appointed and overseen by a single root authority (Registration Authority). DMP appoints the Registration Authority after approving the Authority’s Registration policies. The same three-layer arrangement used for Certification is also used for Identification.
Other Entities requiring Certification and Identification are: Domain Management Devices (Devices employed to manage Domains), DRM Tools and Users. Note that in the current phase of development Users play a role only to the extent they are represented by devices, e.g. smart cards and that Certification of such devices is out of DMP scope.
As was already the practice in the analogue world, Content Items, too, require Identification. Creators, Instantiators and Producers typically have the objects that contain their intellectual and/or commercial property (IP Entities) uniquely Identified. With Identification appropriate Metadata are also typically generated.
In summary:
1. DMP Certification Authorities and Agencies are required for the following Entities:
a. Devices, e.g. Creation Devices, Consumption Devices and Domain Management Devices
b. DRM Tools.
2. DMP Registration Authorities and Agencies are required for the following Entities:
a. Content – License and DRM Tool
b. Devices, e.g. Creation Devices, Consumption Devices and Domain Management Devices.
Note that only once a Device or a DRM Tool has been Certified will it be eligible to be Identified.
In general interacting Devices require Authentication to achieve Trust. Chapter 3 provides Protocols that can be employed to achieve this.
The figure below places the Devices mentioned above in a generic Value-Chain and identifies their principal relationships. Note that in DMP a Device is either a combination of hardware and software – or just an instance of software – that allows a User to execute Functions.

Figure 3 – Devices in a Value-Chain
The figure above will be used to describe a full walkthrough.
1. Content Creation Device obtains Identifier from Identification Devices for
a. Resources (this is outside of DMP)
b. License
c. DRM Tool
d. Content
2. Content Creation Device makes Content by combining:
a. Resources
b. License
c. DRM Tool
d. Identifiers
3. Content is Delivered to Content Provider Device
4. In case License and DRM Tool are referenced (not Bundled within the Content)
a. License is Delivered to License Provider Device
b. DRM Tool is Delivered to DRM Tool Provider Device
5. An End-User Device (SAV) Accesses
a. Content from Content Provider Device
b. License from License Provider Device if Content does not have a Bundled License
c. DRM Tools from the DRM Tool Provider Device if
i. End-User Device does not already hold the required DRM Tool
ii. DRM Tools are not Bundled within the Content
6. End-User Device (SAV) performs the following according to License Permissions
a. Packages Content as File (DCF)
b. Adapts Resources creating DCI and DCF
c. Moves/Copies DCF to another SAV or End-User Device (PAV) via PXD.
7. PXD performs the following
a. Accesses Content with Bundled Licence (as DCF) from Content Provider Device
b. If Content does not have a Bundled Licence
i. Accesses Licence from Licence Provider Device
ii. Makes DCI
iii. Makes DCF
c. Moves/Copy DCF to PAV
Value-Chains begin with Content Items that represent IP Entities. In order for the management of Rights associated to IP to be consistent, Value Chains must be able to generate copies and variations of Content without breaching the sets of Rights at every point in the Value-Chain. If such an integral treatment of Rights is not achievable in a consistent and reliable fashion, then there is little hope that Rights Holders will entrust Content representing their IP to a Value-Chain. Therefore, the need to clearly identify the source of all IP and provide the means to represent all Rights associated with IP generated throughout the Value Chain is central to the DMP strategy for an Interoperable DRM Platform.
Interoperability is key to this endeavour because it enables different IP-based business models of varying scope and depth to run their full course while at the same time providing the means to determine that the Rights expressed within them are adequately supported. Furthermore, interoperability removes the possibility that some Users in the Value Chain be capable of effecting arbitrary control over other Users by virtue of restrictions inherent in the design of technology.
The purpose of the Creation Model is to provide a generic architecture for "Creation" of Content. The model should be able to represent any case where the objects representing IP are Delivered to a Device, Stored or Rendered. For IP to be identified and managed, it is required that it be embodied in human perceivable objects to be communicated, identified and associated with an actual human source. However, the ‘objects’ referred to as ‘having’ IP in this Creation Model are really independent of physical/digital objects in that their existence depends on the mind of their Creators in the first instance although only when they are ‘fixed’ in a physical form, perceivable by other human beings, can the IP be identified and communicated.
Thus, the following objects referred to as IP Entities are defined formally in the DMP Terminology and are pivotal to the DMP vision of how IP is represented by Resources.
Work
The first IP Entity identified and to which IP is attributed to in the Creation Model is Work. Work refers to the fruit of an effort undertaken by an individual or group of individuals that constitutes the logical construct that persists independently of the innumerable possible physical representations of that construct. A Work on the one hand can be very specific by being clearly identifiable through a large number of differing Manifestations all of which are perceived as being of the Work yet it is also intangible in that proof of its existence requires physically perceivable materials that are not of the Work.
Adaptation
An Adaptation of a Work is considered a new Work but is of dependent origination in that its existence depends on the existence of another independent Work. The law consistently requires that the Author of an original Work give his consent to the creation and distribution of the new Adaptation of the Work, possibly determining any set of restrictions both moral and economic. Also, the Author of an Adaptation must refer back to the root original Work. Thus, an original Work can spawn any number of Adaptations and Manifestations while an Adaptation can only spawn a singular Manifestation. Note that these requirements are only relevant for Works that are not in public domain.
Manifestation
A Manifestation is an object or event which is an expression of a Work, e.g. the original manuscript of a musical Work. It is clear that in order to establish the authorship of a Work, at least a first initial object – either digital or otherwise – must be produced and unequivocally attributed to the Author of the Work. Such objects are referred to as Manifestations. Although at least one Manifestation must be attributed to the Author of the Work, the Manifestations of Adaptations of a Work are also considered to be Manifestations of the Work. Thus, a given Work may have Manifestations attributable to other Authors.
Instance
An Instance is an object or event which is an example of an Identified Manifestation, e.g. a unique performance of a specific Manifestation of a musical Work. Instances are not necessarily uniquely of a particular Manifestation of a Work. The IP associated with Instances is so inextricably dependent on both the Manifestation and the Work that it is of, that it is classified separately as “Neighbouring” or “Performing” Rights. An Instance when it is fixated to a physical support constitutes the first copy, also referred to as “master”, used to make further copies, e.g. for commercial purposes.
Expression
An expression is the result of a process that an individual undertakes when generating a tangible Manifestation of a Work or that an Instantiator, e.g. a Performer, undertakes when interpreting a particular Manifestation to generate an Instance.
DMP does not currently define the term expression because the Creation Model is presently only concerned with classification of Content as it pertains to associating IP with digital Manifestations and Instances of Works and any attribution of IP for an expression is considered to be un-severable and correspond faithfully to the attribution given for the Manifestation and/or Instance in which they are contained. That is to say, that the owner of any IP attributable to an expression is necessarily the same person or persons to which the Manifestation and/or Instance is attributable.
Thus, in the Creation Model any object either analogue or digital that either embodies or represents IP – for the purpose of attributing IP Rights – can be classified necessarily under one of the categories as listed below in Table 1.
Table 1 – IP Objects and Rights
|
IP Entity |
IP type |
Associated Rights types |
|
Work |
Independent origination |
Creator |
|
Adaptation |
Dependent origination |
Creator |
|
Manifestation |
Dependent origination (Any Manifestation depends on a Work) |
Creator |
|
Instance |
Unique dependent stylistic reproduction |
Neighbouring or performing rights |
Thus, the scope of IP associated with the different IP Entities can be summarized as in Table 2 below. Authorship of a Work (independent origination) has dominion only over all its Manifestations and all Instances, copies, reproductions and communications thereof. Authorship of an Adaptation has dominion only over all its Manifestations, Instances, copies, reproductions and communications thereof. Realization of an Instance has dominion only over all copies and reproductions thereof.
Table 2 – IP Entity Scope
|
|
Entities |
||||
|
Work |
Adaptation |
Manifestation |
Instance |
||
|
IP Type |
Work |
x |
x |
x |
x |
|
Adaptation |
|
x |
x |
x |
|
|
Manifestation |
|
|
x |
x |
|
|
Instance |
|
|
|
x |
|
The figure below illustrates the dependencies between IP Entities.

Figure 4 – IP Entity dependencies
In the general DMP Distribution Model the following Users operate:
1. Content Providers providing Content to End-Users and Service Providers;
2. License Providers providing Licenses to End-Users and Service Providers;
3. DRM Tool Providers providing DRM Tools to End-Users and Service Providers;
4. Service Providers providing Services to End-Users.
A specific Value-Chain need not involve all types of Users indicated in the Figure above, e.g.
1. The Service Provider may Deliver Content to End-Users with License and DRM Tools Bundled within it. In this case the Service Provider makes and Registers a new Content Item out of Content, License and DRM Tools received from other Users. This is represented in the top line of the figure.
2. The Service Provider may not be required as the End-User individually Accesses Content, License and DRM Tools. This is represented by removing the first line of the figure
3. The DRM Tool Provider may not be required, e.g. when Governed Content is Delivered without the use of DRM Tools. This is represented by removing the bottom line in the figure.

Figure 5 – Conceptual diagram of DMP Distribution Model
Note that the Service Provider makes and Registers a new Content Item out of Content, License and DRM Tools that he receives from other Users.
For the purpose of this specification all types of Data to be Delivered between Device Entities can be Represented as Content Elements, in particular Content, Licenses, DRM Tools and DRM Information. These Content Elements can be variously combined between themselves and other Content Elements.
DCI is a Representation of Content that, along with the relevant Content Elements, can be Processed by a Device. However, DCI is not suitable for Delivering Content between Devices. The Package Function enables Delivery of a Content Item over a variety of specific Delivery mechanisms. Chapter 3 supports Delivery as a File (DCF), on an MPEG-2 Transport Stream (DCB) and on a Real-Time Protocol transport (DCS).
The Package Function includes
· Insert DCI in the selected transport mechanism
· Extract DCI from the selected transport mechanism
The following figure describes the DRM Tool Model.
Packaged Content is Delivered to a Device because the Device has Accessed it or another Device has Delivered it. The Parser extracts the DCI from the Packaged Content. In general the DCI Parser extracts the following from the DCI:
1. Resources
2. Metadata
3. DRM Information
4. DRM Tools or Tool Packs
5. Licenses
6. Keys.
Resources and Metadata are passed to the appropriate decoding pipelines while DRM Information, DRM Tools or Tool Packs, Licenses and Keys are passed on to the DRM Processor, a module within a Device that executes DRM-related Functions in a Trusted fashion.

Figure 6 – Handling of DRM Tools in a Device
The Device may already have all required DRM Tools e.g. because they are:
1. Embedded in the Device
2. Stored after having been previously Accessed
3. Bundled within the Content Item currently Accessed.
If none of the above holds, then the DRM Processor will Access the missing DRM Tools from the DRM Tool Provider Device. Once Used, all DRM Tools are kept in the Secure Storage of the Device.
The DRM Processor controls the critical points internal to a Device. As an example, in the Figure above there are 7 such “control points” (indicated as black nodes). The DRM Processor, using the DRM Information, instantiates the required DRM Tools as plug-in modules (called DRM Tool Bodies), and instructs them to operate on the specific control points along the Resource decoding pipelines.

Figure 7 – Tool Pack Interoperability
As described above, DRM Tools represent one or more DRM Functions such as Authenticate, Decrypt, detect watermark signal or extract watermark payload, etc. The DRM Processor handles instantiation, initialisation, Authentication, and supervision of DRM Tools Bodies. However, DRM Tools can also be aggregated into a DRM Tool Group. In this case a DRM Tool Agent performs the same tasks above for the DRM Tools in a DRM Tool Group. The combination of a DRM Tool Agent and its DRM Tool Group is called DRM Tool Pack (see figure below).
Note that a mandatory requirement for a DRM Processor is that it can interface with DRM Tool Agents and DRM Tools.
By using a DRM Tool Pack, sensitive information about the way a Resource is Governed can be placed in the DRM Tool Agent instead of placing it in the DCI. However, in those cases where a simple DRM Tool configuration is required, e.g. one DRM Tool performing AES Decryption on a Governed video stream, a single DRM Tool configuration may be a simpler option.
Figure 8 and Figure 9 below graphically compare the “stand alone” DRM Tools and. the DRM Tool Pack.
The following is an example of a complete walkthrough of the DRM Tool Model when a DRM Tool Pack is employed:
1. DRM Tool Provider
a. Obtains DRM Tool Pack ID from DRM Tool Identification Device
b. Includes DRM Tool Pack ID in Tool Pack Information with other related Metadata
c. Makes DRM Tool Pack by combining DRM Tool Pack Information, DRM Tool Agent, DRM Tool Group and Signature
d. Stores DRM Tool Pack in DRM Tool Provider Device
2. User Requests Service
3. Service Provider
a. Authenticates User
b. Sends Tool Pack ID and DRM Tool Provider Device’s URL to SAV
4. SAV requests Tool Pack with Tool Pack ID to DRM Tool Provider Device
5. DRM Tool Provider Device Delivers Tool Pack
6. DRM Processor
a. Accesses Tool Pack Information
b. Searches for requested DRM Tool Pack from Secure Storage
c. Executes DRM Tool Agent
d. Sends available Control Points to DRM Tool Agent
7. If User selects more than one Service simultaneously, DRM Processor executes all Tool Agents for each service
8. DRM Tool Agent instantiates DRM Tools, initializes DRM Tools, and connects each DRM Tool to proper Control Point
9. If there is a missing DRM Tool in the DRM Tool Group, DRM Tool Agent requests missing DRM Tool to DRM Processor
10. DRM Processor
a. Searches for missing DRM Tool in the Secure Storage
b. Gives the reference of the DRM Tool to Tool Agent
11. DRM Tool Pack Data contains information to initialize DRM Tools in DRM Tool Group, e.g. Key information for Decryption Tool or seed number for watermarking Tool
12. DRM Processor Accesses DRM Tool Pack Data and sends it to DRM Tool Agent, the only one capable of Parsing DRM Tool Pack Data
13. DRM Tool Agent uses DRM Tool Pack Data to initialise the appropriate DRM Tools in the DRM Tool Group
14. DRM Processor starts Resource decoding
15. DRM Tools perform DRM Functions on Resources
To Update a DRM Tool Pack/Tool in SAV the DRM Tool Provider Device performs the following:
1. DRM Tool Provider Device inserts a DRM Tool/Tool Pack Update message in the DCI
2. DRM Processor
a. Receives Update message
b. Recognises which DRM Tool Pack/Tool should be Updated
c. If DRM Tool Body is contained in the DCI then DRM Processor replaces the Tool Body
d. Else DRM Processor Access DRM Tool Body from DRM Tool Provider
e. Updates proper DRM Tool Pack/Tool according to the Update message
IDP-2 requires the following Device types:
Table 3 – IDP-2 Device types
|
# |
Device Name |
Acronym |
|
|
Content Consumption Device |
PAV |
|
|
Content Consumption Device |
SAV |
|
|
Content Creation Device |
CCD |
|
|
Content Identification Device |
CID |
|
|
Content Provider Device |
CPD |
|
|
Device Identification Device |
DeID |
|
|
DRM Tool Identification Device |
TID |
|
|
Domain Identification Device |
DoID |
|
|
Domain Management Device |
DMD |
|
|
DRM Tool Provider Device |
DPD |
|
|
License Identification Device |
LID |
|
|
License Provider Device |
LPD |
|
|
PAV eXternal Device |
PXD |
These are briefly described below
Chapter 3 supports two kinds of Device Identification:
1. “Device info-based identification” in which a Device Identification Device generates the Device Identifier using some vendor specific information such as vendor ID, model ID or product serial number;
2. “Certificate-based identification” in which a X.509 certificate [30], generated by a Device Identification Device, is utilised as Device Identifier.
In a typical CCD walkthrough a Creator activates an application showing a GUI displaying a series of steps that the Creator is invited to follow. Therefore a Creator:
1. Selects the DCI from a number of available DCI templates
2. Gets Resources with corresponding Identifiers, e.g. from outside the CCD
3. Encrypts Resources (optional)
4. Fills the Metadata template for each Resource
5. Obtains Metadata Identifiers (optional)
6. Makes a License, e.g. by selecting one from a number of available License templates
7. Obtains a License Identifier from a License Identification Device
8. Adds License or License information within the DCI
9. Obtains Content Identifier from a Content Identification Device
10. Creates a DCF
11. Stores the DCF on a Content Provider Device.
The current phase of DMP specifications does not provide a Protocol for a Content Creation Device to obtain a Content Identifier.
This is functionally equivalent to Content Identification Device.
This is functionally equivalent to Content Identification Device.
A Content Creation Device Delivers Content to a Content Provider Device. A Content Consumption Device (SAV or PXD) Accesses Content from a Content Provider Device employing Access Protocols specified by Chapter 3.
In case Licenses are not Bundled within the Content, Licenses are Stored on a License Provider Device and may be Accessed by a Content Consumption Device employing Access Protocols specified by Chapter 3.
In case Content is Licensed to a Domain, the License Provider Device requests appropriate information from the Domain Management Device (see below).
In case DRM Tools are not Bundled within the Content, DRM Tools are Stored on a DRM Tool Provider Device and may be Accessed by a Content Consumption Device employing Access Protocols specified by Chapter 3.
PAV Devices do not have network or broadcast connections to Access Content or License. However, they can be connected to a PAV eXternal Device (PXD) or a SAV, that in turn is connected to a network or broadcast channel. The following figure depicts the relationship between the four relevant Devices.

Figure 10 – A PAV and its PXD
Two cases can be considered
1. In the simplest case the PXD Accesses a Content Item in the form of a DCF with a License Bundled within it. Content can then be Copied/Moved to the PAV Device, without further action by the PXD, using a Protocol that is not specified by DMP.
2. If the PXD obtains a Content Item in the form of a DCF without a Bundled License, the following steps are performed:
To Store Content on a PAV Device the following steps are performed:
1. End-User plugs his PAV to the PXD;
2. End-User activates an application on the PXD that connects the PXD to the PAV;
3. The application displays a list of the DCFs on the PXD that are available for Use on the PAV;
4. End-User selects the DCFs to his liking;
5. End-User activates Move/Copy of those DCFs from PXD to PAV.
To Use Content on the PAV Device the following steps are performed:
1. End-User activates GUI
2. GUI
a. Reads the files Stored in PAV
b. Make a list using information from Metadata in each DCF
3. End-User selects DCF
4. PAV
a. Parses DCF to obtain DCI
b. Parse DCI to obtain
i. License
ii. Metadata
iii. Resource
c. Parses License to obtain DRM Information
5. GUI displays the list of Functions that can be executed and Metadata
6. User selects the Function
7. PAV
a. Decrypts Resource
b. Decodes Resource
c. Renders Resources.
A conceptual model of a SAV is provided by the figure below

Figure 11 – Conceptual model of a SAV
Once a SAV has Accessed the Content, and the necessary License and DRM Tools using the Access Protocols specified in Chapter 3, it can Use the Content, e.g. Play, Store or Adapt it in the SAV or Move/Copy the Content or its Adaptation to another SAV or PAV as per License terms.
These are Functions a SAV Device performs on a Content Item, in addition to the steps listed in the walkthrough of the DRM Tool Model:
1. Decrypt Resources
2. Decode (decompress) Resources
3. Deliver decompressed Resources for Rendering
4. Create DCF with Bundled License
5. Store DCF
6. Move or Copy the DCF to another SAV or a PAV
7. Adapt Content
8. Encrypt Resources.
See Domain Model below.
See Domain Model below.
Domains are groups of Devices or Users sharing some common properties. Using Domains it becomes possible to implement more flexible Licensing modalities, e.g. to License a Content Item to all Devices or Users in a Domain. A Domain is managed by a special Device called Domain Management Device.

Figure 12 – An example of Domain
The figure above represents a possible Domain configuration with:
1. Two Devices (SAV), belonging to two different End-Users;
2. One Device (PAV) belonging to another End-User connected to the network via a PXD;
3. One Device (SAV) belonging to another End-User and remotely connected to the other Devices in the Domain via the Internet.
In general to manage a Domain 5 Device types are required:
1. Domain Management Devices (DMD), to manage the life cycle of Domains and the list of Devices and Users belonging to the Domains;
2. Domain Identification Devices (DoID), to Assign Globally Unique Identifiers (GUID) to DMDs on behalf of Domain Registration Agencies;
3. End User Devices (EUD), e.g. SAV or PXD;
4. Users, bearing in mind that Users are represented by e.g. a device (smart card etc.) or an identity on a Device (UN/PW etc.);
5. License Provider Devices (LPD) to provide Licenses including for Use of Content in a Domain.
The combined operation of these Devices can be shown by a simple walkthrough in the figure below:

Figure 13 – The relationship of the 5 Device types in Manage Domain
1. A User (Domain Administrator) requests DMD to create a Domain
2. DMD
a. Creates Domain
b. Obtains Domain ID from Domain Identification Device;
c. Creates Domain Information containing Device/User list, maximum number of Devices/Users etc.;
d. Creates Domain Context for Device/User containing Domain ID, DMD ID, Domain Private Key, expiration etc.;
e. Delivers AccessID and AccessPassword to Domain Administrator;
f. Delivers Domain Context for Device/User to Device/User;
3. Device/User requests License to License Provider Device giving Domain ID;
4. License Provider Device sends Domain ID to DMD;
5. DMD Delivers Domain Public Key to LPD;
6. License Provider Device makes and Delivers License to Device/User.
Note: A Domain Management Device can manage one or several Domains. Ownership of a DMD can be implemented using a variety of mechanisms, e.g. End-User based or Service Provider based.
The DMP specifications enable Users to set up Value Chains and perform Functions in an Interoperable fashion. There may be, however, cases in which a Device needs to access governed content from a value-chain. An example, explicitly considered by Chapter 3, is when a SAV accesses governed content broadcasted with a license expressed using the RMPI Rights Expression Language [33].
In this case a Device performs the following steps:
1. accesses content
2. translates license into a License
3. makes DCF using the received Resources, Metadata and the License just made
4. Stores DCF.
Chapter 3 specifies the Tools to convert a license expressed using RMPI to a License.
Using a similar process a DCF with an appropriate License can be Exported to a device.
Chapter 3 specifies the Representation of the following data types:
Table 4 – IDP-2 Data types
|
Content |
A DMP-defined structure of Content Elements, i.e. Resource, Metadata, Content, License, DRM Information, DRM Tool and Use Data |
|
Identifier |
The unique signifier Assigned by Identification |
|
Resource |
Data, whose Representation is not specified by DMP (e.g. an MP3 file or an executable code), that can be Processed by a Device |
|
Metadata |
Data that describe Content and Content Elements |
|
DRM Information |
Data that describe Governance of Content |
|
DRM Tool |
An algorithm which implements one or more DRM Functions |
|
DRM Tool Body |
An executable computer code that implements a DRM Tool |
|
Licence |
Data Representing the Permissions to a Content Entity under given Conditions expressed by Rights Expressions that are Granted by one User to another User |
|
Key |
Data used by a cryptographic method to make Clear-text Data Encrypted or, conversely, Encrypted Data Clear-text |
|
DRM Message |
A message exchanged between DRM Tool Bodies, DRM Processor and Devices |
|
Device Information |
Data characterising a Device, e.g. CPU, OS etc. |
|
Domain Information |
Data characterising a Domain that is Stored in a Domain Management Device, e.g. the list of Devices, Users, Domain Key etc. |
|
|
|
|
Use Data |
Data documenting the Functions performed by a Device Entity on a Content Item and the associated context |
|
DCI Signature |
Data Encrypted with a Private Key and appended to a DCI for the purpose of guaranteeing the Integrity of the DCI |
|
DCI Hash |
A number generated by applying a mathematical formula to a DCI |
The following table describes which Content Elements can be contained in another Content Element
Table 5 – IDP-2 Content Elements
|
Content Elements |
Content Elements contained |
|
Content |
· Identifier · Resources · Metadata · DRM Information · DRM Tool · DRM Tool Body · License · Key · DRM Message · Authentication Message · Device Information · Domain Information · Use Data · DCI Signature · DCI Hash |
|
Identifier |
|
|
Resources |
· Identifier · Metadata · DRM Information |
|
Metadata |
· DRM Information |
|
DRM Information |
· DRM Tool · License · Key |
|
DRM Tool |
· DRM Tool Body · Device Information · DRM Message |
|
DRM Tool Body |
|
|
License |
· Key |
|
Key |
|
|
DRM Message |
· Key · Authentication Message |
|
Device Information |
|
|
Domain Information |
· Key |
|
Use Data |
|
|
DCI Signature |
· Key |
|
DCI Hash |
|
This section provides a high-level description of the three types of Tools specified by Chapter 3: Represent, Protocols and Package.
The digital Representation of Content is called DMP Content Information (DCI). The DCI is an XML structure specifying Content Identifiers, DMP-specific information, DRM information and Licenses with Content and Content Elements. See figure below for a graphical representation of a particular DCI.

Figure 14 – An example of DMP Content Information (DCI)
Chapter 3 adopts a subset of the MPEG-21 Digital Item Declaration for the DCI [21].
To be Used in Value-Chains, Content Items should be unambiguously Identified for a given lifetime and within pre-assigned boundaries. Allocation of Identifier achieves this goal if the following aspects are guaranteed:
1. Persistence, i.e. the Identifier should be used as a reference to the Content Item even beyond the lifetime of the Content Item it Identifies
2. Uniqueness, i.e. the Identifier should be used across Users or globally.
Every Content Item expressed by a DCI contains a unique Identifier Assigned by a special type of User (Registration Agency). Chapter 3 provides ways to Identify a Resource by means of its original Identifier inside the DCI (e.g. ISWC, ISRC) or other Metadata.
Chapter 3 bases its Data Identification on the principles of MPEG-21 Digital Item Identification [22].
Resources can be typical media resources, but also DRM Tools, i.e. the executable code that is needed by a Device to Process protected Resources. As Creation and Identification of Resources are outside of the current scope of Chapter 3, no Tools to Represent and Identify Resources are provided.
Chapter 3 adopts a subset of TV Anytime Metadata [31] as the default Metadata specification for Media Resources. Note that AD 3 supports the use of other metadata schemes.
DRM Information is the set of data resulting from implementing the rules to manage and protect any part of a DCI. It may include any information in the DCI, e.g.:
· Content Governance Information, including the signalling of the DRM Tools required to Access Content
· Decryption Keys
· Licenses
· Data for DRM Tools’ initialisation and configuration
· Appropriate Metadata
· Etc.
DMP calls an executable computer code that implements a DRM Function a “DRM Tool Body”. This may be resident in a Device or contained or referenced in a DCI.
Chapter 3 can support a wide range of business models ranging from the simple and straightforward usage models currently familiar to End-Users to innovative and possibly even speculative business models. Therefore the expression of Rights that may be required between any Users in a Value Chain and the nature and complexity of the Rights expressed may be dependent upon the role of the Users involved in this exchange.
In a Governed Content Item, the relevant Governance information is expressed within the DCI or referenced using Permissions expressed in REL statements. In order to be able to Access Governed and protected Resources, the User is required to have obtained the necessary Keys and Certificates as stipulated by the License. If the Keys are not Bundled within the DCI, they can be obtained as stipulated by the License Provider.
DMP employs two Profiles of the MPEG-21 Rights Expression Language (REL). The first (core profile) can be used in reduced-capability Devices such as PAVs. IDP-2 extends the MPEG-21 REL Dissemination and Capture (DAC) Profile [25], in order to support DMP Domain requirements.
The one-to-one association of Licenses to Content Items may entail significant logistic problems. Therefore IDP-2 also provides Tools to support alternative License distribution scenarios:
Table 6 – License Distribution Scenarios
|
License to |
Description |
Issues |
|
1 Device |
A Content Item is Licensed for Use on one specific Device. |
Device requires a unique ID or certificate. Content must be re-Licensed for each new Device. |
|
N Devices |
A Content Item is Licensed for Use on multiple Devices. |
Same as single Device. Reduced need to re-License Content as it can be Used on more than one Device. |
|
Domain |
A Content Item is Licensed to a Domain, i.e. Content can be Used on any Device within that Domain. |
Content does not need to be re-Licensed, rather a Device needs to join the Domain. IDP-2 provides specifications for Tools to join and leave a Domain. |
A Key is Data used by a cryptographic method to make Clear-text Data Encrypted or, conversely, Encrypted Data Clear-text. It can be resident in a secure storage of a Device or be carried by a DCI.
Currently DMP defines Use Data for the purpose of Domain Management.
The following Entities require Identification:
1. Content
2. DRM Tool
3. Device
4. User
5. Domain
Currently Chapter 3 only specifies the Representation of Content Identification, not the Protocol to request Content Identification.
Currently Chapter 3 only specifies the Representation of DRM Tool Identification, not the Protocol to request DRM Tool Identification.
Device Identification is used for following purposes:
|
Authentication |
The Licence Provider needs to verify that the target Device can properly Use Governed Content, i.e. the Licence Provider needs the Device Identifier to enable Authentication |
|
Authorisation |
The Device Identifier is important information for a User with appropriate authority to allow or disallow specific Devices to Render Governed content |
|
Domain Management |
The Device Identifier is used to Identify Devices belonging to a specific Domain in which various Devices can be Registered and managed |
|
Audit |
The Device Identifier is used to Identify participant Devices on Use of Governed Content if the audit record needs to be kept |
|
License Backup/Restore |
Use of Governed Content is controlled by the License that specifies allowed Device(s). The Device Identifier is used to Identify dedicated Device on Backup or Restoration of the License |
Chapter 3 provides Protocols supporting two kinds of Device Identification:
1. “Device info-based identification” in which a Device Identification Device generates the Device Identifier using some vendor specific information;
2. “Certificate-based identification” in which a Certificate is utilised for Device Identifier.
User Identification is outside the scope of DMP.
Domain Identification is performed by a Domain Identification Device. Currently Chapter 3 does not specify the Protocol for a Domain Management Device to request Domain Identification.
The following Entities: Devices, Users and DRM Tools need to establish Trust between themselves before they may perform DRM-related Functions.
Chapter 3 specifies a Protocol to Authenticate Devices having unique Certificates.
User Authentication is outside the scope of DMP.
These Protocols are currently part of Manage DRM Tool Protocols.
The following Protocols are required by the IDP to Deliver Content. Those marked in normal are provided by Chapter 3, Those marked in italic will be provided by future versions.
Table 7 – Definitions of types of Delivery
|
Store |
The Function by which Device A Delivers Content to Device B for the purpose of retaining it in Device B for Use at a different point in time |
|
Move |
The Function consisting of the following actions 1. Copy of Content from a source Device to a destination Device 2. Deletion of said Content in the source Device |
|
Copy |
The Function that 1. Duplicates Content 2. Delivers the duplicate to another Device |
|
Export |
The Function of making available a Content Item to a non-DMP DRM system |
|
Backup |
The Function that supports 1. Duplication of Content 2. Duplication of Rights Expression in case this is a Stateless Rights Expression, and 3. Moving the duplicate(s) to another location that is not a Device |
|
Access |
The Function executed by a Device when making Content available to so that the Device can execute Functions on it |
|
Import |
The Function of Accessing a governed content item from a non-DMP DRM system |
|
Restore |
The Function of Moving Content and the associated Stateless Rights Expression, if any, to the Device from which Backup had been performed |
Chapter 3provides the following Access Protocols:
1. Protocol to Access Content as File
2. Protocol to Access License as File
3. Protocol to Access DRM Tool Body as File
4. Protocol to Access DRM Tool Body as Stream
5. Protocols to Access Key as Stream
Additionally the following Local Access Protocols are defined
1. Local License Access Protocol
2. Local DRM Tool Body Access Protocol
To facilitate the cooperation of multiple DRM Tools to perform DRM-related Functions on Governed Resources, Chapter 3 provides a message-based architecture. Such messages are XML structures allowing the exchange of information between various components of a Device, e.g. the DRM Processor and a DRM Tool, or between two DRM Tools.
The following is a non-exhaustive list of Functions enabled by the messages defined in DMP Manage DRM Tool namespace:
· A DRM Tool may require to be informed of all the other DRM Tools operating at any time
· A DRM Tool may require to be notified when a new DRM Tool is instantiated
· A DRM Tool may require the instantiation of another DRM Tool
· A DRM Tool may require the termination of another DRM Tool
· A License or any part of it may be exchanged between two parties
· A Decryption Key, along with the timing information about its use, may be exchanged between two parties
· The results of a watermarking operation may be communicated
· Two DRM Tools may mutually authenticate
Approved Document #3 provides a set of protocols that can be used to manage a Domain. See Domain Model.
For the purpose of Delivery, Content typically needs to be Packaged. Currently Approved Document #3 provides Tools to Package Content for File (DCF), Broadcast (DCB) and Stream (DCS).
The file contains the DCI with some or all of the Resources it references in ‘Boxes’ defined by the ISO Base Media File Format and the MPEG-21 File Format [27]. The link between the DCI (containing Metadata and Governance information) and the Resources is done through the Item Location Box, which specifies the physical location in the file of a Resource described in the DCI.
This is represented in the figure below.

Figure 15 – Conceptual diagram of DMP Content Format (DCF)
A number of transport mechanisms may be employed to transmit digitally Represented Content (DCI) between Devices. Currently those of highest relevance are the MPEG-2 Transport Stream (MPEG-2 TS) and the Real-Time Protocol over User Datagram Protocol over Internet Protocol (RTP/UDP/IP). When using these packet-based transmission protocols, Content must be packetised and then transmitted incrementally to the receiving Device. As Content is a combination of Content Elements, transmitting Content in a streaming fashion implies packetisation of its Content Elements.
Chapter 3 specifies the means to incrementally transmit a DCI (including its component Content Elements, either referenced or included) in a piece-wise fashion and with temporal constraints in such a way that a receiving Device may incrementally Use the DCI. At the receiving end, a potentially fragmented DCI is received, where, for instance, some parts may have been removed or transformed at the transmitting end according to some rules.
Package Content as a Stream is based on MPEG-21 Digital Item Streaming (DIS) [28]. The DIS standard specifies a Bitstream Binding Language (BBL) using which it is possible to describe how a DCI may be broken down for transmission and then mapped to the transmission channels of interest: MPEG-2 Transport Streams and RTP/UDP/IP.
There are two basic types of BBL document: Instance and Binding descriptions.
1. Instance describes the streaming instructions for a DCI and contains references to the DCI and any other resources of the DCI. References may be URIs, or pointers to the location of the URI within the DCI.
2. Binding provides the abstract mapping of the DCI or part thereof to the particular set of output streams (MPEG-2 TS and RTP/UDP/IP). Bindings are instantiated as part of an Instance document, which provides the URI references for the fragments of Content to which the Binding(s) are to be applied.

Figure 16: Streaming a DCI using Digital Item Streaming
Binding is a set of abstract Bitstream Binding Language instructions which map a DCI into a collection of packets to be output to one or more handlers, as shown the Figure above.
DIS can also be used to Package binary objects over a streaming protocol. BBL uses BS Schema from MPEG-21 Digital Item Adaptation (DIA) [26] to specify the structure of binary resources which are to be streamed using BBL. This enables fragments of a binary resource to be specified using XPath [ REF _Ref127329396 \r \h 42] references.
The figure below shows an example DCI related to TV program P1.

Figure 17 – Conceptual diagram of DMP Content Broadcast (DCB)
In this example Program P1 is composed of:
1. Metadata of the TV program P1 (green box)
2. Metadata of the video stream (DMP Infored box)
3. Pointer to the video stream in the MPEG-2 Transport Stream
4. Metadata of the associated audio stream (DMP Infolight blue box)
5. Pointer to the audio stream in the MPEG-2 Transport Stream
6. Metadata of the audio-visual stream (DMP Info)
7. License of the audio-visual stream
8. Metadata of the DRM Tools (DRM Info)
9. The actual DRM Tools carried as Resources in the DCI.
P1 is Governed as a whole, therefore only one single license and a single DRM Information element are needed. An alternative DRM configuration not contemplated in this figure but still possible using IDP-2 Tools shows Resources Governed individually by an appropriate License and each characterised by appropriate DRM Information.
Chapter 3 provides Tools to carry DCB on MPEG-2 Transport Stream.
In the figure below the DCI of Content streamed comprises several Content Elements

Figure 18 – Conceptual diagram of DMP Content Streaming (DCS)
1. Metadata of the streaming Content as a whole
2. Metadata of the video stream (DMP Info)
3. Pointer to the video stream in the RTP Stream
4. Metadata of the associated audio stream (DMP Info)
5. Pointer to the audio stream in the RTP Stream
6. Descriptor of streaming text
7. Pointer to the streaming text in the RTP Stream
8. License of the Governed video stream
9. Metadata of the DRM Tools (DRM Information) Governing the video Resource
10. The actual DRM Tools for the Video Resource carried as Resources in the DCI.
Chapter 3 provides Tools to carry DCS on RTP.
This Chapter 3 – Interoperable DRM Platform (IDP) provides specifications of basic standard technologies – called Tools – that are required to build Value-Chains. Examples of Value-Chains can be found in Chapter 4 – Use Cases and Value-Chains – where it is shown how a selected number of Use Cases can be implemented employing Tools specified in this Chapter 3. Of course other Value-Chains of interest to Users can be implemented employing IDP Tools.
For ease of treatment Tools are grouped in categories. In this Phase II of IDP (IDP-2) the following categories of Tools are specified:
1. Represent
o Content
o Metadata
o DCI Signature
o DCI Hash
o Identifier
o Resources
o DRM Information
o DRM Tool
o DRM Tool Body
o License
o Key
o DRM Messages
o Authentication Messages
o Device Information
o Domain
o Domain Protocols
o Use Data
o Access Protocols
o Binary XML
2. Protocols
o Identify
§ Device
§ User
o Authenticate
§ Device
§ User
o Manage
§ Domain
§ DRM Tool
o Access
§ Content
§ License
§ DRM Tool Body
§ Key
3. Package
o Content as File
o Content as Stream
In this Approved Document “Chapter s” will deal with categories and “sections” with “Tools”.
Whenever possible DMP Approved Documents do not specify new technologies, but adopt existing technologies. Therefore a number of Tools specified in this Approved Document contain references, restrictions, extensions or adaptations of technologies already standardised by other bodies. There are, however, also cases of technologies that are originally specified in this Approved Document.
Proper understanding of this Approved Document is facilitated by a careful reading of the Foreword to the Chapter 3, of Chapter 2 – Architecture and of Chapter 6 – Terminology. Introductory information on some referenced standards, recommendations and specifications is provided in Annex A. However, proper understanding requires working knowledge of such referenced documents.
In this specification, the term Represent is used to describe the function of expressing information in a form that can be processed by a machine. This information relates to DMP Content Elements by conveying parameters and values between machines associated with the Content Elements.
This Chapter specifies how to Represent various DMP Content Elements, some of their components and other Data that can be exchanged between Users. These are listed in the following table.
Table 8 – Data Represented in this specification
|
Content. |
The overall structure of Content Elements and their components. |
|
Metadata |
Metadata Representation within Content and a DMP Format |
|
DCI Signature |
Description of the digital Signature of the DCI and representation within Content |
|
DCI Hash |
Description of the Hash of the DCI and representation within Content |
|
Identifier. |
Description of Identifier format and representation within Content |
|
Resource |
Description of Resource Elements as an element within Content |
|
DRM Information. |
The grouping together of information associated with the Governance of Content |
|
DRM Tool |
Software modules performing one or more DRM Functions such as Authentication, Decryption, watermarking, etc. |
|
DRM Tool Body |
Data associated with specific instantiation of DRM Tools |
|
License |
The representation of the DMP License |
|
Key |
The representation of the Key data |
|
DRM Messages. |
Messages exchanged between DRM Tools or between a DRM Tool and a DRM Processor. |
|
Authentication Messages |
Messages exchanged between two entities to mutually Authenticate |
|
Device Information |
The parameters required to describe the Device characteristics |
|
Domain |
Information relating to the management of Domains |
|
Domain Protocols |
Information exchanged between Devices while performing Domain-related Protocols |
|
Use Data |
The Use data Representation |
|
Access Protocols |
Information exchanged between Devices while performing Access-related Protocols |
|
Binary XML. |
A format for Representing Binarised XML |
The Representation of the Content and Content Elements is made up of XML schema, defined using the W3C XML schema language as specified in [ REF _Ref102476404 \r \h 41].
This Represent Section specifies a number of XML Schema, some of which are devised by the DMP and some of which are profiles of existing specifications or are adopted directly from existing specifications.
The table below summarises the namespace URIs of the schemas developed by the DMP. The column on the left indicates in which phase of IDP the schema has been developed. The column on the right indicates the namespace prefix used within this specification.
Table 9 – URIs of DMP-defined schemas.
|
IDP |
Namespace URI |
Namespace prefix |
|
1 |
urn:dmp:idp1:Access:2005:04 |
dmp1ax |
|
1 |
urn:dmp:idp1:Represent:License:2005:04 |
dmp1rl |
|
1 |
urn:dmp:idp1:Represent:Content:2005:04 |
dmp1rc |
|
1 |
urn:dmp:idp1:Manage:Domain:2006:04 |
dmp1md |
|
2 |
urn:dmp:idp2:Manage:DeviceIdentifier:2006:02 |
dmp2mdi |
|
2 |
urn:dmp:idp2:Represent:AuthenticationMessages:2006:02 |
dmp2ram |
|
2 |
urn:dmp:idp2:Represent:AccessProtocols:2006:02 |
dmp2rap |
|
2 |
urn:dmp:idp2:Represent:Content:2006:02 |
dmp2rc |
|
2 |
urn:dmp:idp2:Represent:Domain:2006:02 |
dmp2rd |
|
2 |
urn:dmp:idp2:Represent:DeviceInformation:2006:02 |
dmp2rdi |
|
2 |
urn:dmp:idp2:Represent:DRMMessages:2006:02 |
dmp2rdm |
|
2 |
urn:dmp:idp2:Represent:DomainProtocols:2006:02 |
dmp2rdp |
|
2 |
urn:dmp:idp2:Represent:Key:2006:02 |
dmp2rk |
|
2 |
urn:dmp:idp2:Represent:License:2006:02 |
dmp2rl |
|
2 |
urn:dmp:idp2:Represent:Metadata:2006:02 |
dmp2rm |
|
2 |
urn:dmp:idp2:Represent:ToolBody:2006:02 |
dmp2rtb |
The Table below summarises the namespace URIs of the schemas originally defined by organisations external to the DMP, but profiled by the DMP.
Table 10 – URIs of DMP-profiled schemas
|
IDP |
Namespace URI |
Namespace Prefix |
|
1 |
urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04 |
dmp1-rel-mx |
|
1 |
urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04 |
dmp1-rel-r |
|
1 |
urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04 |
dmp1-rel-sx |
|
1 |
urn:dmp:idp1:mpeg21:2002:02-DIDL-NS:2005:04 |
dmp1_didl |
|
1 |
urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04 |
dmp1_dii |
|
1 |
urn:dmp:idp1:mpeg21:2004:01-IPMPDIDL-NS:2005:04 |
dmp1_ipmpdidl |
|
1 |
urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04 |
dmp1_ipmpinfo |
|
2 |
urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02 |
dmp2_didl |
|
2 |
urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02 |
dmp2_ipmpdidl |
|
2 |
urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02 |
dmp2_ipmpinfo |
|
2 |
urn:dmp:idp2:mpeg4:IPMPSchema:2002:2006:02 |
dmp2_mpeg4ipmp |
|
2 |
urn:dmp:idp2:tva:metadata:2002:2006:02 |
dmp2_tva |
The following table summarises the namespace URIs of those schemas referenced by the ones listed in the two tables above.
Table 11 – URIs of referenced schemas
|
IDP |
Namespace URI |
Namespace Prefix |
|
½ |
http://www.w3.org/XML/1998/namespace |
xmlns |
|
½ |
http://www.w3.org/2000/09/xmldsig# |
dsig |
|
½ |
urn:mpeg:mpeg21:2002:02-DIDMODEL-NS |
didmodel |
|
2 |
urn:mpeg:mpeg21:2005:01-REL-BPX-NS |
rel-bpx |
|
2 |
urn:mpeg:mpeg21:2006:01-REL-DACX-NS |
rel-dacx |
|
2 |
urn:mpeg:mpeg21:2003:01-REL-MX-NS |
rel-mx-bpx (*) |
|
2 |
urn:mpeg:mpeg21:2003:01-REL-R-NS |
rel-r-bpx (*) |
|
2 |
urn:mpeg:mpeg21:2003:01-REL-SX-NS |
rel-sx-bpx (*) |
(*) This namespaces refer to the REL schemas with validation rules defined in [ REF _Ref127329082 \r \h 25].
Represent Content defines the basic structure for any information related to Content, which may contain, in turn, a number of other Represent technologies. The Figure below is an example of the hierarchy of the “Represent” technologies, when these are employed to Represent Content.
The actual hierarchy may differ depending on the structure of each Content Item, e.g. the order in which the various “Represent” technologies are employed. Also the Representation of different Content Elements may:
1. recur more than once in a Content Item
2. not recur at all
3. appear in different places depending on the hierarchy

Figure 19 – Example of an instance of the “Represent” technologies hierarchy
DMP defines Content as a structured combination of Content Elements. The Representation of these elements is specified in the remaining parts of the Represent Chapter . When represented together these elements are ordered within a larger framework specified here as Represent Content.
DMP refers to the Content Representation Tool as “DMP Content Information” (DCI).
Specifically, this section provides the means to:
· convey Identifiers of Content and Content Elements
· associate DMP-specific information and Metadata with Content and Content Elements
· associate DRM Information with Content and Content Elements including
o DRM Tools,
o Licenses
o Device Information
o Keys
· associate digital signatures with the DCI
· associate hash values with the DCI
Note that the Represent Content Tool defined here enables the organisation of the Content Elements that together make up the Content and is independent from the Packaging used for Content Delivery, i.e. file, broadcast or network transport.
The DCI is an XML structure, based on a DMP-defined subset of the MPEG-21 Digital Item Declaration Language (DIDL) [21], and extended by several DMP namespaces to express DMP-specific information. Annexes A.1 provides introductory information on the Digital Item Declaration Language. The DMP DCI Schema profiles are given in Annex B.
The DMP extends the DIDL with a profile of MPEG-21 IPMP Components [ REF _Ref100729506 \r \h \* MERGEFORMAT 23] to convey various Governed Resources and a set of DMP defined namespaces covering the Representation of general and Governed Content Elements.
The DMP Profile of the DIDL namespace is characterised by the following URI: urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02 and is denoted with the prefix dmp2_didl in this specification.
In its entirety, the DMP Content Information (DCI) consists of both the Representation of the various DMP ‘Tools’ and the DCI framework for assembling these Represented Elements as Content. The following sub sections describe the locations of Content Elements Represented by this specification within the DCI XML structure. The description of the Representation of these Content Elements follows later in the subsequent parts of this section. The DMP Represent Content schema is assigned the URN urn:dmp:idp2:Represent:Content:2006:02
The top level element in a DCI is a dmp2_didl:Container element, as specified below:
<element name="Container" type="dmp2_didl:ContainerType" substitutionGroup="didmodel:Container"/>
<complexType name="ContainerType">
<complexContent>
<extension base="didmodel:ContainerType">
<sequence>
<element ref="didmodel:Item"/>
<element ref="didmodel:Descriptor" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 20 The dmp2_didl:Container element
A dmp2_didl:Container element contains one dmp2_didl:Item and may contain zero or one dmp2_didl:Descriptor elements.
A dmp2_didl:Item is specified below:
<element name="Item" type="dmp2_didl:ItemType" substitutionGroup="didmodel:Item"/>
<complexType name="ItemType">
<complexContent>
<extension base="didmodel:ItemType">
<sequence>
<element ref="didmodel:Descriptor" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="didmodel:Item"/>
<element ref="didmodel:Component"/>
</choice>
</sequence>
<attributeGroup ref="dmp2_didl:ID_ATTRS"/>
</extension>
</complexContent>
</complexType>
Figure 21 The dmp2_didl:Item element
A dmp2_didl:Item element may contains one or more dmp2_didl:Descriptor elements, and zero or more choices between a dmp2_didl:Item and a dmp2_didl:Component element. A dmp2_didl:Item element child of a dmp2_didl:Container element Represents the Content Item. A dmp2_didl:Item element child of another dmp2_didl:Item element Represents a Content Element.
A dmp2_didl:Descriptor is specified below:
<element name="Descriptor" type="dmp2_didl:DescriptorType" substitutionGroup="didmodel:Descriptor"/>
<complexType name="DescriptorType">
<complexContent>
<extension base="didmodel:DescriptorType">
<sequence>
<element ref="didmodel:Statement"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 22 The dmp2_didl:Descriptor element
A dmp2_didl:Descriptor element is a container for a dmp2_didl:Statement element.
A dmp2_didl:Statement is specified below:
<element name="Statement" type="dmp2_didl:StatementType" substitutionGroup="didmodel:Statement"/>
<complexType name="StatementType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:StatementType">
<sequence>
<choice>
<element ref="dmp2rc:DMPInformation"/>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp1_dii:RelatedIdentifier"/>
<element ref="dmp2_ipmpinfo:IPMPGeneralInfoDescriptor"/>
<choice>
<element ref="dmp2rc:DCISignature"/>
<element ref="dmp2rc:DCIHash"/>
</choice>
</choice>
</sequence>
<attribute name="mimeType" type="string"/>
<attribute name="ref" type="anyURI"/>
</extension>
</complexContent>
</complexType>
Figure 23 The dmp2_didl:Statement element
A dmp2_didl:Statement element can contain any of the following:
For each dmp2_didl:Statement element it is possible to specify a mimeType attribute specifying the mimeType of the content of the Statement, and a URI for the schema in use within the Statement.
A dmp2_didl:Component is specified below:
<element name="Component" type="dmp2_didl:ComponentType" substitutionGroup="didmodel:Component"/>
<complexType name="ComponentType">
<complexContent>
<extension base="didmodel:ComponentType">
<sequence>
<element ref="didmodel:Resource" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 24 The dmp2_didl:Component element
The dmp2_didl:Component element is a container for one or more didmodel:Resource elements. See 3.2.6 – Represent Resource for more information.
This sub section describes the location of the Content Identifier in the DCI. Other aspects of Content Identification, namely Represent Identifier (syntax) and Protocol to Assign Identifier to Content are specified in Sections 0 and REF _Ref124877412 \r \h 3.3.1, respectively.
The Identifier for a Content Item is located within the DCI according to MPEG-21 Digital Item Identification [22] as shown in the example below.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item> <!--This item refers to the Content Item-->
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/plain">
<dmp1_dii:Identifier> !—See Represent Identifier, Section 3.2.5.1 –
</dmp1_dii:Identifier>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 25 Location of Identifier for a Content Item
Identifiers for Content Elements are located within the DCI according to MPEG-21 Digital Item Identification [22] and profiled in Annex C, as shown in the example below.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item> <!--This item refers to the Content Item-->
<dmp2_didl:Item id = book1> <!--This item refers to a Content Element-->
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/plain">
<dmp1_dii:Identifier> !—See Represent Identifier, Section 3.2.5.1 -- </dmp1_dii:Identifier>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Item>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 26 Location of Identifier for a Content Element
The location of metadata within the dmp2_didl structure is shown below for both the case in which data is related to all the Content Elements within the DCI and the case in which data is related to a specific Content Element within the DCI.
Metadata can be represented in a DMP-native way as specified in Section 3.2.2
The Metadata is located within the DCI under the dmp2rc:DMPInformation element.
The dmp2rc:DMPInformation element residing at the top level in the DCI is meant to convey Metadata about the whole Content Item, (ie all elements represented within the DCI)
The figure below below shows where the dmp2rc:DMPInformation element is located in the DCI for this case.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item> <!--This item refers to the Content Item-->
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/plain">
<dmp1_dii:Identifier>dmpID:012345</dmp1_dii:Identifier>
<!--The DMP identifier for this content-->
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/xml">
<dmp2rc:DMPInformation> !-- Conveying General DMP Information for the Content Item -- </dmp2rc:DMPInformation>
</dmp2_didl:Statement>
<dmp2_didl:Descriptor>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 27: Location of Metadata related to the Content Item
The Figure below shows where the dmp2rc:DMPInformation element for a specific Content Element is located within the DCI in this case.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item> <!--the one representing the Content Item-->
<dmp2_didl:Item id="Resource1"> <!-- the one representing the Resource-->
</dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType ="text/xml">
<dmp1_dii:Identifier>ISWC: 01234567890</dmp1_dii:Identifier>
</didStatement>
</dmp2_didl:Descriptor>
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/xml">
<dmp2rc:DMPInformation> !--...conveying Metadata for a Content Element-- </dmp2rc:DMPInformation>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
<dmp2_didl:Component>
<dmp2_didl:Resource ref="funky1.mp3" mimeType="audio/mpeg"/>
</dmp2_didl:Component>
</dmp2_didl:Item>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 28: Location of Metadata related to a Content Element
DCI signatures can be inserted in a Statement contained in a Descriptor which is child of the Container element, as represented in the figure below.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType ="text/xml">
<dmp2rc:DCISignature> !—The DCI Signature goes here-- </dmp2rc:DCISignature>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 29: Location of DCI Signatures in the DCI
DCI hash can be inserted in a Statement contained in a Descriptor which is child of the Container element, as represented in the figure below. This is the alternative to the DCI Signature configuration described above and is meant to be used in circumstances in which verification of the hash can be determined in some other way than the signature infrastructure, e.g. using ‘out of band’ verification on a web site listing.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType ="text/xml">
<dmp2rc:DCIHash> !—The DCI Hash goes here -- </dmp2rc:DCIHash>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 30: Location of DCI Hashes in the DCI
Some Resources are meant to be associated with other Resources contained or referenced within the same Content Item.
A DCI Representing a Content Item which contains a Resource, e.g. an MP3 file, is characterised by the dmp2_didl:Resource element Representing that Resource, positioned within a dmp2_didl:Component child of the top level dmp2_didl:Item, as shown below.
<dmp2_didl:Container>
<dmp2_didl:Item id="Video 1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="video/mpeg"> !—The Resource goes here. See 3.2.6 – Represent Resource --</dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
</dmp2_didl:Container>
Figure 31: Location of a Resource element
Where there are multiple Resources within a DCI that are not meant to be associated with each other, there will be multiple dmp2_didl:Items at the same hierarchical level of the parent dmp2_didl:Container, as shown in the Figure below:
<dmp2_didl:Container>
<dmp2_didl:Item id="Video 1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="video/mpeg">!—The Resource goes here -- </dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
<dmp2_didl:Item id="Song 1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="audio/mpeg">!—The Resource goes here -- </dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
</dmp2_didl:Container>
Figure 32: Location of several uncorrelated Resource elements
The dmp2_didl:Resource Element that Represents a collection of Resources, e.g. an album of audio tracks, or an MPEG-2 Program composed of a number of A/V streams, again is positioned within a dmp2_didl:Component child of the top level dmp2_didl:Item while each audio track is positioned within dmp2_didl:Item elements below the Item representing the album, as shown in the Figure below:
<dmp2_didl:Container>
<dmp2_didl:Item id="Program 1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="video/MP2P"> !—The MPEG-2 Program Resource goes here --</dmp2_didl:Resource>
</dmp2_didl:Component>
<dmp2_didl:Item id="Video stream 1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="video/mpeg">!—The video stream Resource goes here -- </dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
<dmp2_didl:Item id="Audio stream 1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="audio/mpeg">!—The audio stream Resource goes here -- </dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
</dmp2_didl:Item>
</dmp2_didl:Container>
Figure 33: Location of several related Resource elements
A DRM Tool Body, i.e. a special code to execute DRM functions, is considered a Resource. However, this Chapter 3 has a dedicated section for Representation of DRM Tool Body which includes the description of the DRM Tool to enable exchange between Devices. The DRM Tools are located separately within the Content as described in Section 3.2.1.8
In cases where Content Elements are Governed Content Elements, the DCI elements that denote the locations of the Content Elements within the DCI are substituted for corresponding elements taken from the MPEG-21 IPMP Components.
The following elements:
· dmp2_ipmpdidl:Container
· dmp2_ipmpdidl:Item
· dmp2_ipmpdidl:Statement
can be used in lieu of the elements with the same name defined in the dmp2_didl namespace to indicate that the Content Element they Represent is Governed. Therefore the rule specifying the location of an IPMP DIDL element is the same that specifies the position of the element with the same name in the dmp2_didl namespace defined in [21] and described in Section 3.2.1.1 – The DCI Structure.
In addition to the element substitution defined, Governed Resources have an extra DCI child element within their respective dmp2_didl:Resource; namely the the dmp2_ipmpdidl:ProtectedAsset child element described in Represent DRM Information 3.2.7 and shown in Figure 62: The dmp2_ipmpdidl:ProtectedAsset element
Metadata can also be Governed. This is described in Section 3.2.7.1 - Represent Governed Elements.
The DCI is able to convey within its structure a number of Content Elements that carry information relating to Governed Content Elements that may be required for correct operation of the IDP-2. These include Licences and DRM Tools that may be associated with the Use of specific Content Elements. Such items are represented in the DCI by the DMP profile of the MPEG-21 IPMP information descriptor <dmp2ipmpinfo:IPMPInfoDescriptor> as descibed in Section 3.2.7.2
The dmp2_ipmpinfo:IPMPInfoDescriptor element is located as a child element of an dmp2_ipmpdidl:Info element which, in turn, may be contained in one of the following:
· dmp2_ipmpdidl:Container
· dmp2_ipmpdidl:Item
· dmp2_ipmpdidl:Statement
· dmp2rc:Metadata
· dmp2_ipmpdidl:ProtectedAsset.
The Figure below shows the case where the IPMPInfoDescriptor conveys DRM Information for a Resource.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item> <!--the one representing the Content Item-->
<dmp2_didl:Item id="Resource1"> <!-- representing a Content Element within a Content Item -->
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="application/ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="video/mpeg">
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>...<dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents> !—in line Governed Resource here
</dmp2_ipmpdidl:Contents>
</dmp2_ipmpdidl:ProtectedAsset>
</dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 34: Example location of an IPMPInfoDescriptor within the DCI
Note: Where a dmp2_ipmpinfo:IPMPInfoDescriptor element appears as a child of a dmp2_didl:Resource contained in the top dmp2_didl:Item (the one referring to the Content Item as a whole), all the Resources part of that Content Item are Governed in the same way as specified in that dmp2_ipmpinfo:IPMPInfoDescriptor, hence there is no need to replicate IPMPInfoDescriptors for all Resources, if these are Governed by the same rules.
The DCI uses the IPMPGeneralInfoDescriptor to convey lists of all the DRM Tools required to Access all the Governed Content Elements. See Section 3.2.7.3 for a description of the Representation of these components.
The dmp2_ipmpinfo:IPMPGeneralInfoDescriptor element is located in a dmp2_didl:Statement element which is child of a dmp2_didl:Descriptor element describing the top-level dmp2_didl:Item in a DCI (the one referring to the Content Item as a whole), as shown in the figure below.
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item> <!--This item refers to the Content Item-->
<dmp2_didl:Descriptor>
<dmp2_didl:Statement>
<dmp2_ipmpinfo:IPMPGeneralInfoDescriptor> !—General DRM Information here </dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 35 Location of dmp2_ipmpinfo:IPMPGeneralInfoDescriptor
Depending on the scope of a License, this shall be signalled in different positions within the DCI. Licenses are required to;
1. Grant the Right to Use Content
2. Govern the Use of DRM Tools
3. Attribute properties to its Principal
For the first and second case, the location of Licenses is specified in this sub-section, while when the scope of a License is to attribute a property to its Principal, as in the case of a License attributing a User or a Device the property of belonging to a Domain, Licenses are obtained as specified in Section 3.3.3 – Protocols to Manage Domain.
A License (or a reference to a License or a License Service) whose scope refers to the first two cases is signalled by employing the dmp2_ipmpinfo:RightsDescriptor element, shown in the Figure below:

Figure 36: The dmp2_ipmpinfo:RightsDescriptor element
An dmp2_ipmpinfo:RightsDescriptor can contain a number of Licenses of type dmp2rl:License by including them in element dmp2_ipmpinfo:License, which is described below. Otherwise, a reference to the License, of type “xsd:anyURI”, can be specified in element dmp2_ipmpinfo:LicenseReference. Furthermore, it is also possible to specify a License Service (using syntax from any namespace) from where the License can be obtained.
The dmp2_ipmpinfo:RightsDescriptor is one of the nested child elements associated with Governed Content Elements hierarchy described in 3.2.7.1 – Represent Governed Elements, and is a child of the IPMPInfoDescriptor outlined in Section 3.2.7 – Represent DRM Information, located as DRM Information as described in Section 3.2.1.8.
The element dmp2_ipmpinfo:License is shown in the Figure below:
<element name="License" type="dmp2_ipmpinfo:LicenseType"/>
<complexType name="LicenseType" mixed="true">
<sequence>
<element ref="dmp2rl:License" maxOccurs="unbounded"/>
</sequence>
</complexType>
Figure 37: The dmp2_ipmpinfo:License element
The dmp2_ipmpinfo:License element can contain a number of dmp2rl:Licenses, as defined in Section 3.2.10: – The DMP Represent License namespace.
In cases where Content is Packaged in a File, Licenses may alternatively be contained in the License_Container Box, as specified in Section 3.4.1.1.9 - License_Container Box.
The following sub-sections examine the cases 1 and 2 above in detail.
As specified in Section 3.2.7 – Represent DRM Information, DMP support the Governance of several types of Content Element: dmp2_didl:Container, dmp2_didl:Item, dmp2_didl:Statement, dmp2_didl:Resource, dmp2rc:Metadata. If any of these Content Elements are Governed, their Use may be regulated by a License. The presence of a License in these cases is signalled by the dmp2_ipmpinfo:RightsDescriptor in an dmp2_ipmpinfo:IPMPInfoDescriptor element contained in an dmp2_ipmpdidl:Info element child of any Governed Element.
The example below shows the location of a License governing the Use of the whole Content Item (as it is contained in an dmp2_ipmpinfo:IPMPInfoDescriptor associated to the top-level did:Item)
<dmp2_didl:DIDL>
<dmp2_didl:Container>
<dmp2_didl:Item id="Program1">
<dmp2_didl:Component>
<dmp2_didl:Resource mimeType="application/mp21-ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="video/MP2P">
<dmp2_ipmpdidl:Identifier>urn:mpegRA:mpeg21:dii:isan:006A-B</dmp2_ipmpdidl:Identifier>
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:dmp2_ipmpinfoDescriptor>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:License>
<dmp2rl:License>
<r:license licenseId="012345">
....
</r:license>
</dmp2rl:License>
</dmp2_ipmpinfo:License>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:Dmp2_ipmpinfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents ref="myserver.com/coolmovie"/>
</dmp2_ipmpdidl:ProtectedAsset>
</dmp2_didl:Resource>
</dmp2_didl:Component>
</dmp2_didl:Item>
</dmp2_didl:Container>
</dmp2_didl:DIDL>
Figure 38: An Example of License Governing a Content Item
The dmp2_ipmpinfo:LicenseCollection element is preserved for compatibility with IDP-1. However, its use in IDP-2 is deprecated.
In those cases where the Use of a DRM Tool is subject to a License, as for instance “DRM Tool T can only work on Devices certified by Agency A”, the License is conveyed by the dmp2_ipmpinfo:RightsDescriptor element child of an dmp2_ipmpinfo:Tool element.
The following example shows a DRM Tool whose Use is subject to a License that can be obtained from a given License Service.
<dmp2_didl:Resource mimeType="application/mp21-ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="video/MP2P">
<dmp2_ipmpdidl:Identifier>urn:mpegRA:mpeg21:dii:isan:006A-15FAB</dmp2_ipmpdidl:Identifier>
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
<dmp2_ipmpinfo:Tool>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:LicenseService>http://www.DRMTools.org/LicenseService.php</dmp2_ipmpinfo:LicenseService>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:Tool>
</dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents ref="myserver.com/mynewmovie"/>
</dmp2_ipmpdidl:ProtectedAsset>
</dmp2_didl:Resource>
Figure 39: An example of DRM Tool in which Use is subject to a License
There are two types of Keys identified in this specification: time-dependent and time-independent.
A non-exhaustive list of locations where such a type of Key is delivered is given below:
· in the dsig:Signature element, to specify the Key needed to validate the digital Signature, as specified in [40]
· in a License, to identify a Principal, or to convey a Resource Decryption Key, as specified in Section 3.2.10 – Represent License.
· in a dmp2rdm:KeyData element, for DRM Tool initialisation purposes, as specified in section REF _Ref120098546 \r \h 3.3.4 – Manage DRM Tool
Time-dependent Keys are located within a dmp2rdm:KeyData element for updating the Decryption Key for a DRM Tool used to Decrypt Resources, as specified in section 3.3.4 – Manage DRM Tool.
A DRM Tool Body, the executable instructions implementing a DRM Function, may be conveyed in the DCI enclosed in dmp2_ipmpinfo:Binary elements, as shown in the Figure below
<dmp2_ipmpinfo:Tool>
<dmp2_ipmpinfo:ToolBaseDescription>
<dmp2_ipmpinfo:IPMPToolID>urn:Manufacturer:ToolPack:ToolID:ABCDEF9</dmp2_ipmpinfo:IPMPToolID>
<dmp2_ipmpinfo:Inline>
<dmp2_ipmpinfo:Binary>
<dmp2rtb:ToolBody> !—See Section 3.2.9 – Represent DRM Tool Body -- </dmp2rtb:ToolBody>
</dmp2_ipmpinfo:Binary>
</dmp2_ipmpinfo:Inline>
</dmp2_ipmpinfo:ToolBaseDescription>
</dmp2_ipmpinfo:Tool>
Figure 40: An example showing the location of DRM Tool Body
For more information on DRM Tool Bodies, see Section 3.2.9 – Represent DRM Tool Body.
In order to select an appropriate DRM Tool with matching hardware and software characteristics, Device Information, a set of data describing hardware and software characteristics of a Device, is required. The dmp2rdi:DeviceInformation element may be located in dmp2rtb:Tool or dmp2rtb:ToolPack elements within a dmp2rtb:ToolBody element.
<dmp2rtb:ToolBody>
<dmp2rtb:ToolPack>
<dmp2rdi:DeviceInformation> !—See 3.2.13 – Represent Device Information -- </dmp2rdi:DeviceInformation>
</dmp2rtb:ToolPack>
</dmp2rtb:ToolBody>
Figure 41: An example showing the location of Device Information
For more information on Device Information, see 3.2.14 – Represent Device Information.
The IDP-2 gives the freedom to place any Metadata scheme desired into the designated location in the DCI.
In addition DMP natively supports a specific type of Metadata taken from the TV-Anytime Content Description Schema described in [31]. The schema containing the elements included in this specification is given in Annex B.2.7. In order to suit the DMP requirements of describing resources to the End User, the DMP Metadata profile has been derived from the TV-Anytime Content Description by defining a smaller version of the TVAMain element that does not include the UserDescription table. It includes the remaining elements namely: CopyrightNotice, ClassificationSchemeTable and ProgramDescription. However, ProgramDescription has also been reduced by defining a dmp:ProgramDescriptionType based on the TV-Anytime ProgramDescriptionType but including only the TV-Anytime elements ProgramInformationTable, GroupInformationTable and CreditsInformationTable.
The TV-Anytime elements not included in the DMP profile are defined as optional (minOccurs=0) in the TV-Anytime specification, and so instance documents conforming to the DMP profile are compatible with the larger TV-Anytime specification.
Metadata is included under the dmp2rc:DMPInformation element defined in the DMP Represent Content namespace and shown below:
<element name="DMPInformation">
<complexType>
<sequence>
<element ref="dmp2rc:Metadata"/>
<sequence minOccurs="0">
<element ref="dsig:Signature"/>
</sequence>
</sequence>
</complexType>
</element>
Figure 42: The dmp2rc:DMPInformation element
Metadata:
The dmp2rc:Metadata element allows the inclusion of either Governed Metadata or Metadata in clear format. In the first case, Governed Metadata is conveyed as specified in 3.2.7.1 – Represent Governed Elements, while in the second case, Metadata is conveyed in the dmp2rc:StructuredData element. A Metadata Identifier can be convejed by means of the optional attribute "id". The dmp2rc:Metadata is shown in the Figure below:
<element name="Metadata" type="dmp2rc:MetadataType"/>
<complexType name="MetadataType">
<sequence>
<choice>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup" minOccurs="0"/>
<element ref="dmp2rc:StructuredData" maxOccurs="unbounded"/>
</choice>
</sequence>
<attribute name="id" type="anyURI" use="optional"/>
</complexType>
Figure 43: The dmp2rc:Metadata element
StructuredData:
This element can contain data from any namespace.
The native type of Metadata supported in IDP-2 is of type dmp2rm:TVAMain, which is denoted by the attribute 'ref ' value of "urn:dmp:idp2:Represent:Metadata:2006:02". If this attribute is omitted, Metadata contained in dmp2rm:StructuredData is of type dmp2rm. Alternatively, any other Metadata schema can be employed. In this case the attribute 'ref' shall specify the URI of the Metadata namespace employed.
<element name="StructuredData" type="dmp2rc:StructuredDataType">
<complexType name="StructuredDataType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI" default="urn:dmp:idp2:Represent:Metadata:2006:02"/>
</complexType>
Figure 44: The dmp2rc:StructuredData
The DMP profile of TV-Anytime Metadata is built upon a modification of the TVA Main type to include only the Copyright, Classification and ProgramDescription elements. The syntax of dmp2rdm:TVAMain element is specified in the Figure below, while for the semantics refer to [31]:
<element name="TVAMain" type="dmp2rm:TVAMainType"/>
<complexType name="TVAMainType">
<sequence>
<element name="CopyrightNotice" type="string" minOccurs="0"/>
<element name="ClassificationSchemeTable" type="dmp2_tva:ClassificationSchemeTableType" minOccurs="0"/>
<element name="ProgramDescription" type="dmp2rm:ProgramDescriptionType" minOccurs="0"/>
</sequence>
<attribute ref="xml:lang" use="optional" default="en"/>
<attribute name="publisher" type="string" use="optional"/>
<attribute name="publicationTime" type="dateTime" use="optional"/>
<attribute name="rightsOwner" type="string" use="optional"/>
<attribute name="version" type="unsignedInt" use="optional"/>
</complexType>
Figure 45: The dmp2rm:TVAMain element
The ProgramDescription element defined in [31] has been reduced to include only the ProgramInformation, GroupInformationTable and CreditsInformationTable elements. The dmp2rm:DMP ProgramDescriptionType is related to the TV-Anytime elements as follows:
<complexType name="ProgramDescriptionType">
<sequence>
<element name="ProgramInformationTable" type="dmp2_tva:ProgramInformationTableType" minOccurs="0"/>
<element name="GroupInformationTable" type="dmp2_tva:GroupInformationTableType" minOccurs="0"/>
<element name="CreditsInformationTable" type="dmp2_tva:CreditsInformationTableType" minOccurs="0"/>
</sequence>
</complexType>
Figure 46: The dmp2rm:TVAMain element
Note: Since the elements omitted from the TV-Anytime Specification are all defined as optional, an instance document complying with the DMP profile of the TV-Metadata will also be compliant with a TV-Anytime phase 1 implementations.
The DCI may be signed by Users who took part in its creation or modification.
A signature is contained in a dmp2rc:DCISignature element, as represented in the figure below. This element can host a number of digital signatures (dsig:Signature) along with the URI of the issuer (dmp2rc:IssuerID).

Figure 47: The dmp2rc:DCISignature element
In order to allow for the authentication of the DCI integrity without relying on a signature and associated key distribution, a DCI may be simply hashed such that a comparison of a newly generated hash with that of an earlier stored version by another party can be made. Although the hash value itself will need to be recalculated, a hash value can be conveyed in the DCI for reference along with the associated algorithm.

Figure 48: The dmp2rc DCIHash Element
Identifiers for Content or Content Elements are expressed according to a DMP profile of MPEG-21 Digital Item Identification (DII) [22], as shown in the schema fragment figure below.
<element name="Identifier" type="anyURI"/>
<element name="RelatedIdentifier">
<complexType>
<simpleContent>
<extension base="anyURI">
<attribute name="relationshipType" type="anyURI"/>
</extension>
</simpleContent>
</complexType>
</element>
Figure 49: Identifier and Related Identifier
The dmp1_dii:Identifier element contains the Uniform Resource Identifier (URI) of the Content or Content Element, while the RelatedIdentifier element expresses the URI to which the Identifier is related, for example the identification of an abstraction of the work (e.g. a composition as an abstraction of a sound recording).
The Content Identifier satisfies the characteristics of the URN (Uniform Resource Names) scheme defined in RFC 1737 [ REF _Ref128994786 \r \h 34]. Therefore Identifiers that conform to URN schemes can be used to Identify Content. Currently, there are several registered URN schemes such as International Standard Book Number (ISBN) and International Standard Serial Number (ISSN), each of them serving a specific purpose and having a unique namespace under Internet Assigned Numbers Authority (IANA).
The syntax of Content Identifier should be conformant to the URN syntax described in RFC 2141 [36] as follows:
urn:{a urn namespace for dmp}:{a subordinate namespace}:{subordinate-specific Content Identifier}
or
urn:{a urn namespace for 3rd party}:{namespace-specific Content Identifier}
Figure 50: Content Identifier Syntax
As shown in the Figure below, any rel-r-bpx:License is characterised by a licenseId attribute specifying the Identifier for the License.
<xsd:complexType name="License">
<xsd:choice>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="r:grant"/>
</xsd:choice>
<xsd:element ref="r:issuer" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:choice>
<xsd:attribute name="licenseId" type="xsd:anyURI" use="optional"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
Figure 51: The rel-r-bpx:License element
Metadata related to a Content Item or to a Content Element shall be inserted in a dmp2rc:Metadata element, as specified in Section 3.2.2 – Represent Metadata. Metadata can be identified by means of an attribute to the dmp2rc:Metadata element, named dmp2rc:id, as shown in the Figure below:
<attribute name="id" type="anyURI" use="optional"/>
Figure 52: The container for Metadata Identifier
DRM Tool ID syntax should conform to ‘xsd:anyURI’ format. This is the same format as for Tool and ToolPack, but with the appropriate parent elements.
<element name="dmp2_ipmpinfo:IPMPToolID" type="anyURI"/>
Figure 53: Tool Identifier Representation
This section specifies both how to Represent Device Identifiers within a Device and the format of the messages employed by a Device when obtaining a Device Identifier from a Device Identification Device. The exchange protocol of these messages between the two devices is specified in Section REF _Ref116085243 \r \h 3.3.1.1 – Protocols to Identify Device.
The Manage Device Identifier namespace, dmp2mdi, defines an abstract base type element from which the rest of the elements are derived. This is the following:
<complexType name="IdentifierBaseType" abstract="true"/>
Figure 54: The dmp2mdi:IdentifierBaseType complex type
A Device Identifier is Represented by the dmp2mdi:DeviceIdentifier element, as described in the Figure below:
<element name="DeviceIdentifier" type="dmp2mdi:IDType"/>
<complexType name="IDType">
<complexContent>
<extension base="dmp2mdi:IdentifierBaseType">
<sequence>
<choice>
<element name="id" type="anyURI"/>
<element ref="dsig:X509Data"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 55: The dmp2mdi:DeviceIdentifier element
The dmp2mdi:IDType complex type in the Figure above contains the Identifier of the Device, which can be either of type anyURI and conveyed by the dmp2mdi:id element, or an X.509 certificate, in which case it shall be expressed according to the dsig:X509Data element and conformant to RFC2459 [38].
The following elements are employed in the Protocol to obtain a Device Identifier, as specified in Section 3.3.1.1 – Protocols to Identify Device. The two messages from the dmp2mdi namespace derive from the following complex type:
<complexType name="IdentifierProtocolType">
<complexContent>
<extension base="dmp2mdi:IdentifierBaseType">
<sequence>
<element name="TransactionID" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 56: The dmp2mdi:IdentifierProtocolType complex type
The dmp2mdi:IdentifierProtocolType contains the dmp2mdi:TransactionID element which is used to track a message exchange session.
The dmp2mdi:RequestDeviceID element, sent from a Device to a Device Identification Device for the purpose of obtaining an Identifier, extends the above complex type by adding a number of elements, as specified in the Figure below:
<element name="RequestDeviceID" type="dmp2mdi:RequestDeviceIDType"/>
<complexType name="RequestDeviceIDType">
<complexContent>
<extension base="dmp2mdi:IdentifierProtocolType">
<sequence>
<element name="VendorID" type="dmp2mdi:IDType"/>
<element name="ModelID" type="anyURI"/>
<element name="SerialNumber" type="anyURI" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 57: The dmpmdi:RequestDeviceIDType
The dmpmdi:RequestDeviceID element extends the dmp2mdi:IdentifierProtocolType, by conveying the following data:
· VendorID: An Identifier or Certificate of the Device vendor.
· ModelID: The Identifier for the Device model. This value is generated and managed by the Device vendor.
· SerialNumber: A value of type xsd:anyURI, generated by the Device vendor and registered by the Device Identification Device.
· An optional digital Signature of the message by the Device
If the requesting Device is eligible for a Device Identifier, the Device Identification Device sends to the requesting device a dmp2mdi:DeviceID message as specified in the Figure below:
<element name="DeviceID" type="dmp2mdi:DeviceIDType"/>
<complexType name="DeviceIDType">
<complexContent>
<extension base="dmp2mdi:IdentifierProtocolType">
<sequence>
<element ref="dmp2mdi:DeviceIdentifier"/>
<element name="Version" type="integer" minOccurs="0"/>
<element name="IssuerID" type="dmp2mdi:IDType"/>
<element name="SerialNumber" type="anyURI" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 58: The dmp2mdi:DeviceID element
The dmpmdi:DeviceID element extends the dmp2mdi:IdentifierProtocolType, by conveying the following data:
· DeviceIdentifier, the container for the Identifier of the Device
· Version: an optional integer value representing the Version of the Identifier
· IssuerID: The Issuer of the Device Identifier
· SerialNumber: A value of type xsd:anyURI, generated by the Device Identification Device in the case such value was not present in dmp2mdi: RequestDeviceID message.
· Signature: the Digital Signature of the issuer of the Identifier can optionally be included in the DeviceID element
IDP-2 does not provide Tools to Identify Users. However, several IDP-2 Use Cases require User Identification. This can be achieved with a variety of technologies such as;
· Certificates
· Globally unique Identifiers
· Devices (Smart cards, USB devices etc.)
Every Domain of Devices or Users is characterised by Domain Identifier, which is defined in the dmp2rd namespace and shown in the Figure below:
<element name="DomainID" type="dmp2rd:DomainIDType"/>
<complexType name="DomainIDType">
<sequence>
<element ref="dmp2rd:DomainManagerID"/>
<choice>
<element name="id" type="anyURI"/>
<element ref="dsig:KeyInfo" minOccurs="0"/>
</choice>
</sequence>
</complexType>
Figure 59: The dmp1md:DomainID and dmp1md:ContentGroupID elements
For more information on the dmp2rd:DomainID element, refer to Section 3.2.15 – Represent Domain.
A Resource such as an audio track, a video clip, executable code, etc. is Represented in the DCI by the element dmp2_didl:Resource, as shown in the box below.
<element name="Resource" type="dmp2_didl:ResourceType" substitutionGroup="didmodel:Resource"/>
<complexType name="ResourceType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:ResourceType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
<attribute name="ref" type="anyURI"/>
<attribute name="encoding" type="string"/>
<attribute name="contentEncoding" type="NMTOKENS"/>
</extension>
</complexContent>
</complexType>
Figure 60: Represent Resource
The data type of the Resource represented by the dmp2_didl:Resource element is identified by the mimeType attribute, as defined in IETF RFC 2045 [ REF _Ref126396201 \r \h 35]. A Resource is either defined in a dmp2_didl:Resource element by reference, specifying the Resource’s URI in the ref attribute, or by value, including it inline. The encoding attribute specifies the encoding format used when the Resource is included in the dmp2_didl xml document. Lastly, the contentEncoding attribute, if present, specifies the content-encoding(s) as defined in IETF RFC 2616 [37] indicating what additional content-encodings have been applied to the Resource.
DRM Information is the class of information contained in the DCI that relate to the Governance of Content or Content Elements. It includes
1. The Representation of the DRM Tools required to Access Content.
2. Any initialisation and configuration data, possibly including Decryption Keys and information related to DRM Tool Management
3. Placeholders for Licenses when these are Bundled within the DCI (see sub section 3.2.1.10).
DRM Information is expressed in XML and is based on MPEG-21 IPMP Components [23]. An overview can be found in Annex A.2, while the DMP profile of MPEG-21 IPMP Components is included in Annex C.2.
The process of indicating that a Content Item or some of its Content Elements are Governed is done using one of the three MPEG-21 IPMP Components technologies described below, depending on the Content Item.
· IPMP DIDL: The use of an element belonging to IPMP Digital Item Declaration Language namespace to Represent the Governed Content Element. These elements are denoted with the dmp2_ipmpdidl: namespace prefix in this specification. These elements are used to replace the corresponding elements of the same name from the Digital Item Declaration Language namespace (prefix dmp2_didl:) for the case when the Content Element is Representing a Governed Element. In contrast, the dmp2_didl: elements are used when the Content Element it is Representing is not Governed.
· IPMPInfoDescriptor: This descriptor is part of the MPEG-21 IPMPINFO namespace and has been profiled in this specification, denoted dmp2_ipmpinfo. The IPMPInfoDescriptor is used as a child of the dmp2_ipmpdidl:Info element to describe the DRM Tools that Process (e.g. Decrypt) the Governed Content Item or its Content Elements, therefore enabling Users to Access the Governed Elements. Refer to Annex A.2.2 for an overview of MPEG-21 IPMP Information Descriptor. The dmp2_ipmpinfo schema is given in Annex C.2.3.
· IPMPGeneralInfoDescriptor: The use of an IPMPGeneralInfoDescriptor to convey the list of all DRM Tools required to Access all Governed Content Elements. Refer to Annex A.2.3 for an overview of MPEG 21 IPMP General Information Descriptor. Also the IPMP General Information Descriptor is defined in the dmp2_ipmpinfo schema, given in Annex C.2.3.
The following sub-Sections provide more details on how these technologies are employed in IDP-2.
The following elements of the DCI can be Governed: dmp2_didl:Container, dmp2_didl:Item, dmp2_didl:Statement, dmp2rc:Metadata, dmp2_didl:Resource. The left column in the table below shows elements from the dmp2_didl namespace which can be replaced by the elements with the same name defined in the dmp2_ipmpdidl namespace:
Table 12 – Conversion from the dmp2_didl to the dmp2_ipmpdidl namespaces
|
Un-Governed element |
Governed element |
|
dmp2_didl:Container |
dmp2_ipmpdidl:Container |
|
dmp2_didl:Item |
dmp2_ipmpdidl:Item |
|
dmp2_didl:Statement |
dmp2_ipmpdidl:Statement |
All the elements defined in the dmp2_ipmpdidl contain the following child elements:
· an optional dmp2_ipmpdidl:Identifier element, specifying an Identifier for the Governed Element;
· a dmp2_ipmpdidl:Info element, containing information about the Governance of the Governed Element
· a dmp2_ipmpdidl:Contents element, containing the Governed Element.
Note: using the dmp2_ipmpdidl:Container instead of dmp2_didl:Container implies that the whole DCI is Governed.
There are two other elements used for Representing the Governed content elements. These are for Representing Metadata and for Representing a Resource.
The case of dmp2rc:Metadata does not have an IPMP substitution as this element is not part of the DIDL Model but is DMP-native. As explained in 3.2.2 Represent Metadata, this element may contain either un-Governed data (when the child element dmp2rc:StructuredData is employed) or Governed, in which case it inherits all properties of dmp2_ipmpdidl elements, including the child elements; Identifier, Info and Contents.
The Figure below shows an example of Governed Metadata for a dmp2_didl:Item:
<dmp2_didl:Item>
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor></dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents>01234567890ABCDEF</dmp2_ipmpdidl:Contents>
<!-- Insert the Governed - obfuscated metadata in dmp2_ipmpdidl:Contents-->
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Item>
Figure 61: An example of Governed Metadata
A similar solution is employed when a Governed Resource is represented. As this contains a specific Resource, rather than replacing a dmp2_didl:Resource element with the dmp2_ipmpdidl:Resource element, a Governed Resource is a Resource Element that has a special child element: dmp2_ipmpdidl:ProtectedAsset. By virtue of being part of the dmp2_ipmpdidl namespace, the dmp2_ipmpdidl:ProtectedAsset possesses all properties of dmp2_ipmpdidl elements and additionally allows extra attributes. The Figure below shows the dmp2_ipmpdidl:ProtectedAsset element:
<element name="ProtectedAsset" type="dmp2_ipmpdidl:ProtectedAssetType"/>
<complexType name="ProtectedAssetType">
<sequence>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
<attribute name="contentEncoding" type="string"/>
</complexType>
Figure 62: The dmp2_ipmpdidl:ProtectedAsset element
The dmp2_ipmpdidl:IPMPDIDLChildGroup refers to the ipmpdidl: child elements; dmp2_ipmpdidl:Identifier, dmp2_ipmpdidl:Info and dmp2_ipmpdidl:Contents used to protect all the Governed elements.
The mimeType attribute defines the mimeType of the protected Resource when in the unprotected state, while the contentEncoding attribute defines the content encoding of the Resources when in unprotected state.
When including a dmp2_ipmpdidl:ProtectedAsset element, the mimeType attribute of the parent dmp2_didl:Resource element is set to "application/ipmp".
Refer to Annex A.2.1 for an overview of MPEG-21 IPMP DIDL; the DMP profile of IPMP DIDL is given in Annex C.1.7, see also Represent Content in Section 3.2.2 for more information on the use of dmp2rc:Metadata.
The dmp2_ipmpinfo:IPMPInfoDescriptor element shall contain:
1. dmp2_ipmpinfo:Tool, to convey information on the DRM Tool or Tools that are necessary to Process (e.g. Decrypt) the Governed Content Item or its Content Elements. Refer to Section 3.2.8 – Represent DRM Tool for more information on the Use of the dmp2_ipmpinfo:Tool element.
2. dmp2_ipmpinfo:RightsDescriptor (optional), to convey one or more Licenses Governing the use of the parent element with which the IPMPInfoDescriptor is associated, as described in Section 3.2.10 – Represent License.
3. A digital Signature (optional), which can be applied to the IPMPInfoDescriptor, and conveyed by means of the dsig:Signature element.
The dmp2_ipmpinfo:IPMPInfoDescriptor is shown in the Figure below:

Figure 63: The dmp2_ipmpinfo:IPMPInfoDescriptor
The location of the IPMPInfoDescriptor is given in Section 3.2.1.8, - Location of DRM Information including Tools.
The scope of the IPMPGeneralInfoDescriptor is to convey all the required information needed by the Device for presenting the Governed Content to Users, thereby enabling the Device to Access all DRM Tools (See section 3.3.5.4 – Access DRM Tool) before they have to be instantiated in the Device.
The dmp2_ipmpinfo:IPMPGeneralInfoDescriptor is shown in the Figure below:

Figure 64 The dmp2_ipmpinfo:IPMPGeneralInfoDescriptor element
The location of the IPMPGeneralInfoDescriptor is given in Section 3.2.1.9, - Location of General DRM Information including ToolList.
A Governed Content Item, or a Content Item containing one or more Governed Content Elements, shall have one and only one IPMPGeneralInfoDescriptor in the DCI. This shall contain the following optional elements
1. dmp2_ipmpinfo:ToolList element listing the descriptions of all DRM Tools (if any) involved in the Use of the Governed Elements
2. dmp2_ipmpinfo:LicenseCollection containing all the Licenses (or reference to them or to License Services) Governing the Use of such Governed Content Elements. Note: the use of this element is deprecated in IDP-2
3. Signature in the dsig:Signature element.
For more information on the dmp2_ipmpinfo:ToolList element, refer to Section 3.2.8 – Represent DRM Tool.
This section describes how to indicate within the DRM Information which DRM Tool or DRM Tools are required to Access the Content. DRM Tools are software modules performing one or more DRM Functions such as Authentication, Decryption, watermarking, etc.
Represent DRM Tool is a DMP-specified profile of MPEG-21 IPMP Components [23] and MPEG-2/4 IPMP Extensions [ REF _Ref127266745 \r \h 12] [14] to enable the Representation of single DRM Tools. A further extension enables the Representation of DRM Tool Packs. The DMP Represent Tool namespace is part of the dmp2_ipmpinfo namespace, given in Annex C.2.3
1. IPMPGeneralInfoDescriptor is used with the dmp2_ipmpinfo:ToolList element to convey specific information about DRM Tools that may be used by a Device to Access the required DRM Tools before they are needed
2. IPMPInfoDescriptor is used to trigger the instantiation of a DRM Tool and contains the DRM Tool Representation
The two paragraphs below describe in detail these two DRM Tool Representations.
The dmp2_ipmpinfo:ToolList is shown in the figure below:

Figure 65: The dmp2_ipmpinfo:ToolList element
The dmp2_ipmp:ToolList makes it possible to specify information related to a DRM Tool to enable a Device to locate the Tool, as specified in Section 3.3.5.4 - Protocol to Access DRM Tool Body as File.
A ToolList may contain one or more dmp2_ipmpinfo:ToolDescription elements, each specifying:
For more information on the use of the dmp2_ipmpinfo:ToolList element, refer to [23].
The dmp2_ipmpinfo:ToolList element is a child of a dmp2_ipmpinfo:IPMPGeneralInfoDescriptor element, which in turn is contained in a dmp2_didl:Statement contained in a dmp2_didl:Descriptor below the top-level dmp2_didl:Item in a DCI. An example is shown in the Figure below:
<dmp2_didl:Container>
<dmp2_didl:Item id="Program1">
<dmp2_didl:Descriptor>
<dmp2_didl:Statement mimeType="text/xml">
<dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
<dmp2_ipmpinfo:ToolList>
<!-- Insert the Tool List here -->
</dmp2_ipmpinfo:ToolList>
</dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
</dmp2_didl:Statement>
</dmp2_didl:Descriptor>
</dmp2_didl:Item>
</dmp2_did:Container>
Figure 66: Location of the dmp2_ipmpinfo:ToolList element
The dmp2_ipmpinfo:Tool element is inserted in a dmp2_ipmpinfo:IPMPInfoDescriptor to indicate that a specific DRM Tool should be operational on the Device. If, whilst parsing the Represent DRM Information portion of the DCI describing a Governed Resource the DRM Processor encounters an dmp2_ipmpinfo:Tool element in a dmp2_ipmpinfo:IPMPInfoDescriptor, the DRM Processor instantiates the DRM Tool Represented within it to operate on that Resource.
The dmp2_ipmpinfo:Tool is shown in the Figure below:

Figure 67: The dmp2_ipmpinfo:Tool element
In order to instantiate a DRM Tool, the DRM Processor will require additional information contained in the dmp2_ipmpinfo:ToolBaseDescription, as described in sub-section 3.2.8.2.1. Once the DRM Tool is instantiated, the DRM Processor forwards to the DRM Tool any information included in the dmp2_ipmpinfo:InitializationSettings for initialising the DRM Tool as described in sub-section 3.2.8.2.2. The DRM Tool usage may be subject to usage rules, in which case the corresponding Licenses will be provided in the dmp2_ipmpinfo:RightsDescriptor element, as specified in Section 3.2.10 – Represent License. A signature may be applied to the dmp2_ipmpinfo:Tool element.
For more information on the dmp2_ipmpinfo:Tool, refer to [23].
The dmp2_ipmpinfo:IPMPToolID element specifies the URI of the DRM Tool. With this URI, the DRM Processor can Access the appropriate DRM Tool Body, as specified in Section 3.3.5.4 – Access DRM Tool, and instantiate it as specified in Section 3.3.4 – Manage DRM Tool.
The DRM Tool Body may be Delivered either by including it in the dmp2_ipmpinfo:Inline element (see section 3.2.9 - Represent DRM Tool Body) or by referencing it in the dmp2_ipmpinfo:Remote element. The optional element dmp2_ipmpinfo:ConfigurationSettings may specify parameters used by the DRM Processor to configure a DRM Tool, including the dmp2_ipmpinfo:Update element which specifies the location from which any update information may be obtained and the conditions under which a DRM Tool shall receive updates.
The dmp2_ipmpinfo:ToolBaseDescription is shown in the Figure below:

Figure 68: The dmp2_ipmpinfo:ToolBaseDescription element
The dmp2_ipmpinfo:InitializationSettings is shown in the Figure below:

Figure 69: The dmp2_ipmpinfo:InitializationSettings element
The dmp2_ipmpinfo:InitializationSettings contains one dmp2_ipmpinfo:InitializationData element which conveys information required by a DRM Tool for initialization after its instantiation. The DRM Processor shall extract this information and forward it to the appropriate DRM Tool as described in Section 3.3.4 – Manage DRM Tool.
As specified in [23] and further explained in Section 3.2.7 – Represent DRM Information, the dmp2_ipmpinfo:Tool is always a child element of an dmp2_ipmpinfo:IPMPInfoDescriptor within a dmp2_ipmpdidl:Info which in turn is contained in any of the Governed Content Elements defined in Section 3.2.7.1– Represent Governed Elements. The figure below shows the location of an dmp2_ipmpinfo:Tool describing a DRM Tool designed to Govern a Resource.
<dmp2_didl:Resource mimeType="application/ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="video/mpeg">
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
<dmp2_ipmpinfo:Tool>
......
</dmp2_ipmpinfo:Tool>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
</dmp2_ipmpdidl:ProtectedAsset>
</dmp2_didl:Resource>
Figure 70: Location of the dmp2_ipmpinfo:Tool element
This approved document provides the following fixed DRM Tools that implementers can utilise without the need of the full DRM Tool infrastructure.
· AES in cbc mode with a 128 bit key identified as follows:
o <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
· AES in ecb mode with a 128 bit key identified as follows:
o <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-ecb"/>
· RSA with a variable key length identified as follows (for a 1024 bit key):
o <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa1024"/>
This section specifies the Representation of specific information associated with DRM Tool embodiments. When signalled, such Tool embodiments shall be instantiated on a Device to enable Access to the Governed Content.
DRM Tools are software modules performing one or more DRM functions such as Authentication, Decryption, watermarking, etc. They may operate as “stand alone” Tools or they can be aggregated in a single entity called a DRM Tool Pack. A DRM Tool Pack is a special case of a DRM Tool because it consists of a group of DRM Tools, named DRM Tool Group, plus a special component named the DRM Tool Agent. The role of the DRM Tool Agent is to instantiate, initialise, Authenticate and supervise any operation performed by the DRM Tools that form part of the Tool Group.
The Figure below show a graphical representation of the Represent Tool Body schema:

Figure 71: The dmp2rtb:ToolBody element
Represent DRM Tool Body, denoted by the namespace prefix dmp2rtb, conveys the executable code of a DRM Tool including specific information describing the DRM Tool (a single DRM Tool or a DRM Tool Pack) and an optional Digital Signature.
The DRM Tool ID associated with a Governed Content Item is conveyed within the DCI under the dmp2_ipmpinfo:IPMPToolID. If this Tool is not already available on the Device the DMP Processor must first Access and, after signature verification, determine the nature of the DRM Tool from the presence of either dmp2rtb:Tool or dmp2rtb:ToolPack.
Note: The DRM Tool ID conveyed by the dmp2_ipmpinfo:IPMPToolID element child of dmp2_ipmpinfo:ToolBaseDescription (see Section 3.2.8 – Represent DRM Tool) can either identify a DRM Tool or a DRM Tool Pack, but not both. However, for achieving platform interoperability, implementations of the same DRM Tool (i.e. implementing the very same DRM algorithm) may exist for different platforms. In this case all of them share the same DRM Tool ID.
The Represent Tool Body namespace is defined in Annex B.2.8.
When the DRM Tool is a single DRM Tool, the body of this DRM Tool (the executable code) will be Delivered employing the dmp2rtb:Tool element, shown in the figure below.
The actual body of the DRM Tool is contained within the dmp2_ipmpinfo:Binary element, as shown earlier in Section 3.2.1.12 - 2.1.12 Location of DRM Tool Body. The DRM Tool Body Identifier is contained in dmp2rtb:ToolBodyID element.
The element dmp2rtb:DeviceInformation provides the means to specify Device Information of the Devices on which the DRM Tool can operate (see Section 3.2.14 – Represent Device Information). Information related to the type of package of the DRM Tool Body (Zip, TAR, etc...) can be conveyed by specifying the corresponding MIME Type in the dmp2rtb:ToolPackageType.
The DRM Processor, after verifying any Signature and ensuring that the Device matches the supported platform conditions, processes the pack containing the code of the DRM Tool (e.g. un-zips the archive) and instantiates the DRM Tool by employing Manage Domain functions as described in Section 3.3.4.
The dmp2rtb:Tool element is shown in the figure below.

Figure 72: The dmp2rtb:Tool element
When the DRM Tool is a DRM Tool Pack, the Tool Pack Body will be delivered by the dmp2rtb:ToolPack element, shown in the figure below.

Figure 73: The dmp2rtb:ToolPack
The dmp2rtb:ToolPack element delivers a Tool Agent and an (optional) Tool Group. For more information about a Tool Agent and a Tool Group, refer to Approved Document No. 2 – Architecture [ REF _Ref100641431 \r \h 2]. The DRM Tool Pack Body Identifier is contained in dmp2rtb:ToolBodyID element. The Tool Agent Body is conveyed by the dmp2rtb:ToolAgentBody element, and its Tool Agent Identifier is conveyed by the dmp2rtb:ToolAgentID.
Note: The Tool Agent ID and Tool Group ID must not be confused with the DRM Tool ID, the latter being the Identifier of a specific DRM Tool which can be a single DRM Tool or a DRM Tool Pack. Every DRM Tool Pack contains a Tool Agent which in turn is characterised by a Tool Agent ID, and may have a Tool Group, characterised by its own dmp2rtb:ToolGroupID.
As in the case of the single DRM Tool, it is also possible to specify information on the package type and supported platform for the Tool Pack.
The DRM Processor, after verifying all Signatures and ensuring that the Device matches the supported platform conditions, processes the package containing the code of the Tool Pack (e.g. un-zips the archive) and instantiates the DRM Tool Agent. Once the DRM Tool Agent is instantiated (and possibly Authenticated) the Tool Agent obtains the reference of the Tool Group and intantiates the Tools from the ToolGroup, if available. If not available, the DRM Tool Agent will request the reference of the remaining DRM Tools. The DRM Processor locates the missing tools on behalf of the Agent. The Agent subsequently instatiates these tools. For detailed information on DRM Tool Pack instantiation, initialisation and DRM Tool Pack management in general refer to Section 3.3.4.
The Figure below is an example of the Represent Tool Body namespace.
<dmp2rtb:ToolBody>
<dmp2rtb:ToolPack>
<dmp2rtb:ToolAgent>
<dmprtb:ToolAgentID>urn:Origin:ToolPack:ToolID:ABC9:ToolAgentID:01
</dmp2rtb:ToolAgentID>
<!-- Include the code implementing the DRM Tool in the element below -->
<dmp2rtb:ToolAgentBody>AB67543EF5554CD0</dmp2rtb:ToolAgentBody>
</dmp2rtb:ToolAgent>
<dmp2rtb:ToolPackageType>application/zip</dmp2rtb:ToolPackageType>
<dmp2rtb:SupportedPlatform>
<mpeg4ipmp:OperatingSystem>
<mpeg4ipmp:Vendor>Red Hat</mpeg4ipmp:Vendor>
<mpeg4ipmp:Model>Enterprise</mpeg4ipmp:Model>
<mpeg4ipmp:Version>9.0</mpeg4ipmp:Version>
</mpeg4ipmp:OperatingSystem>
</dmp2rtb:SupportedPlatform>
</dmp2rtb:ToolPack>
</dmp2rtb:ToolBody>
Figure 74: An example of the Represent Tool Body namespace
This section specifies the Tool to express usage rules associated with Content that in turn map onto specific Device behaviour consistent with the semantics of the Rights Expressions.
DMP Licenses may be used for different purposes; a non-exhaustive list is given below:
· To Grant the Right to Use Content (e.g. Device D can Play Content Item X five times)
· To attribute properties to a Principal (Device D belongs to Domain B)
· To Govern the Use of DRM Tools (DRM Tool T can only work on Devices Certified by Agency A)
The IDP-2 Represent License extends the MPEG-21 REL Dissemination and Capture (DAC) Profile [25], in order to support DMP Domain requirements. For an overview of the MPEG-21 REL Standard, refer to Annex A.3. For examples of how this namespace can be used to support various external Rights and Conditions for SAV Use Cases such as Copy Control Information (CCI) and TV-Anytime’s Rights Management and Protection Information (RMPI) see [ REF _Ref100641467 \r \h 4]. The Represent License schema (dmp2rl) is given in Annex B.2.2.
The dmp2rl:License element is specified in the Figure below:
<element name="License" type="dmp2rl:LicenseType"/>
<complexType name="LicenseType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI" default="urn:dmp:idp2:Represent:License:2006:02"/>
</complexType>
Figure 75: The dmp2rl:License element
The native License supported in IDP-2 is specified in dmp2rl:License, which is denoted by the following URI: "urn:dmp:idp2:Represent:License:2006:02" and refers to the DMP-extended DAC REL. This is indicated when the attribute is omitted. Alternatively, any other License schema can be employed. In this case the attribute 'ref' shall specify the URI of the License namespace employed.
The dmp2rl:DomainResource element is an extension to the rel-r-bpx:Resource complex type, defined in the MPEG-REL core schema, with elements from the DMP Represent Domain schema (dmp2rd), and is specified in the Figure below:
<element name="DomainResource" type="dmp2rl:DomainResourceType" substitutionGroup="rel-r-bpx:resource"/>
<complexType name="DomainResourceType">
<complexContent>
<extension base="rel-r-bpx:Resource">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rd:DomainKey"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 76: The dmp2rl:DomainResource element
The dmp2rl:DomainResource is used to convey to a User or a Device the membership of a Domain, and therefore it conveys all the information that the Device or the User requires. In detail, this element conveys:
A Domain Resource is always contained in a License, where:
For more information on these elements, refer to Section 3.2.15 – Represent Domain.
The dmp2rl:digitalResource element is an extension to the rel-r-bpx:DigitalResource complex type, defined in the MPEG-REL core schema, with elements from the DMP Represent Domain schema (dmp2rd), and is specified in the Figure below:
<element name="digitalResource" type="dmp2rl:DigitalResource" substitutionGroup="r:resource"/>
<complexType name="DigitalResource">
<complexContent>
<extension base="r:DigitalResource">
<sequence>
<element ref="dmp2rd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 77: The dmp2rl:digitalResource element
The dmp2rl:digitalResource replaces rel-r-bpx:digitalResource in a License any time the Governed Resource (i.e. the Content Item) belongs to a Content Group. For more information on dmp2rd:ContentGroupID refer to Section 3.2.15 – Represent Domain.
The dmp2rl:protectedResource element is an extension to the rel-r-bpx:Resource complex type, defined in the MPEG-REL core schema, with elements from the DMP Represent Domain schema (dmp2rd), and is specified in the Figure below:
<element name="protectedResource" type="dmp2rl:ProtectedResource" substitutionGroup="rel-r-bpx:resource"/>
<complexType name="ProtectedResource">
<complexContent>
<extension base="rel-r-bpx:Resource">
<sequence minOccurs="0">
<element ref="dmp2rl:digitalResource"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xenc:EncryptedData"/>
<element ref="xenc:EncryptedKey"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 78: The dmp2rl:digitalResource element
The dmp2rl:protectedResource shall be used instead of dmp2rl:digitalResource any time the Resource identified by the Domain-bound License is Encrypted and therefore a decryption Key is required. This Key shall be conveyed by employing either the xenc:EncryptedData or the xend:EncryptedKey elements.
DRM applications may require the use of Encryption and Decryption Keys during their execution. There are two types of Keys:
· time-independent Keys, ie, keys that do not need to be synchronised to the content delivery
· time-dependent Keys, ie, keys that are synchronised to timely packet delivery, for instance for the timely decoding of streamed content.
This specification states how to Represent the two different types of Keys.
When a Key that can be employed to Decrypt Resources without the need to synchronise the key delivery with Resource delivery between Devices, this shall be done using the Representation specified by the dsig:KeyInfo element, specified in [ REF _Ref102379491 \r \h 40].
Where a Key to be employed to Decrypt Resources with time synchronisation constraints associated with packetised Resource delivery has to be Delivered between Devices, this shall be conveyed within the dmp2rk:Key element represented in the Figure below:
<element name="Key">
<complexType>
<sequence>
<element ref="dsig:KeyInfo"/>
<element name="startDTS" type="unsignedLong" minOccurs="0"/>
<element name="startPacketID" type="unsignedInt" minOccurs="0"/>
<element name="expireDTS" type="unsignedLong" minOccurs="0"/>
<element name="expirePacketID" type="unsignedInt" minOccurs="0"/>
</sequence>
</complexType>
</element>
Figure 79: The dmp2rk:Key element
The dmp2rk:Key element conveys a Decryption Key and further information about its use by the DRM Tool that receives it.
· dsig:KeyInfo: the container of the Key, as specified in [40]
· dmp2rk:startDTS: the container of the decoding time stamp of the first access unit for which the contained Key is valid (optional)
· dmp2rk:startPacketID: the container of the packet ID of the first access unit for which the contained Key is valid (optional)
· dmp2rk:expireDTS: the container for the decoding time stamp of the first access unit for which the contained Key is no longer valid (optional)
· dmp2rk:expirePacketID: the container for the packet ID of the first access unit for which the contained Key is no longer valid (optional)
Whenever a Key has to be Delivered to a DRM Tool, this is done by employing a dmp2rdm:KeyData element, as specified in Section 3.2.12.3.4 - Represent DRM Messages. Further information on the Protocols to Manage DRM Tool is given in Section 3.3.4.
This section provides the means to Represent Information exchanged between different components on a Device, such as two DRM Tools or a DRM Processor and a DRM Tool.
DRM Messages are a translation of messages originally defined in the MPEG-2 and MPEG-4 IPMPX standards (see [12] and [14]) from a binary representation to XML. See Annex REF _Ref121288479 \r \h A.4 - MPEG-2/4 IPMP Extension for an overview of those standards.
Note: In the sub-sections below a DRM Tool can be either a single DRM Tool or a DRM Tool Agent of a DRM Tool Pack
As specified in Sections 3.2.8 – Represent DRM Tool and 3.3.4 – Protocols to Manage DRM Tools, the DRM Processor instantiates a DRM Tool to Govern a Content Element every time it encounters a dmp2_ipmpinfo:Tool element within the Governed Content Representation in the DCI.
The DRM Processor assigns an Identifier to each instance of DRM Tool, named the DRM Tool Context ID. The Tool Context ID serves a different role from the DRM Tool ID. In particular, two instances of a DRM Tool with a common DRM Tool ID will be assigned different values of Tool Context ID.
Once the DRM Tool is instantiated, the Governance of the Governed Content Element through the DRM Tool may involve the exchange of information between the DRM Processor and the DRM Tool or between the various DRM Tools. This information is coded in DRM Messages, which are encapsulated in two different containers depending on the way the Message is originated:
1) MessageFromDCI: this container Message is sent from the DRM Processor to a DRM Tool conveying information extracted from the DCI and addressed to the DRM Tool (e.g. a Key to Decrypt a Resource);
2) MessageFromTool: this container Message is sent either from the DRM Processor or from a DRM Tool to another DRM Tool and contains information originated internally by the sender. For example, a Message requesting mutual Authentication.
Both Containers: MessageFromDCI and MessageFromTool, share the same abstract XML element Base Type: dmp2rdm:IPMPBaseType, shown in the Figure below:
<complexType name="IPMPBaseType" abstract="true"/>
Figure 80: The dmp2rdm:IPMPBaseType type
All DRM Message Containers are based on the dmp2rdm:ToolMessageBase element, defined in the following Figure:
<element name="ToolMessageBase" type="dmp2rdm:ToolMessageBaseType" abstract="true"/>
<complexType name="ToolMessageBaseType" abstract="true">
<complexContent>
<extension base="dmp2rdm:IPMPBaseType">
<sequence>
<element name="Sender" type="xsd:unsignedInt"/>
<element name="Recipient" type="xsd:unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 81: The dmp2rdm:ToolMessageBase element
The abstract element dmp2rdm:ToolMessageBase extends dmp2rdm:IPMPBaseType by adding Sender and Recipient elements to the message. These elements contain an unsigned integer representing the unique Identifier that the DRM Processor assigns to each instance of a DRM Tool, the DRM Tool Context ID. The DRM Processor shall be Identified by the value ‘0’.
All DRM Messages extend the dmp2rdm:Data_BaseClass element, as specified in the Figure below:
<element name="Data_BaseClass" type="dmp2rdm:Data_BaseClassType" abstract="true"/>
<complexType name="Data_BaseClassType" abstract="true">
<complexContent>
<extension base="dmp2rdm:IPMPBaseType">
<sequence>
<element name="dataID" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 82: The dmprtd:Data_BaseClass element
The abstract element dmp2rdm:Data_BaseClass extends the dmp2rdm:IPMPBaseType element by adding the dataID element, which shall contain an unsigned integer value identifying a Message. The same value of dataID shall be used in any reply to that message.
Any DRM Message extracted from the DCI during its Parsing by the DRM Processor and addressed to a DRM Tool shall be conveyed to that DRM Tool by encapsulation in a dmp2rdm:MessageFromDCI message, which is specified in the Figure below:
<element name="MessageFromDCI" type="dmp2rdm:MessageFromDCIType" substitutionGroup="dmp2rdm:ToolMessageBase"/>
<complexType name="MessageFromDCIType">
<complexContent>
<extension base="dmp2rdm:ToolMessageBaseType">
<sequence>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 83: The dmp2rdm:MessageFromDCI element
The dmp2rdm:MessageFromDCI element (indirectly) extends the dmp2rdm:ToolMessageBase element by adding a sequence of DRM Messages extending the dmp2rdm:Data_BaseClass.
Any DRM Message originated spontaneously from a DRM Processor or a DRM Tool and addressed to another DRM Tool shall be conveyed to that DRM Tool by encapsulation in a dmp2rdm:MessageFromTool message, which is specified in the Figure below:
<element name="MessageFromTool" type="dmp2rdm:MessageFromToolType" substitutionGroup="dmp2rdm:ToolMessageBase"/>
<complexType name="MessageFromToolType">
<complexContent>
<extension base="dmp2rdm:ToolMessageBaseType">
<sequence>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 84: The dmp2rdm:MessageFromTool element
The dmp2rdm:MessageFromTool element (indirectly) extends the dmp2rdm:ToolMessageBase element by adding a sequence of DRM Messages extending the dmp2rdm:Data_BaseClass.
DRM Messages express in an interoperable way a vast quantity of DRM-related information which can be exchanged by two parties by Representing it with the Messages specified by the DMP Represent DRM Messages namespace.
The delivery of DRM Messages exchanged between two DRM Tools on a Device shall be handled by the DRM Processor. Hence, a compliant DRM Processor shall be able to forward all DRM Messages defined in this specification to a recipient DRM Tool. However, a compliant DRM Processor is not required to be able to process all DRM Messages, as some of them may contain information that is only meaningful for a specific DRM Processor. A compliant DRM Processor shall be able to process all DRM Messages labelled “DP” in the Table below.
DRM Messages are divided into two categories: those belonging to a base and those belonging to an extended profile of this specification. All DRM Tools shall be able to process DRM Messages belonging to the base profile, labelled with “B” in the table below. DRM Tools may also be able to process DRM Messages belonging to the extended profile, labelled with “X” in the table below, in which case they will be compliant with the extended profile.
The following table specifies the DRM Messages to be exchanged by two DRM Tools or between a DRM Tool and the DRM Processor to achieve Mutual Authentication.
Table 13 – Mutual Authentication Messages
|
DRM Message |
DP |
Profile |
Purpose |
|
SecureContainer |
DP |
B |
Secure container message for any message extending the IPMP_Data_BaseClass. |
|
InitAuthentication |
DP |
B |
Message that initiates a mutual authentication process |
|
MutualAuthentication |
DP |
B |
Messages exchanged during mutual authentication process |
Note that unlike the DRM Messages described in the followings sub section which are part of the dmp2rdm namespace, InitAuthentication and MutualAuthentication are a special case and are part of the dmp2ram – Represent Authentication Messages described in Section 3.2.13.
The following table specifies the DRM Messages to be exchanged by a DRM Tool and a DRM Processor to trigger the instantiation of a new DRM Tool, or to obtain specific information about DRM Tools.
Table 14 – DRM Tool Connection and Disconnection Messages
|
DRM Message |
DP |
Profile |
Purpose |
|
GetTools |
DP |
B |
Message sent by a DRM Tool to the DRM Processor to find all the tools, instantiated or not, that are available on the Device. |
|
GetToolsResponse |
DP |
B |
Message sent by the DRM Processor to a DRM Tool in reply to a GetTools Message |
|
ToolParamCapabilitiesQuery |
DP |
X |
Messages allowing a DRM Processor to query a DRM Tool as for support for a specific parametric description |
|
ToolParamCapabilitiesResponse |
DP |
X |
Message in response to the above parametric capabilities query. Returns a boolean value as to whether or not the parametric description is supported by the tool |
|
ConnectTool |
DP |
B |
A Request Message from a DRM Tool to the DRM Processor to create a connection to a tool identified by the dmp2_ipmpinfo:Tool element |
|
DisconnectTool |
DP |
B |
Message allowing a DRM Tool to disconnect a DRM Tool it has previously connected |
|
GetToolContext |
DP |
B |
Message sent from a DRM Tool to the DRM Processor to find the DRM Tool context ID of all DRM Tools operating on the same Governed Content Element |
|
GetToolContextResponse |
DP |
B |
Message sent from the DRM Processor to a DRM Tool that has required to find the DRM Tool context IDs of all DRM Tools operating on the same Governed Content Element. |
The following table specifies the DRM Messages to be exchanged between a DRM Tool and a DRM Processor when being notified of particular events related to DRM Tools on the Device.
Table 15 – DRM Tool Notification Messages
|
DRM Message |
DP |
Profile |
Purpose |
|
AddToolNotificationListener |
DP |
B |
Message sent from a DRM Tool to the DRM Processor to request notification of certain events. |
|
RemoveToolNotificationListener |
DP |
B |
Message sent from a DRM Tool to the DRM Processor to stop the notification of certain events |
|
NotifyToolEvent |
DP |
B |
Message to notify a DRM Tool of an event for which it had previous registered as a listener. A list of events is given in the Represent DRM Messages schema. |
The following table specifies the DRM Messages to be exchanged between two DRM Tools or between a DRM Processor and a DRM Tool for different purposes.
Table 16 – DRM Processing Messages
|
DRM Message |
DP |
Profile |
Purpose |
|
KeyData |
DP |
B |
Message conveying either a time-dependent or time-independent Decryption Key |
|
RightsData |
DP |
B |
Message conveying a License |
|
CanProcess |
DP |
B |
Sent from a DRM Tool to the DRM Processor to allow or deny content processing |
|
OpaqueData |
DP |
B |
General-purpose container Message for any type of data |
|
AudioWatermarkingInit |
|
X |
Message for delivering to a DRM Tool performing audio watermarking specific information about the audio content and a payload and possibly other related proprietary data required by the Tool |
|
VideoWatermarkingInit |
|
X |
Message for delivering to a DRM Tool performing audio watermarking specific information about the audio content and a payload and possibly other related proprietary data required by the Tool |
|
SendAudioWatermark |
|
X |
Message conveying an audio watermark payload and other related information obtained by a DRM Tool performing Audio Watermarking on audio data |
|
SendVideoWatermark |
|
X |
Message conveying a video watermark payload and other related information obtained by a DRM Tool performing Video Watermarking on video data |
|
SelectiveDecryptionInit |
|
X |
Message to initialise a DRM Tool performing decryption |
Two Messages among those defined in the Table above are specified below. These are dmp2rdm:KeyData and dmp2rdm:RightsData.
<element name="KeyData" type="dmp2rdm:KeyDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="KeyDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<choice>
<element ref="dsig:KeyInfo"/>
<element ref="dmp2rk:Key"/>
</choice>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 85: The dmp2rdm:KeyData element
The dmp2rdm:RightsData Message shall be employed to Deliver a License to a DRM Tool.
<element name="RightsData" type="dmp2rdm:RightsDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="RightsDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="rightsInfo" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 86: The dmp2rdm:RightsData element
The following table specifies the DRM Messages to allow the communication between a DRM Tool and the User.
Table 17 – User Interaction Messages
|
DRM Message |
DP |
Profile |
Purpose |
|
UserQuery |
DP |
B |
Message used to query the User for information |
|
UserQueryResponse |
DP |
B |
Message containing the User response to a UserQuery message |
The following table specifies DMP-defined DRM Messages to be exchanged between a DRM Tool and a DRM Processor for different purposes:
Table 18 – DMP-defined DRM Messages
|
DRM Message |
DP |
Profile |
Purpose |
|
InitialiseTool |
DP |
B |
Message conveying initialisation data to a DRM Tool |
|
GetToolGroupReference |
DP |
B |
Message sent by a DRM Tool Agent to the DRM Processor requesting the reference to the Reference of the associated DRM Tool Group |
|
GetToolGroupReferenceResponse |
DP |
B |
Message sent by a DRM Processor to a DRM Tool Agent conveying the reference to the reference of the associated DRM Tool Group |
|
GetToolReference |
DP |
B |
This message is to get the reference of specific Single DRM Tool which is not in the DRM Tool Group. This message is sent by the DRM Tool Agent to the DRM Processor. |
|
GetToolReferenceResponse |
DP |
B |
This message is to convey the reference of a requested Single DRM Tool. This message is sent by the DRM Processor to the DRM Tool Agent. |
|
GetToolPackData |
DP |
B |
Message sent by a DRM Tool Agent to the DRM Processor requesting DRM Tool Pack data |
|
ToolPackData |
DP |
B |
Message sent by a DRM Processor to a DRM Tool Agent conveying DRM Tool Pack Data. |
Note: a compliant single DRM Tool does not need to be able to process DRM Tool Pack messages.
The syntax of these messages is specified in the DMP namespace dmp2rdm in B.2.11 – The DMP Represent DRM Messages Schema. An overview of these messages now follows.
dmp2rdm:InitialiseTool
This Message is specified in the Figure below:
<element name="InitialiseTool" type="dmp2rdm:InitialiseToolType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="InitialiseToolType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="DRMProcessorInstance" type="base64Binary"/>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rdm:ControlPointID"/>
<element ref="dmp2rdm:ControlPointAddress" minOccurs="0"/>
</sequence>
<element ref="dmp2rdm:SequenceCode" minOccurs="0"/>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="ControlPointID" type="dmp2rdm:ControlPointType"/>
<complexType name="ControlPointType">
<sequence>
<element name="ID" type="integer"/>
</sequence>
</complexType>
<element name="SequenceCode" type="short"/>
<element name="ControlPointAddress" type="base64Binary"/>
Figure 87: The dmp2rdm:InitialiseTool element
An dmp2rdm:InitialiseTool element delivers the following information:
· DRMProcessorInstance: a handle of the DRM Processor required by the Tool to send Messages back to the DRM Processor. The format of this handle may depend on the particular Device on which the DRM Processor is running, and such information depends on the Instantiation_API_ID value in the dmp2rdi:ToolAPI_Config defined in REF _Ref128903829 \r \h 3.2.14 - Represent Device Information.
· ControlPointID: an ID indicating the point where the DRM Tool can operate along the Resource processing pipelines. This ID should be registered by the authorized agency before being used. The dmp2rdm:ControlPointID assignments are given in the below table;
Table 19 – List of available Control Points
|
ControlPointID |
Description |
|
00 |
NO_CONTROL_POINT |
|
01 |
CONTROL_POINT_BEFORE_DEMULTIPLEXING |
|
02 |
CONTROL_POINT_BEFORE_AUDIO_DECODING |
|
03 |
CONTROL_POINT_AFTER_AUDIO_DECODING |
|
04 |
CONTROL_POINT_BEFORE_VIDEO_DECODING |
|
05 |
CONTROL_POINT_AFTER_VIDEO_DECODING |
|
06 |
CONTROL_POINT_BEFORE_STORING |
|
07 |
CONTROL_POINT_BEFORE_PLAYBACK |
|
08 |
CONTROL_POINT_BEFORE_TRANSFERRING |
· ControlPointAddress: a local address on the Device, that the DRM Tool can be connected to, and have an input Resource. The format of this address may depend on the particular Device on which the DRM Processor is running, and such information depends on the Instantiation_API_ID value in the dmp2rdi:ToolAPI_Config element.
· SequenceCode: a value indicating priority order for the DRM Tool in case multiple DRM Tools are connected to the same Control Point simultaneously.
· Other messages derived from dmp2rdm:Data_BaseClass.
dmp2rdm:GetToolGroupReference
Each DRM Tool Pack optionally contains the DRM Tool Group. The DRM Tool Agent requires the DRM Tool Group to perform proper DRM functions. This message is sent by the DRM Tool Agent to request the reference of the DRM Tool Group.
<element name="GetToolGroupReference" type="dmp2rdm:GetToolGroupReferenceType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolGroupReferenceType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType"/>
</complexContent>
</complexType>
Figure 88: The dmp2rdm:GetToolGroupReference element
dmp2rdm:GetToolGroupReferenceResponse
This message is sent by the DRM Processor to deliver the reference of the DRM Tool Group. This message delivers the following information:
· ToolGroupReference: the reference of the DRM Tool Group. The reference indicates either the handle or the local address of the DRM Tool Group depending on the Instantiation_API_ID value in the dmp2rdi:ToolAPI_Config element.
<element name="GetToolGroupReferenceResponse" type="dmp2rdm:GetToolGroupReferenceResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolGroupReferenceResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="ToolGroupReference" type="base64Binary"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 89: The dmp2rdm:GetToolGroupReferenceResponse element
dmp2rdm:GetToolReference
The DRM Tool Agent may need a Single DRM Tool to perform proper DRM functions. This message is sent by the DRM Tool Agent to request the reference of the Single DRM Tool. This message delivers the following information:
· IPMPToolID: ID of the Single DRM Tool that the DRM Tool Agent request. More than one ID can be given.
<element name="GetToolReference" type="dmp2rdm:GetToolReferenceType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolReferenceType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPToolID" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 90: The dmp2rdm:GetToolReference element
dmp2rdm:GetToolReferenceResponse
This message is sent by the DRM Processor to deliver the reference of the Single DRM Tool. This message delivers the following information:
· IPMPToolID: the ID of the Single DRM Tool that the DRM Tool Agent request. More than one ID can be given.
· ToolReference: the reference of the Single DRM Tool given by the IPMPToolID. The reference indicates either the handle or the local address of the DRM Tool Group depending on the Instantiation_API_ID value in the ToolAPI_Config.
<element name="GetToolReferenceResponse" type="dmp2rdm:GetToolReferenceResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolReferenceResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<sequence maxOccurs="unbounded">
<element ref="dmp2_ipmpinfo:IPMPToolID"/>
<element name="ToolReference" type="base64Binary"/>
</sequence>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 91: The dmp2rdm:GetToolReferenceResponse element
dmp2rdm:GetToolPackData
The DRM Tool Agent may need Tool Pack Data to initialize the DRM Tool Group or the Single DRM Tool. This message is sent by the DRM Tool Agent to request the Tool Pack Data.
<element name="GetToolPackData" type="dmp2rdm:GetToolPackDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolPackDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType"/>
</complexContent>
</complexType>
Figure 92: The dmp2rdm:GetToolPackData element
dmp2rdm:ToolPackData
This message is sent by the DRM Processor to deliver the Tool Pack Data. This message delivers the following information:
· OpaqueData: the information to initialize the DRM Tool Group or the Single DRM Tool. Only the proper DRM Tool Agent can parse this information.
<element name="ToolPackData" type="dmp2rdm:ToolPackDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="ToolPackDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2rdm:OpaqueData"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 93: The dmp2rdm:ToolPackData element
This specification defines two Messages to establish Authentication between two Entities. These are: dmp2ram:InitAuthentication and dmp2ram:MutualAuthentication. Authentication Messages are a translation of messages originally defined in the MPEG-2 and MPEG-4 IPMPX standards (see [14] and [12]) from a binary representation to XML. See Annex A.4 - MPEG-2/4 IPMP Extension for an overview of those standards.
The syntax and semantics of these messages is specified in the sub-sections below.
The dmp2ram:InitAuthentication Message shall be employed by an entity to initialise the mutual authentication process with another. The syntax of the Message is specified in the Figure below:
<element name="InitAuthentication" type="dmp2ram:InitAuthenticationType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="InitAuthenticationType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="ContextID" type="anyURI" minOccurs="0"/>
<element name="AuthType" type="dmp2ram:AUTType"/>
<!--Context ID of the logical instance of the Tool with which mutual authentication is to be performed-->
</sequence>
</extension>
</complexContent>
</complexType>
Figure 94: The dmp2ram:InitAuthentication Message
The dmp2ram:InitAuthentication Message extends the dmp2rdm:Data_BaseClass Type (see Section 3.2.12 – Represent DRM Messages) by conveying:
· ContextID: the local ID of the DRM Tool with which mutually Authentication is to be initialised (see Section 3.2.12.2.1 - dmp2rdm:ToolMessageBase). This element is used when mutual Authentication involves two DRM Tools or a DRM Processor and a DRM Tool, or any time the sender knows the URI of the entity it is requesting to Authenticate with.
· AuthType: the type of Authentication required, specified in the Figure below:
<simpleType name="AUTType">
<restriction base="integer">
<enumeration value="01"/>
<enumeration value="02"/>
<enumeration value="03"/>
<enumeration value="04"/>
</restriction>
</simpleType>
Figure 95: The dmp2ram:InitAuthentication Message
The dmp2ram:AUTType simple type can only be given one of the values listed in the Table below, with the semantics specified in the right column.
Table 20 – List of available Authentication Request types
|
01 |
No Authentication Required |
|
02 |
No ID verify, Do secure channel |
|
03 |
Do ID verify, No secure channel |
|
04 |
Do ID verify, Do secure channel |
The recipient of a dmp2ram:InitAuthentication Messages shall reply with a dmp2ram:MutualAuthentication Message as defined in the sub-Section below.
The dmp2ram:MutualAuthentication is employed by two entities (e.g. the DRM Processor and a DRM Tool) for the purpose of:
1. negotiating the Authentication protocol
2. carrying out the agreed upon protocol
3. negotiating how the secured communication channel has to be used.
The syntax of the dmp2ram:MutualAuthentication is specified in the Figure below:
<element name="MutualAuthentication" type="dmp2ram:MutualAuthenticationType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="MutualAuthenticationType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<choice>
<element name="requestNegotiation" type="dmp2ram:requestNegotiationType"/>
<element name="successNegotiation" type="dmp2ram:successNegotiationType"/>
<element name="failedNegotiation" type="boolean" fixed="true"/>
</choice>
<element name="authenticationData" type="hexBinary" minOccurs="0"/>
<element name="authCodes" type="dmp2ram:AuthCodesType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 96: The dmp2ram:MutualAuthentication element
The dmp2ram:MutualAuthentication Message extends the dmp2rdm:Data_BaseClass Type (see Section 3.2.12 – Represent DRM Messages) by conveying:
· the choice between:
o dmp2ram:requestNegotiation element, when the Message is employed in the initial phase of the Authentication Protocol in reply to a dmp2ram:InitAuthentication message, to indicate that the sender is requesting negotiation about an authentication algorithm to be used in the subsequent communication
o dmp2ram:successNegotiation element, when the Message is employed to indicate that the negotiation of an Authentication protocol was successful, and for specifying the selected protocol.
o dmp2ram:failedNegotiation, indicating that no proposed Authentication algorithms are supported.
· dmp2ram:authenticationData, an optional element specifying data to be used for mutual authentication and whose value depends on method specific processing
· dmp2ram:authCodes, optional authentication codes to this message.
The syntax of the dmp2ram:requestNegotiationType complex type is specified in the Figure below:
<complexType name="requestNegotiationType">
<sequence>
<element name="candidateAlgorithms" type="dmp2ram:AlgorithmDescriptorType"/>
</sequence>
</complexType>
Figure 97: The dmp2ram:requestNegotiationType complex type
The dmp2ram:requestNegotiationType complex type conveys the list of Authentication algorithms supported by means of the dmp2ram:candidateAlgorithms element. The dmp2ram: AlgorithmDescriptorType complex type is specified in the Figure below.
<complexType name="AlgorithmDescriptorType">
<sequence>
<element name="algoID" type="anyURI" maxOccurs="unbounded"/>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</complexType>
Figure 98: The dmp2ram:AlgorithmDescriptorType complex type
Each of the supported Algorithms are characterised by an Identifier of type xsd:anyURI. Optionally, dmp2rdm:opaqueData containing related data to the algorithm can be conveyed.
The syntax of the dmp2ram:successNegotiationType complex type is specified in the Figure below:
<complexType name="successNegotiationType">
<sequence>
<element name="agreedAlgorithms" type="dmp2ram:AlgorithmDescriptorType" maxOccurs="unbounded"/>
</sequence>
</complexType>
Figure 99: The dmp2ram:requestNegotiation complex type
The dmp2ram:MutualAuthentication message containing the dmp2ram:successNegotiation element is sent by the entity initiating the mutual Authentication process in reply to a dmp2ram:MutualAuthentication message proposing a list of candidate algorithms. The dmp2ram:agreedAlgorithms element conveys the list of the Authentication algorithms supported, among the ones proposed by the entity that was challenged.
The syntax of the dmp2ram:AuthCodesType complex type is specified in the Figure below:
<complexType name="AuthCodesType">
<sequence>
<element name="certificates" type="dsig:KeyInfoType" maxOccurs="unbounded"/>
<element name="trustData" type="hexBinary" minOccurs="0"/>
</sequence>
</complexType>
Figure 100: The dmp2ram:AuthCodesType complex type
The dmp2ram:authCodes element conveys
· a number of certificates and/or trust data belonging to the entity involved in the Authentication process
· (optional) trust and security data, mostly used when Mutual Authentication involves DRM Tools.
This section specifies the Tools used to Represent the technical characteristics of a Device. This can be used to negotiate between a Device and a DRM Tool Provider for the correct DRM Tools. Represent Device includes information such as type of operating system, memory, CPU, etc., as shown in the graphical representation below:

Figure 101: The dmp2rdi:DeviceInformation element
For the syntax of the elements in the Figure above defined in the dmp2_mpeg4ipmp namespace, refer to Annex REF _Ref126476720 \r \h B.2.6, while for their semantics refer to [14].
The dmp2rdi:ToolAPI_Config element was originally defined in [14] in a binary format and has been transferred to the dmp2rdi:ToolAPI_Config as shown here. The syntax of the dmp2rdi:ToolAPI_Config element is specified in the Figure below:
<element name="ToolAPI_Config" type="dmp2rdi:ToolAPI_ConfigType"/>
<complexType name="ToolAPI_ConfigType">
<sequence>
<element name="Instantiation_API_ID" type="anyURI" minOccurs="0"/>
<element name="Messaging_API_ID" type="anyURI" minOccurs="0"/>
<element name="OpaqueData" type="hexBinary" minOccurs="0"/>
</sequence>
</complexType>
Figure 102: The dmp2rdi:ToolAPI_Config element
This element specifies two identifiers: dmp2rdi:Instantiation_API_ID and dmp2rdi:Messaging_API_ID, both of type xsd:anyURI. These API identifiers serve the following purpose.
· Instantiation_API_ID: An Identifier that indicates the API for instantiation of the DRM Tool.
· Messaging_API_ID: An Identifier that indicates the API to pass messages to/from a DRM Tool
A DMP-appointed Registration Authority shall register for different implementations of DRM Tool instantiation API and DRM Tool messaging API. An optional field dmp2rdi:OpaqueData shall be used to convey further data from any namespace.
The optional element dmp2rdi:Others is specified in the Figure below:
<element name="Others" type="dmp2rdi:OtherTypes"/>
<complexType name="OtherTypes">
<sequence>
<any namespace="##any" processContents="lax"/>
</sequence>
<attribute name="ref" type="anyURI" use="required"/>
</complexType>
Figure 103: The dmp2rdi:Others element
By employing the optional dmp2rdi:Others element, which can host data from any namespace, further Information about the Device can be specified. Its mandatory attribute 'ref' of type xsd:anyURI specifies the namespace URI of the data.
The Represent Device namespace is defined in Annex B.2.6 – The Represent Device Information Schema.
This Section specifies the elements that enable Domains to be described.
The Represent Domain namespace, dmp2rd, defines an abstract base type element from which the rest of the elements are derived, as follows:
<complexType name="DomainBaseType" abstract="true"/>
Figure 104: The dmp2rd:DomainBaseType complex type
The Represent Domain namespace, dmp2rd, defines the following simple types:
<element name="DomainManagerID" type="r:KeyHolder"/>
<element name="AccessPassword" type="string"/>
<element name="AccessID" type="r:KeyHolder"/>
<element name="DomainKey" type="xenc:EncryptedKeyType"/>
<element name="UserID" type="dmp2rd:IDType"/>
<element name="DeviceID" type="dmp2rd:IDType"/>
<element name="LocalDomainID" type="dmp2rd:IDType"/>
<element name="ContentGroupID" type="anyURI"/>
Figure 105: Some dmp2rd elements
The semantics for the elements above are as below. The reader is refered to AD2 - Technical Architecture [ REF _Ref100641431 \r \h 2] for an overview of the architecture and Device functions and concepts referred to here.
· dmp2rd:DomainManagerID: the identifier assigned to a Domain Manager Device (DMD) by the Domain Authority.
· dmp2rd:AccessID: the Access ID given to the Domain Administrator
· dmp2rd:AccessPassword: the Access Password given to the Domain Administrator
· dmp2rd:DomainKey: the Decryption Key for Domain-Encrypted Content Key
· dmp2rd:UserID: the Identifier associated with the User, which is of type dmp2mdi:IDType (See the Figure below)
· dmp2rd:DeviceID: the Identifier associated with the Device, which is of type dmp2mdi:IDType (See the Figure below)
· dmp2rd: LocalDomainID: The Local Domain Identifier issued by the DID
· dmp2rd:ContentGroupID: the Identifier assigned to a group of Content Items for the Management of Domains
<complexType name="IDType">
<sequence>
<choice>
<element name="id" type="anyURI"/>
<element ref="dsig:X509Data" minOccurs="0"/>
</choice>
</sequence>
</complexType>
Figure 106: The dmp2rd:IDType complex type
The dmp2rd:IDType complex type contains an Identifier, which can be either of type anyURI and conveyed by the dmp2rd:id element, or an X.509 certificate, in which case it shall be expressed according to the dsig:X509Data element and conformant to RFC2459 [ REF _Ref131669916 \r \h 38].
A Domain is established when a Domain Administrator requests a new Domain from a Domain Manager Device (DMD). The Protocol for Creating a Domain is given in Section 3.3.3.2.1 – Create Domain Protocol.
The result of this Protocol is the creation by the DMD of a dmp2rd:DomainManageInfo element specified in the Figure below:
<element name="DomainManageInfo" type="dmp2rd:DomainManageInfoType"/>
<complexType name="DomainManageInfoType">
<complexContent>
<extension base="dmp2rd:DomainBaseType">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rd:AccessID"/>
<element ref="dmp2rd:AccessPassword"/>
<choice minOccurs="0" maxOccurs="2">
<element ref="dmp2rd:User"/>
<element ref="dmp2rd:Device"/>
</choice>
<element ref="dmp2rd:DomainKey"/>
<element name="Registration" type="dateTime"/>
<element name="Expiration" type="sx:ValidityTimeMetered"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 107: The dmp2rd:DomainManageInfo element
In the above, the following semantics apply.
The dmp2rd:DomainID element is defined as follows:
<element name="DomainID" type="dmp2rd:DomainIDType"/>
<complexType name="DomainIDType">
<complexContent>
<extension base="dmp2rd:IDType">
<sequence>
<element ref="dmp2rd:DomainManagerID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 108: The dmp2rd:DomainID element
This DomainID element shown above conveys an Identifier assigned to a specific Domain. This contains:
· the dmp2rd:DomainManagerID element, an Identifier Assigned by the Domain Authority
· the choice between two different representations of the Identifier of the Domain assigned by the Domain Manager Device
The dmp2rd:User element is defined in the Figure below:
<element name="User" type="dmp2rd:UserType"/>
<complexType name="UserType">
<complexContent>
<extension base="dmp2rd:DomainBaseType">
<sequence>
<element ref="dmp2rd:UserIDList"/>
<element name="MaximumNumberOfUsers" type="unsignedInt" minOccurs="0"/>
<element name="MaximumFrequencyOfUpdateUser" type="duration" minOccurs="0"/>
<element ref="dmp2rd:UserRevocationList" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 109: The dmp2rd:User element
The dmp2rd:User element conveys a set of properties associated with Users in a Domain. This conveys the following:
· the dmp2rd:UserIDList, as defined in the Figure below
· the dmp2rd:MaximumNumberOfUsers, the maximum number of Users allowed in a Domain
· the dmp2rd:MaximumFrequencyOfUpdateUser: the shortest duration permitted between a User leaving and re-registering with this Domain. See the (*)Note below
· the dmp2rd:UserRevocationList: the list of Users which are no longer allowed to be members of this Domain.
(*)Note: The UserID shall not be removed from the UserIDList until after the time indicated in the dmp2rd:MaximumFrequencyOfUpdateUser element.
The dmp2rd:UserIDList element is defined in the Figure below:
<element name="UserIDList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:UserID"/>
<element name="Expiration" type="sx:ValidityTimeMetered"/>
</sequence>
</complexType>
</element>
Figure 110: The dmp2rd:UserIDList element
This element is used to convey a list of User Identifiers associated with this Domain. Each User has an expiration time, allocated by the Domain Managed Device at the time of joining the Domain.
The dmp2rd:Device element is defined in the Figure below:
<element name="Device" type="dmp2rd:DeviceType"/>
<complexType name="DeviceType">
<complexContent>
<extension base="dmp2rd:DomainBaseType">
<sequence>
<element ref="dmp2rd:DeviceIDList"/>
<element name="MaximumNumberOfDevices" type="integer"/>
<element name="MaximumFrequencyOfUpdateDevice" type="integer"/>
<element ref="dmp2rd:DeviceRevocationList"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 111: The dmp2rd:Device element
The dmp2rd:Device element shown above conveys the following set of properties associated with Devices in a Domain.
· the dmp2rd:DeviceIDList, as defined in the Figure below
· the dmp2rd:MaximumNumberOfDevices, the maximum number of Devices allowed in a Domain
· the dmp2rd:MaximumFrequencyOfUpdateDevice: the shortest duration permitted between a Device leaving and re-registering with this Domain.
· the dmp2rd:DeviceRevocationList: the list of Devices which are no longer allowed to be members of this Domain.
The dmp2rd:DeviceIDList element is defined in the Figure below:
<element name="DeviceIDList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
<element name="Expiration" type="sx:ValidityTimeMetered"/>
</sequence>
</complexType>
</element>
Figure 112: The dmp2rd:DeviceIDList element
This element is used to convey a list of Device Identifiers associated with this Domain. Each Device has an expiration time, allocated by the Domain Managed Device at the time of joining the Domain.
This Section specifies the messages exchanged between entities when managing Domains, for instance when creating a Domain, or when Devices join or leave a Domain. The representation of the messages includes a number of Domain Representation namespace elements, dmp2rd, described in the previous section and introduces new elements in the Represent Domain Protocol namespace, dmp2rdp, as shown in the figures below. A number of protocols for the exchange of these messages to perform Domain management are specified in Section 3.3.3 – Protocols to Manage Domain.
The Represent Domain Protocol namespace, dmp2rdp, defines an abstract base type from which the rest of the elements are derived. This is the following:
<complexType name="DomainProtocolBaseType" abstract="true"/>
Figure 113: The dmp2rdp:DomainProtocolBaseType complex type
A number of elements defined in dmp2rdp namespace derive from the following complex type:
<complexType name="DomainProtocolType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolBaseType">
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 114: The dmp2rdp:DomainProtocolType complex type
The dmp2rdp:DomainProtocolType contains the dmp2rdp:TransactionID element which is used to track a message exchange session.
The following Protocol message Representations are characterised by the elements and their respective types as shown below.
<element name="DACredentials" type="dmp2rdp:DomainCredentialType"/>
<element name="DMCredentials" type="dmp2rdp:DomainCredentialType"/>
<complexType name="DomainCredentialType">
<sequence>
<element ref="dmp2rd:AccessID"/>
<element ref="dmp2rd:AccessPassword"/>
</sequence>
</complexType>
Figure 115: The dmp2rdp:DACredentials and dmp2rdp:DMCredentials elements
A choice between DACredentials and DMCredentials elements (depending on whether it is the Domain Administrator or a Device/User in the Domain) shown above is contained within the message specified below.
<element name="AuthenticateReq" type="dmp2rdp:AuthenticateReqType"/>
<complexType name="AuthenticateReqType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DomainID" minOccurs="0"/>
<choice>
<element ref="dmp2rdp:DACredentials"/>
<element ref="dmp2rdp:DMCredentials"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 116: The dmp2rdp:AuthenticateReq element
<element name="Ack" type="dmp2rdp:ReqType"/>
<complexType name="ReqType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<attribute name="Result" type="boolean" use="required"/>
</extension>
</complexContent>
</complexType>
Figure 117: The dmp2rdp:Ack element
The dmp2rdp:Ack element extends the dmp2rdp:DomainProtocolType complex type by specifying a required boolean attribute: Result, which shall indicate whether the Protocol was carried out with success or otherwise. This message is sent by any entity involved in the Protocols to Manage Domain, with the purpose of acknowledging an entity involved in the Protocol of the success or failure of the Protocol.
<element name="LocalDomainIDRequest" type="dmp2rdp:RequestLocalDomainIDType"/>
<complexType name="RequestLocalDomainIDType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
Figure 118: The dmp2rdp:LocalDomainIDRequest element
The dmp2rdp:LocalDomainIDResponse message shown above is a message from the License Provider Device to the Domain Identification Device to request the Local Domain ID for a new Domain.
<element name="LocalDomainIDResponse" type="dmp2rdp:LocalDomainIDResponseType"/>
<complexType name="LocalDomainIDResponseType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:LocalDomainID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 119: The dmp2rdp:LocalDomainIDResponse element
The dmp2rdp:LocalDomainIDResponse message shown above is a message from the Domain Identification Device to the License Provider Device to send the requested Local Domain ID for a new Domain.
<element name="RequestKey" type="dmp2rdp:RequestKeyType"/>
<complexType name="RequestKeyType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
<element ref="dmp2rd:UserID"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 120: The dmp2rdp:RequestKey element
The dmp2rdp:RequestKey message shown above is a message from the License Provider Device to the Domain Management Device to request the DomainKey. The semantics are given below:
· DomainID: The Domain Identifier of the Domain for which the License Provider is asking the Domain Key
· ContentGroupID: The list of Content Groups (group of Content Items for management within domains) Licensed to the Domain for which the LPD issues a License
· DeviceID: The Identifier of the Device requesting a Domain-bound License.
· UserID: The Identifier of the User requesting a Domain-bound License
<element name="RequestKeyResponse" type="dmp2rdp:RequestKeyResponseType"/>
<complexType name="RequestKeyResponseType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DomainKey"/>
<element ref="dmp2rd:UserID" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dmp2rd:DeviceID" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 121: The dmp2rdp:RequestKeyResponse element
The dmp2rdp:RequestKeyResponse is a message sent from the Domain Management Device to the License Provider Device as the response to the preceding dmp2rdp:RequestKey message.
The semantics for dmp2rdp:RequestKeyResponse are given below:
· dmp2rd:DomainKey: element used to convey the encrypted Domain key of the Domain indicated by DomainID in the preceding dmp2rdp:RequestKey message. This is used subsequently by the License Provider Device to encrypt Content Keys so that only those Devices with the corresponding Domain decryption Key can Use Content encrypted with the Content Key.
· dmp2rd:DeviceID: the identifiers of the member Devices of the Domain indicated by dmp2rd:DomainID in the preceding dmp2rdp:RequestKey. Each dmp2rd:DeviceID can be used to encrypt a Content Key and create a License with a set of encrypted Content Keys such that any of the Devices indicated can Use the Content with the License.
· dmp2rd:UserID: the identifiers of member Users of the Domain indicated by dmp2rd:DomainID in the preceding RequestKey. Each dmp2rd:UserID can be used to encrypt a Content Key and to create a License with a set of encrypted Content Keys so that any User indicated can use the Content with the License.
<element name="AddDevice" type="dmp2rdp:AddDeviceType"/>
<complexType name ="AddDeviceType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rdp:DeviceID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 122: The dmp2rdp:AddDevice element
The dmp2rdp:AddDevice message above is sent from a Device to request to join a Domain. This message conveys the Identifier of the Device requesting Domain membership.
<element name="AddUser" type="dmp2rdp:AddUserType"/>
<complexType name ="AddUserType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:UserID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 123: The dmp2rdp:AddUser element
The dmp2rdp:AddUser message above is sent from a User to request to join a Domain. This message conveys the Identifier of the User requesting Domain membership.
<element name="RenewDevice" type="dmp2rdp:RenewDeviceType"/>
<complexType name="RenewDeviceType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DeviceID"/>
<element ref="dmp2rdp:UseData"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 124: The dmp2rdp:RenewDevice element
The dmp2rdp:RenewDevice message above is sent from a Device to request a renewal of the membership of a Domain. This message conveys the Identifier of the Device requesting the renewal of Domain membership, and the Use Data generated.
<element name="RenewUser" type="dmp2rdp:RenewUserType"/>
<complexType name ="RenewUserType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
Figure 125: The dmp2rdp:RenewUser element
The dmp2rdp:RenewUser message above is sent from a User to request a renewal of the membership of a Domain.
<element name="LeaveDevice" type="dmp2rdp:LeaveDeviceType"/>
<complexType name ="LeaveDeviceType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rdp:DeviceID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 126: The dmp2rdp:LeaveDevice element
The dmp2rdp:LeaveDevice message above is sent from a Device to the DMD to request to be removed from a Domain.
<element name="LeaveUser" type="dmp2rdp:LeaveUser"/>
<complexType name ="LeaveUser">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:UserID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 127: The dmp2rdp:LeaveUser and LeaveUser complex type
The dmp2rdp:LeaveUser message above is sent from a User to the DMD to request to be removed from a Domain.
<element name="CreateDomain" type="dmp2rdp:CreateDomainType"/>
<complexType name ="CreateDomainType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
Figure 128: The dmp2rdp:CreateDomain element
The dmp2rdp:CreateDomain message is sent from a Domain Administrator to the DMD for asking the set-up of a new Domain.
<element name="RenewDomain" type="dmp2rdp:RenewDomainType"/>
<complexType name ="RenewDomainType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rdp:DeviceID"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 129: The dmp2rdp:RenewDomain element
The dmp2rdp:RenewDomain message above is sent from a Domain Administrator to the DMD requesting the renewal of a Domain when this has expired or is the expiration date is near.
<element name="DeleteDomain" type="dmp2rdp:DeleteDomainType"/>
<complexType name ="DeleteDomainType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
Figure 130: The dmp2rdp:DeleteDomain element
The dmp2rdp:DeleteDomain message above is sent from a Domain Administrator to the DMD requesting a Domain to be Deleted.
<element name="UnLicensedSimultaneousUseNotice" type="dmp2rdp:UnLicensedSimultaneousUseNoticeType"/>
<complexType name="UnLicensedSimultaneousUseNoticeType">
<sequence>
<element ref="dmp2rdp:UseData" maxOccurs="unbounded"/>
</sequence>
</complexType>
Figure 131: The dmp2rdp:UnLicensedSimultaneousUseNotice element
A detailed explanation of the use of the dmp2rdp:UnlicensedSimultaneousUseNotice is given in Section 3.3.3.5 ‘Protocols to Detect Simultaneous Usage’.
The Representation of Use Data required for the management of Domains is given below. The way dmp2rdp:UseData and dmp2rdp:Record elements are employed is described in Section 3.3.3.5 ‘Protocols to Detect Simultaneous Usage’
<element name="UseData" type="dmp2rdp:UseDataType"/>
<complexType name="UseDataType">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rdp:Record"/>
</sequence>
</complexType>
Figure 132: The dmp2rdp:UseData element
The dmp2rdp:Record element is given in the figure below.
<element name="Record" type="dmp2rdp:RecordType"/>
<complexType name="RecordType">
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
<element name="StartTime" type="dateTime"/>
<element name="EndTime" type="dateTime"/>
<element name="NumberOfContentGroups" type="integer"/>
<element ref="dmp2rd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
<element name="NotificationFlag" type="boolean"/>
</sequence>
</complexType>
Figure 133: The dmp2rdp:Record element
The semantics for dmp2rdp:Record is given below:
· DeviceID: the Identifier of the Device on which the Content Item was Used
· StartTime: the time the Device started to Use a Content Item belonging to a Content Group
· EndTime: the time the Device ended Using a Content Item belonging to a Content Group
· NumberOfContentGroups: the number of Content Groups to which the Content Item being Used belongs to. Each Content Group may consist of multiple Content Items, where only one Content Item in a Content Group is allowed to be Used simultaneously.
· ContentGroupID: The Content Group Identifier
· NotificationFlag: a Boolean value set to TRUE when this Use Data record has been notified to the DMD. The communication of the Use Data to another Device in the Domain doesn't change the value of this flag in the Use Data.
This Section specifies the messages exchanged between entities when carrying out Access Protocols, for instance when Accessing Content or Accessing License, as specified in Section 3.3.5 – Protocols to Access.
The Represent Access Protocol namespace, dmp2rap, defines an abstract base type from which the rest of the elements are derived. This is the following:
<complexType name="AccessProtocolBaseType" abstract="true"/>
Figure 134: The dmp2rap:AccessProtocolBaseType complex type
A number of elements defined in dmp2rap namespace derive from the following complex type:
<complexType name="AccessProtocolType">
<complexContent>
<extension base="dmp2rap:AccessProtocolBaseType">
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 135: The dmp2rap:AccessProtocolType complex type
The dmp2rap:AccessProtocolType contains the dmp2rap:TransactionID element which is used to track a message exchange session.
A PAV (through the PXD) or a SAV sends the following message to the Content Provider in order to Access Content:
<element name="RequestContent" type="dmp2rap:RequestType"/>
<complexType name="RequestType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp2rl:License" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 136: The dmp2rap:RequestContent element
The semantics for the dmp2rap:RequestContent message are given below:
· dmp1_dii:Identifier: The Content ID of the requested Content Item
· dmp2rl:License: an optional License containing the dmp2rl:DomainResource for a Device or a User Accessing Domain Content
· dsig:Signature: an optional digital Signature of the dmp2rap:RequestContent message by the PAV or SAV
A PAV (through the PXD) or a SAV sends the following message to the License Provider in order to Access License:
<element name="RequestLicense" type="dmp2rap:RequestLicenseType"/>
<complexType name="RequestLicenseType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp2rl:License" minOccurs="0"/>
<element ref="dmp2rc:DCIHash" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 137: The dmp2rap:RequestLicense element
The semantics for the dmp2rap:RequestLicense message are given below:
· dmp1_dii:Identifier: The Content ID of the requested Content Item
· dmp2rl:License: an optional License containing the dmp2rl:DomainResource for a Device or a User Accessing a Domain License
· dmp2rc:DCIHash: an optional hash value of the DCI whose License is requested.
· dsig:Signature: an optional digital Signature of the dmp2rap:RequestContent message by the PAV or SAV
<element name="Ack" type="dmp2rap:ReqType"/>
<complexType name="ReqType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<attribute name="Result" type="boolean" use="required"/>
</extension>
</complexContent>
</complexType>
Figure 138: The dmp2rap:Ack element
The dmp2rap:Ack element extends the dmp2rdp:AccessProtocolType complex type by specifying a required boolean attribute: Result, which shall indicate whether the Protocol was carried out with success or otherwise. This message is sent by any entity involved in the Protocols to Access Content or Access License, with the purpose of acknowledging an entity involved in the Protocol of the success or failure of the Protocol.
<element name="RequestLicenseResult" type="dmp2rap: RequestLicenseResultType"/>
<complexType name="RequestLicenseResultType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp2rl:License"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 139: The dmp2rap:RequestLicenseResult element
The dmp2rap:RequestLicenseResult element is employed by the License Provider to Deliver a License. This message may also be signed by the License Provider.
<element name="RequestContentResult" type="dmp2rap:RequestContentResultType"/>
<complexType name="RequestContentResultType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element name="ContentServerURI" type="anyURI"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 140: The dmp2rap:RequestContentResult element
The dmp2rap:RequestContentResult element is employed by the Content Provider to inform that a DCI with a Bundled License is available for downloading at a specified URI. This message may also be signed by the License Provider.
<element name="RequestDRMToolBody" type="dmp2rap:RequestDRMToolBodyType"/>
<complexType name="RequestDRMToolBodyType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPToolID"/>
<element ref="dmp2rdi:DeviceInformation"/>
<element name="LicenseSignature" type="dsig:SignatureType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 141: The dmp2rap:RequestDRMToolBody element
The dmp2rap:RequestDRMToolBody element is employed by a Device to obtain a DRMToolBody (See section 3.2.9 – Represent ToolBody) from a DRM Tool Provider Device. The semantics is given below:
· dmp2_ipmpinfo:IPMPToolID: The DRM Tool Identified of the requested DRM Tool Body
· dmp2rdi:DeviceInformation: Device Information allowing the DRM Tool Provider Device to send an appropriate DRM Tool Body
· LicenseSignature: The Signature of the License Granting the Right to Access the Resource by Device or User
<element name="RequestDRMToolBodyResponse" type="dmp2rap:RequestDRMToolBodyResponseType"/>
<complexType name="RequestDRMToolBodyResponseType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp2rtb:ToolBody" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
Figure 142: The dmp2rap:RequestDRMToolBodyResponse element
The dmp2rap:RequestDRMToolBodyResponse element is employed by a DRM Tool Provider Device to Deliver a DRM Tool Body.
This Tool enables the transformation of XML documents representing any of the Entities in this Chapter to a binary format for transmission, processing or storage.
DMP selects the XML binarisation technology called BiM standardised by MPEG-7 part 1 [ REF _Ref100726546 \r \h 14] and MPEG-21 part 16 [ REF _Ref100755331 \r \h 28].
This section collects the specification of the Protocols to Identify Entities. This Chapter 3 currently specifies Protocols to Identify Devices.
The Protocol comprises the protocol to generate a Device Identifier, and the Protocol to request a Device Identifier, for the two kinds of Device Identification supported:
1. “Device info-based identification” in which a Device Identification Device generates the Device Identifier using some vendor specific information such as vendor ID, model ID or product serial number;
2. “Certificate-based identification” in which a X.509 certificate [ REF _Ref100733504 \r \h \* MERGEFORMAT 30] is utilised for Device Identifier. Identifiers are uniquely generated by a Device Identification Device run by a Registration Agency [ REF _Ref100641484 \r \h \* MERGEFORMAT 5].
A Device Identification Device generates Device Identifiers. If a Device contains recognised Trusted elements (i.e. Certified Devices) these are Delivered for Storage on the Device.
The ID Generation Protocol is implemented as in Table 21.
Table 21 – ID Generation Protocol for Device Info-Based Identification
|
Initialization |
The Device confirms that the DID is ready to communicate between each other through simple ping process |
|
Request Identifier: |
Requestor of Device Identifier sends dmp2mdi:RequestDeviceID message to the Device Identification Device (see Figure 57). If there is no specific product serial number on the Device, the requestor may omit the dmp2mdi:SerialNumber element in the requesting message. |
|
Assign Identifier: |
The Device Identification Device verifies the information contained in the dmp2mdi:RequestDeviceID message (see Figure 58) If the verification is successful, the Device Identification Device replies with a dmp2mdi:DeviceID message containing a new dmp2mdi:DeviceIdentifier. If the dmp2mdi:RequestDeviceID message does not contain a product serial number, a newly created product serial number is generated inserted, and the requesting Device shall record this information. |
|
Exception handling |
If there is no response from either Device within certain time, an exception handler is invoked. |
Note: For the purpose of backward compatibility with IDP-1, an IDP-2 Device Identification Device shall be able to recognise the IDP-1 message for obtaining a Device Identifier in addition to the IDP-2 one. In this case the DID shall respond with an Identifier expressed in the IDP-1 format (14 bytes) according to the IDP-1 specification.
In the Certificate-based Identification case the Device Identification Device generates an X.509 Certificate and this Certificate is Stored on the Device. In this case the certificate is conveyed to the device in the dsig:X509Data element of Figure 55.
Under the Certificate-based Identification system, the Device Registration Agency has the task of issuing Device Certificates using a Device Registration Agency Certificate issued by the Device Registration Authority [ REF _Ref100641484 \n \h 5].
Since DN field of X.509 Certificate is used as Device Identifier, the generation process of the Device Identifier is replaced by the Certificate generation process.
The exchange process of the Device Identifier under the Certificate-based Identification system is almost same as the Device info-based Identification system shown above, except that the validity of a Device Identifier in an X.509 Certificate can be checked during the response phase by verifying the digital Signature.
Selection of a User Identification Protocol is highly dependent on a number of conditions such as application domain, bundling with other services, country etc. This is not covered by this specification.
This section collects the specification of the Protocols to Authenticate Entities, i.e. to recognise and enable Trust between Entities. This Chapter 3 currently specifies Protocols to Authenticate Devices.
The Protocols to Authenticate Device are closely related to the Protocols to Identify Device (see Section 3.3.1.1). This sub-section will provide means to Authenticate Devices for the classes of Devices: Devices having unique Certificates ("Certificate-based identification”).
Each Device has a digital Certificate issued by a Device Identification Device as it was described in the Protocols to Identify Device sub-Section [3.3.1.1]. This includes secret Data Stored in the Device, and the corresponding Certificate containing the public Data.
If two devices are identified by certificates they can mutually authenticate and/or establish a secure channel using the two messages dmp2ram:InitAuthentication and dmp2ram:MutualAuthentication as defined in 3.2.13.
The sequence diagram below shows how the two messages are employed to achieve Mutual Authentication, in the case the negotiation of the Authentication algorithms was successful:

Figure 143: Sequence diagram of Authentication Messages exchange
IDP-2 does not provide Tools to Authenticate Users. Use Cases requiring this functionality should rely on the authentication procedure of the Device representing the User.
A Domain is set up by a Domain Management Device (DMD) at the request of a Domain Administrator, a User who is responsible for the Use of Content on all Devices by all Users in the Domain. The Domain is Registered to a Domain Identification Device (DID) which provides an Identifier, dmp2rd:LocalDomainID. The Domain Identifier, dmp2rd:DomainID is composed of two parts: the DomainManagerID, and the LocalDomainID provided by the DID.
The DMD originates the Domain Information (dmp2rd:DomainManageInfo) and Stores it. For each Device or User joining the Domain the DMD will make a License containing the Domain Resource (dmp2rl:DomainResource) and will Deliver this to the Device or User joining the Domain.
A Device or a User requests a License to Use Content in a Domain from a License Provider Device (LPD). The License, possibly Bundled within the Content, or obtained at a later stage, is then Delivered to a User or a Device (SAV or PAV, the latter via PXD). To be able to Use Domain-bound Content, a Device or User must verify that the Domain Resource Stored in the Device or stored in the User matches the Domain Resource in the License of the Domain bound Content.
This “Protocols to Manage Domain” section specifies the Domain Management Protocols. The functionality of these Protocols includes:
· Setting up a Domain described by Domain Information represented in dmp2rd:DomainManageInfo .
· Creating Domain Resources (dmp2rl:DomainResource) for Devices and Users.
· Managing Device and User membership of a Domain, i.e. joining, renewing and leaving.
· Controlling the Use of Content within the Domain.

Figure 144 - Schematic Overview of Manage Domain
In summary, the establishment of a Domain is characterised by the following sequence of steps. Note: a more detailed protocol is given in the following sub-section.
1. The Domain Administrator requests the creation of a new Domain
2. The DMD creates a new Domain and Registers the Domain with a DID
3. The DID issues the dmp2rd:LocalDomainID and sends it to the DMD
4. The DMD:
a. generates the full dmp2rd:DomainID.
b. creates the Domain Information, dmp2rd:DomainManageInfo.
5. A Device or a User joining a Domain:
a. Authenticates itself with the DMD
b. Sends the account ID and password to the DMD. (The way account ID and password are communicated to the Device or User by the Domain Administrator is not specified by the DMP)
6. The DMD:
a. creates the Domain Resource, dmp2rl:DomainResource, for the Device or User
b. Delivers the License containing the Domain Resource to the Device or User.
The DMD maintains a list of Devices and Users for all registered Domains managed. Every time a new Device or User joins a Domain, the Device Manager adds the DeviceID (dmp2rd:DeviceID) or UserID (dmp2rd:UserID) to the corresponding Device or User list in dmp2rd:DomainManageInfo.
The License Provider may group Content Items in Content Groups for managing the Use of Content within Domains. An LPD may employ Content Group IDs (dmp2rd:ContentGroupID) in a License to manage the simultaneous usage of Content Items in a Content Group by the Devices or Users. Multiple Content Group IDs may appear within a License. Where required, it is possible to limit the number of Content Groups permitted within a Domain.
Note: In the Protocols below:
1. the Representation of the messages exchanged is given in Section 3.2.16 Represent Domain Protocol
2. references to the figures defining the payload of the messages are included where appropriate.
This subsection collects the following Protocols
1. Create Domain Protocol
2. Renew Domain Protocol
3. Delete Domain Protocol
This Protocol is initiated when a Domain Administrator requests the creation of a Domain. The Protocol for creating a Domain is specified below.
1. Domain Administrator and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. Domain Administrator issues dmp2rdp:CreateDomain and sends it to the DMD [Figure 128]
3. DMD requests any other data from Domain Administrator relevant to set up the Domain (e.g. Expiration time, etc.)
4. Domain Administrator sends requested data
5. DMD requests DID a new dmp2rd:LocalDomainID [Figure 105] by sending a dmp2rdp:LocalDomainIDRequest message [Figure 118]
6. DID sends dmp2rdp:LocalDomainIDResponse [Figure 119] to DMD
7. DMD
a. Creates a dmp2rdp:DACredentials message containing dmp2rd:AccessID and dmp2rd:AccessPassword [Figure 115]
b. Generates the Domain Key, dmp2rd:DomainKey
c. Generates dmp2rd:DomainManageInfo
d. Stores dmp2rd:DomainManageInfo
e. Sends dmp2rdp:DACredentials to the Domain Administrator or the dmp2rdp:Ack message [Figure 117] to acknowledge an unsuccessful completion of the Protocol.
8. Domain Administrator:
a. Stores dmp2rdp:DACredentials
b. Creates a new pair of AccessID and Access Password to be given to all Devices and Users allowed to join the Domain
c. Sends the new dmp2md:DMCredentials containing the new pair of AccessID and Access Password to DMD
9. DMD replies with dmp2rdp:Ack [Figure 117].
A Domain Administrator will be given as many pairs of AccessID and AccessPassword as he has requested Domains.
Renewing a Domain can be invoked after a Domain has expired. The Domain Administrator requests the DMD to renew the dmp2rd:DomainManageInfo.
1. Domain Administrator and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. Domain Administrator issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. Domain Administrator issues dmp2rdp:RenewDomain [Figure 129].
5. DMD renews dmp2rd:DomainManageInfo
6. DMD returns dmp2rdp:Ack [Figure 117] acknowledging the success of the Protocol or otherwise.
The Domain Administrator requests the deletion of a Domain to DMD. The Protocol for deleting a Domain is shown below.
1. Domain Administrator and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. Domain Administrator issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. Domain Administrator issues DeleteDomain [Figure 130]
5. DMD deletes Domain
6. DMD returns dmp2rdp:Ack [Figure 117] acknowledging the success of the Protocol or otherwise.
When an LPD issues a License for Domain-bound Content, it requests that the DMD sends the Public Key(s) for the Domain or Devices or Users.
1. DMD and LPD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. LPD issues dmp2rdp:RequestKey [Figure 120]
3. DMD Delivers the Key to LPD using dmp2:RequestKeyResponse [ REF _Ref130114000 \h \* MERGEFORMAT Figure 121]
4. LPD replies with dmp2rdp:Ack [Figure 117].
Successful execution of the Create Domain-bound Content Protocol allows LPD to issue Domain-bound Licenses.
This subsection collects the following Protocols
· Add Device Protocol
· Add User Protocol
· Renew Device Protocol
· Renew User Protocol
· Leave Device Protocol
· Leave User Protocol
A Device may request the DMD to be added to a Domain. Following this request the DMD will add the Device unless the number of Devices exceeds maximum number of Devices defined in dmp2rd:Device part of the dmp2rd:DomainManageInfo. The Protocol for adding a Device is shown below.
1. Device and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. Device issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. Device issues dmp2rdp:AddDevice [Figure 122].
5. DMD adds the Device Identifier to the Device list in dmp2rd:Device [Figure 111] part of dmp2rd:DomainManageInfo.
6. DMD sends a License containing the dmp2rl:DomainResource to the Device
7. The Device replies with dmp2rdp:Ack [Figure 117].
Successful execution of the Add Device Protocol adds a new DeviceID to the Device ID list of the DMD and adds a new Domain Resource in the Device.
A User may request the DMD to be added to a Domain. Following this request the DMD will add the User unless the number of Users exceeds maximum number of Users defined in dmp2rd:User part of dmp2rd:DomainManageInfo. The Protocol for adding a User is shown below.
1. User and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. User issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. User issues dmp2rdp:AddUser [Figure 123].
5. DMD adds the User Identifier to the User list in dmp2rd:User [Figure 109] part of dmp2rd:DomainManageInfo.
6. DMD sends a License containing the dmp2rl:DomainResource to the User
7. The User replies with dmp2rdp:Ack [Figure 117].
Successful execution of the Add Device Protocol adds a new UserID to the User ID list of the DMD and adds a new Domain Resource in the User.
Renewing a Device is invoked when the License containing the Domain Resource (dmp2rl:DomainResource) for the Device expires. The Device requests the DMD to renew the Domain Resource. After mutual Authentication, the Device sends the dmp2rdp:RenewDevice message to the DMD with the Device ID and any Use Data in the Device.
If the DMD does not detect unLicensed simultaneous Use from the Use Data (see 3.3.3.5.3), the DMD sends a new License containing the new Domain Resource for the Device with a new expiration period of the Domain. Otherwise, the DMD applies the policy.
The Protocol for Renewing a Device is shown below.
1. Device and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. Device issues dmp2rdp:AuthenticateReq [Figure 116]
3. DMD returns dmp2rdp:Ack [Figure 117].
4. Device issues dmp2rdp:RenewDevice [ Figure 124 ]
5. If DMD does not detect unLicensed simultaneous Use from the Use Data then DMD:
a. issues a License containing a new Domain Resource for the Device (dmp2rl:DomainResource)
b. sends the License to the Device
6. Else DMD applies policy and sends a dmp2rdp:Ack [Figure 117] with attribute "Result" set to "false" to the Device
7. The Device replies with dmp2rdp:Ack [Figure 117].
Renewing a User is invoked when the Domain Resource for a User expires. A User requests the DMD to renew the Domain Resource. If the membership is renewed, the License containing the new Domain Resource includes a new Expiration period for the User.
The Protocol for Renewing a User is shown below.
1. User and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. User issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. User issues dmp2rdp:RenewUser [Figure 125]
5. DMD issues a License containing a new Domain Resource for the User and sends it to the User, or applies policy and sends a dmp2rdp:Ack [Figure 117] with attribute "Result" set to "false" to the User.
6. The User replies with dmp2rdp:Ack [Figure 117].
To leave a Domain, a Device sends a request to the DMD. Following this request the DMD will exclude the requesting Device from the Domain.
1. Device and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. Device issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. Device issues dmp2rdp:LeaveDevice [Figure 126]
5. DMD
a. removes Device ID from the dmp2rd:Device part of dmp2rd:DomainManageInfo
b. replies with dmp2rdp:Ack [Figure 117] with attribute "Result" indicating whether the requested operation was successful or otherwise
6. Device Deletes the License containing the dmp2rl:DomainResource in the Device.
Successful execution of the Leave Device Protocol erases a Domain Resource for the Domain in the Device and the Device ID in the Device ID list of the DMD.
A User may request DMD to leave the Domain. Following this request DMD excludes the requesting User from the Domain.
1. User and DMD mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device)
2. User issues dmp2rdp:AuthenticateReq [Figure 116].
3. DMD returns dmp2rdp:Ack [Figure 117].
4. User issues dmp2rdp:LeaveUser [Figure 127].
5. DMD
a. removes User ID from the dmp2rd:User part of dmp2rd:DomainManageInfo
b. replies with dmp2rdp:Ack [Figure 117] with attribute "Result" indicating whether the requested operation was successful or otherwise
6. User Deletes the dmp2rl:DomainResource for the User.
Successful execution of the Leave User Protocol erases a Domain Resource for the User in the Device and the User ID in the User ID list of the DMD.
Flexible Content Licensing models can be implemented through the use of Content Groups, i.e. a set of Content Items with a common Identifier.
A License for a Content Item or Content Group may be Granted to any Device in a Domain with the Condition that the Content Item belongs to a Content Group. In this case such Content Item can be Used by as many Devices in the Domain as the number of Content Groups this Content Item belongs to. In order to verify that this Condition is fulfilled, the DMD and the Devices belonging to the Domain must have at least intermittent connections, so that the DMD can get the Use Data of the Devices and verify that no simultaneous Use of Content has occurred since the last time the DMD and the Devices were connected. A Trusted clock is clearly also required.
A Content Item belongs to a Content Group any time it is Represented in the Correspondent License by means of a dmp2rl:digitalResource instead of an rel-r-bpx:digitalResource. See Section 3.2.10.3 – The dmp2rl:digitalResource element for more information.
Note: Assigning a Content Item to a Content Group implies that this Item cannot be used within the Domain at the same time as other Items of the same Content Group are being used. This mechanism shall not be confused with the dacx:simultaneousAccessCount Condition, which only limits the Use of the Content Item to a number of Devices at a time, irrespective of other Content Items. Setting dacx:simultaneousAccessCount to a specific value is equivalent to a Content Item being in its own unique group, and therefore having no other items but itself to consider when testing for simultaneous use. DMP at the moment does not specify a Protocol to enforce such Condition.
This section specifies a Protocol to detect when two Devices belonging to the same Domain Use a Content Item simultaneously.
In order to implement the Simultaneous Usage Detection mechanism, the Device must record Use Data on the Device i.e. by adding a record for each Content Use event. Each record consists of a dmp2rdp:UseData element defined in Section REF _Ref130188749 \n \h 3.2.17 ‘Represent Use Data’, and contains the information that the Device Identified by dmp2rd:Device ID Used a Content Item belonging to dmp2rd:ContentGroupID in the time frame between “Start Time” and “End Time”.
If the Device leaves a Domain, the Device must hold the Use Data of that Domain in case it needs to rejoin the same Domain. Note that Use Data does not contain the Identifier of the Content Item being Used, but rather the ContentGroupID.
When two or more Devices belonging to the same Domain are connected, each Devices shall merge its Use Data with those of the other Devices, in order to increase the possibilities that the DMD discovers un-Licensed simultaneous Use of Content before a Device connects to renew its membership to a Domain.
Each Device adds the Use Data of the other Devices to its Use Data. If this operation causes duplicated records in the Use Data, the duplication will be deleted from the Use Data. If two records have the same information except for the value of the Notification Flag element [Figure 133], the record having NotificationFlag with a "FALSE" value will be overwritten by the record with a Notification Flag set to TRUE. Eventually all Devices will integrate the Use Data of each other.
When the Devices are connected via an unsecure network or server, the Use Data must be exchanged over a secure channel (SAC). See Section 3.3.2.1 - Protocols to Authenticate Device for the establishment of a SAC.
All the Devices in a Domain that simultaneously Used Content Elements part of a Content Item belonging to a Content Group are considered as having performed un-Licensed Simultaneous Use. This is detected by Devices or DMD through inspection of the Use Data.
If the Use Data has any overlapped records in time then the Devices indicated by the DeviceID in the overlapped record are considered to have incurred un-Licensed Simultaneous Use. However, if a Content Item is Licensed to more than one ContentGroupID, then the Use is allocated to the ContentGroupID that avoids un-Licensed Simultaneous Use. This is assessed at the time the Use Data is merged or the totality of Use Data are Delivered to the DMD.

Figure 145 Un-Licensed Simultaneous Use Schematic
The Figure above describes how Un-Licensed Simultaneous Use is detected. In this figure, Device A Uses Content1 during the period of time shown by the thick line. Similarly Device B is shown Using Content2 during the thick line segment of the lower line. In this case, the usage of Content1 on Device A and the usage of Content2 on Device B occur at the same time, shown by the overlapping of their respective thick line segments. Both Content1 and Content2 are given “CG1” as a ContentGroupID. As this ContentGroupID is subject to the rule that only one content item from the group shall be Used at any time this is an example of Un-Licensed Simultaneous Use
The figure above also shows Device C Using firstly Content3 and later Content4 during the time shown by the two thick line segments of the Device C timeline. In this case, the usage of Content1 on Device A and the usage of Content3 on Device C overlap in time. However, Content1 and Content3 are given different ContentGroupId values so this case does not violate the rule.
The usage of Content2 on Device B and the usage of Content4 on Device C also overlaps in time. As Content4 is given both “CG1” and “CG2” as ContentGroupIDs “CG2” will be chosen in order to avoid unnecessary detection of Un-Licensed Simultaneous Usage.
Whenever a Device connects to the DMD it notifies the DMD if simultaneous Use has been detected. This is done by employing the dmp2rdp:UnLicensedSimultaneousUseNotice message[Figure 131], containing all dmp2rdp:UseData elements where an overlapping was detected by the Device. The DMD replies by sending a dmp2rdp:Ack [Figure 117] acknowledging the receipt of the message, and applies its own policy.
Once an un-Licensed Simultaneous Use Notice is sent to DMD the Notification Flag element of the record in the Use Data is set to “True” by the Device, so that an un-Licensed Simultaneous Use Notice will not be issued again when all the records involved in the simultaneous Use have a ‘True’ Notification Flag.
Note: the rel-r-bpx:validityInterval Condition in the License containing the Domain Resource for the Device or User is set by the DMD to ensure the Device or the User will renew its Domain membership with an appropriate frequency. This provides the opportunity for the DMD to receive un-Licensed Simultaneous Use Notices at the time of Domain renewal. According to policy, the Domain Manager may decide to add the Device ID to the Revocation List.
This Section decribes the Protocols between DRM Processor and DRM Tools or between DRM Tools involved in the Governance of Content, as described in Section 3.2.8
When a DRM Processor locates a Governed Content Element protected by a DRM Tool it needs to locate the appropriate DRM Tool Body. It extracts the DRM Tool ID from the DCI and then, through the Local DRM Tool Access Protocol [3.3.5.9], determines the pathname of the file corresponding to the required DRM Tool or DRM Tool Pack. At this point the DRM Processor instantiates the DRM Tool as indicated in the dmp2rdi:Instantiation_API_ID, specified in 3.2.14 – Represent Device Information.
The Managing of a DRM Tool by the DRM Processor involves the delivery of DRM Messages defined in Section 3.2.12 – Represent DRM Messages. DRM Messages are exchanged between a DRM Processor and a DRM Tool according to a Messaging API which is particular to each Device. The DRM Processor chooses the DRM Tool characterised by the Messaging_API_ID supported by the Device on which it is resident. The Messaging_API_ID is specified in 3.2.14 – Represent Device Information.
DRM Messages are conveyed in either dmp2rdm:MessageFromTool or dmp2rdm:MessageFromDCI messages which extend dmp2rdm:ToolMessageBase. These are shown in Section 3.2.12 – Represent DRM Messages. The DRM Tool receiving such messages will obtain from the container Message the information about the Context ID of the Sender (the “Sender” element) and its own Context ID (the “Recipient” element).
The instantiation of a DRM Tool involves the connection of the DRM Tool instance to a specific Control Point and with a specific Sequence Code. The DMP has established a Registration Authority for registering Control Points on Devices, Instantiation APIs and Messaging APIs (See [5]).
Depending on the nature of the DRM Tool - a Single DRM Tool or a DRM Tool Pack - the DRM Processor will act as specified in the two sections below.
In the case the DRM Tool is a Single DRM Tool, the DRM Processor instantiates it according to the mechanisms of the platform on which it is running. According to the Represent Device Information associated with the DRM Tool Body, in particular the dmp2rdi:ToolAPI_Config element, the DRM Processor knows the Instantiation_API_ID information of the DRM Tool and acts appropriately in order to get a handle of an instance of the DRM Tool.
When the DRM Tool is a DRM Tool Pack, the DRM Processor instantiates the DRM Tool Agent part of the DRM Tool Pack, according to the mechanisms of the platform on which it is running. According to the Represent Device Information associated with the DRM Tool Pack Body, in particular the dmp2rdi:ToolAPI_Config element, the DRM Processor knows the Instantiation_API_ID information of the DRM Tool Agent and acts appropriately in order to get a handle of an instance of the DRM Tool Agent. The instantiation of the DRM Tool Pack at this point is not complete yet because the DRM Processor still needs to instantiate the DRM Tools in the DRM Tool Group. Before these can be instantiated, the DRM Tool Agent has to be initialised as specified below.
Once the DRM Processor possesses a handle of an instance of the DRM Tool, the DRM Processor initialises the DRM Tool instance as specified below, depending on whether the DRM Tool is a Single DRM Tool or a DRM Tool Agent.
The DRM Processor initialises a Single DRM Tool by sending it a dmp2rdm:InitialiseTool Message. This Message conveys to the DRM Tool:
· the DRM Processor Instance, a handle of the DRM Processor that is needed by the Tool to send Messages back to the DRM Processor,
· the Control Point in which the DRM Tool will operate (optional),
· the Sequence Code that the DRM Tool has with regards to other DRM Tools operating in the same Control Point (optional),
· any DRM Message addressed to that DRM Tool found in the DCI (optional).
The Initialisation of a DRM Tool Pack involves first the initialisation of the DRM Tool Agent.
The DRM Processor initialises a DRM Tool Agent by sending it a dmp2rdm:InitialiseTool Message. This Message conveys to the DRM Tool Agent:
· the DRM Processor Instance, a handle of the DRM Processor that is needed by the Tool to send Messages back to the DRM Processor. The format of this handle may depend on the particular Device on which the DRM Processor is running and such information depends on the Instantiation_API_ID value in the ToolAPI_Config defined in 3.2.14 -Represent Device Information.
· the list of all available Control Points on the Device where the DRM Tool Agent may instantiate the DRM Tools in the Tool Group with the associate ControlPointAddress where the DRM Tool Pack operates.
· any DRM Message addressed to that DRM Tool found in the DCI (optional).
After the DRM Tool Agent is instantiated, initialised and Authenticated, the DRM Processor chooses from the available Control Points the ones on which to instantiate the DRM Tools in the DRM Tool Group.
Where the DRM Tool Agent needs the instantiation of another DRM Tool to operate, the DRM Tool Agent requests the reference of the DRM Tool Group from the DRM Processor by sending a dmp2rdm:GetToolGroupReference Message [Figure 88]. The DRM Processor replies by sending the required information contained in the dmp2rdm:GetToolGroupReferenceResponse, [Figure 89] if the DRM Processor can Access it (see the Local and Remote DRM Tool Access Protocol, Section 3.3.5.9 and 3.3.5.4). In the case this operation fails, the DRM Processor replies with a dmp2rdm:NotifyToolEvent, specifying an event of type “TOOL_GROUP_NOT_FOUND”.
Where the DRM Tool Agent needs the instantiation of a Single DRM Tool to operate, then the DRM Tool Agent requests the reference of the Single DRM Tool to the DRM Processor by sending a dmp2rdm:GetToolReference Message [Figure 90] specifying a list of DRM Tool IDs of the required DRM Tools. In the case where the DRM Processor can Access the requested DRM Tool, it replies with a dmp2rdm:GetToolReferenceResponse [Figure 91] conveying a list of DRM Tool IDs and the associated references of each DRM Tool.
Once the DRM Tool Agent obtains the reference of the DRM Tool Group or the reference of a Single DRM Tool, the DRM Tool Agent connects each DRM Tool in the Tool Group or the Single DRM Tool to the proper Control Point.
The initialization information for each DRM Tool is contained in the Tool Pack Data. The DRM Tool Agent may use the Tool Pack Data to initialize the DRM Tools in the Tool Group. In this case, the DRM Tool Agent requests the Tool Pack Data from the DRM Processor by sending a dmp2rdm:GetToolPackData message [Figure 92]. The DRM Processor searches for the Tool Pack Data associated with the Tool Pack of the requesting Tool Agent and sends the dmp2rdm:ToolPackData [Figure 93] to the DRM Tool Agent by including it in a dmp2rdm:MessageFromDCI Message [Figure 83].
Finally, the DRM Tool Agent initialises each DRM Tool with Tool Pack Data.
In a secure environment, DRM Processor and DRM Tools should mutually Authenticate before any other action is performed in the Device after DRM Tool Initialisation. This also has the advantage of allowing the establishment of a secure channel for communication among parties.
Mutual Authentication can be triggered by either a DRM Tool or the DRM Processor by sending to the counterpart an dmp2ram:InitAuthentication Message for negotiating the mutual Authentication Algorithms supported by both parties. Following, a number of dmp2ram:MutualAuthentication messages will be exchanged between the parties involved until mutual Authentication is achieved. For more information on the use of these two messages refer to Section 3.2.13 – Represent Authentication Messages.
When the DRM Tool involved in the Authentication process is a DRM Tool Pack, the Authentication process will be performed by the DRM Tool Agent, as the Authentication between this and the DRM Tools in the Tool Group is performed by the Tool Agent in a proprietary fashion.
Chapter 2 [2] describes several scenarios where DRM Messages are employed to achieve certain goals. For more information on the use of DRM Messages for achieving these goals, refer to [14] and [12].
The DRM Processor searches the required DRM Tool Pack and instantiates the DRM Tool Agent. The DRM Tool Agent may need the DRM Tools part of the DRM Tool Group. In this case, the DRM Tool Agent sends a dmp2rdm:GetToolGroupReference message [Figure 89] to the DRM Processor to request a reference to the DRM Tool Group.
The DRM Tool Agent may also employ a Single DRM Tool for performing DRM Functions. In this case, the Tool Agent sends dmp2rdm:GetToolReference message to the DRM Processor to request the reference of the Single DRM Tool [Figure 90 ].
In response to a dmp2rdm:GetToolReference message, the DRM Processor sends a dmp2rdm:GetToolReferenceResponse message [Figure 91] to the DRM Tool Agent to convey the reference of the Single DRM Tool.
This section provides the Protocols to Access Content Elements, namely
1. Content with Bundled License,
2. Licenses
3. DRM Tools
4. Keys
These Content Elements may be Packaged for Delivery as File or Stream for Use by a PAV Device (via PXD) or a SAV Device
For reason of economy of space most of the Protocols to Access Content Elements will be given for the PAV/PXD case as the SAV case becomes then a particular case where the PAV and the PXD are the same Device.
Protocols to Access Content Elements as File are based on a transactional Protocol called Remote Access Protocol (RAP) that is supported over an existing network protocol (TCP/IP or HTTP in the case of Internet/WWW access). In terms of security, the RAP uses two security layers:
· Application-Level: this corresponds to the messages described in the RAP in this Chapter 3;
· Network-Level: this is represented by an underlying security Protocol, i.e. the SSLv3/TLSv1 Protocol.

Figure 146 – RAP Security Layers
The Remote Access Protocol is built on top of the following premises:
· The User has acquired some Permissions to use a Content Item, e.g. via a transaction;
· There is a License Provider responsible for producing and managing Licenses;
· The License is given to an Identified and Authenticated Device that is capable of Parsing the Licenses and enforce the acquired Rights on the Governed Content;
· Licenses should be protectable against eavesdropping attacks;
· Licenses should be Signed by the License Provider;
· Content Decryption Keys in a License should be protected;
· Certificate-based Device Identification is used (See REF _Ref130202704 \n \h 3.2.5.5);
· The License Provider Device can Authenticate a Device;
· When the Device is a PAV, the Function of Accessing Content and License is performed by the PAV eXternal Device (PXD), otherwise it is the SAV itself.
· Confirmation that a License was received by a PXD is possible (to avoid repudiation attacks).
If a Resource referenced by the DCI is Governed, Licenses or references to Licenses or references to License Services are stored in the DCI as specified in 3.2.1.10 – Location of Licenses.
This section specifies the Remote Content Access Protocol (RCAP) when the Content has a License Bundled within that is bound to a specific Device, User or Domain. This protocol is based on the exchange of messages between two basic components: the PXD or SAV and the Content Provider Device.
The RCAP involves the following steps:
1. PXD and Content Provider Device mutually Authenticate (See 3.3.2.1 – Protocols to Authenticate Device);
2. PXD Authenticates PAV Device (See 3.3.2.1 – Protocols to Authenticate Device);
3. PXD generates a dmp2rap:RequestContent message [Figure 136] that contains the following elements:
a. The Content ID;
b. The License containing the PAV Domain Resource element, dmp2rl:DomainResource element, for requesting a Domain-bound license (this in the case the Device or the User are part of a Domain);
4. PXD asks the PAV Device to Sign the message attaching the PAV Device Certificate or the User Certificate in the dsig:Signature field;
5. PXD sends the dmp2rap:RequestContent message to Content Provider Device;
6. The Content Provider:
a. Receives the message;
b. Verifies the digital Signature;
c. Verifies the License containing the Domain Resource (if present);
d. Verifies the PAV Device Certificate;
e. Reads the Content ID;
7. The Content Provider Device generates a dmp2rap:RequestLicense message [Figure 137] to asks the License Provider Device whether there is a License for the specific Content ID, PAV Device ID and/or Domain (e.g. because the transaction has been previously completed between a User and a License Provider). If yes:
a. The License Provider generates a dmp2rap:RequesLicenseResult message [Figure 139] containing the License; Signs the message, attaching the License Provider Certificate and sends it to the Content Provider. The License includes the Resource Encryption Keys that are Encrypted with:
i. the PAV Device Public Key in the case of PAV Device License;
ii. the Domain Key in case of Domain License;
b. The Content Provider Device:
i. Replies with a dmp2rep:Ack message [Figure 138]
ii. Bundles the License within the DCI;
iii. Signs the DCI (attaching the Content Provider Device Certificate);
iv. Packages the DCI and Resources are into a DCF;
v. Signs the DCF (attaching the Content Provider Device Certificate);
vi. sends a dmp2rap:RequestContentResult message to the PXD specifying the URI of the Device from which the DCF can be downloaded;
8. PXD:
a. replies with a dmp2rep:Ack message [Figure 138]
b. downloads the DCF;
9. PXD transfers the DCF to the PAV.
Note: In case of a SAV, PXD in the Protocol is replaced by SAV and PAV information requested by PXD is already available from the SAV itself.
The Protocol to Access Content as Stream is employed by the SAV any time a subscription License by a Content Provider is required to Access Content. In this case, the Protocol is achieved by following the steps below:
1. The SAV owner subscribes to the Content Provider (this is not part of this specification)
2. As a result of 1. completed successfully, the SAV Authenticates with the Content Provider Device (see Section 3.3.2.1 – Protocols to Authenticate Device)
3. As a result of 2, the Content Provider Device sends a License to the SAV
a. Granting the SAV the subscription to the Content Provider Device services, possibly with some Conditions (e.g. the License expires after one month)
b. Delivering the decryption Key for accessing Governed Content Elements
4. The DRM Processor in the SAV:
a. Decrypts the License or any parts of it (if encrypted) by employing the SAV's Certificate private Key
b. Stores the received License in a secure repository
c. Accesses the DCI packaged and Delivered as Stream by means of Digital Item Streaming technology
d. Access License as Stream for every Governed Content Item Accessed (see Section 3.3.5.4).
Note: Every time the Device Access a Governed Content Item as Stream from the Content Provider, the correspondant DCI indicates if any of its Content Elements is Governed. In this case a correspondant License for the Governed Content Item of Content Elements is Bundled within the DCI.
In the case a subscription License is not required, refer to Access License as Stream for the continuation of the Protocol.
The Remote License Access Protocol (RLAP) is used by a PXD connected to a PAV Device or a SAV to Access Licenses from a License Provider Device. At the application level RLAP is based on the exchange of messages between two basic components: the PXD or SAV and the License Provider Device.
The RLAP involves the following steps:
1. PXD:
a. verifiesthat the Content Item is Governed and that a License is needed to Access the Content Item;
b. extracts the Content ID from the Content Item;
c. Authenticates the PAV Device (See 3.3.2.1 – Protocols to Authenticate Device);
d. verifies that there are no Licenses in the RightsDescriptor of the Content Item;
e. retrieves the LicenseService URI from the RightsDescriptor object;
2. PXD and License Provider Device mutually Authenticate(See 3.3.2.1 – Protocols to Authenticate Device);
3. PXD generates a dmp2rap:RequestLicense message [Figure 137] containing the following elements:
a. The Content ID;
b. The License containing the Domain Resource for PAV Device if it exists;
c. The hash value of the DCI;
d. A unique transaction identifier generated by PXD, to be used to validate the messages;
4. PXD asks the PAV Device to Sign the message attaching the PAV Device Certificate;
5. PXD sends the dmp2rap:RequestLicense message to the License Provider Device;
6. The License Provider Device:
a. Receives the message;
b. Verifies the Signature;
c. Verifies the Domain Resource for PAV Device (if present);
d. Verifies the PAV Device Certificate;
e. Reads the Content ID;
f. Verifies the DCI hash value;
7. The License Provider Device verifies whether there is a License on the system for the specific Content ID and for that PAV Device or Domain.
a. If yes:The License Provider Device:
i. generates a dmp2rap:RequesLicenseResult message [Figure 139] containing the License The License is signed by the License Provider Device attaching the License Provider Device Certificate. The License includes the Resource Encryption Keys that are Encrypted with:
1. The PAV Device Public Key in the case of PAV Device License;
2. The Domain Public Key in case of Domain License;
ii. Delivers the dmp2rap:RequesLicenseResult message to the PAV Device:
b. If there is no License or the PAV Device Certificate or the data within the Device Certificate is invalid, a dmp2rap:Ack message [Figure 138] is sent to the Device to acknowledge the failure of the Protocol:
8. PXD receives the message from the License Provider Device, verifies the message contents and extracts the License;
9. PXD sends a dmp2rap:Ack message [Figure 138] to the License Provider Device signalling that the License was successfully received.
10. XD Bundles the License in the DCF License_Container Box and Signs the DCF
Note: In case of a SAV, PXD in the Protocol is replaced by SAV and PAV information requested by PXD is already available from the SAV itself.
The Protocol to Access License as Stream is performed by the DRM Processor every time the SAV Accesses a Governed Content Item or Content Elements as Stream. In this case, a License L specifying the Usage rules for the Governed Content Item or Content Element is Bundled within the DCI. L may be of two types:
1. Granting Rights over a collection of Content Items
2. Granting Rights over a specific Content Item within a Collection of Content Items and Delivering a decryption Key.
For both of the above cases, if the SAV has successfully performed the Protocol to Access Content as Stream defined in Section 3.3.5.2, the SAV's secure repository contains a License L'. In this case:
1. The DRM Processor:
a. Encapsulates L in a dmp2rdm:RightsData message (see Section REF _Ref132802076 \r \h \* MERGEFORMAT 3.2.12.3.4 – DRM Processing Messages)
b. Encapsulates L' in a dmp2rdm:RightsData message (see Section 3.2.12.3.4 – DRM Processing Messages)
c. Encapsulates the two dmp2rdm:RightsData Messages into a dmp2rdm:MessageFromDCI (see Section 3.2.12.2.3)
d. Sends a dmp2rdm:MessageFromDCI Message to each DRM Tool specified in the DRM Information related to the Governed Content Element
2. The DRM Tool(s):
a. Extracts the two dmp2rdm:RightsData Message from the dmp2rdm:MessageFromDCI Message
b. Extracts the Licenses from the dmp2rdm:RightsData Message
a. Process the Governed Resources according to the terms in the Licenses.
This protocol is applied when the DRM Tool Body is not in the DCI and the application of the Local DRM Tool Body Access Protocol returns DRM Tool Body not found
1. Device:
a. mutually Authenticates with DRM Tool Provider Device (See 3.3.2.1 – Protocols to Authenticate Device). The URL of the DRM Tool Provider Device is contained in the dmp2_ipmpinfo:Remote element in the DCI
b. sends a dmp2ax:RequestDRMToolBody message [ REF _Ref131793563 \h \* MERGEFORMAT Figure 141] to the DRM Tool Provider Device, containing:
i. The requested DRM Tool ID
ii. Represent Device Information Structure
iii. The Signature of the License Granting the Right to Access the Resource by Device or User
2. DRM Tool Provider Device:
a. Receives the message;
b. Verifies the Signature;
c. Reads Device Information
d. Prepares DRM Tool Body appropriate to received Device Information
e. Wraps DRM Tool Body in dmp2rtb:ToolBody
f. Delivers dmp2rap:RequestDRMToolBodyResponseToolBody [Figure 142] to Device.
3. Device
a. Receives dmp2rap:RequestDRMToolBodyResponseToolBody
b. Sends dmp2rap:Ack message to DRM Tool Provider Device to notify the receipt (or otherwise) of the DRM Tool Body
c. Reads dmp2rtb:ToolPackageType information
d. Unpackages the dmp2rtb:ToolBody
e. Stores DRM Tool Body in the local Storage.
When the application of the Local DRM Tool Body Access Protocol returns “DRM Tool Body not found” and DRM Tool Bodies are Delivered as DCS, the DRM Processor polls the DCS until the required DRM Tool Body is Delivered in the appropriate location of the DCI (see REF _Ref129409588 \r \h 3.2.1.12 – Location of DRM Tool Body).
This Protocol is employed when Resource Decryption Keys are Delivered as DCS. In this case:
1. The DRM Processor
a. polls the DCS for the required Resource Decryption Key in element dmp2rdm:KeyData sent to the DRM Tool that Governs an encrypted Content Element (see REF _Ref131794855 \r \h 3.2.1.11 – Location of Key information and 3.2.12.3.4 - DRM Processing Messages)
b. encapsulates any dmp2rdm:KeyData found in the DCS in a dmp2rdm:MessageFromDCI Message (see Section 3.2.12.2.3)
c. Delivers such Message to the appropriate DRM Tool (s).
2. The DRM Tool receiving such Message:
a. Extracts the dmp2rdm:KeyData Message from the dmp2rdm:MessageFromDCI Message
b. Extracts the Key K from the dmp2rdm:RightsData Message
c. Decrypts K contained in the dmp2rdm:KeyData (if encrypted) by employing the Key K' contained in the License(s) previously obtained when the DRM Processor performed the Protocol to Access License as Stream (see Section 3.3.5.4)
a. Employes the decrypted K to Decrypt the Governed Resource
The Local License Access Protocol (LLAP) is used when the License is Bundled within a Content Item. In this case the License is placed in the RightsDescriptor element part of the DCI at the moment of reception of the Governed Content.
The LLAP requires the following steps:
1. The DRM Processor:
a. verifies that the Content is Governed and that a License is necessary to Access the Content;
b. extracts the Content ID from the Content;
c. validates the Device Certificate;
d. looks for Licenses inside the RightsDescriptor;
e. reads the License(s);
f. Verifies the License Signature;
g. Decrypts the License if it is Encrypted;
h. Parses and Interprets the License;
i. extracts the Resource Encryption Keys (if present) and sends it to the DRM Tool specified in the DRM Information related to the Governed Content Element by employing the dmp2rdm:KeyData Message.
2. The DRM Tool
a. Stores the Key
b. Decrypts the Resource Encryption Keys (if Encrypted).
This protocol is applied when the DRM Tool Body is not in the DCI
1. DRM Processor searches the local DRM Tool Body repository for required DRM Tool Body
2. If not found then
a. Search for any DRM Tool Body suitable to replace the target DRM Tool Body:
i. by looking for alternative DRM Tools, if any is specified by element dmp2_ipmpinfo:AlternateGroup
ii. by comparing it with any Parametric description associated to available DRM Tools, if a Parametric Description describing the target DRM Tool is available (see element dmp2rdm:ParametricDescription).
b. If none is found then
i. Start the Remote DRM Tool Body Access Protocol
3. Else return "DRMToolBodyNotFound" end protocol
Content must be Packaged so that it can be Delivered to Devices. IDP-2 provides Tools to achieve this for the following types of transport:
1. File
2. Stream
IDP-2 identifies these 3 forms of Content Package as DCF (DMP Content Format), DCB (DMP Content Broadcast) and DCS (DMP Content Stream).
This section specifies how to Package Content into the DMP Content File (DCF).
IDP-1 provides Tools to Package Content in files whose format using a DMP-defined subset of the MPEG-21 File Format [ REF _Ref130203619 \n \h 27], which contains the DCI with some or all of its ancillary Resources, potentially in a single package. The MPEG-21 File Format is based on the ISO Base Media File Format [13], which defines how to contain timed media information for a presentation. The file structure is object-oriented; a file can be decomposed into constituent objects very simply, and the structure of the objects inferred directly from their type.
In [27], files are formed as a series of objects, called boxes. All data is contained in boxes; there is no other data within the file. Each Box is represented as in the figure below and it is characterised by two attributes: boxtype and size.
aligned(8) class Box (unsigned int(32) boxtype,
optional unsigned int(8)[16] extended_type) {
unsigned int(32) size;
unsigned int(32) type = boxtype;
if (size==1) {
unsigned int(64) largesize;
} else if (size==0) {
// box extends to end of file
}
if (boxtype==‘uuid’) {
unsigned int(8)[16] usertype = extended_type;
}
}
The size field is an integer that specifies the number of bytes in this box, while the type field identifies the box type, which is normally made of four human-readable characters represented using four bytes (4 Character Code, 4CC), to permit the identification of the box. Boxes with an unrecognized type shall be ignored and skipped. Class Box is extended in the ISO specification by Class FullBox, which conveys additional information.
aligned(8) class FullBox (unsigned int(32) boxtype, unsigned int(8) v, bit(24) f)
extends Box(boxtype) {
unsigned int(8) version = v;
bit(24) flags = f;
}
Table 1 is a subset of the table described in [27], section 3.1 and provides a view of the encapsulation of boxes. The first two columns represent the 4CC identifying the box type; this information is displayed on two columns in order to show the nesting level of the boxes.
Table 22: Logical box structure diagram
|
|
|
Mandatory
|
Description |
|
ftyp |
|
yes |
file type and compatibility |
|
free |
|
no |
free space |
|
meta |
|
yes |
Metadata |
|
|
hdlr |
yes |
handler, declares the metadata (handler) type |
|
|
bxml |
yes |
binary XML container |
|
|
xml |
no |
XML container |
|
|
iloc |
no |
item location |
|
mdat |
|
no |
media data container |
|
licc |
|
no |
License_Container Box |
|
|
licb |
no |
License Box |
|
sign |
|
no |
Digital signature of the file |
The next section will give an overview on the entries in the table above, and specify DMP-defined values for particular variables.
This section specifies syntax and semantics of the ISO Base Media File Format box elements adopted by the DMP to Package Content in the DMP File Format (DCF).
The ftyp box is mandatory and specifies to which specification this file is conformant. The brand for a DMP file is ‘dmpf’ and this value should appear in the compatible_brands as described below.
aligned(8) class FileTypeBox
extends Box(‘ftyp’) {
unsigned int(32) major_brand;
unsigned int(32) minor_version;
unsigned int(32) compatible_brands[]; // to end of the box
}
The following table describes the variables of class FileTypeBox
|
major_brand |
An identifier for the specification this file is conforming to. For a file conforming to this specification this variable is set to ‘mp21’. |
|
minor_version |
A variable representing the version of the brand. For files conforming to this specification this variable is set to ‘0x00000000’ |
|
Compatible_brands |
A list of brands to which the content of this box is compatible. ‘dmpf’ should appear among the brands in this list. |
NOTE: DCF files must have exactly one DMP File Type Box at the beginning of the file.
The Free Box is optional and may contain any kind of data and follows the syntax and semantics as defined in [13]. A Device may ignore the content of this box. If this box, if present, its content is skipped for the calculation of any digital signature or hash value.
aligned(8) class FreeSpaceBox extends Box(free_type) {
unsigned int(8) data[];
}
The Meta Box defined in [ REF _Ref130203386 \n \h 13] is shown in the figure below:
aligned(8) class MetaBox (handler_type)
extends FullBox(‘meta’, version = 0, 0) {
HandlerBox(handler_type) theHandler;
PrimaryItemBox primary_resource;
DataInformationBox file_locations;
ItemLocationBox item_locations;
ItemProtectionBox protections;
ItemInfoBox item_infos;
IPMPControlBox IPMP_control;
Box other_boxes[];
}
However this specification will only consider meaningful three of those boxes:
· the HandlerBox: For indicating the structure or format of the ‘meta’ box contents. The handler_type for this box should be ‘dmpf’
· the ItemLocationBox: as described in 3.4.1.1.7 below
· the field other_boxes: containing the ‘bxml’ and ‘xml’ boxes described below.
Two boxes may be contained in the other_boxes array: the Binary XML Box (‘bxml’) which is mandatory, and the XML Box (‘xml’) which is optional. Both will contain the DMP Content Information (DCI) as defined in Section 3.2.1 - Represent Content.
aligned(8) class BinaryXMLBox extends FullBox(‘bxml’, version = 0, 0) {
unsigned int(8) data[]; // to end of box
}
aligned(8) class XMLBox extends FullBox(‘xml ’, version = 0, 0) {
string xml;
}
The ItemLocationBox provides a link between Content Element s Represented in the DCI and the phisical location of them within this file or other files, their offset within the file and their length.
aligned(8) class ItemLocationBox extends FullBox(‘iloc’, version = 0, 0) {
unsigned int(4) offset_size;
unsigned int(4) length_size;
unsigned int(4) base_offset_size;
unsigned int(4) reserved;
unsigned int(16) item_count;
for (i=0; i<item_count; i++) {
unsigned int(16) item_ID;
unsigned int(16) data_reference_index;
unsigned int(base_offset_size*8) base_offset;
unsigned int(16) extent_count;
for (j=0; j<extent_count; j++) {
unsigned int(offset_size*8) extent_offset;
unsigned int(length_size*8) extent_length;
}
}
}
The following table describes the variables of class ItemLocationBox.
Table 23 – Variables of class ItemLocationBox
|
offset_size |
A value from the set {0, 4, 8} which indicates the length in bytes of the offset field. |
|
length_size |
A value from the set {0, 4, 8} which indicates the length in bytes of the length field. |
|
base_offset_size |
A value from the set {0, 4, 8} which indicates the length in bytes of the base_offset field. |
|
item_count |
An integer value indicating the number of resources in the following array. |
|
item_ID |
An arbitrary integer ‘name’ for this resource which can be used to refer to it (e.g. in a URL). |
|
data-reference-index |
A value which is either zero (‘this file’) or a 1-based index into the data references in the data information box. |
|
base_offset |
An integer which provides a base value for offset calculations within the referenced data. If base_offset_size is 0, base_offset takes the value 0, i.e. it is unused. |
|
extent_count |
An integer which provides the count of the number of extents into which the resource is fragmented; it must have the value 1 or greater. |
|
extent_offset |
An integer which provides the absolute offset in bytes from the beginning of the containing file, of this item. If offset_size is 0, offset takes the value 0 |
|
extent_length |
An integer which provides the absolute length in bytes of this metadata item. If length_size is 0, length takes the value 0. If the value is 0, then length of the item is the length of the entire referenced file. |
This box contains the Content Element Represented and Identified in the DCI, and is defined in [27] as follows:
aligned(8) class MediaDataBox extends Box(‘mdat’) {
bit(8) data[];
}
The License_Container Box contains an array of License Boxes each of them containing a License for any Governed Content Item described in the DCI.
The License_Container box, if present, is placed at the beginning of a DCF, and is defined as below:
aligned(8) class License_Container extends FullBox(‘licc’) {
unsigned int(16) item_count;
for (i=0; i<item_count; i++) {
string License_ID;
Box License_Box;
}
}
Table 24 – Variables of class License_Container Box
|
item_count |
An integer value indicating the number of License Boxes in the container |
|
License_ID |
A string of characters containing the License_ID |
|
License_Box |
A box containing a License |
The License box contains a License Governing a Content Item described in the DCI.
aligned(8) class LicenseBox extends FullBox(‘licc’) {
bit(8) License[];
}
Table 25 – Variables of class Licens Box
|
License |
An array of bytes |
This box contains digital Signature of the DCF. The digital Signature shall be calculated from the beginning to the end of the last container, but excluding any content in the Free box.
The Signature box, if present, is placed at the end of a DCF, and is defined as below:
aligned(8) class SignatureBox extends Box(‘sign’) {
bit(8) data[];
}
The DMP specifies to Package Content as
a Stream using the ISO/IEC CD 21000-18 Digital Item Streaming (DIS) [ REF
_Ref130204199 \n \h 28]
technology.
This Approved Document No 4 specifies how the informative Use Cases described in Chapter 1 can normatively be implemented using the Tools specified in Chapter 3.
|
Disclaimer By giving a normative value to this Approved Document DMP does not imply that Use Cases of Chapter 1 can only be implemented as specified in this Approved Document. DMP simply intends to provide an example normative implementation so that those Users who assemble the Tools as specified in this Approved Document will be able to interoperate with other Users who will assemble the Tools in a similar way. |
In the Use Cases below “Out of scope” and “None” in the IDP Tool column indicate that the Function is “not required” and “not yet provided” by IDP-2, respectively.
Prerequisites for proper understanding of this Approved Document are; reading of this Foreword, Chapter 2 – Architecture, Chapter 3 – Interoperable DRM Platform and Chapter 6 – Terminology.
There are many cases where Users (companies or even individuals) own Rights to Content, have an interest in Releasing it in such a way that other Users can freely Access it but do not want to make it public domain. In other words the Content is Governed in a “light-weight” form, i.e. without using technical protection measures (TPM). Examples are publicity material, movie trailers, a garage band’s song or an amateur video on a blog. Note that in DMP, Content means more than just Resources as it is defined as “A structured combination of Content and Content Elements”, the latter being “Any of the following Data types: Resource, Metadata, Content, License, DRM Information, DRM Tool Pack and Use Data”.
In this Use Case such a type of Release is called “Open Release”.
This form of Release is clearly contiguous to other forms of commercial Release. Therefore it would be advantageous if such other more sophisticated forms could be built on top of this simple form, e.g. if it was possible to add more “heavy-weight” DRM technologies when the context so demands.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
Leonardo has been invited to give a presentation at a conference but at the last minute he is unable to attend. As a fallback he decides to send some audio-visual material and related data to the conference organisers as Open Release. His material will be given to conference participants first and to the general public in selected jurisdictions later, in the form of Governed Content for distribution.
Leonardo knows that in this form his Content will not prevent people from doing what he would not like them to do. If he or one of his robots should find Resources taken from his Content on some web sites he will have the option of taking action against the infringers.
Therefore Leonardo performs the following steps. Note that some of these steps (e.g. Resource and Content Identification) could be performed automatically by an “Open Release authoring tool”.
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Leonardo |
Create |
Resource |
PowerPoint file |
Out of scope |
|
|
Leonardo |
Create |
Metadata |
Of Powerpoint file |
Out of scope |
|
|
Leonardo |
Create |
Audio and video |
|
Out of scope |
|
|
Leonardo |
Create |
Resource |
Audio-visual Resource file |
Out of scope |
|
|
Leonardo |
Create |
Metadata |
Of audio-visual Resource file |
None |
|
|
Registration Agency |
Identify |
Resources and Metadata |
PowerPoint file and audio-visual file |
None |
|
|
Leonardo |
Represent |
Identifier |
In Resources and Metadata |
Represent Content |
2.5.1 |
|
Leonardo |
Create |
Human-readable License |
1. Play a. Time of Use: i. until conference ends (Users who are conference participants) ii. after conference ends (all Users in the selected jurisdiction) b. # of times: unlimited 2. Store: unrestricted 3. Print PowerPoint file: unrestricted 4. Move: unrestricted 5. Copy: unrestricted |
Out of scope |
|
|
Registration Agency |
Assign: Identifier to |
Human readable license |
Lower case "L" because this is not a License |
Out of scope |
|
|
Leonardo |
Create |
Machine-readable License |
Corresponding to the human-readable license (expressed in verbose XML) |
Represent License |
2.10 |
|
Registration Agency |
Identify |
License |
|
None |
2.5.2 |
|
Leonardo |
Create |
Content Item |
Containing 1. Resources 2. Metadata 3. Human-readable license for the selected jurisdiction 4. License |
Represent Content |
2.1 |
|
Registration Agency |
Identify |
Content Item |
|
None |
|
|
Leonardo |
Represent |
Content Identifier |
In the Content Item |
Represent Content |
2.5.1 |
|
Leonardo |
Binarise XML |
Content Item |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
Leonardo |
Package |
Content |
As file |
Package Content |
4.1.1 |
|
Leonardo |
Release |
Content file |
To conference organisers |
None |
|
DCI for the Open Release Use Case
The Figure below shows an example DCI for the Open Release Use Case. Such DCI contains all the information described in the walkthrough above, including the License (both in human- and machine-readable format), Metadata for the whole Content Item and shows the location of Metadata for the various Content Elements.
<?xml version="1.0" encoding="UTF-8"?>
<DIDL xmlns="urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02" xmlns:dmp2rc="urn:dmp:idp2:Represent:Content:2006:02" xmlns:dmp2rl="urn:dmp:idp2:Represent:License:2006:02" xmlns:dmp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" xmlns:dmp2_ipmpdidl="urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" xmlns:dmp2rdm="urn:dmp:idp2:Represent:DRMMessages:2006:02" xmlns:dmp2ram="urn:dmp:idp2:Represent:AuthenticationMessages:2006:02" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:mpeg7="urn:mpeg:mpeg7:smp:schema:2001" xsi:schemaLocation="urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02 dmp2didl-2006-02.xsd">
<Container>
<Item>
<Descriptor>
<Statement mimeType="text/plain">
<dmp1_dii:Identifier>urn:myPresentations:presentation:444</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2rc:StructuredData ref="urn:mpeg:mpeg7:smp:schema:2001">
<mpeg7:Mpeg7>
<mpeg7:Description xsi:type="mpeg7:CreationDescriptionType">
<mpeg7:CreationInformation>
<mpeg7:Creation>
<mpeg7:Title type="ContentTitle">Slide presentation with Audio and Video</mpeg7:Title>
<mpeg7:Creator>
<mpeg7:Role href="urn:mpeg:mpeg7:RoleCS:2001:AUTHOR"/>
<mpeg7:Agent xsi:type="mpeg7:PersonType">
<mpeg7:Name>
<mpeg7:GivenName>Leonardo</mpeg7:GivenName>
</mpeg7:Name>
</mpeg7:Agent>
</mpeg7:Creator>
<mpeg7:CreationCoordinates>
<mpeg7:Date>
<mpeg7:TimePoint>2006-04-18T09:00:00</mpeg7:TimePoint>
</mpeg7:Date>
</mpeg7:CreationCoordinates>
</mpeg7:Creation>
</mpeg7:CreationInformation>
</mpeg7:Description>
</mpeg7:Mpeg7>
</dmp2rc:StructuredData>
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
<dmp2_ipmpinfo:LicenseCollection>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:License>
<dmp2rl:License>
<r:license licenseId="urn:myLicenses:6789A">
<!-- All participant to the Conference can play until the end of the Conference -->
<r:grant>
<r:forAll varName="conferenceParticipants">
<r:propertyPossessor>
<sx:propertyUri definition="urn:MyConference:participant"/>
</r:propertyPossessor>
</r:forAll>
<r:principal varRef="subscriber"/>
<mx:play/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:myPresentations:presentation:444"/>
</r:digitalResource>
<r:validityInterval>
<r:notAfter>2006-07-29T18:00:00</r:notAfter>
</r:validityInterval>
</r:grant>
<!-- Every Device in Italy can play after the end of the Conference -->
<r:grant>
<mx:play/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:myPresentations:presentation:444"/>
</r:digitalResource>
<r:allConditions>
<r:validityInterval>
<r:notBefore>2006-07-29T18:00:00</r:notBefore>
</r:validityInterval>
<sx:territory>
<sx:location>
<sx:country>ITALY</sx:country>
</sx:location>
</sx:territory>
</r:allConditions>
</r:grant>
<!-- Every Device can Print the presentation -->
<r:grant>
<mx:print/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:myPresentations:presentation:444"/>
</r:digitalResource>
</r:grant>
<!-- Every Device can Copy the presentation-->
<r:grant>
<bpx:governedCopy/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:myPresentations:presentation:444"/>
</r:digitalResource>
</r:grant>
<!-- Every Device can Move the presentation-->
<r:grant>
<bpx:governedMove/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:myPresentations:presentation:444"/>
</r:digitalResource>
</r:grant>
<r:issuer>
<r:keyHolder>
<r:info>
<dsig:KeyName>Leonardo_s Certificate</dsig:KeyName>
</r:info>
</r:keyHolder>
</r:issuer>
</r:license>
</dmp2rl:License>
</dmp2_ipmpinfo:License>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:LicenseCollection>
</dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
</Statement>
</Descriptor>
<Item>
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:Identifier>urn:Leonardo:Licenses:HumanReadableLicense:12</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Component>
<Resource mimeType="text/plain">
This License allows you to:
1. Play
a. Time of Use:
i. until conference ends (Users who are conference participants)
ii. after conference ends (all Users in Italy)
b. # of times: unlimited
2. Store: unrestricted
3. Print PowerPoint file: unrestricted
4. Move: unrestricted
5. Copy: unrestricted
</Resource>
</Component>
</Item>
<Item>
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:Identifier>urn:Leonardo:AudioRecording:1234</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2rc:StructuredData ref="urn:mpeg:mpeg7:schema:2001">
<!-- Metadata for audio track-->
</dmp2rc:StructuredData>
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Component>
<Resource mimeType="application/mp21-ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="audio/mpeg">
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:LicenseReference>urn:myLicenses:6789A</dmp2_ipmpinfo:LicenseReference>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents ref="AudioRecording1234.mp3"/>
</dmp2_ipmpdidl:ProtectedAsset>
</Resource>
</Component>
</Item>
<Item>
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:Identifier>urn:Leonardo:VideoRecording:5678</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2rc:StructuredData ref="urn:mpeg:mpeg7:schema:2001">
<!-- Metadata for video track-->
</dmp2rc:StructuredData>
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Component>
<Resource mimeType="application/mp21-ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="video/mpeg">
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:LicenseReference>urn:myLicenses:6789A</dmp2_ipmpinfo:LicenseReference>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents ref="VideoRecording5678.mpg"/>
</dmp2_ipmpdidl:ProtectedAsset>
</Resource>
</Component>
</Item>
<Item>
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:Identifier>urn:Leonardo:Presentations:2222</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2rc:StructuredData ref="urn:mpeg:mpeg7:schema:2001">
<!-- Metadata for the slide presentation-->
</dmp2rc:StructuredData>
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Component>
<Resource mimeType="application/mp21-ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="application/vnd.ms-powerpoint">
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:LicenseReference>urn:myLicenses:6789A</dmp2_ipmpinfo:LicenseReference>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents ref="conferencePresentation33.ppt"/>
</dmp2_ipmpdidl:ProtectedAsset>
</Resource>
</Component>
</Item>
</Item>
</Container>
</DIDL>
Figure 147 – Example DCI for the Open Release Content
End User Luigi, a conference participant, wishing to Use an Open Release Content Item, performs the following steps:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Luigi |
Request |
License |
Sends Device ID |
None |
|
|
Luigi |
Access |
Content Item |
|
Access Content |
3.5.1 |
|
Luigi |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Luigi |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
Note that an “Open Release browser” would facilitate Access and Use of Open Release Content according to the License terms.
License for every conference participant
The following Figure shows an example License for Luigi's Device, obtained by Luigi from Leonardo after communicating him his SAV Content ID. The License Grants Luigi's Device to Use the Resources part of the Content Item under some conditions.
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dmp2rl="urn:dmp:idp2:Represent:License:2006:02" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:dmp:idp2:Represent:License:2006:02 dmp2rl-2006-02.xsd">
<grant>
<keyHolder>
<info>
<dsig:KeyName>Luigi's Device identifier</dsig:KeyName>
</info>
</keyHolder>
<possessProperty/>
<sx:propertyUri definition="urn:MyConference:participant"/>
<validityInterval>
<notAfter>2006-04-30T00:00:00</notAfter>
</validityInterval>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Leonardo's Certificate</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 148 – Example of a License for Luigi's Device
In this case Leonardo wishes to be informed of how many “hits” his Content receives, i.e. how many times Users Access the License not Bundled within the Content file to Use it.
This time Leonardo performs the following steps.
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Leonardo |
Create |
Resource |
PowerPoint file |
Out of scope |
|
|
Leonardo |
Create |
Metadata |
Of Powerpoint file |
Out of scope |
|
|
Leonardo |
Create |
Audio and video |
|
Out of scope |
|
|
Leonardo |
Create |
Resource |
Audio-visual Resource file |
Out of scope |
|
|
Leonardo |
Create |
Metadata |
Of audio-visual Resource file |
None |
|
|
Registration Agency |
Identify |
Resource and Metadata |
PowerPoint file and audio-visual file |
None |
|
|
Leonardo |
Represent |
Identifier |
In Resources and Metadata |
Represent Identifier |
2.5.1 |
|
Leonardo |
Create |
Human-readable license |
With the following permissions: 1. Play a. Time of Use: i. until end of conference (Users who are conference participants) ii. after end of conference (all Users in the selected jurisdiction) b. Number of times: 1 2. Store: unrestricted 3. Print PowerPoint file: unrestricted 4. Move: unrestricted 5. Copy: unrestricted 6. Territoriality: for the selected jurisdiction |
Out of scope |
|
|
Registration Agency |
Identify |
Human readable license |
Lower case "L" because this is not a License |
Out of scope |
|
|
Leonardo |
Create |
Machine-readable License |
Corresponding to the human-readable license (expressed in verbose XML) |
Represent License |
2.10 |
|
Registration Agency |
Identify |
License |
|
None |
|
|
Leonardo |
Binarise XML |
License |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
Leonardo |
Store |
License |
In own server |
Out of scope |
|
|
Leonardo |
Create |
Content Item |
Containing 1. Resources 2. Metadata 3. Human-readable license for the selected jurisdiction 4. Pointer to the binary License 5. Identifiers of all the above |
Represent Content |
2.1 |
|
Registration Agency |
Identify |
Content Item |
|
None |
|
|
Leonardo |
Represent |
Identifier |
In Content Item |
Represent Content Identifier |
2.5.1 |
|
Leonardo |
Binarise XML |
Content Item |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
Leonardo |
Package |
Content |
As file |
Package Content As File |
4.1.1 |
|
Leonardo |
Release |
Content file |
To conference organisers |
None |
|
End User Luigi wishing to Use an Open Release Content Item would perform the following steps:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Luigi |
Access |
Content Item |
|
Access Content as File |
3.5.1 |
|
Luigi |
Access |
License |
Every time License is Accessed, License server adds a hit |
Access License as File |
3.5.2 |
|
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
|
Luigi |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
In this case Leonardo wants to cover a broader number of jurisdictions with a license for each of them. The steps of the previous walkthrough are repeated with the difference that for each selected jurisdictions separate license will be created.
End User Luigi wishing to Use an Open Release Content Item would perform the following steps:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Luigi |
Access |
Content Item |
|
Access Content as File |
3.5.1 |
|
Luigi |
Select |
Jurisdiction |
|
Out of scope |
|
|
Luigi |
Access |
License |
Every time License is Accessed, License server adds a hit |
Access License as File |
3.5.2 |
|
Luigi |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Luigi |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
The WWW has had the fast evolution that everybody knows on the basis of the idea that content could somehow be posted by anybody for anybody to use without much concern on whether the user posting the content actually had rights to that content and without considering the use that could be made of the posted content.
This model is clearly reaching its limits. On the one hand there is a demand, on the part of people accessing content on the web, to be assured of its legal status. On the other there is a demand, on the part of people posting content on the web, to users of that posted content to comply with some conditions.
This Use Case is about a hypothetical service provider GreatRedSearch offering services for those who post lightly Governed Content and those who Use it.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
GreatRedSearch (GRS) is a fast growing search engine company that sees the transition of the web to the new phase where Content is posted in a light-weight Governed form (e.g. corresponding to “Open Release” of Use Case #1) that also provides guarantees of the origin of the Content.
GRS decides to offer a service (for free) allowing subscriber Sam to:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Sam |
Access |
Open Release authoring tool |
(this step is outside of DMP) |
Out of scope |
|
|
Sam |
Select |
license |
From a set of standard human-readable licenses for a range of jurisdictions |
Out of scope |
|
|
GRS |
Identify |
license |
|
Out of scope |
|
|
GRS |
Identify |
License |
|
Represent License Identifier |
2.5.2 |
|
Sam |
Binarise XML |
License |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
Sam |
Store |
License |
In GRS server |
None |
|
|
Sam |
Create |
Content Item |
Containing 1. Resources 2. Metadata 3. Human-readable license for the selected jurisdiction 4. Pointer to the binary License 5. Identifier of all the above |
Represent Content |
2.1 |
|
GRS |
Identify |
Content Item |
|
None |
|
|
Sam |
Represent |
Content Identifier |
In the Content Item |
Represent Content Identifier |
2.5.1 |
|
GRS |
Binarise XML |
Content Item |
|
Represent Binary XML |
2.19 |
|
Sam |
Store |
Content Item |
In GRS server |
None |
|
End User Pat of the GRS service can perform the following
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Pat |
Access |
Open Release browser |
|
Out of scope |
|
|
Pat |
Browse |
Content Data Base |
The database containing records created from the Content stored in-house and the Content searched on the WWW. Each record contains: a. Content URL b. Metadata c. Licensing conditions |
Out of scope |
|
|
Pat |
Access |
Content Item |
|
Access Content as File |
3.5.1 |
|
Pat |
Access |
License |
|
Access License as File |
3.5.2 |
|
Pat |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Pat |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
This Use Case offers an example of how to mitigate the difficulties that some Rights Holders encounter in Releasing unencrypted digital media because of the possibility for a User to Copy Content on several Devices and Use it simultaneously, thereby reducing their revenues.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
GreatRedRecords (GRR) is a record label that is open to the adoption of new technology as a means to promote use of its repertoire by its loyal customer base and to extend use to new customers. GRR is concerned by the possibility of indiscriminate digital copies of its content, but feels that current DRM solutions for digital distribution do not allow enough flexibility. GRR is seeking a new way to offer its customers Use of its repertoire with the sole restriction that Use is made with one Device at a time.
The marketing department has come up with the following proposal:
1. A family, identified by a Domain, is offered a large number of songs at appealing prices;
2. Each family members, independently selects songs for his own. The selection is called ContentGroup;
3. Family members can play one song at a time taken from their ContentGroup any time they want on any of their Devices.
It is clear that a song that appears in more than one ContentGroup can be Used by more that one Devic. In this case simultaneous Use of than song is obviously possible.
Let’s assume that a set of 8 songs has been selected by the Jones family and two family members Anne and Bob have made overlapping selections for their ContentGroups A and B, i.e. some songs have been selected for A, some for B and some for both A and B. Simultaneous Use of one song out of 1, 2, 3, 4, 5 and 6 is possible for ContentGroup A and of one song out of 4, 5, 6, 7 and 8 is possible for ContentGroup B. Therefore songs 4, 5 and 6 can be Used simultaneously. This is depicted in the figure below

Figure 149 – Songs in ContentGroups A and B
The following steps are needed to implement the proposal made by the GRR marketing department. Of course several variations are possible but only the one described below will be considered further:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
DMD Manufacturer |
Make |
DMD |
|
Out of scope |
|
|
Certification Agency |
Certify |
DMD |
|
Out of scope |
AD #5 2. |
|
Registration Agency |
Identify |
Device |
DMD Registered |
Register Domain |
2.5.5 3.1.1 |
|
The Jones |
Buy |
DMD |
|
Out of scope |
|
|
The Jones |
Install |
DMD |
On the family’s home media server |
Out of scope |
|
|
Domain Administrator |
Create |
Domain |
|
Create Domain Protocol |
3.3.2.1 |
|
Anne |
Add |
Device |
DMD adds Anne’s Devices to the Domain |
Add Device Protocol |
3.3.4.1 |
|
Anne |
Buy |
License |
Corresponding to set of songs belonging to ContentGroup A |
Out of scope |
|
|
Anne |
Access |
Content |
Containing License |
Access Content as File |
3. 5.1 |
|
Bob |
Add |
Device |
DMD adds Bob’s Devices to the Domain |
Add Device Protocol |
3.3.4.1 |
|
Bob |
Buy |
License |
Corresponding to set of songs belonging to ContentGroup B |
Out of scope |
|
|
Bob |
Access |
Content |
Containing License |
Access Content as File |
3. 5.1 |
|
Bob |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Bob |
Use |
Content Item |
Song #6 as per License terms |
Represent Content Elements |
2. |
|
Device |
Create |
Use Data |
Device used by Bob to play song #6 |
Create Use Data |
2.17 |
|
Anne |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Anne |
Use |
Content Item |
Song #1 as per License terms |
Represent Content Elements |
2. |
|
Device |
Create |
Use Data |
Device used by Anne to play song #1 |
Create Use Data |
2.17 |
|
Bob |
Use |
Content Item |
Song #2 against License terms at the same time as Anne plays song #1 |
Represent Content Elements |
2. |
|
Device |
Create |
Use Data |
Device used by Bob to play song #2 |
Create Use Data |
2.17 |
|
Device |
Connect |
DMD |
Device used by Anne to play song #1 |
Protocol to detect simultaneous Usage |
3.3.5 |
|
Device |
Connect |
DMD |
Device used by Bob to play song #2 |
Protocol to detect simultaneous Usage |
3.3.5 |
|
DMD |
Detect |
Simultaneous Use |
DMD detects un-Licenses simultaneous Use of song #1 and song #2 |
Protocol to detect simultaneous Usage |
3.3.5 |
Procedure for subsequent steps, if simultaneous use did occur, follows whatever representations were set out in GRR marketing literature.
When using DRM systems based on copy protection, End Users are often confronted with inconveniences, if they want to transfer and/or copy content to various devices within their environment. One of the reasons for this is that DRM systems need to have the right key(s) “in the right place, at the right time” in order to encrypt and decrypt content as needed.
Alternatively, a traceability-based approach can be used. While not aiming at preventing End Users from Accessing Content “ex ante”, as conventional DRM does, such systems require that End-Users mark Content with a responsible User (e.g. the End-User), thus generating “Signed Content”. The User is traceable “ex post” in cases of unauthorized public dissemination. However, in return End-Users can Access and Copy Content within their personal environment as they wish, avoiding many complexities and possible inconveniences of conventional DRM solutions.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
This walkthrough has three Users:
1. GreatGreenMusic (GGM) is a Retailer that Releases Governed and protected Content (specifically music) with DRM Information that signals that a DRM Tool is required to Decrypt and mark Resources with the Identifier of the User of the Content Item.
2. GreatGreenTool (GGT) is a company that provides the DRM Tool.
3. Jim is a User who is willing to Use marked Resources from Governed Content acquired from GGM in his home environment in an unprotected form.
Jim performs the following steps:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Jim |
Buy |
License |
Allowing Export |
Out of scope |
|
|
Jim |
Access |
Content Item |
Content (title: INeedAKey) has 1. the above License Bundled within it 2. DRM Information signals the specific Resource marking DRM Tool |
Access Content as File |
3.5.1 |
|
Jim |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Jim |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
|
DRM Processor |
Access |
DRM Tool Body |
From GGT |
Access DRM Tool Body as File |
3.5.3 |
|
DRM Processor |
Export |
Resource |
Done on INeedAKey. The DRM Tool Parses and Decrypts the Resource in INeedAKey, marks it with Jim’s ID, and Stores it as an un-Encrypted mp3 file ICanBeCopied |
Out of scope |
|
|
Jim |
Play |
Resource |
On all mp3 players within his personal environment |
Out of scope |
|
Jim will not publicly disseminate the song because the ID of the marking software pointing to his software is within the mp3 file.
There is ample evidence that consumers are interested in accessing content via new, non-physical distribution mechanisms (e.g. the Internet) and to use that content on a variety of devices, e.g. portable devices. Rights holders have shown their availability to release governed content through such distribution mechanisms. However, so far this has been done using technologies that do not provide interoperability. The lack of interoperability is a serious obstacle to the widespread acceptance of governed content distribution mechanisms that compare favourably with existing services for their friendliness.
This Use Case is about how the technologies specified in Chapter 3 can be used to implement Internet distribution of Governed Content for Use on Portable (PAV) and Stationary (SAV) Audio and Video Devices.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
GreatRedBand (GRB) has had considerable success in its native territory around Middleofnowheretown and its fame is spreading to the nearby Nexttonowhereville. The rest of the world is just next step. GRB produces Instances of original Works, original Adaptations of existing Works and non original Works.
Unfortunately contacts with distributors have not been successful, so GRB is considering the proposal of an IT solution vendor to try Internet-based distribution of their music as Governed Content. The proposal looks attractive because it promises to reach the growing number of DMP-compatible PAV Devices that can be used to Play Governed Content.
GRB decides to purchase an integrated IT solution to perform the following steps when producing each of its recordings of its original Works:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
GRB |
Make |
Resources |
MP3 file (possibly other Resources e.g. photos, videos etc. |
Out of scope |
|
|
GRB |
Make |
Metadata |
For all Works and Resources in each recording |
None |
|
|
GRB |
Make |
license |
Human-readable license for all the jurisdictions in which GRB intends to distribute its recording |
Out of scope |
|
|
GRB |
Make |
License |
Corresponding to the human-readable license |
Represent License |
2.10 |
|
Registration Agency |
Identify |
License |
|
Represent License Identifier |
2.5.2 |
|
GRB |
Binarise XML |
License |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
GRB |
Store |
Binary License |
In own License Provider Device |
None |
|
|
GRB |
Encrypt |
Resources |
|
Represent Fixed DRM Tools |
2.8.3 |
|
GRB |
Make |
Content Item |
Containing Encrypted Resources, Metadata, human-readable License, pointer to License and Identifiers of all the above |
Represent Content |
2.1 |
|
Registration Agency |
Identify |
Content Item |
|
None |
|
|
GRB |
Represent |
Identifier |
In Content Item |
Represent Content Identifier |
2.5.1 |
|
GRB |
Binarise XML |
Content Item |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
GRB |
Package |
Content Item |
To make a file |
Package Content as File |
4.1.1 |
|
GRB |
Release |
Packaged Content Item |
On GRB’s web site (this step is outside of DMP) |
None |
|
Martin is a GRB fan. To Access their latest hit the following steps are performed:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Martin |
Select |
Song |
From www.GreatRedBand.com |
Out of scope |
|
|
PXD |
Access |
Content Item |
From www.GreatRedBand.com |
None |
|
|
PXD |
Access |
License |
From GRB License server |
Access License as File |
3.5.2 |
|
PXD |
Package |
License |
In DCF |
Package Content |
4.1.1.9 |
|
PXD |
Move |
DCF |
To Martin’s PAV |
None |
|
|
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
|
PAV |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
One of the Works that GRB wishes to Produce is called What Wonderful Music (WWM) by Magnificent B. Musico (MBM). WWM is registered with a Collective Management Society (CMS) that is also an Agency of the DMP Content Registration Authority.
The CMS offers an innovative web-based Work Licensing service that plugs into the GRB’s IT solution and that supports GRB performing the following:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
CMS |
Make |
Metadata |
Standard WWM Metadata |
None |
|
|
GRB |
Select |
license |
On the CMS web site for an appropriate (human-readable) distribution license for First Fixation and reproduction of GRB’s Instance of WWM by MBM |
Out of scope |
|
|
CMS |
Make |
License |
Corresponding to selected license |
|
|
|
CMS |
Identify |
License |
|
Represent License Identifier |
2.5.2 |
|
CMS |
Make |
Content Item |
|
Represent Content |
2.1 |
|
CMS |
Identify |
Content Item |
|
Represent Content Identifier |
2.5.1 |
|
GRB |
Access |
Content Item |
Content Item #1 |
Access Content as File |
3.5.1 |
|
GRB |
Make |
Resource |
The Resource is the MP3 file of the Production. Other Resource types may be added |
Out of scope |
|
|
GRB |
Make |
Metadata |
Of the MP3 file of the Production and possibly other Resource types |
None |
|
|
CMS |
Identify |
Resource |
|
Out of scope |
|
|
CMS |
Identify |
Metadata |
|
Out of scope |
|
|
GRB |
Make |
Content Item |
Content Item from Content Item #1 containing: Resources, Metadata and Identifiers of all the above |
Represent Content |
2.1 |
|
CMS |
Identify |
Content Item |
Content Item #2 |
None |
|
|
GRB |
Represent |
Identifier |
In Content Item #2 |
Represent Content |
2.1 |
|
GRB |
Package |
Content Item |
Content Item #2 as file |
Package Content |
4.1.1 |
|
GRB |
Release |
DCF |
Content Item #2 on GRB’s web site |
None |
|
To benefit from available world wide Work licensing services and Work Use Monitoring GRB Registers:
1. All their original Works for worldwide identification;
2. Instances (i.e. recordings) for world wide identification.
Soto Lesan from a far away land is a fan of Magnificent B. Musico and is looking for new productions of WWM by MBM. Soto Lesan does the following:
1. Searches the web for all references of MBM and is directed to GRB’s websiste;
2. Selects GRB’s production of WWM by MBM;
3. Continues his use case as does Martin in walkthrough #1.
GreatGreenP2P (GGP) is a P2P network that has decided to “go legit”. The network hosts a vibrant community of music lovers whose members used to indulge in the traditional file sharing. With the change of times GGP has decided to retain its focus on music but to extend the offer to access music of two types of provenance:
· Self-produced by GGP members as Open Release Content where the Release mechanism is provided by GGP’s P2P network
· Produced by regular record companies that Release their assets on GGP’s P2P network as
o unEncrypted Resource in a Governed DCI for promotion
o Encrypted Resource in a Governed DCI for sale.
GGP provides its members with a “Create and Share” program to be used for making and sharing Content on the P2P network. The program is a Certified Application that acts as a Content Creation Device once installed.
A member wishing to share his own music in the community can make a DCI with
1. Resources
2. Metadata
3. License
The program supports the following Functions (same as for Open Release and Open Search):
7. Registering the Resource with a Collective Management Society (CMS)
8. Making a License using a small number of standard templates
9. Registering the License
10. Making the DCI
11. Registering the DCI
12. Making the DCF for distribution.
The program supports making DCIs with clear-text Resources only.
Once the “Create and Share” program has created a DCF it Stores it in the shared directory used by GGP’s P2P network in the Creator’s PC.
Further GGP makes a deal with GreatGreenRecords (GGR), an innovative record company. GGR wants to Release their repertoire on GGP’s P2P network. The Release is made in the form of a DCF. The DCI in the DCF contains
1. Reference to one or more Resources
2. Metadata
3. License.
Only the most valuable of its Resources are Encrypted by GGR. The less known titles are Released in clear-text for promotion. All GGR Resources Released by GGR are watermarked.
GGP distributes to its members an “Access and Play” program to Access and Play songs Released on GGP P2P network. The same program can be employed to Access and Play Content Released by its grass root membership and by GGR. The program is a Certified Application that acts as a Content Consumption Device once installed.
A member of the GGP P2P network using the “Access and Play” program can scour the network to find Content Items of his interest. Once a Content Item is found, the program Parses the DCI and displays the Metadata in it. If the member is interested it can download the DCI to his PC where it will be Stored in the shared directory used by GGP’s P2P network.
There is no incentive for members of the GGP network to extract Unencrypted Resources from GGR’s Content Items as sharing on the network can only be done with Content Items and not with single Resources. There may well be an incentive to Export unEncrypted Resources from GGR outside of GGP network. However, the license explicitly forbids such an Export and the watermark allows GGR to monitor the importance of the phenomenon.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
Sara has created lyrics and scores of her new song. She has sung, played and recorded the song in the MP3 format.
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Sara |
Make |
Resource |
MP3 file |
Out of scope |
|
|
Sara |
Request |
Identifier |
Of Resource from CMS |
None |
|
|
CMS |
Assign |
Identifier |
To Resource |
None |
|
|
Sara |
Make |
Metadata |
For all Works and Resources in the recording |
None |
|
|
Sara |
Select |
license |
Human-readable license for GGP distribution |
Out of scope |
|
|
Sara |
Make |
License |
Corresponding to the human-readable license |
Represent License |
2.10 |
|
Sara |
Request |
Identifier |
Of License to GGP |
None |
|
|
GPP |
Assign |
Identifier |
To License |
None |
|
|
Sara |
Binarise |
License |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
Sara |
Create |
DCI |
With Resources, Metadata, license, License and all Identifiers |
Represent Content |
2.1 |
|
Sara |
Request |
Identifier |
Of Content Item to GGP |
None |
|
|
GGP |
Assign |
Identifier |
To Content Item |
None |
|
|
Sara |
Add |
Identifier |
To Content Item |
Represent Content |
2.1 |
|
Sara |
Binarise |
DCI |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
Sara |
Package |
DCI |
To make DCF |
Package Content |
4.1.1 |
|
Sara |
Store |
DCF |
i.e. Release on GGP network |
None |
|
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Phil |
Browse |
GGP network |
Using GGP Metadata to look for interesting songs |
None |
|
|
Phil |
Select |
Song |
In GGP network (Sara’s Device) |
Out of scope |
|
|
Device |
Access |
Content Item |
From Sara’s Device |
Out of scope |
|
|
Device |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Device |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
GGP makes a deal with GGR whereby Content is Delivered to GGP as a DCI with unEncrypted Resources and prepared using a program similar to GGP’s “Create and Share” program.
For titles that require Encryption GGP makes the DCI for Release on the P2P network with the following steps:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
GGP |
Un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
GGP |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
|
GGP |
Encrypt |
Resource |
With Resource Encryption Key |
Represent Fixed DRM Tool |
2.8.3 |
|
GGP |
Add |
URI of GGP LPD |
To License |
Represent License |
2.10 |
|
GGP |
Assign |
Identifier |
To License |
Represent Identifier |
2.5.2 |
|
GGP |
Assign |
Identifier |
To DCI |
Represent Identifier |
2.5.1 |
|
GGP |
Make |
DCI |
With Encrypted Resource, License and Identifiers |
Represent Content |
2.1 |
|
GGP |
Binarise |
DCI |
To reduce memory, transmission and processing requirements |
Represent Binary XML |
2.19 |
|
GGP |
Package |
DCI |
To make DCF |
Package Content |
4.1.1 |
|
GGP |
Store |
DCF |
i.e. Release on GGP network |
None |
|
Phil is the first P2P user who has found Sara’s song in her PC and feels it looks interesting. He can do that because the P2P network gives direct access to Metadata in DCI. He performs the following.
Igor knows that Ivan has similar tastes as his and has found a song in Ivan’s PC that looks interesting. This comes from GGR’s repertoire and is Encrypted. Igor performs the following
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Igor |
Browse |
GGP network |
Using GGP Metadata to look for interesting songs |
None |
|
|
Igor |
Select |
Song |
In GGP network (Ivan’s Device) |
Out of scope |
|
|
Device |
Access |
DCF |
From Ivan’s Device |
Out of scope |
|
|
Device |
Un-Package |
DCF |
|
Package Content |
4.1.1 |
|
Device |
Parse |
DCI |
Notifies Igor that a License is required |
Represent Content Elements |
2. |
|
Igor |
Make |
Transaction |
With GGP server |
Out of scope |
|
|
Device |
Access |
License |
From GGP LPD |
Access License |
3.5.2 |
|
Device |
Parse |
License |
Encrypted Decryption Key is extracted and sent to the DRM Processor |
Represent License |
2.10 |
|
DRM Processor |
Decrypt |
Encrypted Resource Decryption Key |
Using Igor’s Public Key |
Out of scope |
|
|
DRM Processor |
Send |
Decrypted Resource Decryption Key |
To Fixed DRM Tool |
Represent DRM message |
2.12 |
|
Fixed DRM Tool |
Decrypt |
Resource |
Using Decrypted Resource Decryption Key |
Out of scope |
|
|
Igor |
Play |
Resource |
|
Out of scope |
|
Services that are respectful of the Rights of Rights Holders can be promoted by exploiting the flexibility of digital technologies to offer more than what is being provided by other types of services. One way is to offer Content subject to conditions that suit the needs of End-Users.
This Use Case describes how Retailer GreatRedOffers (GRO) is betting the future of the enterprise on its ability to offer Content with a broad variety of very flexible conditions. Therefore it only provides examples licenses without considering the other elements of the Value-Chain.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
GRO issues a License to Play a Content Item on a Device that can be Identified. Below is an example:
<?xml version="1.0" encoding="UTF-8"?>
<license
xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmprr="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2003:01-REL-MX-NS rel-mx-dmpREL.xsd urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS dmpREL.xsd">
<grant>
<keyHolder>
<info>
<dsig:KeyName>Device A's certificate or Identifier</dsig:KeyName>
</info>
</keyHolder>
<mx:play/>
<digitalResource>
<nonSecureIndirect URI="urn:games.breakout.class"/>
</digitalResource>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 150 – Example of License to Play a Content Item on a Device
GRO issues a License to Play once (i.e. to “preview”) a Content Item to any Device.
An example license is given below
<?xml version="1.0" encoding="UTF-8"?>
<license
xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmprr="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2003:01-REL-MX-NS rel-mx-dmpREL.xsd urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS dmpREL.xsd">
<grant>
<mx:play/>
<digitalResource>
<nonSecureIndirect URI="urn :songs.newsong.mp3"/>
</digitalResource>
<sx:exerciseLimit>
<sx:count>1</sx:count>
</sx:exerciseLimit>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 151 – Example License to preview a Content Item to any Device
GRO issues a License to Play a Content Item on a Device that can be Identified when the following conditions both hold:
1. The actual date/time is less than a specified date/time
2. The total duration the Content Item has been Played does not exceed a specified length of time.
An example license is given below
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmprr="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2003:01-REL-MX-NS rel-mx-dmpREL.xsd urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS dmpREL.xsd" licenseId="543210">
<grant>
<keyHolder>
<info>
<dsig:KeyName>Device A's certificate or Identifier</dsig:KeyName>
</info>
</keyHolder>
<mx:play/>
<digitalResource>
<nonSecureIndirect URI="urn :mysongs.aaa.mp3"/>
</digitalResource>
<allConditions>
<validityInterval>
<notAfter>2004-02-13T15:30:00</notAfter>
</validityInterval>
<sx:validityTimeMetered>
<sx:duration>P15D</sx:duration>
</sx:validityTimeMetered>
</allConditions>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer’s Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 152 – Example License to Play a Content Item on a Device with conditions
GRO issues a License (Super Distribution License) to Device A to Copy two times a Content Item C without a Bundled License to another Device B. When Device B needs to Play Content Item C it Accesses a License from GRO.
An example license is given below
<?xml version="1.0" encoding="UTF-8"?>
<r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmprr="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS dmpREL.xsd" sx:profileCompliance="dmp-rel-1.0">
<r:grant>
<r:keyHolder>
<r:info>
<dsig:KeyName>Device A's certificate or identifier</dsig:KeyName>
</r:info>
</r:keyHolder>
<dmprr:copy/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:movies.wickedmovies.mymovie.mpeg"/>
</r:digitalResource>
<sx:exerciseLimit>
<sx:count>2</sx:count>
</sx:exerciseLimit>
</r:grant>
<r:issuer>
<r:keyHolder>
<r:info>
<dsig:KeyName>Issuer's signing key</dsig:KeyName>
</r:info>
</r:keyHolder>
</r:issuer>
</r:license>
Figure 153 – Example of Super Distribution License
GRO issues a License to Device A to Play a Content Item (http://acme.org/myVideo) which is Encrypted. The License conveys to Device A the Decryption key to Decrypt the Encrypted Content Data Element. The Decryption key, in turn, is Encrypted and can be Decrypted only by Device A’s private key.
An example license is given below
<?xml version="1.0" encoding="UTF-8"?>
<license
xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmprr="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2003:01-REL-MX-NS rel-mx-dmpREL.xsd urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS dmpREL.xsd">
<grant>
<keyHolder>
<info>
<dsig:KeyName>Device A's certificate or Identifier</dsig:KeyName>
</info>
</keyHolder>
<mx:play/>
<dmprr:protectedResource>
<digitalResource>
<nonSecureIndirect URI="http://acme.org/myVideo"/>
</digitalResource>
<enc:EncryptedKey>
<enc:EncryptionMethod Algorithm=" http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<dsig:KeyInfo>
<dsig:KeyName>Device A’s Public Key Name</dsig:KeyName>
</dsig:KeyInfo>
<enc:CipherData>
<enc:CipherValue>AQABAA==</enc:CipherValue>
</enc:CipherData>
<enc:CarriedKeyName>Content encryption key for mymovie clip</enc:CarriedKeyName>
</enc:EncryptedKey>
</dmprr:protectedResource>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer’s Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 154 – Example of License to Play an Encrypted Content Item on a Device
GRO issues two Licenses to Device A that is part of Domain D:
1. The first License states that the device holding the named certificate or Identifier is a member of the Domain by virtue of possessing DomainResource property. This is in essence a Domain Certificate for the Device.
2. The second License (associated to a Content Item) states that any Device in the Domain (i.e. any Device that has the stated Domain certificate) can Play the specified Content Item.
These two Licenses are enough to allow all Devices in the Domain to Play the stated Content Item. The benefit of this two license model is that individual Licenses for each Content Item are not needed.
Two example licenses are given below. The first conveys Domain information to a Device, the second grants to a Device part of that Domain some rights on a Content Item.
<?xml version="1.0" encoding="UTF-8"?>
<r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmpmd="urn:dmp:Manage:Domain:2005:04-DMP-MD-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:dmp:Manage:Domain:2005:04-DMP-MD-NS dmpmd.xsd" sx:profileCompliance="dmp-rel-1.0">
<r:grant>
<r:keyHolder>
<r:info>
<dsig:KeyName>Device A's certificate or identifier</dsig:KeyName>
</r:info>
</r:keyHolder>
<r:possessProperty/>
<dmpmd:domainResource>
<dmpmd:DomainManager_ID>012345678</dmpmd:DomainManager_ID>
<dmpmd:Domain_ID>
<r:info>
<dsig:KeyName>Domain D's certificate or identifier</dsig:KeyName>
</r:info>
</dmpmd:Domain_ID>
<dmpmd:DomainKey>
<enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
<enc:CipherData>
<enc:CipherValue>AQABAA==</enc:CipherValue>
</enc:CipherData>
<enc:CarriedKeyName>Domain D encyption key for Device A</enc:CarriedKeyName>
</dmpmd:DomainKey>
<dmpmd:Expiration>
<sx:duration>P1Y</sx:duration>
</dmpmd:Expiration>
</dmpmd:domainResource>
</r:grant>
</r:license>
Figure 155 – Example of License Granting a Device the membership to a Domain
<?xml version="1.0" encoding="UTF-8"?>
<license
xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dmprr="urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS" xmlns:dmpmd="urn:dmp:Manage:Domain:2005:04-DMP-MD-NS" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2003:01-REL-MX-NS rel-mx-dmpREL.xsd urn:mpeg:mpeg21:2005:04-REL-DMPRR-NS dmprr.xsd">
<grant>
<keyHolder>
<info>
<dsig:KeyName>Domain D's certificate or Identifier</dsig:KeyName>
</info>
</keyHolder>
<mx:play/>
<dmprr:protectedResource>
<digitalResource>
<nonSecureIndirect URI="http://acme.org/myVideo"/>
</digitalResource>
<enc:EncryptedKey>
<enc:EncryptionMethod Algorithm=" http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<dsig:KeyInfo>
<dsig:KeyName>Domain D’s Public Key Name</dsig:KeyName>
</dsig:KeyInfo>
<enc:CipherData>
<enc:CipherValue>ACSWDQ==</enc:CipherValue>
</enc:CipherData>
<enc:CarriedKeyName>Content encryption key for mymovie clip</enc:CarriedKeyName>
</enc:EncryptedKey>
<dmpmd:DomainManager_ID>012345678</dmpmd:DomainManager_ID>
<dmpmd:SubDomain_ID>012ABCCDDEEE</dmpmd:SubDomain_ID>
<dmpmd:SubDomain_ID>3210ZSTTYY21</dmpmd:SubDomain_ID>
</dmprr:protectedResource>
</grant>
</license>
Figure 156 – Example of a License enabling Devices belonging to a Domain to Use a Content Item
Great Red Cameras (GRC) is a camera manufacturer who senses the growing demand on the part of its customers to retain control of their photos when they make “a copy” to their friends. Their latest model GRC-1 provides a new functionality that GRC hopes will encounter the favour of its customers.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
Shoji has bought a GRC camera and taken some pictures with it. Now he wants to send a selection of those pictures to Kenji. These are the steps he performs:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Shoji (camera) |
Encrypt |
Resources |
.jpg files |
Out of scope |
|
|
Shoji (camera) |
Move |
Resources |
To his PC using a Trusted Application provided by GRP |
None |
|
|
Shoji (SAV) |
Make |
License |
License terms are, e.g. 1. For one week 2. Unlimited number of times 3. Simultaneously on all the Devices of the friend’s Domain |
Represent License |
2.10 |
|
Registration Agency |
Identify |
License |
|
None |
|
|
Shoji (SAV) |
Store |
License |
To Shoji’s License Provider Device |
None |
|
|
Shoji (SAV) |
Make |
Content Item |
With the selected pictures (with whatever other Resources and Metadata (e.g. EXIF) the User will decide to add), pointer to License and Identifiers of Resources, Metadata and License |
Represent Content |
2.1 |
|
Registration Agency |
Identify |
Content Item |
|
None |
|
|
Shoji (SAV) |
Represent |
Identifier |
To Content Item |
Represent Content |
2.1 |
|
Shoji (SAV) |
Package |
Content Item |
For Delivery |
Package Content |
4.1.1 |
|
Shoji (SAV) |
Copy |
Content Item |
To Kenji (SAV) |
Out of scope |
|
Kenji, after receiving a notification that Shoji’s pictures have been Delivered, performs the following:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Kenji (SAV) |
Un-Package |
Content Item |
Using the Delivered DCF |
Package Content |
4.1.1 |
|
Kenji (SAV) |
Parse |
DCI |
|
Represent Content |
2. |
|
Kenji (SAV) |
Access |
License |
From Shoji’s License Provider Device |
Access License as File |
3.5.2 |
|
Kenji (SAV) |
Play |
Pictures |
|
None |
|
The 70-year old broadcast service is one of the most successful forms of distribution of audio-visual content. The use of digital technologies has helped carry the role of television to the digital space.
The greater ability of end-users to re-use digital content is of concern to Content Providers and Service Providers alike. That is why the world of television has been increasingly concerned with the problem of introducing some form of content governance, if not protection, with the condition that the traditional experience of television viewing is not negatively affected.
In this Use Case a light-weight form of content governance is applied that may satisfy some concerns of Content Providers, Service Providers while not affecting the End User experience negatively.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
This walkthrough has the following Users:
|
Type of User |
Name |
|
Service Provider |
GreenTVToday (GTT) |
|
Device Manufacturer |
GreenTVDevices (GTD) |
|
End User |
Tom |
The following steps are made
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
GTD |
Make |
Device |
SAV capable of: 1. Interpreting the License; 2. Displaying an appropriate message when the End-User performs a Function that does not comply with Permissions in the License |
Represent Content Represent License |
2.1 2.10 |
|
Certification Agency |
Certify |
Device |
Certification of REL interpreter conformance |
|
AD #5 |
|
GTD |
Sell |
Device |
To Retailer |
Out of scope |
|
|
GTT |
Make |
License |
1. Play Content in the UK; 2. Store Content for later Use; 3. Move/Copy Content to another SAV or PAV within the UK |
Represent License |
2.10 |
|
GTT |
Make |
Content |
Clear-text Broadcasting of television programs with a License Bundled within the Content |
Represent Content |
2.1 |
|
GTT |
Deliver |
Content |
Streaming and Downloading of Governed Content |
Package Content as Stream |
4.1.2 |
|
Tom |
Buy |
Device |
From Retailer selecting a Manufacturer of his choice, e.g. GTD |
Out of scope |
|
|
Tom |
Access |
Service |
From different Service Providers (e.g. GTT) using the same SAV (e.g. the one bought from GTD) |
Out of scope |
|
|
Tom |
Access |
Content |
|
Access Content as Stream |
3.5.1 |
|
Tom |
Un-Package |
Content Item |
|
Package Content |
4.1.2 |
|
Tom |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
Currently some Service Providers adopt business models that employ technical protection measures (Conditional Access systems). Because of the absence of standards these business models require the creation of proprietary (portions of) value-chains that require in particular manufacturing, distribution and management of proprietary set top boxes.
Approved Documents no. 3 and 5 provide Tools to implement business models that do not require the establishment of proprietary (portions of) value-chains but rely in particular on an open market of Interoperable Devices. This is possible by giving the opportunity to
1. Service Providers to design their own DRM Tools that can be downloaded and executed in Interoperable Devices
2. Device Manufacturers to innovate their Devices for an open market.
In this walkthrough the following Users are assumed to exist:
|
User |
Perform |
|
A plurality of Broadcast Service Providers who |
1. Offer a variety of Governed Content-based Services (e.g. subscription, pay per view, prepaid etc.) 2. Based on independently selected DRM Tools a. Carried by a single service channel b. Updated employing a single update mechanism; |
|
A plurality of Interoperable SAV Device Manufacturers |
Make Interoperable Devices |
|
A plurality of Devices Certification Agencies |
Certify Devices manufactured by Device Manufacturers |
|
A single smart card technology provider |
|
|
A plurality of End Users who |
1. Subscribe to and consume Services from Providers of their choice 2. Buy smart cards from smart card Providers 3. Buy Interoperable SAV Devices from Manufacturers of their choice 4. Use Governed Content as per License |
In this walkthrough the following specific Users play a role:
|
Type of User |
Name |
|
Device Manufacturer |
DM-A |
|
Device Certification Agency |
CA-B |
|
Content Service Provider |
SP-C |
|
Smart card Provider |
SP-D |
|
End User |
Keigo |
Note that the financial transactions enabling Keigo to Access and Use Content are outside of this walkthrough.
Preliminary steps required before Keigo can Access and Use Content:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
CA-B |
Certify |
Device |
DM-A’s SAVs, i.e. CA-B places a Certificate inside DM-A’s SAV |
|
AD #5 |
|
Keigo |
Buy |
Device |
DM-A’s SAV’s are Certified |
Out of scope |
|
|
Keigo |
Buy |
Smart card |
From SP-D |
Out of scope |
|
Note: In this and following walkthroughs the License is assumed to be unencrypted.
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Keigo |
Select |
SP-C Service |
Out of all available Services |
Out of scope |
|
|
Keigo |
Access |
Content |
To obtain a subscription License from SP-C |
Access Content as Stream |
3.5.2 |
|
Keigo |
Select |
Content Item |
From SP-C’s Service |
Out of scope |
|
|
Keigo (SAV) |
Un-Package |
Content Item |
as Stream |
Package Content as Stream |
4.1.1 |
|
Keigo (SAV) |
Access |
License |
For every Governed Content Element |
Access License as Stream |
3.5.4 |
|
DRM Processor |
Instantiates |
DRM Tool |
By processing DRM Information |
Manage DRM Tool |
3.4.2 |
|
DRM Processor |
Access |
Key |
|
Access Key as Stream |
3.5.7 |
|
Keigo (SAV) |
Use |
Content Item |
As per License terms |
Represent Content Elements |
2. |
|
Keigo (SAV) |
Store |
DCF |
Stored as File with License Bundled within it |
Represent Content Identify Content Represent License Identify License Package Content |
2.1 2.5.1 2.10 2.5.2 4.1.1 |
In this walkthrough the steps made by two Users Keigo and Ken’ichi when Using Content received in walkthrough #1 (CI-E) are analysed. Ken’ichi uses a SAV Manufactured by Device Manufacturer DM-F Certified by Device Certification Agency CA-G.
The specific Users are:
|
Type of User |
Name |
|
Device Manufacturer |
DM-A |
|
Device Certification Agency |
CA-B |
|
Content Service Provider |
SP-C |
|
Smart card Provider |
SP-D |
|
Device Manufacturer |
DM-F |
|
Device Certification Agency |
CA-G |
|
End User |
Keigo |
|
End User |
Ken’ichi |
Preliminary steps required before Ken’ichi can Access and Use Content CI-E:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
CA-G |
Certify |
SAV |
DM-F’s SAVs, i.e. CA-G places a Certificate inside DM-F’s SAV |
|
AD #5 |
|
Ken’ichi |
Buy |
SAV |
DM-F’s SAV’s are Certified |
Out of scope |
|
|
Ken’ichi |
Buy |
smart card |
From SP-D |
Out of scope |
|
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Keigo |
Select |
Content Item |
Stored in Keigo’s SAV |
Out of scope |
|
|
Keigo (SAV) |
un-Package |
Content Item |
|
Package Content as File |
4.1.1 |
|
SAV |
Parse |
License |
|
Represent License |
2.10 |
|
Keigo (SAV) |
Use |
Content Item |
If License terms allow “Play Stored Content” 1. Then SAV Plays Stored Content Item 2. Else SAV displays message |
Represent Content Elements |
2. |
Keigo Copies/Moves Stored Content to Ken’ichi’s SAV.
As for “Keigo Plays Stored Content”. Ken’ichi’s SAV checks whether License terms allow “Play Stored Content in Ken’ichi’s SAV”.
Note: the PAV is an IDP-1 Device
Note: For reasons of simplicity SP-C performs the function of a Registration Agency
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Keigo (SAV) |
un-Package |
Content Item |
|
Package Content |
4.1.1 |
|
Keigo (SAV) |
Parse |
License |
If License does not permit creation of PAV-version of Stored Content Item then SAV displays message, else |
Represent License |
2.10 |
|
Keigo (SAV) |
Access |
License |
From SP-C Specifying PAV’s Certificate Containing Decryption Key K2 |
Access License as File |
3.5.3 |
|
DRM Processor |
Send |
Decrypted Resource Decryption Key |
To DRM Tool 1 |
Represent DRM message |
2.12 |
|
DRM Tool 1 |
Decrypt |
Resource |
Using Decrypted Resource Decryption Key |
Out of scope |
|
|
DRM Tool 2 |
Adapt |
Resources |
For the PAV |
Out of scope |
|
|
DRM Tool 3 |
Encrypt |
Adapted Resources |
DRM Tool 3 is the IDP-1 Encryption Tool with Key K2 |
Out of scope |
|
|
SAV |
Make |
Content Item |
With new License |
Represent Content |
2.1 |
|
SAV |
Move |
DCF |
To PAV |
None |
|
|
PAV |
Un-Package |
Content |
|
Package Content as File |
4.1.1 |
|
PAV |
Use |
DCI |
As per License terms |
Represent Content Item |
2. |
In the list below the differences with walkthrough #1 are marked in italic,
In this walkthrough the following Users are assumed to exist:
|
User |
Perform |
|
A plurality of Service Providers |
1) Offer a variety of Governed Content-based Services (e.g. subscription, pay per view, prepaid etc.) 2) Employ independently selected DRM Tools carried by a multiple service channel and DRM Tools updates implemented via multiple update mechanisms |
|
A plurality of Device Manufacturers |
Make Interoperable Devices |
|
A plurality of Device Certification Authorities |
Certify Devices manufactured by Device Manufacturers |
|
A plurality of smart card technology providers |
|
|
A plurality of End Users |
1. Subscribe to Service Providers of their choice 2. Buy smart cards from trusted third parties 3. Buy Interoperable Devices from Manufacturers of their choice 4. Use Governed Content as per License 5. Access Content as files from other End Users via the network |
The specific Users are:
|
Type of User |
Name |
|
Device Manufacturer |
DM-A |
|
Device Certification Agency |
CA-B |
|
Content Service Provider |
SP-C |
|
Smart card Provider |
SP-D |
|
Tool Provider |
TP-E |
|
End User |
Choi |
Preliminary steps required before Choi can Access and Use Content:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
CA-B |
Certify |
SAV |
CA-B places a Certificate inside DM-A’s SAV |
|
AD #5 |
|
Choi |
Buy |
Device |
DM-A’s SAV’s are Certified |
Out of scope |
|
|
Choi |
Buy |
smart card |
From SP-D |
Out of scope |
|
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Choi |
Select |
SP-C Service |
Out of all available Services |
Out of scope |
|
|
Choi |
Access |
Content |
To obtain a subscription License from SP-C |
Access Content as Stream |
3.5.2 |
|
Choi |
Select |
Content Item |
From SP-C’s Service |
Out of scope |
|
|
Choi (SAV) |
Un-Package |
Content Item |
as Stream |
Package Content as Stream |
4.1.1 |
|
Choi (SAV) |
Access |
License |
For every Governed Content Element |
Access License as Stream |
3.5.4 |
|
Choi (SAV) |
Parse |
DRM Information |
To find the information regarding required DRM Tools in the DCI |
Represent Content |
2.1 |
|
Choi (SAV) |
Access |
DRM Tool |
Case 1: DRM Tool is in the DCI |
Access DRM Tool Body as Stream |
3.5.6 |
|
|
|
|
Case 2: DRM Tool is in the SAV |
Local DRM Tool Body Access |
3.5.9 |
|
|
|
|
Case 3: DRM Tool Body is Accessed from TP-A via the network |
Access DRM Tool Body as File |
3.5.5 |
|
DRM Processor |
Manage |
DRM Tool |
|
Manage DRM Tools |
3.4 |
|
DRM Processor |
Access |
Key |
|
Access Key as Stream |
3.5.7 |
|
Choi (SAV) |
Play |
Content Item |
As per License Terms |
Represent Content Elements |
2. |
|
SAV |
Store |
DCF |
Stores as a Content File with the License Bundled within it |
Package Content as File |
4.1.1 |
An example of Content Item describing an MPEG-2 program containing an audio and video stream governed by the Tool Pack technology is given below:
<?xml version="1.0" encoding="UTF-8"?>
<DIDL xmlns="urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02" xmlns:dmp2rc="urn:dmp:idp2:Represent:Content:2006:02" xmlns:dmp2rl="urn:dmp:idp2:Represent:License:2006:02" xmlns:dmp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" xmlns:dmp2_ipmpdidl="urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" xmlns:dmp2rdm="urn:dmp:idp2:Represent:DRMMessages:2006:02" xmlns:r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" xmlns:mx="urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:mp7smp="urn:mpeg:mpeg7:smp:schema:2001" xmlns:dmp2rm="urn:dmp:idp2:Represent:Metadata:2006:02" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:dmp2_tva="urn:dmp:idp2:tva:metadata:2002:2006:02" xsi:schemaLocation="
urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02 dmp2didl-2006-02.xsd">
<Container>
<Item id="Program1">
<Descriptor>
<Statement mimeType="text/plain">
<dmp1_dii:Identifier>Identifier of Program 1</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2rc:StructuredData ref="urn:dmp:Represent:Metadata">
<dmp2rm:TVAMain>
<dmp2rm:ProgramDescription>
<dmp2rm:ProgramInformationTable>
<dmp2_tva:ProgramInformation programId="crid://foo.com/1234567">
<dmp2_tva:BasicDescription>
<dmp2_tva:Title><![CDATA[Around the World in 80 Treasures]]></dmp2_tva:Title>
<dmp2_tva:Synopsis length="short"><![CDATA[Dan Cruickshank visits India and Sri Lanka as he continues his search for the world's most beautiful and precious treasures. [S,SL]]]></dmp2_tva:Synopsis>
<dmp2_tva:Genre href="urn:dmp2_tva:metadata:cs:ContentCS:2002:3.1.5.3">
<dmp2_tva:Name><![CDATA[History]]></dmp2_tva:Name>
</dmp2_tva:Genre>
<dmp2_tva:Genre href="urn:dmp2_tva:metadata:cs:IntentionCS:2002:1.3">
<dmp2_tva:Name><![CDATA[EDUCATION]]></dmp2_tva:Name>
</dmp2_tva:Genre>
<dmp2_tva:Genre href="urn:dmp2_tva:metadata:cs:ContentCS:2002:3.1.4">
<dmp2_tva:Name><![CDATA[Arts & Media]]></dmp2_tva:Name>
</dmp2_tva:Genre>
<dmp2_tva:CaptionLanguage closed="true">EN-UK</dmp2_tva:CaptionLanguage>
<dmp2_tva:SignLanguage translation="true" type="BSL">EN-UK</dmp2_tva:SignLanguage>
</dmp2_tva:BasicDescription>
<dmp2_tva:AVAttributes>
<dmp2_tva:AudioAttributes>
<dmp2_tva:NumOfChannels>2</dmp2_tva:NumOfChannels>
</dmp2_tva:AudioAttributes>
<dmp2_tva:VideoAttributes>
<dmp2_tva:AspectRatio>16:9</dmp2_tva:AspectRatio>
</dmp2_tva:VideoAttributes>
</dmp2_tva:AVAttributes>
<dmp2_tva:MemberOf xsi:type="dmp2_tva:MemberOfType" crid="crid://foo.com/__SERAroundtheWorldin80Treasures"/>
</dmp2_tva:ProgramInformation>
</dmp2rm:ProgramInformationTable>
</dmp2rm:ProgramDescription>
</dmp2rm:TVAMain>
</dmp2rc:StructuredData>
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
<dmp2_ipmpinfo:ToolList>
<dmp2_ipmpinfo:ToolDescription localID="TPABCDEF9">
<dmp2_ipmpinfo:IPMPToolID>urn:ETRI:ToolPack:ToolID:ABCDEF9</dmp2_ipmpinfo:IPMPToolID>
</dmp2_ipmpinfo:ToolDescription>
</dmp2_ipmpinfo:ToolList>
</dmp2_ipmpinfo:IPMPGeneralInfoDescriptor>
</Statement>
</Descriptor>
<Component>
<Resource mimeType="application/mp21-ipmp">
<dmp2_ipmpdidl:ProtectedAsset mimeType="video/MP2P">
<dmp2_ipmpdidl:Identifier>urn:mpegRA:mpeg21:dmp1_dii:isan:006A-15FA-002B-C95F-B</dmp2_ipmpdidl:Identifier>
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor>
<dmp2_ipmpinfo:Tool>
<dmp2_ipmpinfo:ToolBaseDescription>
<dmp2_ipmpinfo:IPMPToolID>urn:ETRI:ToolPack:ToolID:ABCDEF9</dmp2_ipmpinfo:IPMPToolID>
<dmp2_ipmpinfo:Remote ref="http:\\www.ETRIToolPacks.com\ToolID:ABCDEF9"/>
<dmp2_ipmpinfo:ConfigurationSettings>
<dmp2_ipmpinfo:Update>
<dmp2_ipmpinfo:Location ref="http:\\www.ETRIToolPacks.com\ToolPackUpdate"/>
<dmp2_ipmpinfo:Condition>
<dmp2_ipmpinfo:ScheduledUpdateTime periodic="P1D">2005-03-07T00:00:00
</dmp2_ipmpinfo:ScheduledUpdateTime>
</dmp2_ipmpinfo:Condition>
</dmp2_ipmpinfo:Update>
</dmp2_ipmpinfo:ConfigurationSettings>
</dmp2_ipmpinfo:ToolBaseDescription>
<dmp2_ipmpinfo:InitializationSettings>
<dmp2_ipmpinfo:InitializationData>
<dmp2rdm:AddToolNotificationListener>
<dmp2rdm:dataID>98765</dmp2rdm:dataID>
<dmp2rdm:scope>00</dmp2rdm:scope>
<dmp2rdm:EventType>02</dmp2rdm:EventType>
</dmp2rdm:AddToolNotificationListener>
</dmp2_ipmpinfo:InitializationData>
</dmp2_ipmpinfo:InitializationSettings>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:LicenseService>http://www.DRMTools.org/LicenseService.php</dmp2_ipmpinfo:LicenseService>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:Tool>
<dmp2_ipmpinfo:RightsDescriptor>
<dmp2_ipmpinfo:License>
<dmp2rl:License>
<r:license licenseId="012345">
<r:grant>
<r:keyHolder>
<r:info>
<dsig:KeyName>Device A's certificate or Identifier</dsig:KeyName>
</r:info>
</r:keyHolder>
<mx:play/>
<r:digitalResource>
<r:nonSecureIndirect URI="Identifier of Program 1"/>
</r:digitalResource>
</r:grant>
<r:issuer>
<r:keyHolder>
<r:info>
<dsig:KeyName>The Public Key Name of Program 1's Owner</dsig:KeyName>
</r:info>
</r:keyHolder>
</r:issuer>
</r:license>
</dmp2rl:License>
</dmp2_ipmpinfo:License>
</dmp2_ipmpinfo:RightsDescriptor>
</dmp2_ipmpinfo:IPMPInfoDescriptor>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents ref="myserver.com/asset.mpgencoded"/>
</dmp2_ipmpdidl:ProtectedAsset>
</Resource>
</Component>
<Item id="AudioStream1">
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:Identifier>urn:mpegRA:mpeg21:dmp1_dii:isrc:US-ZO3-99-32476</dmp1_dii:Identifier>
<!-- ISRC identifying the sound recording -->
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:RelatedIdentifier>urn:mpegRA:mpeg21:dmp1_dii:iswc:T-034.524.680-1</dmp1_dii:RelatedIdentifier>
<!-- ISWC identifying the underlying musical work -->
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<!-- Metadata related to this Content Item is Governed now -->
<dmp2_ipmpdidl:Info>
<dmp2_ipmpinfo:IPMPInfoDescriptor/>
</dmp2_ipmpdidl:Info>
<dmp2_ipmpdidl:Contents>01234567890ABCDEF</dmp2_ipmpdidl:Contents>
<!-- Insert the Governed - obfuscated metadata in element below -->
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Component>
<Resource ref="110xxxxx" mimeType="audio/mpeg"/>
<!-- Audio streams are identified by a stream ID like the one above -->
</Component>
</Item>
<Item id="VideoStream1">
<Descriptor>
<Statement mimeType="text/xml">
<dmp1_dii:Identifier>urn:mpegRA:mpeg21:dmp1_dii:isan:006A-15FA-002B-B012-A</dmp1_dii:Identifier>
</Statement>
</Descriptor>
<Descriptor>
<Statement mimeType="text/xml">
<dmp2rc:DMPInformation>
<dmp2rc:Metadata>
<dmp2rc:StructuredData ref="urn:mpeg:mpeg7:schema:2001">
<!-- MPEG-7 SMP metadata describing the movie-->
</dmp2rc:StructuredData>
</dmp2rc:Metadata>
</dmp2rc:DMPInformation>
</Statement>
</Descriptor>
<Component>
<Resource ref="1110xxxx" mimeType="video/mpeg"/>
<!-- Video streams are identified by a stream ID like the one above -->
</Component>
</Item>
</Item>
</Container>
</DIDL>
Figure 157 – An example Content Item
In this walkthrough the steps made by Users Choi and Joo when Using Content received in walkthrough #3 (CI-E) are analysed.
The specific Users are:
|
Type of User |
Name |
|
Device Manufacturer |
DM-A |
|
Device Certification Agency |
CA-B |
|
Content Service Provider |
SP-C |
|
Smart cards Provider |
SP-D |
|
Tool Provider |
TP-F |
|
Device Manufacturer |
DM-G |
|
Device Certification Agency |
CA-H |
|
Smart cards Provider |
SP-I |
|
Tool Provider |
TP-J |
|
End User |
Choi |
|
End User |
Joo |
Preliminary steps required before Joo can Access and Use Content:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
CA-H |
Certify |
SAV |
CA-H places a Certificate inside DM-G’s SAV |
|
AD #5 |
|
Joo |
Buy |
SAV |
DM-G’s SAV’s are Certified |
Out of scope |
|
|
Joo |
Buy |
smart card |
From SP-I |
Out of scope |
|
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Choi |
Select |
Content Item |
|
Out of scope |
|
|
Choi (SAV) |
Un- Package |
DCF |
|
Package Content as File |
4.1.1 |
|
Choi (SAV) |
Parse |
DCI |
|
Represent Content |
2.1 |
|
Choi (SAV) |
Parse |
License |
If License terms does not allow “Play Stored Content” display message |
Represent License |
2.10 |
|
SAV |
Play |
Content |
Else Play Stored Content in Choi’s SAV |
Represent Content Elements |
2. |
To Play Content Copied/Moved by Choi to his SAV Joo performs the following:
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Joo |
Select |
Content Item |
|
Out of scope |
|
|
Joo (SAV) |
Un- Package |
DCF |
|
Package Content as File |
4.1.1 |
|
Joo (SAV) |
Parse |
DCI |
|
Represent Content |
2.1 |
|
Joo (SAV) |
Parse |
License |
If License terms do not allow “Play Stored Content in Joo’s Device” display message |
Process: Parse License |
|
|
Joo (SAV) |
Parse |
DRM Information |
To find the information regarding required DRM Tools in the DCI |
Represent Content |
2.1 |
|
Joo (SAV) |
Access |
DRM Tool |
Case 1: DRM Tool is in the DCI |
Access DRM Tool Body as Stream |
3.5.6 |
|
|
|
|
Case 2: DRM Tool is in the SAV |
Local DRM Tool Body Access |
3.5.9 |
|
|
|
|
Case 3: DRM Tool Body is Accessed from TP-A via the network |
Access DRM Tool Body as File |
3.5.5 |
|
DRM Processor |
Manage |
DRM Tool |
|
Manage DRM Tools |
3.4 |
|
Joo (SAV) |
Play |
Content Item |
As per License terms |
Represent Content Elements |
2. |
This Use Case describes how Broadcaster GreatGreenNetworks (GGN) is facing the new phase of broadcasting by offering a broad variety of programs with multiple Licenses.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
This example shows a simple license instance (Figure 5) using DMP REL with a grant described in table 3.
Table 26 – License example 1
|
Grant Item |
Contents |
|
Principal |
SAV device A identified as DE0001 |
|
Right |
Immediate Play only without buffering |
|
Resource |
urn:uci:ETRI-10357 with CEK |
|
Condition |
2 times play only |
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000:DO-0001</bpx:idSystem>
<bpx:idValue>DE0001</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<bpx:protectedResource>
<digitalResource>
<nonSecureIndirect URI="urn:uci:ETRI-10357"/>
</digitalResource>
<xenc:EncryptedKey>
<xenc:CipherData>
<xenc:CipherValue> ujnDATAPgvq5dPDvTGPPhJIpqnSieHWK2BEn2JYi2AgiTWtTqSsCIqg/76hHCmzSHAXrFaqTl/Zi3LtbXoCV MoDXgMFkUGIWVyLGDFmq5VxyOwzYM/WMWCEMF1qIUtKW62chDiPaEOfY6dPFyHxtUi4wXMpd3TcIYwV/QTQDMDg=
</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedKey>
</bpx:protectedResource>
<allConditions>
<dacx:timeShiftDuration>
<dacx:duration>PT0S</dacx:duration>
</dacx:timeShiftDuration>
<sx:exerciseLimit>
<sx:count>2</sx:count>
</sx:exerciseLimit>
</allConditions>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Issuer's signing key</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 158 – License example 1
This example shows an elaborate license instance (Figure 6) using DMP REL with a grant described in table 4.
Table 27 – License example 2
|
Grant Item |
Contents |
|
Principal |
SAV device A identified as DE0001 |
|
Right |
Play only with buffering and additional functions |
|
Resource |
urn:uci:ETRI-10357 with CEK |
|
Condition |
· Available for 10 days and 12 hours after receiving the license · Available only within KOREA · Allow to be displayed at other devices within the same domain where SAV device A is joined · Does not allow to be accessed by more than 3 SAV devices at the same time |
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000:DO-0001</bpx:idSystem>
<bpx:idValue>DE0001</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<bpx:protectedResource>
<digitalResource>
<nonSecureIndirect URI="urn:uci:ETRI-10357"/>
</digitalResource>
<xenc:EncryptedKey>
<xenc:CipherData>
<xenc:CipherValue> ujnDATAPgvq5dPDvTGPPhJIpqnSieHWK2BEn2JYi2AgiTWtTqSsCIqg/76hHCmzSHAXrFaqTl/Zi3LtbXoCV MoDXgMFkUGIWVyLGDFmq5VxyOwzYM/WMWCEMF1qIUtKW62chDiPaEOfY6dPFyHxtUi4wXMpd3TcIYwV/QTQDMDg=
</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedKey>
</bpx:protectedResource>
<allConditions>
<sx:validityIntervalFloating>
<sx:duration>P10DT12H</sx:duration>
</sx:validityIntervalFloating>
<sx:territory>
<sx:location>
<sx:country>KR</sx:country>
</sx:location>
</sx:territory>
<dacx:destinationPrincipal>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000</bpx:idSystem> <bpx:idValue>DO0001</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<dacx:simultaneousAccessCount>
<dacx:count>3</dacx:count>
</dacx:simultaneousAccessCount>
</allConditions>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Issuer's signing key</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 159 – License example 2
This example shows you an ‘export’ license instance (Figure 7) using DMP REL with a grant described in table 5.
Table 28 – License example 3
|
Grant Item |
Contents |
|
Principal |
Domain A identified as DO0001 |
|
Right |
Export with high definition and digital output |
|
Resource |
urn:uci:ETRI-10357 with CEK |
|
Condition |
· Available only 1 time · Target device should be device A or device B. |
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainA">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000</bpx:idSystem>
<bpx:idValue>DO0001</bpx:idValue>
</bpx:identityHolder>
<dacx:export/>
<bpx:protectedResource licensePartId="protectedResource1">
<digitalResource>
<nonSecureIndirect URI="urn:uci:ETRI-10357"/>
</digitalResource>
<xenc:EncryptedKey>
<xenc:CipherData>
<xenc:CipherValue> ujnDATAPgvq5dPDvTGPPhJIpqnSieHWK2BEn2JYi2AgiTWtTqSsCIqg/76hHCmzSHAXrFaqTl/Zi3LtbXoCV MoDXgMFkUGIWVyLGDFmq5VxyOwzYM/WMWCEMF1qIUtKW62chDiPaEOfY6dPFyHxtUi4wXMpd3TcIYwV/QTQDMDg=
</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedKey>
</bpx:protectedResource>
<allConditions>
<bpx:outputRegulation licensePartId="outputRegulation1">
<bpx:regulation qualityOfSignal="bpx:analog" typeOfSignal="bpx:SD"/>
</bpx:outputRegulation>
<dacx:destinationPrincipal>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000:DO-0001</bpx:idSystem>
<bpx:idValue>DE0001</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<dacx:destinationCondition>
<sx:exerciseLimit>
<sx:count>1</sx:count>
</sx:exerciseLimit>
</dacx:destinationCondition>
</allConditions>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainA"/>
<dacx:export/>
<bpx:protectedResource licensePartIdRef="protectedResource1"/>
<allConditions>
<bpx:outputRegulation licensePartIdRef="outputRegulation1"/>
<dacx:destinationPrincipal>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000:DO-0001</bpx:idSystem>
<bpx:idValue>DE0002</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<sx:exerciseLimit>
<sx:count>1</sx:count>
</sx:exerciseLimit>
</allConditions>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Issuer's signing key</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 160 – License example 3
This example shows you a ‘write’ license instance (Figure 8) using DMP REL with a grant described in table 6.
Table 29 – License example 4
|
Grant Item |
Contents |
|
Principal |
Device A identified as DE0001 |
|
Right |
Store with scrambling |
|
Resource |
urn:uci:ETRI-10357 with CEK |
|
Condition |
· Available only 2 times · Target storage should be within the same domain where device A is a member. · Device A has security level 3 or above. |
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000:DO-0001</bpx:idSystem>
<bpx:idValue>DE0001</bpx:idValue>
</bpx:identityHolder>
<bpx:governedCopy/>
<bpx:protectedResource>
<digitalResource>
<nonSecureIndirect URI="urn:uci:ETRI-10357"/>
</digitalResource>
<xenc:EncryptedKey>
<xenc:CipherData>
<xenc:CipherValue> ujnDATAPgvq5dPDvTGPPhJIpqnSieHWK2BEn2JYi2AgiTWtTqSsCIqg/76hHCmzSHAXrFaqTl/Zi3LtbXoCV MoDXgMFkUGIWVyLGDFmq5VxyOwzYM/WMWCEMF1qIUtKW62chDiPaEOfY6dPFyHxtUi4wXMpd3TcIYwV/QTQDMDg=
</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedKey>
</bpx:protectedResource>
<allConditions>
<dacx:scrambling cipherType="AES"/>
<sx:exerciseLimit>
<sx:count>2</sx:count>
</sx:exerciseLimit>
<dacx:destinationPrincipal>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-1000</bpx:idSystem>
<bpx:idValue>DO0001</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<dacx:securityLevel>
<dacx:level>3</dacx:level>
</dacx:securityLevel>
</allConditions>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Issuer's signing key</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 161 – License example 4
There is a need to describe what must be represented with the REL
1. In the broadcast channel
2. Use in Device and Domain
a. Play Content
b. Store Content
c. Play Stored Content
d. Use Stored Content at various levels of granularity, e.g. abstract/digest Content using appropriate Metadata
e. Move or Copy Stored Content to another SAV.
f. Adapt Content
g. Move or Copy Adapted Content to a PAV
h. Export Stored Content e.g. to a removable media
with a number of conditions
|
Items |
Example of conditions |
|
Validity period |
· Viewing period (start and end date) · Total viewing time |
|
Playback |
· Number of times · Allowed playback mode (e.g. Fast forward & rewind, Variable playback speed, Sequenced still image display) |
|
Domain management |
· Domain identification · Number of users · Permission for transfer of license |
|
Output |
· Analogue and digital output · Allowed target devices |
In this example, Kim’s DTV is granted the right to play the stated broadcast news with right and conditions like below. Kim has a DTV with DVR which is a member of a digital home domain A and its identifier is BSI:2232111123.
· Play is only allowed within domain A.
· time-shift-operation
· required security level : at least 3
· valid interval : from 2005/7/25 to 2005/7/29
· geographical limitation : only available within Seoul, Korea
· simultaneous access count : 5
· extendRights : when license becomes invalid, update or extend license through http://www.foo.org/extendLiceseService
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainA">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000</bpx:idSystem>
<bpx:idValue>BSI:2232111123</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<digitalResource licensePartId="news">
<nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</digitalResource>
<allConditions>
<dacx:securityLevel>
<dacx:level>3</dacx:level>
</dacx:securityLevel>
<dacx:simultaneousAccessCount>
<dacx:count>5</dacx:count>
</dacx:simultaneousAccessCount>
<validityInterval>
<notBefore>2005-07-25T00:00:00</notBefore>
<notAfter>2005-07-29T00:00:00</notAfter>
</validityInterval>
<sx:territory>
<sx:location>
<sx:country>KR</sx:country>
<sx:region>SEOUL</sx:region>
</sx:location>
</sx:territory>
</allConditions>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainA"/>
<dacx:extendRights>
<bpx:serviceLocation>
<bpx:url>http://www.foo.org/extendLiceseService</bpx:url>
</bpx:serviceLocation>
</dacx:extendRights>
<digitalResource licensePartIdRef="news"/>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 162 – License example 5
The rights issuer sends Kim a license that allows him to store and export specified broadcast news while it is transferring under the following conditions:
· Play is only allowed within domain A whose identifier is BSI:2232111123
· Store into the storage with scrambling
· Export through HD-analog output in the form of Constrained Image.
· Export through all analog output in the form of Analog Protection according to Type 1 of APS
· Export through the HD digital output in which DTCP protection method is used.
· All export is only allowed when the target entity is device D or within domain S.
· All export is only allowed when the security level of target entity is at least 5
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainA">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000</bpx:idSystem>
<bpx:idValue>BSI:2232111123</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<digitalResource licensePartId="news">
<r:nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</digitalResource>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainA"/>
<bpx:governedCopy/>
<digitalResource licensePartIdRef="news"/>
<dacx:scrambling/>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainA"/>
<dacx:export/>
<digitalResource licensePartIdRef="news"/>
<allConditions>
<bpx:outputRegulation licensePartId="outputRegulation1">
<bpx:regulation typeOfSignal="analog" qualityOfSignal="HD">ICT:1</bpx:regulation>
<bpx:regulation typeOfSignal="analog">APSTB:01</bpx:regulation>
<bpx:regulation typeOfSignal="digital" qualityOfSignal="HD">DTCP</bpx:regulation>
</bpx:outputRegulation>
<dacx:destinationPrincipal>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000:DO-00001</bpx:idSystem>
<bpx:idValue>DE_DeviceA</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<dacx:destinationCondition licensePartId="destinationCondition1">
<dacx:securityLevel>
<dacx:level>5</dacx:level>
</dacx:securityLevel>
</dacx:destinationCondition>
</allConditions>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainA"/>
<dacx:export/>
<digitalResource licensePartIdRef="news"/>
<allConditions>
<bpx:outputRegulation licensePartIdRef="outputRegulation1"/>
<dacx:destinationPrincipal>
<bpx:identityHolder>
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000:DO-00001</bpx:idSystem>
<bpx:idValue>DE_DeviceB</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<dacx:destinationCondition licensePartIdRef="destinationCondition1"/>
</allConditions>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
Figure 163 – License example 6
A rights issuer sends Kim a license that allows her copy the specified broadcast news after it is stored under the following conditions
1. Only one generation copy is allowed ( Copy-Once )
2. Copied one should not be copied again ( Copy-No-More )
Following example shows the license has copy-once rights. This broadcast program is allowed copy once with bpx:governedCopy condition.
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainA">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000</bpx:idSystem>
<bpx:idValue>BSI:2232111123</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<digitalResource licensePartId="news">
<r:nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</digitalResource>
</grant>
<r:grant>
<bpx:identityHolder licensePartIdRef="domainA"/>
<bpx:governedCopy governanceRule="acme:CopyOnce"/>
<r:digitalResource licensePartIdRef="news"/>
</r:grant>
<r:issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</r:issuer>
</license>
Figure 164 – License example 7
Once this broadcast program is copied to other device, new copied license may be shown like following.
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sx:profileCompliance="dmp-IDP2-rel-1.0" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainA">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000</bpx:idSystem>
<bpx:idValue>BSI:2232111123</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<digitalResource licensePartId="news">
<r:nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</digitalResource>
</grant>
<r:issuer>
<keyHolder>
<info>
<dsig:KeyName>Rights Issuer Public Key Name</dsig:KeyName>
</info>
</keyHolder>
</r:issuer>
</license>
Figure 165 – License example 8
The TV Anytime Forum has developed specifications with a native Rights Expression language called RMPI. In this Use Case it is assumed that broadcasting is effected using RMPI but that once Content is received by the SAV it is Imported as a file and Stored.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
The following example shows a possible combination of rights granted to a given piece of content broadcast free-to-air:
· Content is not scrambled and will remain unscrambled after domain acquisition.
· No possibility is granted to acquire new rights.
· In the receiving domain, Play, Analogue Export, Digital Export (both HD and SD) are granted. Proximity Control is the only restriction that applies. Required security level is the lowest.
· The same rights are granted in any other domain. No Proximity Control applies but Geographic Control (only Germany) does. A medium security level is required to enforce that restriction.
<?xml version="1.0" encoding="UTF-8"?>
<TVAMain xmlns="urn:tva:metadata:2005"
xmlns:tva2="urn:tva:metadata:extended:2005"
xmlns:tva="urn:tva:metadata:2005"
xmlns:rmpi="urn:tva:rmpi:2005"
xmlns:mpeg21="urn:tva:mpeg21:2005" xmlns:mpeg7="urn:tva:mpeg7:2005"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:tva:metadata:extended:2005 tva2_metadata_3-3_v111.xsd"
xsi:type="tva2:ExtendedTVAMainType">
<tva2:RMPITable xml:lang="en-us">
<tva2:RMPIDescription RMPIDescriptionId="String">
<rmpi:AncillaryRMPI>
<rmpi:RMPITypeFlag>RMPI-MB</rmpi:RMPITypeFlag>
<rmpi:VersionOfRMPI>0</rmpi:VersionOfRMPI>
<rmpi:OriginOfRMPI>FTABroadcasterDE</rmpi:OriginOfRMPI>
<rmpi:Cipher>no cipher</rmpi:Cipher>
<rmpi:MBScramblingControl>maintain</rmpi:MBScramblingControl>
</rmpi:AncillaryRMPI>
<rmpi:ExtendRights>
<rmpi:ExtendRightsFlagNotGranted/>
</rmpi:ExtendRights>
<rmpi:ReceivingDomainRights>
<rmpi:PlayRightFlag>granted</rmpi:PlayRightFlag>
<rmpi:AnalogueExportRight>
<rmpi:AnalogueExportRightFlagGranted/>
</rmpi:AnalogueExportRight>
<rmpi:DigitalExportSDRight>
<rmpi:DigitalExportRightFlagGranted/>
</rmpi:DigitalExportSDRight>
<rmpi:DigitalExportHDRight>
<rmpi:DigitalExportRightFlagGranted/>
</rmpi:DigitalExportHDRight>
<rmpi:SecurityLevel>level 0</rmpi:SecurityLevel>
<rmpi:GeographicalControl>Any</rmpi:GeographicalControl>
<rmpi:PhysicalProximityFlag/>
</rmpi:ReceivingDomainRights>
<rmpi:AnyDomainRights>
<rmpi:PlayRightFlag/>
<rmpi:AnalogueExportRight>
<rmpi:AnalogueExportRightFlagGranted/>
</rmpi:AnalogueExportRight>
<rmpi:DigitalExportSDRight>
<rmpi:DigitalExportRightFlagGranted/>
</rmpi:DigitalExportSDRight>
<rmpi:DigitalExportHDRight>
<rmpi:DigitalExportRightFlagGranted/>
</rmpi:DigitalExportHDRight>
<rmpi:SecurityLevel>level 1</rmpi:SecurityLevel>
<rmpi:GeographicalControl>Germany</rmpi:GeographicalControl>
</rmpi:AnyDomainRights>
</tva2:RMPIDescription>
</tva2:RMPITable>
</TVAMain>
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainID">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-0001</bpx:idSystem>
<bpx:idValue>DO12345</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<digitalResource licensePartId="news">
<nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</digitalResource>
<dacx:proximity/>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainID"/>
<dacx:export/>
<digitalResource licensePartIdRef="news"/>
<dacx:destinationPrincipal>
<bpx:identityHolder licensePartIdRef="domainID"/>
</dacx:destinationPrincipal>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainID"/>
<bpx:governedCopy/>
<digitalResource licensePartIdRef="news"/>
<dacx:destinationCondition>
<allConditions>
<dacx:securityLevel>
<dacx:level>1</dacx:level>
</dacx:securityLevel>
<sx:territory>
<sx:location>
<sx:country>Germany</sx:country>
</sx:location>
</sx:territory>
</allConditions>
</dacx:destinationCondition>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>FTABroadcasterDE</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
The following example shows a possible combination of rights granted to a given piece of content broadcast e.g. by a Pay-TV operator, where:
· Content has to be re-scrambled using AES when acquired in the domain
· Possibility to acquire new rights is granted. The Pay-TV operator will grant these rights.
· In the receiving domain, Play Right is granted with ability to trick play the content. Content can be exported to analogue or digital (both HD and SD) outputs but only for immediate viewing. A high security level is required.
· No rights is granted to other domains
<?xml version="1.0" encoding="UTF-8"?>
<TVAMain xmlns="urn:tva:metadata:2005"
xmlns:tva2="urn:tva:metadata:extended:2005"
xmlns:tva="urn:tva:metadata:2005"
xmlns:rmpi="urn:tva:rmpi:2005"
xmlns:mpeg21="urn:tva:mpeg21:2005" xmlns:mpeg7="urn:tva:mpeg7:2005"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:tva:metadata:extended:2005 tva2_metadata_3-3_v111.xsd"
xsi:type="tva2:ExtendedTVAMainType">
<tva2:RMPITable xml:lang="en-us">
<tva2:RMPIDescription RMPIDescriptionId="String">
<rmpi:AncillaryRMPI>
<rmpi:RMPITypeFlag>RMPI-MB</rmpi:RMPITypeFlag>
<rmpi:VersionOfRMPI>5</rmpi:VersionOfRMPI>
<rmpi:OriginOfRMPI>FTABroadcasterDE</rmpi:OriginOfRMPI>
<rmpi:Cipher>AES</rmpi:Cipher>
<rmpi:MBScramblingControl>change</rmpi:MBScramblingControl>
</rmpi:AncillaryRMPI>
<rmpi:ExtendRights>
<rmpi:ExtendRightsFlagGranted/>
</rmpi:ExtendRights>
<rmpi:ReceivingDomainRights>
<rmpi:PlayRightFlag/>
<rmpi:AnalogueExportRight>
<rmpi:AnalogueExportRightFlagGranted/>
</rmpi:AnalogueExportRight>
<rmpi:DigitalExportSDRight>
<rmpi:DigitalExportRightFlagGranted/>
</rmpi:DigitalExportSDRight>
<rmpi:DigitalExportHDRight>
<rmpi:DigitalExportRightFlagGranted/>
</rmpi:DigitalExportHDRight>
<rmpi:SecurityLevel>level 3</rmpi:SecurityLevel>
<rmpi:GeographicalControl>Any</rmpi:GeographicalControl>
<rmpi:PhysicalProximityFlag>controlled</rmpi:PhysicalProximityFlag>
<rmpi:BufferDuration>buffered</rmpi: BufferDuration>
</rmpi:ReceivingDomainRights>
<rmpi:AnyDomainRights>
<rmpi:PlayRightNotFlag>not granted</rmpi:PlayRightFlag>
<rmpi:AnalogueExportRight>
<rmpi:AnalogueExportRightFlagNotGranted/>
</rmpi:AnalogueExportRight>
<rmpi:DigitalExportSDRight>
<rmpi:DigitalExportRightFlagNotGranted/>
</rmpi:DigitalExportSDRight>
<rmpi:DigitalExportHDRight>
<rmpi:DigitalExportRightFlagNotGranted/>
</rmpi:DigitalExportHDRight>
<rmpi:SecurityLevel>N/A</rmpi:SecurityLevel>
<rmpi:GeographicalControl>N/A</rmpi:GeographicalControl>
</rmpi:AnyDomainRights>
</tva2:RMPIDescription>
</tva2:RMPITable>
</TVAMain>
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainID">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-0001</bpx:idSystem>
<bpx:idValue>DO12345</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<bpx:protectedResource licensePartId="news">
<digitalResource>
<nonSecureIndirect URI="urn:uci:ETRI-10357"/>
</digitalResource>
<xenc:EncryptedData>
<xenc:EncryptionMethod Algorithm="AES"/>
<xenc:CipherData>
<xenc:CipherReference URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</xenc:CipherData>
</xenc:EncryptedData>
</bpx:protectedResource>
<allConditions>
<dacx:timeShiftDuration>
<dacx:duration>PT0S</dacx:duration>
</dacx:timeShiftDuration>
<dacx:securityLevel>
<dacx:level>3</dacx:level>
</dacx:securityLevel>
</allConditions>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainID"/>
<dacx:extendRights>
<bpx:serviceLocation>
<bpx:url>http://www.paytv.com/extendLiceseService</bpx:url>
</bpx:serviceLocation>
</dacx:extendRights>
<digitalResource licensePartIdRef="news"/>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>FTABroadcasterDE</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
The following example shows a possible combination of rights granted to a given piece of content provided by a content provider using DRM technology, where:
· Content is scrambled using Camellia and needs not to be re-scrambled when acquired in the domain
· Possibility to acquire new rights is granted. An URL is given for that purpose.
· In the receiving domain, Play Right is granted for two days. Only one copy of the content can be made within these two days and this copy is usable by one single device. Content can be exported only to HD digital output and only for immediate viewing. Content can only be redistributed in the proximity of the receiving domain and within Japan. The highest security level is required.
· No rights is granted to other domains
<?xml version="1.0" encoding="UTF-8"?>
<TVAMain xmlns="urn:tva:metadata:2005"
xmlns:tva2="urn:tva:metadata:extended:2005"
xmlns:tva="urn:tva:metadata:2005"
xmlns:rmpi="urn:tva:rmpi:2005"
xmlns:mpeg21="urn:tva:mpeg21:2005" xmlns:mpeg7="urn:tva:mpeg7:2005"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:tva:metadata:extended:2005 tva2_metadata_3-3_v111.xsd"
xsi:type="tva2:ExtendedTVAMainType">
<tva2:RMPITable xml:lang="en-us">
<tva2:RMPIDescription RMPIDescriptionId="String">
<rmpi:AncillaryRMPI>
<rmpi:RMPITypeFlag>RMPI-MB</rmpi:RMPITypeFlag>
<rmpi:VersionOfRMPI>0</rmpi:VersionOfRMPI>
<rmpi:OriginOfRMPI>FTABroadcasterDE</rmpi:OriginOfRMPI>
<rmpi:Cipher>Camellia</rmpi:Cipher>
<rmpi:MBScramblingControl>maintain</rmpi:MBScramblingControl>
</rmpi:AncillaryRMPI>
<rmpi:ExtendRights>
<rmpi:ExtendRightsFlagGranted>http://www.vod.com/extendLiceseService</rmpi: ExtendRightsFlagGranted>
</rmpi:ExtendRights>
<rmpi:ReceivingDomainRights>
<rmpi:PlayRightFlag/>
<rmpi:AnalogueExportRight>
<rmpi:AnalogueExportRightFlagNotGranted/>
</rmpi:AnalogueExportRight>
<rmpi:DigitalExportSDRight>
<rmpi:DigitalExportRightFlagNotGranted/>
</rmpi:DigitalExportSDRight>
<rmpi:DigitalExportHDRight>
<rmpi:DigitalExportRightFlagNotGranted/>
</rmpi:DigitalExportHDRight>
<rmpi:SecurityLevel>level 3</rmpi:SecurityLevel>
<rmpi:TimeWindow>
<rmpi:StartDate>
<rmpi:TimePoint>2005-10-05T12:00:00</rmpi:TimePoint>
</rmpi:StartDate>
<rmpi:EndDate>
<rmpi:TimePoint>2005-10-07T12:00:00</rmpi:TimePoint>
</rmpi:EndDate>
</rmpi:TimeWindow>
<rmpi:GeographicalControl>Japan</rmpi:GeographicalControl>
<rmpi:PhysicalProximityFlag/>
<rmpi:BufferDuration>immediate</rmpi:BufferDuration>
</rmpi:ReceivingDomainRights>
<rmpi:AnyDomainRights>
<rmpi:PlayRightFlag>not granted</rmpi:PlayRightFlag>
<rmpi:AnalogueExportRight>
<rmpi:AnalogueExportRightFlagNotGranted/>
</rmpi:AnalogueExportRight>
<rmpi:DigitalExportSDRight>
<rmpi:DigitalExportRightFlagNotGranted/>
</rmpi:DigitalExportSDRight>
<rmpi:DigitalExportHDRight>
<rmpi:DigitalExportRightFlagNotGranted/>
</rmpi:DigitalExportHDRight>
<rmpi:SecurityLevel>N/A</rmpi:SecurityLevel>
<rmpi:GeographicalControl>N/A</rmpi:GeographicalControl>
</rmpi:AnyDomainRights>
</tva2:RMPIDescription>
</tva2:RMPITable>
</TVAMain>
<?xml version="1.0" encoding="UTF-8"?>
<license xmlns="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2006:01-REL-DACX-NS rel-dacx-v1.xsd">
<grant>
<bpx:identityHolder licensePartId="domainID">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000</bpx:idSystem>
<bpx:idValue>DO12345</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<bpx:protectedResource licensePartId="news">
<digitalResource>
<nonSecureIndirect URI="urn:uci:ETRI-10357"/>
</digitalResource>
<xenc:EncryptedData>
<xenc:EncryptionMethod Algorithm="Camellia"/>
<xenc:CipherData>
<xenc:CipherReference URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</xenc:CipherData>
</xenc:EncryptedData>
</bpx:protectedResource>
<allConditions>
<dacx:timeShiftDuration>
<dacx:duration>PT0S</dacx:duration>
</dacx:timeShiftDuration>
<dacx:securityLevel>
<dacx:level>3</dacx:level>
</dacx:securityLevel>
<validityInterval>
<notBefore>2005-10-04T12:00:00</notBefore>
<notAfter>2005-10-06T12:00:00</notAfter>
</validityInterval>
</allConditions>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainID"/>
<dacx:export/>
<digitalResource licensePartIdRef="news"/>
<bpx:outputRegulation>
<bpx:regulation typeOfSignal="digital" qualityOfSignal="HD">DTCP</bpx:regulation>
</bpx:outputRegulation>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainID"/>
<bpx:governedCopy/>
<digitalResource licensePartIdRef="news"/>
<allConditions>
<dacx:destinationPrincipal>
<bpx:identityHolder licensePartId="domainID">
<bpx:idSystem>urn:mpeg:mpeg21:2006-01-REL-DACX-NS:DM-00001000</bpx:idSystem>
<bpx:idValue>device A's certificate or identifier</bpx:idValue>
</bpx:identityHolder>
</dacx:destinationPrincipal>
<dacx:destinationCondition>
<allConditions>
<dacx:securityLevel>
<dacx:level>3</dacx:level>
</dacx:securityLevel>
<sx:territory>
<sx:location>
<sx:country>Japan</sx:country>
</sx:location>
</sx:territory>
</allConditions>
</dacx:destinationCondition>
</allConditions>
</grant>
<grant>
<bpx:identityHolder licensePartIdRef="domainID"/>
<dacx:extendRights>
<bpx:serviceLocation>
<bpx:url>http://www.paytv.com/extendLiceseService</bpx:url>
</bpx:serviceLocation>
</dacx:extendRights>
<digitalResource licensePartIdRef="news"/>
</grant>
<issuer>
<keyHolder>
<info>
<dsig:KeyName>FTABroadcasterDE</dsig:KeyName>
</info>
</keyHolder>
</issuer>
</license>
The advancing deployment of Internet Protocol (IP)-based network gear with increasingly higher bitrate is making it possible to distribute video and television content on a demand basis.
In this Use Case we consider the distribution of video content carried by RTP/UDP/IP.
This Use Case is considered for illustration purposes. Therefore it is not specifically recommended for implementation.
In this walkthrough the following Users are assumed to exist:
|
User |
Perform |
|
A plurality of Devices Manufacturers |
Manufacture Interoperable Devices |
|
A plurality of Device Certification Authorities |
Certify Interoperable Devices |
|
A plurality of Service Providers |
1. Offer a variety of Governed Content-based Services, in particular on-demand Services 2. Employ independently selected DRM Tools |
|
A plurality of smart cards providers |
|
|
A plurality of License Providers |
|
|
A plurality of End Users |
1. Buy Interoperable Devices from Manufacturers of their choice 2. Buy smart cards from Trusted Third Parties 3. Access Services from Providers of their choice 4. Access Licenses from Providers of their choice 5. Use Governed Content as per License |
The specific Users are:
|
Type of User |
Name |
|
Device Manufacturer |
DM-A |
|
Device Certification Agency |
CA-B |
|
Content Service Provider |
SP-C |
|
Smart card Provider |
SP-D |
|
Tool Provider |
TP-E |
|
License Provider |
LP-F |
|
Payment Service Provider |
PP-G |
|
End User |
Rufus |
Before Rufus can Access and Use Content the following has to happen
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
CA-B |
Certify |
SAV |
CA-B places a Certificate inside DM-A’s SAV |
|
AD #5 |
|
Rufus |
Buy |
SAV |
DM-A’s SAV’s are Certified |
Out of scope |
|
|
Rufus |
Buy |
smart card |
From SP-D |
Out of scope |
|
|
Who |
Perform |
What |
Notes |
IDP Tool |
Ref. |
|
Rufus |
Select |
SP-B’s Service |
Out of all available Services |
Out of scope |
|
|
Rufus |
Select |
Content Item |
e.g. a movie |
Out of scope |
|
|
Rufus |
Select |
License |
e.g. for 24 hours |
Out of scope |
|
|
Rufus |
Select |
Payment method |
Pays PP-G |
Out of scope |
|
|
Rufus (SAV) |
Un-Package |
Content Item |
|
Package Content as Stream |
4.1.2 |
|
Rufus (SAV) |
Access |
License |
|
Access License as File |
3.5.3 |
|
SAV |
Parse |
License |
|
Represent License |
2.10 |
|
Rufus (SAV) |
Parse |
DRM Information |
To find the information regarding required DRM Tools |
Represent Content |
2.1 |
|
Rufus (SAV) |
Access |
DRM Tool |
Case 1: DRM Tool is in the DCI |
Access DRM Tool Body as Stream |
3.5.6 |
|
|
|
|
Case 2: DRM Tool Body is Accessed from TP-A via the network |
Access DRM Tool Body as File |
3.5.5 |
|
DRM Processor |
Manage |
DRM Tool |
|
Manage DRM Tools |
3.4 |
|
DRM Processor |
Access |
Key |
|
Access Key as Stream |
3.5.7 |
|
Rufus (SAV) |
Play |
Content Item |
As per License Terms |
Represent Content Elements |
2. |
|
Rufus (SAV) |
Store |
DCF |
Stores as a Content File with the License Bundled within it |
Package Content as File |
4.1.1 |
To perform the tasks for which they are designed, Value-Chains built to operate according to DMP Technical Specifications and References need to rely on the guaranteed Integrity of Entities such as Device and DRM Tools and the Identity of Entities such as Content, Device, Domain, DRM Tools and User.
This Chapter 5 collects roles, qualification requirements, appointment procedures and operation rules of DMP-appointed Certification and Registration Authorities.
Prerequisites for proper understanding of this Approved Document are: reading of this Foreword, Chapter 2 – Architecture and Chapter 6 – Terminology.
When designing, implementing and operating Value-Chains handling Governed Content there are several cases where Entities such as Devices (e.g. Creation Devices, Consumption Devices and Domain Management Devices) and DRM Tool Bodies have to be Certified before operation on the IDP. As an example, Certification constitutes a key assurance for a Rights Holder to entrust his Content to a Device.
Certification is carried out by a plurality of organisations dedicated to the task of Certifying Entities. To perform this task these organisations must be properly accredited by a root authority called Certification Authority.
In this regard, the only role of DMP is to select and appoint the Certification Authority. Said Authority is responsible for Certification policy of types of Entity for which Certification is required. A Certification Agency is responsible for performing tests to guarantee – within an acceptable level of confidence – that a given Entity may operate in the IDP. Once Certified, the Entity can be Identified. The Certification Authority will appoint Certification Agencies on the basis of the general rules as specified in this Approved Document.
For each Certification Authority the following process shall be followed:
1. When the need for a Certification Authority is identified as part of the development of one or more Approved Documents, the General Assembly will document the need in a Call for Participation;
2. The General Assembly will request the Board of Directors to issue the Call for Participation within the time set by the General Assembly;
3. Applications shall be received by the Board of Directors and reviewed on the basis of compliance with the terms contained in the Call for Participation and adequacy of the Certification Policy proposed by the applicant;
4. The Board of Directors shall select and propose the appointment of one candidate Certification Authority to the General Assembly within 180 days of the deadline indicated in the Call for Participation for submitting Applications;
5. The General Assembly shall appoint the Certification Authority based on the proposal made by the Board of Directors;
6. Once appointed, the Certification Authority may receive applications from applicants wishing to become Certification Agencies;
7. The Certification Authority shall review the application for compliance with the Certification Policy;
8. In case an application is rejected, the applicant may appeal to the Board of Directors;
9. The Board of Directors will issue a final judgement on the appeal;
10. The Board of Directors will inform the Certification Authority and the appealing Certification Agency of its decision within 90 days of the date of appeal;
11. If a Certification Authority, resigns the matter will be brought to the attention of the General Assembly for action.
To qualify for appointment as a Certification Authority an organization shall demonstrate that:
1. It is a legal entity;
2. It has been in existence for no less than five years;
3. It enjoys a sound financial structure;
4. It is familiar with the field in which it applies to operate as an Authority;
5. It has employees who are technically competent in Certification of the relevant Entity and are in number deemed to be sufficient to handle the expected workload;
6. It does not have a direct economic stake in the related business;
7. It commits to function in its capacity as a Certification Authority for a minimum of ten years;
8. It has sufficient equipment resources (e.g., hardware, software) and communication facilities (e.g., postal street address, telephone, facsimile, e-mail, ftp and web site);
9. The fees tructure, if one is envisaged, shall be for the purpose of cost recovery, and shall be approved as part of the appointment;
10. It shall require no financial contribution from DMP and its members;
11. It shall not become a Certification Agency.
The following procedure shall be invoked whenever DMP identifies the need for a Certification Authority:
1. The General Assembly shall draft a Call for Participation;
2. The Board of Directors shall issue the Call for Participation by the time indicated by the General Assembly;
3. Prospective Certification Authorities shall submit an application indicating
a. How the requirements of the Call for Participation are fulfilled;
b. The time the Certification Authority will start accepting applications from candidate Certification Agencies;
c. The criteria for accepting or rejecting applications for Certification Agencies to be applied in a strictly non-discriminatory fashion;
d. The level of administrative fees and the underlying cost structure which must be based on cost recovery principles;
4. The DMP Board shall
a. Assess the applications;
b. Select one;
c. Draft the text of the agreement between DMP and the selected applicant;
d. Achieve agreement with the selected applicant on the text of the agreement;
e. Submit its conclusions to the General Assembly, including the text of the agreement between DMP and the selected applicant;
5. The General Assembly shall vote on the proposal of the Board of Directors;
6. The DMP Board will inform the successful applicant of the result within 180 days of the deadline indicated in the Call for Participation for submitting Applications.
Once appointed the Certification Authority shall:
1. Handle all business in English;
2. Publish all relevant material on the Certification Authority’s web site. This will include:
a. How to apply for a Certification Agency
b. The level of fees
c. The application approval criteria
d. Documents describing practices and tutorials
e. Etc.;
3. Receive applications from prospective Certification Agencies;
4. Evaluate applications in accordance with the application approval criteria, including technical capabilities of the applicant;
5. Inform the applicant within 180 days of receipt of the application of the outcome of the evaluation;
6. Deal with resubmissions of a previously rejected application as a new application;
7. Adhere to the procedure for appeals;
8. Process requests to extend the field of Entity Certification of a previously appointed Certification Agency as a new application;
9. Publish the register of appointed Certification Agencies on the Certification Authority’s web site;
10. Keep a record of all request forms, granted and denied;
11. Safeguard any confidential information;
12. Handle all aspects of the Certification process in accordance with good business practices;
13. Collect complaints about performance of Certification Agencies and act accordingly, including revoking the status of Certification Agency;
14. Inform the relevant Registration Agencies that Certification of an Entity has been revoked in case the Certification Agency responsible fails to act;
15. Report periodically to the DMP Board of Directors.
1. Not to be engaged in the business for which it seeks to become a Certification Agency, as this would create a conflict of interest;
2. Apply to the Certification Authority following the procedures and including a description of:
a. The field of Entity Certification;
b. The technical qualifications;
c. The procedures and test suites to be employed for Certification;
3. Provide contact information;
4. Agree to set up an operational Certification Agency within 180 days from the day of receipt of acceptance of the application;
5. Be aware that the appointment may be revoked if the Certification Agency fails to be operational within the prescribed time;
6. Maintain a permanent record of the application form and the notification received from the Certification Authority;
7. Keep a record of all request forms – granted and denied – from companies applying for Certification in accordance with good business practices;
8. Revoke Certification of Entities that are found after receiving Certification that they do not fulfil the requirements and inform the relevant Registration Agencies
9. Make periodic reports to the Certification Authority.
When designing, implementing and operating Value-Chains handling Governed Content there are several cases where Entities such as Content, Licenses, DRM Tool Bodies, Devices, Users and Domains need to be reliably and unambiguously Identified. This task requires specific capabilities, as Identification constitutes a key element of Trust establishment, e.g. in the case of Devices. This Identification task is typically carried out by several organisations that are properly accredited by a root authority.
In this regard the only role of DMP is to select and appoint the root authority – called Registration Authority – for any type of Entity for which Identification is required. A Registration Authority is responsible for allocating namespaces in accordance with Chapter 3 [ REF _Ref100641484 \r \h 5]. The Registration Authority will appoint Registration Agencies on the basis of the general rules as specified in this Approved Document.
For each Registration Authority the following process shall be followed:
1. When the need for a Registration Authority is identified as part of the development of one or more Approved Documents, the General Assembly will document the need in a Call for Participation;
2. The General Assembly will request the Board of Directors to issue the Call for Participation within the time set by the General Assembly;
3. Applications shall be received by the Board of Directors and reviewed on the basis of compliance with the terms contained in the Call for Participation and adequacy of the Identification Policy proposed by the applicant;
4. The Board of Directors shall select and propose appointment of one candidate Registration Authority to the General Assembly within 180 days of the deadline indicated in the Call for Participation for submitting Applications;
5. The General Assembly shall appoint the Registration Authority based on the proposal made by the Board of Directors;
6. The Registration Authority shall receive applications from candidate Registration Agencies;
7. In case an application is rejected the applicant may appeal to the Board of Directors;
8. The Board of Directors will issue a final judgement on the appeal;
9. The Board of Directors will inform the Certification Authority and the appealing Certification Agency of its decision within 90 days of the date of appeal;
10. If a Registration Authority resigns the matter will be brought to the attention of the General Assembly for action.
To qualify for designation as a Registration Authority an organization shall demonstrate that:
1. It is a legal entity;
2. It has been in existence for no less than five years;
3. It enjoys a sound financial structure;
4. It is familiar with the field in order to operate as an Authority;
5. It has employees who are technically competent in digital identification;
6. It does not have a direct stake in the related business that would create a conflict of interest;
7. It commits to function in its capacity as a Registration Authority for a minimum of ten years;
8. It has sufficient equipment resources (e.g., hardware, software) and communication facilities (e.g., postal street address, telephone, facsimile, e-mail, ftp and web site);
9. If it operates with a fee structure, this structure shall be for the purpose of cost recovery, and shall be approved as part of the appointment;
10. It shall require no financial contribution from DMP and its members;
11. It shall not become a Registration Agency.
The following procedure shall be invoked whenever DMP identifies the need for a Registration Authority:
1. The General Assembly will draft a Call for Participation;
2. The Board of Directors shall issue the Call for Participation by the time indicated by the General Assembly;
a. Prospective Registration Authorities shall submit an application indicating how the requirements of the Call for Participation are fulfilled;
b. The time the Registration Authority will start assigning subordinate namespaces to Registration Agencies;
c. The criteria for accepting or rejecting applications for Registration Agencies to be applied in a strictly non-discriminatory fashion;
d. The level of administrative fees which must be based on cost recovery principles;
3. The DMP Board shall
a. Assess the applications;
b. Select one;
c. Draft the text of the agreement between DMP and the selected applicant;
d. Achieve agreement with the selected applicant;
e. Submit its conclusions to the General Assembly;
4. The General Assembly will vote on the proposal of the Board of Directors;
5. The DMP Board shall inform the successful applicant of the result within 180 days of the deadline indicated in the Call for Participation.
Once appointed the Registration Authority shall:
1. Obtain, where required, a namespace and use the namespace as a prefix for identifiers in accordance with the relevant part of Chapter 3 [5]
2. Handle all business in English;
3. Publish all relevant material on the Registration Authority’s web site. This will include:
a. How to apply for a Registration Agency,
b. The level of fees,
c. The application approval criteria,
d. Documents describing practices and tutorials
e. Etc.;
4. Receive applications from prospective Registration Agencies;
5. Review applications in accordance with the application approval criteria;
6. If the criteria are met, communicate to the applicant within 30 days of receipt of the application the assigned subordinate name spaces;
7. If criteria are not met, inform the applicant within 30 days of receipt of the application;
8. Deal with resubmissions of a previously rejected application as a new application;
9. Adhere to the procedure for appeals;
10. Process updates of a previously registered subordinate namespace as a new application;
11. Maintain an accurate register of the assigned subordinate name spaces;
12. Publish the register of the assigned subordinate name spaces on the Registration Authority’s web site;
13. Keep a record of all request forms, granted and denied ;
14. Safeguard any confidential information;
15. Handle all aspects of the registration process in accordance with good business practice;
16. Collect complaints about performance of Registration Agencies and act accordingly,including revoking the status of Registration Agencies;
17. Report periodically to the DMP Board of Directors.
1. Apply using the forms supplied and following the procedures adopted by the Registration Authority;
2. Include a description of the purpose of the subordinate name space, and the required technical details as specified in the application form;
3. Provide contact information;
4. Agree to set up an operational Registration Agency within 180 days from the day of receipt of acceptance of the request;
5. Act on Registration Agencies failing to be operational within the prescribed time, including revoke the authorization;
6. Maintain a permanent record of the application forms and the notifications received from the Registration Authority;
7. Keep a record of all request forms, granted and denied.
DRM Tool Body Registration Agencies shall Assign Identifiers for the following:
|
DRM Tool Bodies |
Identifiers that uniquely Identify executable computer code that implements a DRM Tool |
|
Control Point |
Identifiers that uniquely Identify a point in a Device under the control of a DRM Tool |
|
DRM Tool Instantiation_API_ID |
Identifiers that uniquely Identify the API for instantiation of the DRM Tool. |
|
DRM Tool Messaging_API_ID |
Identifiers that uniquely Identify the API to pass messages to/from a DRM Tool |
See Chapter 3 for details.
The responsibilities of the DMP Board of Directors regarding Certification and Registration Authorities shall be:
1. Publish Calls for Participation;
2. Receive applications of organizations seeking to become Certification or Registration Authorities;
3. Select and propose Certification and Registration Authorities to the General Assembly;
4. Communicate decision of appointment or otherwise to candidate Certification or Registration Authorities;
5. Review and dispose of all appeals by organizations seeking to become Certification or Registration Agencies within 120 days of receipt of the appeal by the DMP secretariat;
6. Inform, in writing, the appealing organization and the Certification or Registration Authority of the disposition of the appeal;
7. Review the annual reports of the Certification and Registration Authorities’ summary of activities;
8. Report to the DMP General Assembly any information concerning the status of operation of the Certification and Registration Authority and the general status of Certification and Registration Agencies.
This document collects the definitions of key terms used throughout DMP Approved Documents. When terms are used with upper case in other DMP Approved Documents they have the meaning defined here, unless another meaning is explicitly declared. When the terms are used in lower case they do not necessarily imply that the meaning is included in the upper case definitions provided here. For example, "copy" does not necessarily include "Copy", and "use" does not have to include "Use".
|
Access (Content) |
The Function executed by a Device when making Content available so that the Device can execute Functions on it |
|
Adapt (Content) |
The Function of restricting the attributes of a Content Item, e.g. by reducing the Permissions in a License |
|
Adapt (Resource) |
The Function of modifying the attributes of a Resource, such as converting 5-channel music to 2-channel music, or sub-sampling a high-definition video to a standard-definition video, etc. |
|
Adaptation |
A Work that is derived from another Work |
|
Adaptor |
A User who produces an Adaptation |
|
Annotate (Resource) |
The Function of a User who 1. References a specific Fragment of a Resource and 2. Links the reference to another Fragment Created by the User |
|
Approved Document |
Any of the following types of DMP documents 1. Recommended Action 2. Recommended Practice 3. Technical Reference 4. Technical Specification |
|
Assign (Identifier) |
The Function of allotting an Identifier to an Entity |
|
Authenticate |
The Function of proving the identity of an Entity to a Device or User |
|
Backup |
The Function that supports 1. Duplication of Content 2. Duplication of Rights Expression in case this is a Stateless Rights Expression, and 3. Moving of the duplicate(s) to another location that is not a Device |
|
Binarised XML |
XML data converted to binary form in a lossless fashion |
|
Broadcast |
The Function that Delivers Content to a Device in a point-to-multipoint modality |
|
Bundle |
The Function of binding two sets of Data |
|
Certification |
The process whereby a Certification Agency issues a Certificate |
|
Certificate |
A token attesting that an Entity has passed the tests of a Certification Agency |
|
Certification Agency |
A User appointed by a Certification Authority to Certify Entities |
|
Certification Authority |
A User appointing and overseeing Certification Agencies |
|
Clear-text |
Data that can be Processed as is by a Device |
|
Condition |
The terms and obligations under which Permissions in a License can be exercised |
|
Conformance |
The status of a Content or Device Entity that has been judged to positively meet the requirements of a Technical Specification |
|
Content |
A DMP-defined structure of Content Elements |
|
Content Element |
Any of the following Data types: Resource, Metadata, Content, License, DRM Information, DRM Tool, DRM Tool Pack and Use Data |
|
Content Entity |
Any of the following Entities: Content and Content Elements |
|
Content Interoperability |
The capability of a Content Item to be Used by a Device in the way expected by the Device(s) from which the Content has originated. DMP Governed Content is Interoperable with DMP Devices |
|
Content Item |
A particular instance of Content |
|
Content Provider |
A User who Delivers Content to another User |
|
Control Point |
A point in a Device under the control of a DRM Tool, e.g. in a Resource decoding pipeline |
| Copy |
The Function by which Device A Stores Content in Device B, preserving the original Content in Device A |
|
Creator |
A User who generates a Work and makes its first Manifestation, also referred to as author |
|
Credentials |
Information describing the security attributes of an Entity |
|
Data |
Information converted to digital form |
|
Decrypt |
The Function of bringing previously unprocessable Data to a processable form using a Key |
|
Delete |
The Function of erasing a Content Item Stored on a Device |
|
Deliver |
The Function of transferring Content between any two or more Devices using a transport mechanism (file download, broadcast transport protocol or network streaming protocol) |
|
Delivery System |
A system designed to enable Delivery of Content between Devices |
|
Descriptor |
Data that describe the properties of a Resource |
|
Device |
A combination of hardware and software or just an instance of software that allows a User to execute Functions |
|
Device Entity |
Any of the following Entities: Device, User and Domain |
|
Device Information |
Data characterising a Device, e.g. CPU, OS etc. |
|
Device Interoperability |
The capability of a device to exchange data with other devices across standard interfaces, using standard protocols, and to be processed by the devices exchanging the data in a predictable fashion. DMP Devices are Interoperable |
|
DMP Content Broadcast (DCB) |
DMP Content Information Packaged for Delivery as Broadcast |
|
DMP Content File (DCF) |
DMP Content Information Packaged for Delivery as File |
|
DMP Content Information (DCI) |
The digital Representation of Content |
|
DMP Content Broadcast (DCS) |
DMP Content Information Packaged for Delivery as Streaming |
|
DMP DRM System |
A DRM System that realizes Interoperability. A DMP DRM system implementation allows Devices to Use Content from another DMP DRM System implementation even though the latter may use different technologies |
|
DMP Information |
Data used to describe Content and Content Elements not related to Governance |
|
Domain |
A set of Devices sharing some common attributes, such as personal or group ownership that is appropriate for various business models |
|
Domain Context Information |
Data characterising a Domain that is Stored in a Device for the purpose of Managing and Licensing Use of Content in Domains |
|
Domain Information |
Data characterising a Domain that is Stored in a Domain Management Device, e.g. the list of Devices, Users, Domain Key etc. |
|
Domain Management |
The set of Functions that relate to the 1. creation, renewal and deletion of Domains 2. joining, renewing and leaving a Domain by Devices and Users 3. Licensing of Content to Domains |
|
DRM Information |
Data that describe Governance of Content |
|
DRM Message |
A message exchanged between DRM Tool Bodies, DRM Processor and Devices |
|
DRM Processor |
A module within a Device Certified by a Certification Agency as being Trusted for executing DRM-related Functions |
| DRM system |
A system of Information Technology components and services which strives to distribute and control content and its rights. This operates in an environment driven by law, policies and business models. |
| DRM Tool |
An algorithm which implements one or more DRM Functions |
|
DRM Tool Agent |
Executable code that instantiates, initialises, Authenticates, and supervises any operation performed between DRM Tools within a DRM Tool Group |
| DRM Tool Body |
An executable computer code that implements a DRM Tool |
|
DRM Tool Group |
A combination of DRM Tools |
|
DRM Tool Pack |
Executable code that comprises a DRM Tool Group and its DRM Tool Agent |
|
Edit |
The Function of Modifying a Content Item, such as by adding, deleting, or altering pieces of Content in a Content Item |
|
Encrypt |
The Function of making Data unprocessable unless a Key is available to bring the Data to a processable form |
|
End-User |
A User in a Value-Chain who ultimately consumes Content |
|
Entity |
Any of the following: Intellectual Property Entities, Content Entities and Device Entities |
|
Environment |
A Device or set of interconnected Devices. An Environment can interact with other Environments using Protocols and can also interact with the outside of the Environment through appropriate interfaces using protocols |
|
Experience |
The End-User’s emotional and economic result of Using Content |
|
Export |
The Function of making available a Content Item to a non-DMP DRM system |
|
File |
Content Entity which is Stored on a Device |
|
Fixate |
The Function of Storing a Manifestation of a Work |
|
Footprint |
The geographic area, typically delimited by political boundaries, intended to be covered by a broadcast signal |
|
Fragment |
A time-marked portion within a Resource |
|
Function |
Any action implemented with DMP-specified technologies |
|
Governed Content |
A Content Item that is at least Identified |
|
Grant |
The Function of a User asserting to another User the Permission to Use a Content Item under specified Conditions |
|
Identify |
The Function of Assigning a unique signifier that establishes the identity of Entities |
|
Identifier |
The unique signifier Assigned by Identification |
|
Import |
The Function of Accessing a governed content item from a non-DMP DRM system |
|
Instance |
An object or event which is an example of an Identified Manifestation (e.g. a File) |
|
Instantiator |
A User who produces an Instance |
|
Integrity |
The state of a Content Item or a Device when the information contained has not been altered or corrupted |
|
Intellectual Property (IP) |
Any identifiable product of the mind attributable to any person(s) or legal entitie(s) that can be represented or communicated physically and protectable by copyright or similar laws. |
|
Interface |
The Data interchange point between 1. Devices 2. Devices and devices 3. Devices and Users 4. Devices and Delivery Systems |
|
Interoperability |
The ability of a User to technically execute Functions through Interfaces and Protocols, based on open specifications, with predictable results |
|
IP Entities |
Types of IP Represented as Content: Work, Adaptation, Manifestation, Instance |
|
Jurisdiction |
The geographic area over which a given set of laws is enforced |
|
Key |
Data used by a cryptographic method to make Clear-text Data Encrypted or, conversely, Encrypted Data Clear-text |
|
Key Management |
The set of processes employed to create, authenticate, issue, distribute, store, recover, and revoke Keys |
|
Lend |
The Function of Moving a Content Item Stored in one Environment for temporary Use into another Environment |
|
License |
The Function by which a User Grants Permissions to Use a Content Entity |
|
Licence |
Data Representing the Permissions to a Content Entity under given Conditions expressed by Rights Expressions that are Granted by one User to another User |
|
Licensee |
The User to whom another User Grants Rights |
|
Licensor |
The User who Grants Rights to another User |
|
Link |
The establishment of a relationship between two Fragments |
|
Manifestation |
An object or event which is an expression of a Work |
|
Metadata |
Data that describe Content and Content Elements |
| Move |
The Function by which Device A Stores Content in Device B deleting the original Content in Device A |
|
Package (Content) |
The Function of Processing Content for the purpose of Delivering it between Devices |
|
Parse |
The Function of looking for useful Data in Data |
|
Pause |
The Function of suspending the Rendering of a Resource by a User |
|
Performer |
A type of Instantiator |
|
Permission |
The ability to execute Functions on a Content Item |
|
Platform |
The technology infrastructure that enables Users to Use Content |
|
Play |
The Function of Rendering a Resource |
|
Policy |
A principle accepted by a group of Users |
|
Primitive Function |
A Function typically embedded in a Function or more than one Function |
|
Principal |
The User to whom Permissions are Granted |
|
Private Key |
A Key used to Encrypt Data that only the corresponding Public Key can Decrypt or Decrypt data Encrypted by the corresponding Public Key |
|
Process |
The Function of transforming Data executed by a Device |
|
Protocol |
A description of Data formats and rules a Device must follow to exchange those Data with other Devices |
|
Public Key |
A Key used to Encrypt Data that only the corresponding Private Key can Decrypt or Decrypt data Encrypted by the corresponding Private Key |
|
Publish |
The Function of making Content available to other Users |
|
Publisher |
A User who selects Content and makes it available to other Users |
|
Quote |
The Function of referencing or extracting a Content Item from another Content Item |
|
Rate (Content) |
The Function of measuring the Use of a Content Item by a set of Users |
|
Register |
The Function of Assigning an Identifier to an Entity and keeping a record of it |
|
Registered Content |
Content to which an Identifier has been Assigned by a Registration Agency |
|
Registration Agency |
A User appointed by a Registration Authority to Assign Identifiers |
| Registration Authority |
A User managing Identifier name spaces, and appointing and overseeing Registration Agencies |
|
Release |
The Function of making a Content Item available to other Users, e.g. at commercial terms |
|
Render |
The Function of converting a Resource to a human-perceivable form |
|
Rent |
The Function of Moving a Content Item that was Used in one Environment for Use in another Environment in an exchange based on a Value-Expression for a given period of time |
|
Represent |
The Function of expressing information in a form that can be processed by a Device |
|
Resource |
Data, whose Representation is not specified by DMP (e.g. an MP3 file or an executable code), that can be Processed by a Device |
|
Resource Type |
A Resource such as video, audio, audio-visual, text, synthetic audio, 2D/3D graphics etc. |
|
Restore |
The Function of Moving Content and the associated Stateless Rights Expression, if any, to the Device from which Backup had been performed |
|
Retailer |
A User who sells or Licenses Content to an End-User |
|
Revoke |
The Function of removing the ability of a Device to Use Content or recalling a Content Item |
|
Rewind |
The Function of restarting the Rendering of a Resource |
|
Right |
A consequence of ownership of Intellectual Property by legal prescription |
|
Rights Data |
The semantics of Functions that relate to Permissions e.g. Rights Data of Copy is the semantic of Copy in a Device |
|
Rights Expression |
Data that can be Processed to obtain the list of Functions that can be performed on a Content Item and the Conditions under which they can be performed |
|
Rights Holder |
A User who has Rights to License Content |
|
Schema |
A description of the structure and rules an XML document must satisfy |
|
Secure Authenticated Channel (SAC) |
A Delivery System that is secure and Encrypted |
|
Service |
A set of Functions executed by a User on Content that is valuable for another User or Users |
|
Signature |
Data Encrypted with a Private Key and appended to other Data typically for the purpose of guaranteeing the Integrity of the Data |
|
Stateless Rights Expression |
A Rights Expression that does not include any Use counts or overall Use duration etc. |
|
Store |
The Function by which Device A Delivers Content to Device B for the purpose of retaining it in Device B for Use at a different point in time |
|
Stream |
The Function of Delivering Content to a Device where the transferred Content is processed for Rendering only and not Stored |
|
Super Distribution |
A mechanism that 1. Allows an End-User to distribute Content to recipient End-Users or Devices through potentially insecure delivery systems and 2. Enables the End-Users of the recipient Devices to obtain a Rights Expression for the said Content |
|
Synchronise |
The Function of incorporating pre-existing musical or literary musical Work into a determined audio-visual Work (e.g. publicity message) |
|
Syndicate |
The Function of Licensing Works or Content for Publication or distribution by more than one Publisher or distributor, typically simultaneously |
|
Technical Specification |
A type of Approved Document containing normative clauses. Its use in Devices, Contents and Services may require business agreements between relevant Users. Such business agreements are outside of DMP |
|
Territory |
The geographical area under the Jurisdiction of a sovereign state |
|
Tool |
A technology capable of implementing a Function |
|
Trick Modes |
Any of the following Functions, or Functions of a similar type, performed on a Content Item during Rendering by a User: 1. Fast forward 2. Slow motion 3. Freeze frame 4. Fast reverse 5. Slow reverse |
|
Trust |
A state where Entities enable Users to execute Functions on Governed Content |
|
Trust Management |
The set of mechanisms by which Trust can be established, preserved and severed |
|
Update (Content) |
The Function of changing a Content Item in a Device |
|
Use |
The execution of a Function on a Content Item by a Device |
|
Use Case |
A description of a specific case involving the establishment and operation of a Value-Chain that can be implemented using the Tools specified in Approved Documents |
|
Use Context |
The association of a Content Item with other Content Items and the circumstances of Use |
|
Use Data |
Data documenting the Functions performed by a Device Entity on a Content Item and the associated context |
|
User |
Any person or legal entity in a Value-Chain connecting (and including) Creator and End-User. For the purpose of the current phase of Approved Documents a User is represented by a device or by a User Identity on the Device (e.g. username/password). |
|
User Data |
Data related to a User |
|
User Identity |
Data that establish the distinct personality of a person or a legal entity |
|
Value-Chain |
A group of interacting Users, connecting (and including) Creators to End-Users |
|
Value-Expression |
The equating of any two groupings of Content Items and/or Services |
|
Verify |
The Function of assessing the Integrity of 1. A Content Item 2. A Device |
|
Withdraw |
The Function of a Creator that discontinues any and all Licenses to Use one or more of his Works |
|
Work |
A creation that retains intellectual or artistic attributes independently of its Manifestations |
1. Digital Media Project; Chapter 1 – Technical Reference: Use Cases; 2005/04
2. Digital Media Project; Chapter 2 – Technical Reference: Architecture; 2005/04
3. Digital Media Project; Chapter 3 – Technical Specification: Interoperable DRM Platform; 2005/04
4. Digital Media Project; Chapter 4 – Technical Specification: Value-Chains; 2005/04
5. Digital Media Project; Chapter 5 – Technical Reference: Registration Authorities; 2005/04
6. Digital Media Project; Chapter 6 – Technical Reference: Terminology; 2005/04
7. Digital Media Project; Chapter 7 – Technical Specification: Reference Software, 2006/01
8. Digital Media Project; Chapter 8 – Recommended Practice: End-to-End Conformance, 2006/01
10. The Digital Media Manifesto, http://www.dmpf.org/manifesto/, 2003/09/30
15. ISO/IEC 15938-1, Information technology – Multimedia content description interface (MPEG-7) – Part 1: Systems
17. ISO/IEC 15938-5, Information technology – Multimedia content description interface (MPEG-7) – Part 5: Multimedia Description Schemes
27. ISO/IEC 21000-9, Information technology – Multimedia framework (MPEG-21) – Part 9: File format
29. ISO/IEC 23001-1, Information technology – MPEG Systems Technologies (MPEG-B) – Part 1: Binary MPEG format for XML
32. ETSI TS 102 822-3-2 v1.3.1 (2006-01); Broadcast and On-line Services: Search, select, and rightful use of content on personal storage systems ("TV-Anytime"); Part 3: Metadata; Sub-part 2: System aspects in a uni-directional environment
34. IETF RFC 1737, K. Sollins and L. Masinter, Functional Requirements for Uniform Resource Names, December 1994.
36. IETF RFC 2141 R. Moats, URN Syntax, May 1997.
38. IETF RFC 2459, R. Housley, W. Ford, W. Polk, D. Solo, " Internet X.509 Public Key Infrastructure Certificate and CRL Profile", January 1999.
39. “XML-Encryption Syntax and Processing” - W3C Recommendation 10 December 2002. http://www.w3.org/TR/xmlenc-core/.
|
Acronym |
Meaning |
|
AD |
Approved Document |
|
BBL |
Bitstream Binding Language |
|
CCD |
Content Creation Device |
|
CID |
Content Identification Device |
|
CPD |
Content Provider Device |
|
DCB |
DMP Content Broadcast |
|
DCF |
DMP Content File |
|
DCI |
DMP Content Information |
|
DCS |
DMP Content Streaming |
|
DeID |
Device Identification Device |
|
DIS |
Digital Item Streaming |
|
DoID |
Domain Identification Device |
|
DMD |
Domain Management Device |
|
DPD |
DRM Tool Provider Device |
|
DRM |
Digital Rights Management |
|
IDP |
Interoperable DRM Platform |
|
GUI |
Graphical User Interface |
|
IP |
Intellectual Property |
|
IP |
Internet Protocol |
|
LID |
License Identification Device |
|
LLAP |
Local License Access Protocol |
|
LPD |
License Provider Device |
|
PAV |
Portable Audio and Video (Device) |
|
PKI |
Public Key Infrastructure |
|
PXD |
PAV eXternal Device |
|
RCAP |
Remote Content Access Protocol |
|
REL |
Rights Expression Language |
|
RLAP |
Remote License Access Protocol |
|
RTP |
Real Time Protocol |
|
SAC |
Secure Authenticated Channel |
|
SAV |
Stationary Audio and Video (Device) |
|
TPD |
DRM Tool Provider Device |
|
TRU |
Traditional Right and Usage |
|
TS |
Transport Stream (MPEG-2) |
|
UDP |
User Datagram Protocol |
|
URI |
Universal Resource Identifier |
|
XML |
eXtensible Markup Language |
Annex A – Introduction to some referenced standards
A.1MPEG-21Digital Item Declaration
The MPEG-21 Digital Item Declaration (DID) describes a set of abstract terms and concepts to form a useful model for defining Digital Items.
The semantic meanings of the principal elements of the Digital Item Declaration Model are:
Container
A container is a structure that allows items and/or containers to be grouped. These groupings of items and/or containers can be used to form logical packages (for transport or exchange) or logical shelves (for organization). Descriptors allow for the “labeling” of containers with information that is appropriate for the purpose of the grouping (e.g. delivery instructions for a package, or category information for a shelf).
Item
An item is a grouping of sub-items and/or components that are bound to relevant descriptors. Descriptors contain information about the item, as a representation of a work. Items may contain choices, which allow them to be customized or configured. Items may be conditional (on predicates asserted by selections defined in the choices). An item that contains no sub-items can be considered an entity -- a logically indivisible work. An item that does contain sub-items can be considered a compilation -- a work composed of potentially independent sub-parts. Items may also contain annotations to their sub-parts.
Component
A component is the binding of a resource to all of its relevant descriptors. These descriptors are information related to all or part of the specific resource instance. Such descriptors will typically contain control or structural information about the resource (such as bit rate, character set, start points or encryption information) but not information describing the “content” within.
Anchor
An anchor binds descriptors to a fragment, which corresponds to a specific location or range within a resource.
Descriptor
A descriptor associates information with the enclosing element. This information may be a component (such as a thumbnail of an image, or a text component), or a textual statement.
Resource
A resource is an individually identifiable asset such as a video or audio clip, an image, or a textual asset. A resource may also potentially be a physical object. All resources must be locatable via an unambiguous address.
Statement
A statement is a literal textual value that contains information, but not an asset. Examples of likely statements include descriptive, control, revision tracking or identifying information.
MPEG-21 IPMP Components [23] defines:
· A language named IPMP Digital Item Declaration Language (IPMP DIDL), which provides for a protected Representation of the DID Model, allowing DID hierarchy which is encrypted, digitally signed or otherwise Governed to be included in a DID document in a schematically valid manner.
· The IPMPInfoDescriptor schema, defining structures for expressing Governance information related to a single resource within the Content Item, including all required tools, mechanisms and Licenses.
· The IPMPGeneralInfoDescriptor schema, defining structures for expressing general Governance information related to the whole Content Item, including all required tools, mechanisms and Licenses.
According to IPMP DIDL, for each entity in the DID Model, an IPMP DIDL element is provided as a protected Representation of that entity. dmp2_didl and IPMP DIDL element are equally interchangeable within a Digital Item; an IPMP DIDL element replaces a dmp2_didl element whenever that element requires protection. For instance, as ISO/IEC 21000-2 DID defines the element <didl:Item>, ISO/IEC 21000-4 defines the equivalent <ipmpdidl:Item> and so on for every element in DIDL.
Each of the IPMP DIDL elements contains identical structure.
(i) a maximum of one ipmpdidl:Identifier element, into which an appropriate identifier for the protected Representation may be placed
(ii) one ipmpdidl:Info element, into which information about the governance is placed
(iii) one ipmpdidl:Contents element, into which the Governed Content is placed
Below is an example of a Resource (an mp3 file) whose Governance is expressed according to the IPMP DIDL model.
<did:Component>
<!--Asset protected, referenced externally-->
<did:Resource mimeType="application/ipmp">
<ipmpdidl:ProtectedAsset mimeType="video/mpeg">
<ipmpdidl:Identifier>...</ipmpdidl:Identifier>
<ipmpdidl:Info>...</ipmpdidl:Info>
<ipmpdidl:Contents ref="funky1.mp3" mimeType="audio/mpeg"/>
</ipmpdidl:ProtectedAsset>
</did:Resource>
</did:Component>
Figure 166: IPMP information for a governed resource
In this case, the Resource conveyed in element <ipmpdidl:Contents> (although a reference to it is given rather that its inclusion inline) is supposed to be obfuscated or protected in some form, and the necessary information for gaining access to it in clear form is specified in the <ipmp:IPMPInfoDescriptor> element which is child of <ipmpdidl:Info>.
The root element for IPMP Information Descriptor schema is “IPMPInfoDescriptor”, which may contain information related to the algorithms that protect the associated Content, to the licenses that govern them, and an associated digital signature, which is specified in the three elements below:
· ipmp:Tool - The algorithms performing (one or more) IPMP functions such as Authentication, Decryption, watermarking, etc. IPMP Tools can be single modules or even a complete DRM system. This element specifies the information required to gain access to the protected Resource part of the Content Item by conveying algorithm description and configuration settings.
· ipmp:RightsDescriptor – This element contains information about the License that Governs the Resource part of the DMP Content. The License can be contained within this element, or a reference to it (or to a License service) is provided instead. If the License is encrypted, an IPMPInfoDescriptor containing information about how to access it is provided as a direct child of ipmp:RightsDescriptor.
· dsig:Signature - The dsig:Signature element contains the signature for the IPMPInfoDescriptor element.
Annex B provides the schema for the DMP profile of IPMPInfoDescriptor.
A.2.3 The IPMPGeneralInfoDescriptor
The IPMPGeneralInfoDescriptor element is used to convey general Governance information relating to the complete Content Item, and its use is mandatory whenever one or more IPMPInfoDescriptor elements are present in the DCI. In other words, a DCI containing one or more Governed Resources shall use one and only one IPMPGeneralInfoDescriptor to convey general Governance information. This element contains the following elements:
· The ipmp:ToolList element, the list of all the IPMP Tools required to access all the Governed objects part of the DMP Content.
· The ipmp:LicenseCollection element, which contains a collection of references to Licenses for all Governed parts of theDMP Content. This element is used with the purpose of giving the “big picture” on the governed parts of the file in one point.
· The (optional) dsig:Signature element, which contains the signature for the present ipmp:IPMPGeneralInfoDescriptor.
A.3MPEG-21 Rights Expression Language
The MPEG-21 REL comprises of the base and DACX (Dissemination And Capture eXtensions) profile extensions to represent rights expressions in a plurality of domains: mobile, downloadable, physical media or broadcast of digital content.
These permissions to Use Content are represented in a ‘License’, which is composed of two main parts: the ‘Issuer’, the User granting a Right to another User, and the ‘Grant’, as shown in the Figure below. The Grant specifies a ‘Resource’, the target content to be controlled by the License, a ‘Principal’, the identifier or certificate of the entity which can be a device, a domain or user, a ‘Right’ to describe what kind of Use is permitted on the Resource, and lastly a set of ‘Condition’ to confine the usage of the resource. The following diagram illustrates the seven basic MPEG REL elements used to encapsulate these information and their inter-relationships.

Figure 167: Overview of an REL License
MPEG-4 is a standard providing the technological elements allowing production, distribution and access to digital content in a wide range of scenarios and applications: from digital cinema to the wireless environment, from the WWW world to the graphical applications, enabling a high level interaction between users and content, subject to the rules specified by its rights holder.
The MPEG-2 and MPEG-4 IPMP eXtension (IPMP-X) specification [12, 14] defines the IPMP Tools as modules that perform (one or more) IPMP functions such as authentication, decryption, watermarking, etc. An MPEG-4 stream may be protected by one or more IPMP Tools, which control the access to it: in case of an audio/visual stream, for example, being rendered only by authorized users. A User, during the authoring phase, can decide the level of access the content should have prior the distribution phase take place, i.e. the type and location of IPMP Tools which will govern the content access.
An Identifier long 128-bits is assigned by a Registration Authority identifies each IPMP Tool.
Instantiation of IPMP Tools is performed by a conceptual entity within the Terminal: the Tool Manager. When this action is performed, to each instance of IPMP Tool is assigned a unique identifier, which will be used to distinguish such instance among the other Tools. In order to support multi-platform implementation, a Registration Authority is assigned to record the instantiation API and the Messaging API adopted by every specific platform.
An IPMP Tool may be instantiated in a specific point of the decoding chain of an Elementary stream. Such points named Control Points which are normatively defined in [14, 12] with hexadecimal values. For example, in case on an Audio/Visual Stream, the possible Control Points are defined:
1. between the MPEG-4 Decoding Buffer and the Decoders
2. between the Decoders and the Compositor Buffer
3. between the latter and the Compositor.
To facilitate the cooperation of multiple Tools in the protection and governance of content, a message-based architecture is provided. Once instantiated, an IPMP Tool may communicate with the Terminal or other Tools by means of the Message Router, another conceptual entity within the Terminal, which allows the physical routing of information among two entities (any pair of IPMP Tools or between a Tool and the Terminal). The Standard defines a set of messages, which every IPMP Tool and the Terminal must be able to generate, and interpreter in order to be interoperable with the other components of the framework.
By means of normative messages, every IPMP Tool at any point may require to mutually authenticate with other components. This functionality grants IPMP Tools to operate in a secure environment, enabling the detection of malicious components. After mutual authentication has taken place, encrypted messages may be exchanged among two parties upon agreement on encryption/decryption key
The information included in this overview, including informative example fragments, is taken from, or based closely upon the text in the published TV-Anytime documents SP002V13 ‘System Description’ and SP003v13 Part A ‘Metadata’ also available as ETSI documents TS02 822- 2 Systems and TS 02 822-3-1 Part 3: Metadata. The text here is meant as an informative introductory overview and the reader is referred to these specification documents for the fuller authoritative text.
The TV-Anytime metadata system allows the consumer to find, navigate and manage content from a variety of internal and external sources including, for example, enhanced broadcast, interactive TV, Internet and local storage.
There is a need to associate metadata with content to facilitate human and automated searching for content of interest. Such metadata includes descriptive elements and attractors to aid the search process as well as elements essential to the acquisition, capture and presentation processes; formats, duration, etc. Many of these descriptive elements can be found in electronic programme guides and Web pages.
The TV-Anytime Phase 1 content description metadata is general information about an audio video resource that does not change regardless of how the content is published or broadcast. It includes information such as the Resource title, textual description, and genre. Typically, the audio video Resource creator assigns content description metadata before publication.
A.5.1 TV-Anytime Content Description Metadata
The DMP Metadata used to describe the Audio–Video Resources is taken from the TV-Anytime Content Description and includes:
1. Descriptions of audio –visual resources e.g., television programmes. These descriptions are held in the ProgramInformationTable. They include things like the title of the programme, a synopsis, the genres it falls under and a list of keywords that can be used to match a search. The following example is a ProgramInformationTable containing a single ProgramInformation element and is taken from [31]
]
<ProgramInformationTable>
<ProgramInformation programId="crid://hbc.com/foxes/episode11">
<BasicDescription>
<Title type="main">
The one where Fox jumps in the Potomac
</Title>
<Synopsis>
Fox goes to Washington and jumps in the Potomac
</Synopsis>
<Keyword>Fox</Keyword>
<Keyword>Washington</Keyword>
<Keyword>Potomac</Keyword>
<Genre href="urn:tva:metadata:cs:FormatCS:3.5.7.3" type="main"/>
</BasicDescription>
<OtherIdentifier>guid://e41a-b456-a876-3e49</OtherIdentifier>
<OtherIdentifier>urn:mpeg:mpeg21:diid:v-isan:29ef-94ba-53c4-3e7a-4ce8-e-5a45-98ec-f</OtherIdentifier>
<MemberOf crid = "crid://hbc.com/foxes/all" index = "11" xsi:type = "EpisodeOfType"/>
</ProgramInformation>
</ProgramInformationTable>
Figure 168: The dmp2rm:ProgramInformationTable element
2. Descriptions of groups of related items of content e.g., all episodes of "Foxes in the Wild". These descriptions are held in the GroupInformationTable. The following example is a GroupInformationTable containing a single ProgramInformation element. The example is not exhaustive. Again from SP002 [31]
<ProgramDescription>
<GroupInformationTable>
<GroupInformation groupId="crid://hbc.com/foxes/all">
<GroupType xsi:type="ProgramGroupTypeType" value="series"/>
<BasicDescription>
<Title type="main">All episodes of Foxes ever</Title>
<Synopsis>More Foxes than you can handle</Synopsis>
<Keyword>Foxes</Keyword>
<Keyword>all</Keyword>
<Genre href="urn:tva:metadata:cs:FormatCS:3.5.7" type="main"/>
</BasicDescription>
<MemberOf xsi:type="MemberOfType" crid="crid://hbc.com/comedy/all"/>
</GroupInformation>
</GroupInformationTable>
</ProgramDescription>
Figure 169: The dmp2rm:ProgramDescription element
3. A mapping of cast members to unique identifiers. The identifiers can be used in other metadata instances making searching easier. This mapping is held in the CreditsInformationTable, which provides this brief reference that can be used to key into the more comprehensive role mappings provided in the CreditsList that forms a part of the BasicDescription Schema. An illustrative example is given below.
<CreditsInformationTable>
<PersonName personNameId="id1">
<mpeg7:GivenName><![CDATA[Ron]]></mpeg7:GivenName>
<mpeg7:FamilyName><![CDATA[O'Neal]]></mpeg7:FamilyName>
</PersonName>
</CreditsInformationTable>
Figure 170: The dmp2rm:CreditsInformationTable element
A.5.2 Documents related through the CRID
Parts of a TV-Anytime document are related through the CRID. Metadata may be distributed across many TV-Anytime documents, but it is always possible to relate appropriate pieces through CRIDs. Note that the TV-Anytime CRID is an aid for relating the provision of Content by Service Providers with data aggregators, commentators or critics through listings or Electronic Programme Guides (EPGs) using TV-Anytime programme metadata. The Crid is not an authoritative registered Identifier for binding Content to its Content Creator, Rights owner or End User. For this functionality the DMP Content ID is specified in Section 3.1 ‘Identify Content’ and associated Registration Authorities described in the accompanying DMP Specification Approved Document Number 5.
Content Identifiers other than the CRID can be placed in the TV-Anytime metadata under the <OtherIdentifier> tag of the ProgramDescription as shown in the example above.
Programmes can belong to groups, and groups can belong to other groups. Linking programme descriptions with group descriptions using CRIDs reflects this relationship in the metadata. The following explanation is from SP002 [31]
ProgramInformation elements are related to GroupInformation elements through the memberOf or episodeOf elements within the ProgramInformationTable or GroupInformationTable. I.e., the memberOf element contains a group CRID e.g., Foxes Episode 11 is a member of the Foxes group, which is a group that aggregates all episodes of Foxes. This supports the feature where a viewer or End User can say "I like this. What is it? Are there more programmes like this?" By navigating up to the group the viewer may discover that the group is a member of another group and so forth. The higher one goes in the tree the more general the concepts become, i.e., moving from a specific episode of Foxes, to all episodes of Foxes, to all comedy shows, to all shows.
Although out of scope of the DMP, the TV-Anytime specification specifies a protocol for using the CRID to resolve to the locations of the associated DCI, whether these be Internet server or broadcast schedule based. This is a powerful feature of TV-Anytime which may prove useful to service providers serving DMP DCI structured Content over the Internet.
A metadata schema is the formal definition of the structure and type of metadata. TV‑Anytime uses the MPEG-7 Description Definition Language (DDL) [16] to describe metadata structure as well as the XML encoding of metadata. DDL is based on XML schema as recommended by W3C in [41]. TV‑Anytime uses several MPEG-7 datatypes and MPEG-7 Classification Schemes.
A.6MPEG-21 Digital Item Streaming
Digital Item Streaming (DIS) is part 18 of the MPEG-21 Standard. DIS defines the Bitstream Binding Language, designed to enable the streaming of XML documents in general and Digital Items in particular. The Bitstream Binding Langauge also allows the streaming of binary resources part of a Digital Item, by employing elements from part 7 of ISO/IEC 21000 which specifies the structure of the binary resources which are to be streamed along with their declaration. Fragments of a binary resource are specified using W3C XPATH references.
The Bitstream Binding Language (BBL) enables the description of how a Digital Item and possibly binary content part of it can be fragmented and inserted (bound) into one of several transport streams, being the language agnostic to the format of the data it is able to process, as well as the type of transport streams to be output. Moreover, BBL provides an abstraction layer between a stored Digital Item and its representation in a specific channel. This enables different bitstreams to be created from a single DI to provide different views/subsets of the DI, different renderings of the content and different bitstream formats.
As a result, different parts of a DI can be sent over separate channels.
In BBL, each channel to be used is associated with a Handler. A BBL processor will provide in a handler the functionality required for operating the transport channel with which it is associated. BBL is designed for maximum reusability, so that the binding of resources of type Y to output streams of type O can be specified once, and referenced by all DIs using Y and O. In the same way, when metadata is presented in a standard format for a group of Digital Items, a single BBL binding can be written for that metadata format and applied to all of the DIs.
The Binary MPEG format for XML, or BiM, part of the MPEG-21 suite of Standards, provides a set of generic technologies for encoding XML documents, addressing a broad spectrum of applications and requirements by standardising the methods for transmitting and compressing XML documents.
BiM specifies rules for the preparation of XML documents for efficient transport and storage, both at the encoding and the decoding side of their transmission; at the receiving end, compressed XML documents are decoded, assembled and possibly partitioned.
The coding possibilities (and therefore the encoding size) of every component of a document is achieved by a contextual decoding combined with the use of the schema information. The BiM structure encoding is based on the XML Schema notion of "content model" from which the encoding format takes most of its source of optimization.
The advantages provided by BiM, such as high compression efficiency and flexibility in fragmentating and processing XML documents is achieved by the sharing knowledge of a schema between encoder and decoder. The specification also defines means to compile and transmit schema knowledge information to enable the decoding of compressed XML documents without a priori schema knowledge at the receiving terminal. This because a schema may change over time, or a decoder may not have a priori knowledge of all schema information. By means of this functionality, additional schema information is sent in such a way that it requires minimal CPU of the decoder to be able to process it: schemas are binary encoded and carried in a Schema Update Unit (SUU).
The transmission of a BiM document is progressive, i.e., is done through a set of elementary updates called Fragment Update Units (FUU). These FUUs are themselves packed into access units (AU), which is the minimal transport packet to which timing information is associated. Each FUU is composed of a path (FU Context Path) pointing at the node to be added, updated or deleted to the decoder's current representation of the document, and a payload (FU Payload) containing the portion of the carried document.
On the other hand, during the decoding of a FU Context Path, the element names and types are progressively decoded from the root element down to the context node, in a depth first manner. In this case, at each step of the tree, traversal codes are assigned to each possible element of the path. In addition to this information, its position among its sibling elements is decoded. Other information related to element substitution and type-casting are also decoded. In the case of payload decoding, the element names and types are progressively decoded from the first element to the last one in a breadth first manner.
B.1.1 The Represent Content Schema
The Represent Content schema characterised by the following URI: urn:dmp:idp1:Represent:Content:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp1rc="urn:dmp:idp1:Represent:Content:2005:04" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dmp:idp1:Represent:Content:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<element name="DMPInformation">
<complexType>
<sequence>
<element ref="dmp1rc:StructuredData"/>
<element ref="dsig:DigestMethod" minOccurs="0"/>
<element ref="dsig:DigestValue" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="StructuredData" type="dmp1rc:StructuredDataType"/>
<complexType name="StructuredDataType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI" use="required"/>
</complexType>
<element name="License" type="dmp1rc:LicenseType">
<annotation>
<documentation>IDP-1 Licenses are of type r:license and are denoted by the attribute 'ref ' value of "urn:mpeg:mpeg21:2003:01-REL-R-NS" which refers to the DMP REL profile</documentation>
</annotation>
</element>
<complexType name="LicenseType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI" default="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04"/>
</complexType>
</schema>
Figure 171: The dmp1rc schema
B.1.2 The Represent License Schema
The Represent License schema characterised by the following URI: urn:dmp:idp1:Represent:License:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dmp1_rel_r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" xmlns:dmp1md="urn:dmp:idp1:Manage:Domain:2005:04" xmlns:dmp1rl="urn:dmp:idp1:Represent:License:2005:04" xmlns:dmp1_rel_sx="urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04" xmlns:dmp1_rel_mx="urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04" targetNamespace="urn:dmp:idp1:Represent:License:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" schemaLocation="dmp1-rel-r-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04" schemaLocation="dmp1-rel-sx-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04" schemaLocation="dmp1-rel-mx-2005-04.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<import namespace="urn:dmp:idp1:Manage:Domain:2005:04" schemaLocation="dmp1md-2005-04.xsd"/>
<element name="copy" substitutionGroup="dmp1_rel_r:right">
<complexType>
<complexContent>
<extension base="dmp1rl:Copy">
<sequence/>
</extension>
</complexContent>
</complexType>
</element>
<element name="store" type="dmp1rl:Store" substitutionGroup="dmp1_rel_r:right"/>
<element name="protectedResource" type="dmp1rl:ProtectedResource" substitutionGroup="dmp1_rel_r:resource"/>
<complexType name="Copy">
<complexContent>
<extension base="dmp1_rel_r:Right"/>
</complexContent>
</complexType>
<complexType name="Store">
<complexContent>
<extension base="dmp1_rel_r:Right"/>
</complexContent>
</complexType>
<complexType name="ProtectedResource">
<complexContent>
<extension base="dmp1_rel_r:Resource">
<sequence>
<element ref="dmp1_rel_r:digitalResource" minOccurs="0"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xenc:EncryptedData" minOccurs="0"/>
<element ref="xenc:EncryptedKey"/>
</choice>
<element ref="dmp1md:DomainManager_ID" minOccurs="0"/>
<element ref="dmp1md:ContentGroup_ID" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
Figure 172: The dmp1rl schema
B.1.3 The Manage Domain Schema
The Manage Domain schema characterised by the following URI: urn:dmp:idp1:Manage:Domain:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dmp1_rel_sx="urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04" xmlns:dmp1_rel_r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp1md="urn:dmp:idp1:Manage:Domain:2005:04" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp1:Manage:Domain:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" schemaLocation="dmp1-rel-r-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04" schemaLocation="dmp1-rel-sx-2005-04.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<element name="DomainManageInfo" type="dmp1md:DomainManageInfoType"/>
<complexType name="DomainManageInfoType">
<sequence>
<element ref="dmp1md:Domain_ID"/>
<element ref="dmp1md:AccessID"/>
<element ref="dmp1md:Domain_Key"/>
<element ref="dmp1md:DeviceIDList"/>
<element name="MaximumNumberOfDevice" type="integer"/>
<element name="MaximumFrequencyOfUpdate" type="integer"/>
<element ref="dmp1md:RevocationList"/>
</sequence>
</complexType>
<element name="DeviceIDList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp1md:DeviceID"/>
<element name="Expiration" type="dmp1_rel_sx:ValidityTimeMetered"/>
</sequence>
</complexType>
</element>
<element name="RevocationList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp1md:DeviceID"/>
</sequence>
</complexType>
</element>
<!-- Domain Context -->
<element name="DomainResource" type="dmp1md:DomainResource" substitutionGroup="dmp1_rel_r:resource"/>
<complexType name="DomainResource">
<complexContent>
<extension base="dmp1_rel_r:Resource">
<sequence>
<element ref="dmp1md:DomainManager_ID"/>
<element ref="dmp1md:Domain_ID"/>
<element name="DomainKey" type="dsig:KeyInfoType"/>
<element name="Expiration" type="dmp1_rel_sx:ValidityTimeMetered" minOccurs="0"/>
<element name="TransactionID" type="unsignedByte" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--Protected Resource is defined in C4 -->
<!--Domain Resource is defined in C4 -->
<!--Section 6.1.4.1 Creating a Domain -->
<!--Section 6.1.4.1 Creating a Domain -->
<element name="DACredentials" type="dmp1md:DomainCredentialType"/>
<complexType name="DomainCredentialType">
<sequence>
<element name="AccountID" type="string"/>
<element name="Password" type="string"/>
</sequence>
</complexType>
<element name="AuthenticateReq">
<complexType>
<sequence>
<element ref="dmp1md:DACredentials"/>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
</element>
<element name="Ack">
<complexType>
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
</element>
<element name="CreateDomain">
<complexType>
<sequence>
<element ref="dmp1md:DeviceID"/>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
</element>
<!--Section 6.1.4.2 Adding a Device -->
<element name="AddDevice" type="dmp1md:AddDeviceType"/>
<complexType name="AddDeviceType">
<sequence>
<element ref="dmp1md:DeviceID"/>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
<!--Section 6.1.4.3 Leaving a Domain -->
<element name="LeaveDomain" type="dmp1md:LeaveDomainType"/>
<complexType name="LeaveDomainType">
<sequence>
<element ref="dmp1md:DeviceID"/>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
<!--Section 6.1.4.4 Renewing a Domain -->
<element name="RenewDomain" type="dmp1md:RenewDomainType"/>
<complexType name="RenewDomainType">
<sequence>
<element ref="dmp1md:DeviceID"/>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
<!--Section 6.1.5 Domain Manager and License Provider -->
<element name="RequestDomain" type="dmp1md:RequestDomainType"/>
<complexType name="RequestDomainType">
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
<element name="DeleteDomain">
<complexType>
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</complexType>
</element>
<!--Section 6.1.6.1 Use Log -->
<element name="UseLog" type="dmp1md:UseLogType"/>
<complexType name="UseLogType">
<sequence>
<element ref="dmp1md:Domain_ID"/>
<element ref="dmp1md:DomainManager_ID"/>
<element ref="dmp1md:Record"/>
</sequence>
</complexType>
<element name="Record">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp1md:DeviceID"/>
<element name="StartTime" type="dateTime"/>
<element name="EndTime" type="dateTime"/>
<element name="NumberOfContentGroups" type="integer"/>
<element ref="dmp1md:ContentGroup_ID" minOccurs="0" maxOccurs="unbounded"/>
<element name="NotificationFlag" type="boolean"/>
</sequence>
</complexType>
</element>
<!--Section 6.1.6.4 Notification to Domain Manager -->
<element name="Un-LicensedSimultaneousUseNotice" type="dmp1md:Un-LicensedSimultaneousUseNoticeType"/>
<complexType name="Un-LicensedSimultaneousUseNoticeType">
<sequence maxOccurs="unbounded">
<element ref="dmp1md:Domain_ID"/>
<element ref="dmp1md:UnLicensedUseDevices"/>
<element ref="dmp1md:OverlapTime"/>
</sequence>
</complexType>
<element name="UnLicensedUseDevices">
<complexType>
<sequence maxOccurs="unbounded">
<element ref="dmp1md:DeviceID"/>
</sequence>
</complexType>
</element>
<element name="OverlapTime">
<complexType>
<sequence>
<element name="StartTime" type="dateTime"/>
<element name="EndTime" type="dateTime"/>
</sequence>
</complexType>
</element>
<!-- Domain-related ID Definition -->
<element name="Domain_ID" type="dmp1_rel_r:KeyHolder"/>
<element name="SubDomain_ID" type="anyURI"/>
<element name="DomainManager_ID" type="anyURI"/>
<element name="ContentGroup_ID" type="anyURI"/>
<element name="Domain_Key" type="xenc:EncryptedKeyType"/>
<element name="DeviceID" type="dmp1_rel_r:KeyHolder"/>
<element name="AccessID" type="dmp1_rel_r:KeyHolder"/>
<element name="AccessPassword" type="string"/>
</schema>
Figure 173: The dmp1md schema
The Access schema characterised by the following URI: urn:dmp:idp1:Access:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp1rc="urn:dmp:idp1:Represent:Content:2005:04" xmlns:dmp1md="urn:dmp:idp1:Manage:Domain:2005:04" xmlns:dmp1ax="urn:dmp:idp1:Access:2005:04" targetNamespace="urn:dmp:idp1:Access:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp1:Manage:Domain:2005:04" schemaLocation="dmp1md-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:Represent:Content:2005:04" schemaLocation="dmp1rc-2005-04.xsd"/>
<element name="TransactionID" type="unsignedByte"/>
<element name="ContentRequest" type="dmp1ax:RequestType"/>
<complexType name="RequestType">
<sequence>
<element name="ContentIdentifier" type="anyURI"/>
<element name="DCIhash" type="unsignedByte" minOccurs="0"/>
<element ref="dmp1md:DomainResource" minOccurs="0"/>
<element ref="dmp1ax:TransactionID"/>
</sequence>
</complexType>
<element name="LicenseRequesResult" type="dmp1ax:LicenseRequestResultType"/>
<complexType name="LicenseRequestResultType">
<sequence>
<element ref="dmp1rc:License" minOccurs="0"/>
<element ref="dmp1ax:TransactionID"/>
<element name="Status" type="string"/>
</sequence>
<!-- between the CP and the LP -->
</complexType>
<element name="ContentRequestResult" type="dmp1ax:ContentRequestResultType"/>
<complexType name="ContentRequestResultType">
<sequence>
<element name="ContentServerURI" type="anyURI"/>
<element ref="dmp1ax:TransactionID"/>
<element name="Status" type="string"/>
</sequence>
</complexType>
<element name="LicenseRequestAcknowledgement" type="dmp1ax:AcknowledgementType"/>
<element name="ContentRequestAcknowledgement" type="dmp1ax:AcknowledgementType"/>
<complexType name="AcknowledgementType">
<sequence>
<element name="Message" type="string" fixed="ACK"/>
<element ref="dmp1ax:TransactionID"/>
</sequence>
</complexType>
</schema>
Figure 174: The dmp1ax schema
B.2.1 The Represent Content Schema
The Represent Content schema characterised by the following URI: urn:dmp:idp2:Represent:Content:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:dmp2_ipmpdidl="urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02" xmlns:dmp2rc="urn:dmp:idp2:Represent:Content:2006:02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp2:Represent:Content:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02" schemaLocation="dmp2ipmpdidl-2006-02.xsd"/>
<element name="DMPInformation">
<complexType>
<sequence>
<element ref="dmp2rc:Metadata"/>
<sequence minOccurs="0">
<element ref="dsig:Signature"/>
</sequence>
</sequence>
</complexType>
</element>
<element name="Metadata" type="dmp2rc:MetadataType"/>
<complexType name="MetadataType">
<sequence>
<choice>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup" minOccurs="0"/>
<element ref="dmp2rc:StructuredData" maxOccurs="unbounded"/>
</choice>
</sequence>
<attribute name="id" type="anyURI" use="optional"/>
</complexType>
<element name="StructuredData" type="dmp2rc:StructuredDataType">
<annotation>
<documentation>IDP-2 Metadata are of type dmp2rm:TVAMain and are denoted by the attribute 'ref ' value of "urn:dmp:idp2:Represent:Metadata:2006:02" which refers to the DMP IDP-2 TVA metadata profile</documentation>
</annotation>
</element>
<complexType name="StructuredDataType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI" default="urn:dmp:idp2:Represent:Metadata:2006:02"/>
</complexType>
<element name="DCISignature" type="dmp2rc:DCISignatureType"/>
<complexType name="DCISignatureType">
<sequence maxOccurs="unbounded">
<element name="IssuerID" type="anyURI" minOccurs="0"/>
<element ref="dsig:Signature"/>
</sequence>
</complexType>
<element name="DCIHash" type="dmp2rc:DCIHashType"/>
<complexType name="DCIHashType">
<sequence maxOccurs="unbounded">
<element ref="dsig:CanonicalizationMethod"/>
<element ref="dsig:Reference"/>
</sequence>
</complexType>
</schema>
Figure 175: The dmp2rc schema
B.2.2 The Manage Device Identifier Schema
The Manage Device Identifier schema characterised by the following URI: urn:dmp:idp2:Manage:DeviceIdentifier:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2mdi="urn:dmp:idp2:Manage:DeviceIdentifier:2006:02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dmp:idp2:Manage:DeviceIdentifier:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<complexType name="IdentifierBaseType" abstract="true"/>
<complexType name="IdentifierProtocolType">
<complexContent>
<extension base="dmp2mdi:IdentifierBaseType">
<sequence>
<element name="TransactionID" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="DeviceIdentifier" type="dmp2mdi:IDType"/>
<complexType name="IDType">
<complexContent>
<extension base="dmp2mdi:IdentifierBaseType">
<sequence>
<choice>
<element name="id" type="anyURI"/>
<element ref="dsig:X509Data"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestDeviceID" type="dmp2mdi:RequestDeviceIDType"/>
<complexType name="RequestDeviceIDType">
<complexContent>
<extension base="dmp2mdi:IdentifierProtocolType">
<sequence>
<element name="VendorID" type="dmp2mdi:IDType"/>
<element name="ModelID" type="anyURI"/>
<element name="SerialNumber" type="anyURI" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="DeviceID" type="dmp2mdi:DeviceIDType"/>
<complexType name="DeviceIDType">
<complexContent>
<extension base="dmp2mdi:IdentifierProtocolType">
<sequence>
<element ref="dmp2mdi:DeviceIdentifier"/>
<element name="Version" type="integer" minOccurs="0"/>
<element name="IssuerID" type="dmp2mdi:IDType"/>
<element name="SerialNumber" type="anyURI" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
Figure 176: The dmp2mdi schema
B.2.3 The Represent Authentication Messages Schema
The Represent Authentication Messages schema characterised by the following URI: urn:dmp:idp2:Represent:AuthenticationMessages:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp2rdm="urn:dmp:idp2:Represent:DRMMessages:2006:02" xmlns:dmp2ram="urn:dmp:idp2:Represent:AuthenticationMessages:2006:02" targetNamespace="urn:dmp:idp2:Represent:AuthenticationMessages:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp2:Represent:DRMMessages:2006:02" schemaLocation="dmp2rdm-2006-02.xsd"/>
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!--InitAuthentication-->
<element name="InitAuthentication" type="dmp2ram:InitAuthenticationType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="InitAuthenticationType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="ContextID" type="anyURI" minOccurs="0"/>
<element name="AuthType" type="dmp2ram:AUTType"/>
<!--Context ID of the logical instance of the Tool with which mutual authentication is to be performed-->
</sequence>
</extension>
</complexContent>
</complexType>
<simpleType name="AUTType">
<restriction base="integer">
<enumeration value="01"/>
<enumeration value="02"/>
<enumeration value="03"/>
<enumeration value="04"/>
</restriction>
</simpleType>
<!--MutualAuthentication-->
<element name="MutualAuthentication" type="dmp2ram:MutualAuthenticationType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="MutualAuthenticationType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<choice>
<element name="requestNegotiation" type="dmp2ram:requestNegotiationType"/>
<element name="successNegotiation" type="dmp2ram:successNegotiationType"/>
<element name="failedNegotiation" type="boolean" fixed="true"/>
</choice>
<element name="authenticationData" type="hexBinary" minOccurs="0"/>
<element name="authCodes" type="dmp2ram:AuthCodesType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="requestNegotiationType">
<sequence>
<element name="candidateAlgorithms" type="dmp2ram:AlgorithmDescriptorType"/>
</sequence>
</complexType>
<complexType name="AlgorithmDescriptorType">
<sequence>
<element name="algoID" type="anyURI" maxOccurs="unbounded"/>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="successNegotiationType">
<sequence>
<element name="agreedAlgorithms" type="dmp2ram:AlgorithmDescriptorType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="AuthCodesType">
<sequence>
<element name="certificates" type="dsig:KeyInfoType" maxOccurs="unbounded"/>
<element name="trustData" type="hexBinary" minOccurs="0"/>
</sequence>
</complexType>
</schema>
Figure 177: The dmp2ram schema
B.2.4 The Represent Access Protocols Schema
The Represent Access Protocols schema characterised by the following URI: urn:dmp:idp2:Represent:AccessProtocols:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2rl="urn:dmp:idp2:Represent:License:2006:02" xmlns:dmp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" xmlns:dmp2rap="urn:dmp:idp2:Represent:AccessProtocols:2006:02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp2rc="urn:dmp:idp2:Represent:Content:2006:02" xmlns:dmp2rtb="urn:dmp:idp2:Represent:ToolBody:2006:02" xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" xmlns:dmp2rdi="urn:dmp:idp2:Represent:DeviceInformation:2006:02" targetNamespace="urn:dmp:idp2:Represent:AccessProtocols:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp2:Represent:License:2006:02" schemaLocation="dmp2rl-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:Represent:Content:2006:02" schemaLocation="dmp2rc-2006-02.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" schemaLocation="dmp1dii-2005-04.xsd"/>
<import namespace="urn:dmp:idp2:Represent:DeviceInformation:2006:02" schemaLocation="dmp2rdi-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:Represent:ToolBody:2006:02" schemaLocation="dmp2rtb-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" schemaLocation="dmp2ipmpinfo-2006-02.xsd"/>
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<complexType name="AccessProtocolBaseType" abstract="true"/>
<complexType name="AccessProtocolType">
<complexContent>
<extension base="dmp2rap:AccessProtocolBaseType">
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Ack" type="dmp2rap:ReqType"/>
<complexType name="ReqType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<attribute name="Result" type="boolean" use="required"/>
</extension>
</complexContent>
</complexType>
<element name="RequestContent" type="dmp2rap:RequestContentType"/>
<complexType name="RequestContentType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp2rl:License" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestLicense" type="dmp2rap:RequestLicenseType"/>
<complexType name="RequestLicenseType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp2rl:License" minOccurs="0"/>
<element ref="dmp2rc:DCIHash" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequesLicenseResult" type="dmp2rap:RequestLicenseResultType"/>
<complexType name="RequestLicenseResultType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp2rl:License"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestContentResult" type="dmp2rap:RequestContentResultType"/>
<complexType name="RequestContentResultType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element name="ContentServerURI" type="anyURI"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestDRMToolBody" type="dmp2rap:RequestDRMToolBodyType"/>
<complexType name="RequestDRMToolBodyType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPToolID"/>
<element ref="dmp2rdi:DeviceInformation"/>
<element name="LicenseSignature" type="dsig:SignatureType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestDRMToolBodyResponse" type="dmp2rap:RequestDRMToolBodyResponseType"/>
<complexType name="RequestDRMToolBodyResponseType">
<complexContent>
<extension base="dmp2rap:AccessProtocolType">
<sequence>
<element ref="dmp2rtb:ToolBody" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
Figure 178: The dmp2rap schema
B.2.5 The Represent License Schema
The Represent License schema characterised by the following URI: urn:dmp:idp2:Represent:License:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:dmp:idp2:Represent:License:2006:02" xmlns:dmp2rl="urn:dmp:idp2:Represent:License:2006:02" xmlns:dmp2rd="urn:dmp:idp2:Represent:Domain:2006:02" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:rel-r-bpx="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:rel-bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:rel-sx-bpx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:rel-mx-bpx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" schemaLocation="rel-bpx-v1.xsd"/>
<import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<import namespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" schemaLocation="rel-mx-bpx-v1.xsd"/>
<import namespace="urn:dmp:idp2:Represent:Domain:2006:02" schemaLocation="dmp2rd-2006-02.xsd"/>
<import namespace="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" schemaLocation="rel-dacx-v1.xsd"/>
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<element name="License" type="dmp2rl:LicenseType"/>
<annotation>
<documentation>IDP-2 Licenses are of type r:license and are denoted by the attribute 'ref ' value of "urn:dmp:idp2:Represent:License:2006:02" and following the DMP IDP-2 REL profile</documentation>
</annotation>
<complexType name="LicenseType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI" default="urn:dmp:idp2:Represent:License:2006:02"/>
</complexType>
<element name="DomainResource" type="dmp2rl:DomainResourceType" substitutionGroup="rel-r-bpx:resource"/>
<complexType name="DomainResourceType">
<complexContent>
<extension base="rel-r-bpx:Resource">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rd:DomainKey"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="digitalResource" type="dmp2rl:DigitalResource" substitutionGroup="rel-r-bpx:resource"/>
<complexType name="DigitalResource">
<complexContent>
<extension base="rel-r-bpx:DigitalResource">
<sequence>
<element ref="dmp2rd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="protectedResource" type="dmp2rl:ProtectedResource" substitutionGroup="rel-r-bpx:resource"/>
<complexType name="ProtectedResource">
<complexContent>
<extension base="rel-r-bpx:Resource">
<sequence minOccurs="0">
<element ref="dmp2rl:digitalResource"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xenc:EncryptedData"/>
<element ref="xenc:EncryptedKey"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
Figure 179: The dmp2rl schema
B.2.6 The Represent Device Information Schema
The Represent Device Information schema characterised by the following URI: urn:dmp:idp2:Represent:DeviceInformation:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Leonardo Chiariglione (CEDEO SAS di Chiariglione Leonardo e C) -->
<schema xmlns:dmp2_mpeg4ipmp="urn:dmp:idp2:mpeg4:IPMPSchema:2002:2006:02" xmlns:dmp2rdi="urn:dmp:idp2:Represent:DeviceInformation:2006:02" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp2:Represent:DeviceInformation:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp2:mpeg4:IPMPSchema:2002:2006:02" schemaLocation="dmp2mpeg4ipmp-2006-02.xsd"/>
<element name="DeviceInformation" type="dmp2rdi:DeviceType"/>
<complexType name="DeviceType">
<complexContent>
<extension base="dmp2_mpeg4ipmp:TerminalIDType">
<sequence>
<element ref="dmp2rdi:ToolAPI_Config" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dmp2rdi:Others" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Others" type="dmp2rdi:OtherTypes"/>
<complexType name="OtherTypes">
<sequence>
<any namespace="##any" processContents="lax"/>
</sequence>
<attribute name="ref" type="anyURI" use="required"/>
</complexType>
<element name="ToolAPI_Config" type="dmp2rdi:ToolAPI_ConfigType"/>
<complexType name="ToolAPI_ConfigType">
<sequence>
<element name="Instantiation_API_ID" type="anyURI" minOccurs="0"/>
<element name="Messaging_API_ID" type="anyURI" minOccurs="0"/>
<element name="OpaqueData" type="hexBinary" minOccurs="0"/>
</sequence>
</complexType>
</schema>
Figure 180: The dmp2rdi schema
B.2.7 The Represent Metadata Schema
The Represent Metadata schema characterised by the following URI: urn:dmp:idp2:Represent:Metadata:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:dmp:idp2:Represent:Metadata:2006:02" xmlns:dmp2rm="urn:dmp:idp2:Represent:Metadata:2006:02" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:dmp2_tva="urn:dmp:idp2:tva:metadata:2002:2006:02" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<annotation>
<documentation xml:lang="en">
This XML Schema file specifies normative DMP metadata types. It is based on a reduced profile of urn:tva:metadata:2002, ETSI TS 102 822-3-1 V1.1.1 (2003-05)
The tva profile on which this namespace depends differs from ETSI TS 102 822-3-1 V1.1.1 (2003-05) in that it it does not include the following second level elements from urn:tva:metadata:2002
ServiceInformationTable
SegmentInformationTable
ProgramReviewTable
ProgramLocationTable.
UserDescriptionTable
All of which are defined in ETSI TS 102 822-3-1 V1.1.1 (2003-05) with minOccurrs=0
The DMP profile is compatible with urn:tva:metadata:2002 because it uses modified elements TVAMainType and ProgrameDescriptionType defined here in the urn:dmp:represent:metadata space
</documentation>
</annotation>
<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<import namespace="urn:mpeg:mpeg7:schema:2001" schemaLocation="./mpeg7.xsd"/>
<import namespace="urn:dmp:idp2:tva:metadata:2002:2006:02" schemaLocation="dmp2tva-2006-02.xsd"/>
<element name="TVAMain" type="dmp2rm:TVAMainType"/>
<complexType name="TVAMainType">
<sequence>
<element name="CopyrightNotice" type="string" minOccurs="0"/>
<element name="ClassificationSchemeTable" type="dmp2_tva:ClassificationSchemeTableType" minOccurs="0"/>
<element name="ProgramDescription" type="dmp2rm:ProgramDescriptionType" minOccurs="0"/>
</sequence>
<attribute ref="xml:lang" use="optional" default="en"/>
<attribute name="publisher" type="string" use="optional"/>
<attribute name="publicationTime" type="dateTime" use="optional"/>
<attribute name="rightsOwner" type="string" use="optional"/>
<attribute name="version" type="unsignedInt" use="optional"/>
</complexType>
<complexType name="ProgramDescriptionType">
<sequence>
<element name="ProgramInformationTable" type="dmp2_tva:ProgramInformationTableType" minOccurs="0"/>
<element name="GroupInformationTable" type="dmp2_tva:GroupInformationTableType" minOccurs="0"/>
<element name="CreditsInformationTable" type="dmp2_tva:CreditsInformationTableType" minOccurs="0"/>
</sequence>
</complexType>
</schema>
Figure 181: The dmp2rm schema
B.2.8 The Represent ToolBody Schema
The Represent ToolBody schema characterised by the following URI: urn:dmp:idp2:Represent:ToolBody:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2rdi="urn:dmp:idp2:Represent:DeviceInformation:2006:02" xmlns:dmp2rtb="urn:dmp:idp2:Represent:ToolBody:2006:02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dmp:idp2:Represent:ToolBody:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="urn:dmp:idp2:Represent:DeviceInformation:2006:02" schemaLocation="dmp2rdi-2006-02.xsd"/>
<!-- elements -->
<element name="ToolBody" type="dmp2rtb:ToolBodyType"/>
<complexType name="ToolBodyType">
<sequence>
<choice>
<element ref="dmp2rtb:Tool" maxOccurs="unbounded"/>
<element ref="dmp2rtb:ToolPack" maxOccurs="unbounded"/>
</choice>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="BodyType"/>
<element name="ToolPack" type="dmp2rtb:ToolPackType"/>
<complexType name="ToolPackType">
<sequence>
<element ref="dmp2rtb:ToolBodyID"/>
<element ref="dmp2rdi:DeviceInformation" minOccurs="0"/>
<element name="ToolPackageType" type="string" minOccurs="0"/>
<element name="ToolAgent" type="dmp2rtb:ToolAgentType"/>
<element name="ToolGroup" type="dmp2rtb:ToolGroupType" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="ToolAgent" type="dmp2rtb:ToolAgentType"/>
<complexType name="ToolAgentType">
<sequence>
<element name="ToolAgentID" type="anyURI"/>
<element name="ToolAgentBody" type="base64Binary"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="ToolGroup" type="dmp2rtb:ToolGroupType"/>
<complexType name="ToolGroupType">
<sequence>
<element name="ToolGroupID" type="anyURI"/>
<element name="ToolGroupBody" type="base64Binary"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="Tool" type="dmp2rtb:ToolType"/>
<complexType name="ToolType">
<sequence>
<element ref="dmp2rtb:ToolBodyID"/>
<element ref="dmp2rdi:DeviceInformation" minOccurs="0"/>
<element name="ToolPackageType" type="string" minOccurs="0"/>
<element name="ToolBody" type="base64Binary"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="ToolUpdateType"/>
<element name="ToolBodyID" type="anyURI"/>
</schema>
Figure 182: The dmp2rtb schema
B.2.9 The Represent Domain Schema
The Represent Domain schema characterised by the following URI: urn:dmp:idp2:Represent:Domain:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp2rd="urn:dmp:idp2:Represent:Domain:2006:02" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" targetNamespace="urn:dmp:idp2:Represent:Domain:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<import namespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" schemaLocation="rel-sx-bpx-v1.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<complexType name="DomainBaseType" abstract="true"/>
<complexType name="IDType">
<sequence>
<choice>
<element name="id" type="anyURI"/>
<element ref="dsig:X509Data" minOccurs="0"/>
</choice>
</sequence>
</complexType>
<element name="LocalDomainID" type="dmp2rd:IDType"/>
<element name="DomainID" type="dmp2rd:DomainIDType"/>
<complexType name="DomainIDType">
<complexContent>
<extension base="dmp2rd:IDType">
<sequence>
<element ref="dmp2rd:DomainManagerID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="DomainManageInfo" type="dmp2rd:DomainManageInfoType"/>
<complexType name="DomainManageInfoType">
<complexContent>
<extension base="dmp2rd:DomainBaseType">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rd:AccessID"/>
<element ref="dmp2rd:AccessPassword"/>
<choice minOccurs="0" maxOccurs="2">
<element ref="dmp2rd:User"/>
<element ref="dmp2rd:Device"/>
</choice>
<element ref="dmp2rd:DomainKey"/>
<element name="Registration" type="dateTime"/>
<element name="Expiration" type="sx:ValidityTimeMetered"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="User" type="dmp2rd:UserType"/>
<complexType name="UserType">
<complexContent>
<extension base="dmp2rd:DomainBaseType">
<sequence>
<element ref="dmp2rd:UserIDList"/>
<element name="MaximumNumberOfUsers" type="unsignedInt" minOccurs="0"/>
<element name="MaximumFrequencyOfUpdateUser" type="duration" minOccurs="0"/>
<element ref="dmp2rd:UserRevocationList" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Device" type="dmp2rd:DeviceType"/>
<complexType name="DeviceType">
<complexContent>
<extension base="dmp2rd:DomainBaseType">
<sequence>
<element ref="dmp2rd:DeviceIDList"/>
<element name="MaximumNumberOfDevices" type="integer"/>
<element name="MaximumFrequencyOfUpdateDevice" type="integer"/>
<element ref="dmp2rd:DeviceRevocationList"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="UserRevocationList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:UserID"/>
</sequence>
</complexType>
</element>
<element name="DeviceIDList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
<element name="Expiration" type="sx:ValidityTimeMetered"/>
</sequence>
</complexType>
</element>
<element name="UserIDList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:UserID"/>
<element name="Expiration" type="sx:ValidityTimeMetered"/>
</sequence>
</complexType>
</element>
<element name="DeviceRevocationList">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
</sequence>
</complexType>
</element>
<element name="DomainManagerID" type="r:KeyHolder"/>
<element name="AccessPassword" type="string"/>
<element name="AccessID" type="r:KeyHolder"/>
<element name="DomainKey" type="xenc:EncryptedKeyType"/>
<element name="UserID" type="dmp2rd:IDType"/>
<element name="DeviceID" type="dmp2rd:IDType"/>
<element name="ContentGroupID" type="anyURI"/>
</schema>
Figure 183: The dmp2rd schema
B.2.10The Represent Domain Protocol Schema
The Represent Domain Protocol schema characterised by the following URI: urn:dmp:idp2:Represent:DomainProtocol:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2rdp="urn:dmp:idp2:Represent:DomainProtocols:2006:02" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:dmp2rd="urn:dmp:idp2:Represent:Domain:2006:02" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" targetNamespace="urn:dmp:idp2:Represent:DomainProtocols:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<import namespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" schemaLocation="rel-sx-bpx-v1.xsd"/>
<import namespace="urn:dmp:idp2:Represent:Domain:2006:02" schemaLocation="dmp2rd-2006-02.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<complexType name="DomainProtocolBaseType" abstract="true"/>
<complexType name="DomainProtocolType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolBaseType">
<sequence>
<element name="TransactionID" type="unsignedByte"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="DACredentials" type="dmp2rdp:DomainCredentialType"/>
<element name="DMCredentials" type="dmp2rdp:DomainCredentialType"/>
<complexType name="DomainCredentialType">
<sequence>
<element ref="dmp2rd:AccessID"/>
<element ref="dmp2rd:AccessPassword"/>
</sequence>
</complexType>
<element name="AuthenticateReq" type="dmp2rdp:AuthenticateReqType"/>
<complexType name="AuthenticateReqType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DomainID" minOccurs="0"/>
<choice>
<element ref="dmp2rdp:DACredentials"/>
<element ref="dmp2rdp:DMCredentials"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Ack" type="dmp2rdp:ReqType"/>
<complexType name="ReqType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<attribute name="Result" type="boolean" use="required"/>
</extension>
</complexContent>
</complexType>
<element name="LocalDomainIDRequest" type="dmp2rdp:RequestLocalDomainIDType"/>
<complexType name="RequestLocalDomainIDType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
<element name="LocalDomainIDResponse" type="dmp2rdp:LocalDomainIDResponseType"/>
<complexType name="LocalDomainIDResponseType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:LocalDomainID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestKey" type="dmp2rdp:RequestKeyType"/>
<complexType name="RequestKeyType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
<element ref="dmp2rd:UserID"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RequestKeyResponse" type="dmp2rdp:RequestKeyResponseType"/>
<complexType name="RequestKeyResponseType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DomainKey"/>
<element ref="dmp2rd:UserID" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dmp2rd:DeviceID" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="AddDevice" type="dmp2rdp:AddDeviceType"/>
<complexType name="AddDeviceType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DeviceID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="AddUser" type="dmp2rdp:AddUserType"/>
<complexType name="AddUserType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:UserID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RenewDevice" type="dmp2rdp:RenewDeviceType"/>
<complexType name="RenewDeviceType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rdp:UseData"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="RenewUser" type="dmp2rdp:RenewUserType"/>
<complexType name="RenewUserType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
<element name="LeaveDevice" type="dmp2rdp:LeaveDeviceType"/>
<complexType name="LeaveDeviceType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DeviceID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="LeaveUser" type="dmp2rdp:LeaveUser"/>
<complexType name="LeaveUser">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:UserID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="CreateDomain" type="dmp2rdp:CreateDomainType"/>
<complexType name="CreateDomainType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
<element name="RenewDomain" type="dmp2rdp:RenewDomainType"/>
<complexType name="RenewDomainType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType">
<sequence>
<element ref="dmp2rd:DeviceID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="DeleteDomain" type="dmp2rdp:DeleteDomainType"/>
<complexType name="DeleteDomainType">
<complexContent>
<extension base="dmp2rdp:DomainProtocolType"/>
</complexContent>
</complexType>
<element name="UnLicensedSimultaneousUseNotice" type="dmp2rdp:UnLicensedSimultaneousUseNoticeType"/>
<complexType name="UnLicensedSimultaneousUseNoticeType">
<sequence>
<element ref="dmp2rdp:UseData" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="UseData" type="dmp2rdp:UseDataType"/>
<complexType name="UseDataType">
<sequence>
<element ref="dmp2rd:DomainID"/>
<element ref="dmp2rdp:Record"/>
</sequence>
</complexType>
<element name="Record" type="dmp2rdp:RecordType"/>
<complexType name="RecordType">
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rd:DeviceID"/>
<element name="StartTime" type="dateTime"/>
<element name="EndTime" type="dateTime"/>
<element name="NumberOfContentGroups" type="integer"/>
<element ref="dmp2rd:ContentGroupID" minOccurs="0" maxOccurs="unbounded"/>
<element name="NotificationFlag" type="boolean"/>
</sequence>
</complexType>
</schema>
Figure 184: The dmp2rdp schema
B.2.11The Represent DRM Messages Schema
The Represent DRM Messages schema characterised by the following URI: urn:dmp:idp2:Represent:DRMMessages:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp2rk="urn:dmp:idp2:Represent:Key:2006:02" xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" xmlns:dmp2rdm="urn:dmp:idp2:Represent:DRMMessages:2006:02" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp2:Represent:DRMMessages:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" schemaLocation="dmp2ipmpinfo-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:Represent:Key:2006:02" schemaLocation="dmp2rk-2006-02.xsd"/>
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!-- Abstract Base Type from which both DRM Message Containers and DRM Messages inherit -->
<complexType name="IPMPBaseType" abstract="true"/>
<!--ToolMessageBase-->
<element name="ToolMessageBase" type="dmp2rdm:ToolMessageBaseType" abstract="true"/>
<complexType name="ToolMessageBaseType" abstract="true">
<complexContent>
<extension base="dmp2rdm:IPMPBaseType">
<sequence>
<element name="Sender" type="unsignedInt"/>
<element name="Recipient" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--Data_BaseClass-->
<element name="Data_BaseClass" type="dmp2rdm:Data_BaseClassType" abstract="true"/>
<complexType name="Data_BaseClassType" abstract="true">
<annotation>
<documentation>alternates</documentation>
</annotation>
<complexContent>
<extension base="dmp2rdm:IPMPBaseType">
<sequence>
<element name="dataID" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- **************************************************************** -->
<!-- DRM Message Containers -->
<!-- **************************************************************** -->
<!-- MessageFromDCI-->
<element name="MessageFromDCI" type="dmp2rdm:MessageFromDCIType" substitutionGroup="dmp2rdm:ToolMessageBase"/>
<complexType name="MessageFromDCIType">
<complexContent>
<extension base="dmp2rdm:ToolMessageBaseType">
<sequence>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--MessageFromTool-->
<element name="MessageFromTool" type="dmp2rdm:MessageFromToolType" substitutionGroup="dmp2rdm:ToolMessageBase"/>
<complexType name="MessageFromToolType">
<complexContent>
<extension base="dmp2rdm:ToolMessageBaseType">
<sequence>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- **************************************************************** -->
<!-- DRM Messages -->
<!-- **************************************************************** -->
<!-- DRM TOOL CONNECTION AND DISCONNECTION MESSAGES -->
<!--GetTools-->
<element name="GetTools" type="dmp2rdm:GetToolsType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolsType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType"/>
</complexContent>
</complexType>
<!--GetToolsResponse-->
<element name="GetToolsResponse" type="dmp2rdm:GetToolsResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolsResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2rdm:Tool" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Tool" type="dmp2rdm:toolType"/>
<!--It represents a DRM Tool, an extension of ipmpinfo:Tool-->
<complexType name="toolType">
<complexContent>
<extension base="dmp2_ipmpinfo:ToolType">
<sequence>
<element name="alternates" type="dmp2_ipmpinfo:ToolType" minOccurs="0"/>
<element ref="dmp2rdm:ParametricDescription" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--GetToolContext-->
<element name="GetToolContext" type="dmp2rdm:GetToolContextType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolContextType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType"/>
</complexContent>
</complexType>
<!--GetToolContextResponse-->
<element name="GetToolContextResponse" type="dmp2rdm:GetToolContextResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolContextResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="ToolContextID" type="unsignedInt" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--ConnectTool-->
<element name="ConnectTool" type="dmp2rdm:ConnectToolType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="ConnectToolType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2_ipmpinfo:Tool"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--DisconnectTool-->
<element name="DisconnectTool" type="dmp2rdm:DisconnectToolType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="DisconnectToolType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="ToolContextID" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--ParamtericDescription-->
<element name="ParametricDescription" type="dmp2rdm:ParametricDescriptionType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="ParametricDescriptionType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="descriptionComment" type="string" minOccurs="0"/>
<element name="majorVersion" type="byte"/>
<element name="minorVersion" type="byte"/>
<element name="paramToolDescription" type="dmp2rdm:paramToolDescriptionType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="paramToolDescriptionType">
<sequence>
<element name="class" type="string"/>
<element name="subClass" type="string"/>
<element name="typeData" type="string" minOccurs="0"/>
<element name="type" type="string" minOccurs="0"/>
<element name="addedData" type="string" minOccurs="0"/>
</sequence>
</complexType>
<!--ToolParamCapabilitiesQuery-->
<element name="ToolParamCapabilitiesQuery" type="dmp2rdm:ToolParamCapabilitiesQueryType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="ToolParamCapabilitiesQueryType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="toolParamDesc" type="dmp2rdm:ParametricDescriptionType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--ToolParamCapabilitiesResponse-->
<element name="ToolParamCapabilitiesResponse" type="dmp2rdm:ToolParamCapabilitiesResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="ToolParamCapabilitiesResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="capabilitiesSupported" type="boolean"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- DRM TOOL NOTIFICATION -->
<!--NotifyToolEvent-->
<element name="NotifyToolEvent" type="dmp2rdm:NotifyToolEventType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="NotifyToolEventType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<sequence minOccurs="0">
<element name="OD_ID" type="unsignedInt"/>
<element name="ESD_ID" type="unsignedInt"/>
</sequence>
<element ref="dmp2rdm:EventType" maxOccurs="unbounded"/>
<element name="toolContextID" type="unsignedInt"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="EventType" type="dmp2rdm:EvType"/>
<simpleType name="EvType">
<annotation>
<documentation>
"00" - CONNECTED
"01" - CONNECTION_FAILED
"02" - DISCONNECTED
"03" - DISCONNECTION_FAILED
"04" - WATERMARKDETECTED
"05" - PARSE_TOOLPACKDATA_SUCCESS
"06" - PARSE_TOOLPACKDATA_FAILED
"07" - UNABLE_TO_PROCESS
"08" - TOOL_GROUP_NOT_FOUND
</documentation>
</annotation>
<restriction base="integer">
<enumeration value="00"/>
<enumeration value="01"/>
<enumeration value="02"/>
<enumeration value="03"/>
<enumeration value="04"/>
<enumeration value="05"/>
<enumeration value="06"/>
<enumeration value="07"/>
</restriction>
</simpleType>
<!--AddToolNotificationListener-->
<element name="AddToolNotificationListener" type="dmp2rdm:AddToolNotificationListenerType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="AddToolNotificationListenerType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="scope" type="string"/>
<element ref="dmp2rdm:EventType" maxOccurs="unbounded"/>
<!--see scope list in MPEG IPMPX spec-->
</sequence>
</extension>
</complexContent>
</complexType>
<!--RemoveToolNotificationListener-->
<element name="RemoveToolNotificationListener" type="dmp2rdm:RemoveToolNotificationListenerType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="RemoveToolNotificationListenerType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2rdm:EventType" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- DRM PROCESSING -->
<!--KeyData-->
<element name="KeyData" type="dmp2rdm:KeyDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="KeyDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<choice>
<element ref="dsig:KeyInfo"/>
<element ref="dmp2rk:Key"/>
</choice>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--RightsData-->
<element name="RightsData" type="dmp2rdm:RightsDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="RightsDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="rightsInfo" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--CanProcess-->
<element name="CanProcess" type="dmp2rdm:CanProcessType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="CanProcessType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="canProcess" type="boolean"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--OpaqueData-->
<element name="OpaqueData" type="dmp2rdm:OpaqueDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="OpaqueDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2rdm:opaqueData"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="opaqueData" type="base64Binary"/>
<!--AudioWatermarkingInit-->
<element name="AudioWatermarkingInit" type="dmp2rdm:AudioWatermarkingInitType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="AudioWatermarkingInitType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="inputFormat" type="dmp2rdm:AudioFormatType"/>
<element name="requiredOp" type="dmp2rdm:requiredOpType"/>
<element name="wmPayload" type="string" minOccurs="0"/>
<element name="wmRecipientID" type="anyURI" minOccurs="0"/>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AudioFormatType">
<sequence minOccurs="0">
<element name="nChannels" type="byte"/>
<element name="bitPerSample" type="byte"/>
<element name="frequency" type="decimal"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
</complexType>
<simpleType name="requiredOpType">
<annotation>
<documentation>
"00" - INSERT_WM
"01" - EXTRACT_WM
"02" - REMARK_WM
"03" - DETECT_COMPRESSION
</documentation>
</annotation>
<restriction base="integer">
<enumeration value="00"/>
<enumeration value="01"/>
<enumeration value="02"/>
<enumeration value="03"/>
</restriction>
<!--see type list in MPEG IPMPX spec-->
</simpleType>
<!--VideoWatermarkingInit-->
<element name="VideoWatermarkingInit" type="dmp2rdm:VideoWatermarkingInitType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="VideoWatermarkingInitType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="inputFormat" type="dmp2rdm:VideoFormatType"/>
<element name="requiredOp" type="dmp2rdm:requiredOpType"/>
<element name="wmPayload" type="string" minOccurs="0"/>
<element name="wmRecipientID" type="anyURI" minOccurs="0"/>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="VideoFormatType">
<sequence minOccurs="0">
<element name="frame_horizontal_size" type="unsignedShort"/>
<element name="frame_vertical_size" type="unsignedShort"/>
<element name="chroma_format" type="byte"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
</complexType>
<!--SendAudioWatermark-->
<element name="SendAudioWatermark" type="dmp2rdm:SendAudioWatermarkType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="SendAudioWatermarkType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="wm_status" type="dmp2rdm:wm_statusType"/>
<element name="compression_status" type="dmp2rdm:compression_statusType"/>
<element name="payload" type="string" minOccurs="0"/>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<simpleType name="wm_statusType">
<annotation>
<documentation>
"00" - WM_PAYLOAD
"01" - WM_NOPAYLOAD
"02" - NO_WM
"03" - WM_UNKNOWN
</documentation>
</annotation>
<restriction base="integer">
<enumeration value="00"/>
<enumeration value="01"/>
<enumeration value="02"/>
<enumeration value="03"/>
</restriction>
</simpleType>
<simpleType name="compression_statusType">
<annotation>
<documentation>
"00" - COMPRESSION
"01" - NO_COMPRESSION
"02" - COMP_UNKNOWN
</documentation>
</annotation>
<restriction base="integer">
<enumeration value="00"/>
<enumeration value="01"/>
<enumeration value="02"/>
</restriction>
</simpleType>
<!--SendVideoWatermark-->
<element name="SendVideoWatermark" type="dmp2rdm:SendVideoWatermarkType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="SendVideoWatermarkType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="wm_status" type="dmp2rdm:wm_statusType"/>
<element name="compression_status" type="dmp2rdm:compression_statusType"/>
<element name="payload" type="string" minOccurs="0"/>
<element ref="dmp2rdm:opaqueData" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--SelectiveDecryptionInit-->
<element name="SelectiveDecryptionInit" type="dmp2rdm:SelectiveDecryptionInitType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="SelectiveDecryptionInitType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="mimeType" type="string"/>
<element name="profileLevelIndication" type="string"/>
<element name="compliance" type="string"/>
<element name="bufInfoStruct" type="dmp2rdm:bufInfoStructType" minOccurs="0" maxOccurs="unbounded"/>
<choice>
<element name="contentSpecific" type="dmp2rdm:contentSpecificType" minOccurs="0"/>
<sequence>
<element name="nSegments" type="short"/>
<element name="RLE_Data" type="short" maxOccurs="unbounded"/>
</sequence>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="bufInfoStructType">
<sequence>
<element name="cipher_Id" type="anyURI"/>
<element name="syncBoundary" type="string"/>
<choice>
<sequence>
<element name="mode" type="anyURI" minOccurs="0"/>
<element name="blockSize" type="short"/>
<element name="keySize" type="short"/>
</sequence>
<element name="Stream_Cipher_Specific_Init_Info" type="hexBinary"/>
</choice>
</sequence>
</complexType>
<complexType name="contentSpecificType">
<sequence>
<element name="numFields" type="short"/>
<element name="fieldStruct" type="dmp2rdm:fieldStructType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="fieldStructType">
<sequence>
<element name="field_id" type="anyURI"/>
<element name="fieldScope" type="short"/>
<element name="buf" type="short"/>
<element name="map" type="dmp2rdm:mapType" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="mapType">
<sequence>
<element name="sizeMapTable" type="short" minOccurs="0"/>
<element name="mappingTable" type="short" minOccurs="0" maxOccurs="unbounded"/>
<element name="shuffleSpecificInfo" type="hexBinary" minOccurs="0"/>
</sequence>
</complexType>
<!-- USER INTERACTION MESSAGES -->
<!--UserQuery-->
<element name="UserQuery" type="dmp2rdm:UserQueryType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="UserQueryType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="altText" type="dmp2rdm:altTextType" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="altTextType">
<sequence>
<element name="languageCode" type="language"/>
<element name="titleText" type="string" minOccurs="0"/>
<element name="displayText" type="dmp2rdm:displayTextType" minOccurs="0" maxOccurs="unbounded"/>
<element name="needReplyText" type="dmp2rdm:replyTextType" minOccurs="0" maxOccurs="unbounded"/>
<element name="inclOptionSelect" type="dmp2rdm:inclOptionSelectType" minOccurs="0" maxOccurs="unbounded"/>
<element name="SMIL_URL" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="SMIL" type="hexBinary" minOccurs="0"/>
<!-- ISO 639-2:1998 bibliographic three character language code-->
</sequence>
</complexType>
<complexType name="displayTextType">
<sequence>
<element name="text" type="string"/>
</sequence>
<attribute name="ID" type="unsignedShort" use="required"/>
</complexType>
<complexType name="replyTextType">
<sequence>
<element name="text" type="string"/>
</sequence>
<attribute name="ID" type="unsignedShort" use="required"/>
<attribute name="subID" type="unsignedShort" use="required"/>
<attribute name="isHidden" type="boolean"/>
</complexType>
<complexType name="inclOptionSelectType">
<sequence>
<element name="promptText" type="string"/>
</sequence>
<attribute name="ID" type="unsignedShort" use="required"/>
<attribute name="subID" type="unsignedShort" use="required"/>
<attribute name="isExclusive" type="boolean"/>
</complexType>
<!--UserQueryResponse-->
<element name="UserQueryResponse" type="dmp2rdm:UserQueryResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="UserQueryResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="replyText" type="dmp2rdm:responseReplyTextType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="responseReplyTextType">
<sequence>
<element name="languageCode" type="language"/>
<element name="replyText" type="dmp2rdm:replyTextType" minOccurs="0" maxOccurs="unbounded"/>
<element name="optionResult" type="dmp2rdm:optionResultType" minOccurs="0" maxOccurs="unbounded"/>
<!-- ISO 639-2:1998 bibliographic three character language code-->
</sequence>
</complexType>
<complexType name="optionResultType">
<sequence>
<element name="result" type="boolean"/>
</sequence>
<attribute name="ID" type="unsignedShort" use="optional"/>
<attribute name="subID" type="unsignedShort" use="optional"/>
</complexType>
<!--SecureContainer-->
<element name="SecureContainer" type="dmp2rdm:SecureContainerType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<annotation>
<documentation>To fill the protectedMsgTag field below, use values from Table 1 in doc ISO/IEC 14496-13:2004</documentation>
</annotation>
<complexType name="SecureContainerType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<choice>
<sequence>
<element name="encryptedData" type="hexBinary"/>
<element name="MAC" type="hexBinary" minOccurs="0"/>
</sequence>
<sequence>
<element name="protectedMsgTag" type="short"/>
<element name="protectedMsg" type="hexBinary"/>
<element name="MAC" type="hexBinary" minOccurs="0"/>
</sequence>
</choice>
</extension>
</complexContent>
</complexType>
<!-- DMP SPECIFIC MESSAGES -->
<!-- InitialiseTool -->
<element name="InitialiseTool" type="dmp2rdm:InitialiseToolType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="InitialiseToolType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="DRMProcessorInstance" type="base64Binary"/>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rdm:ControlPointID"/>
<element ref="dmp2rdm:ControlPointAddress" minOccurs="0"/>
</sequence>
<element ref="dmp2rdm:SequenceCode" minOccurs="0"/>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="ControlPointID" type="dmp2rdm:ControlPointType"/>
<complexType name="ControlPointType">
<annotation>
<documentation>
The Control Point ID is an identifier given by a DMP-appointed Registration Authority with the purpose of indicating a position in the media resource processing chain, as defined in the DMP Terminology. A few examples:
"00" - NO_CONTROL_POINT
"01" - CONTROL_POINT_BEFORE_DEMULTIPLEXING
"02" - CONTROL_POINT_BEFORE_AUDIO_DECODING
"03" - CONTROL_POINT_AFTER_AUDIO_DECODING
"04" - CONTROL_POINT_BEFORE_VIDEO_DECODING
"05" - CONTROL_POINT_AFTER_VIDEO_DECODING
"06" - CONTROL_POINT_BEFORE_STORING
"07" - CONTROL_POINT_BEFORE_PLAYBACK
"08" - CONTROL_POINT_BEFORE_TRANSFERRING
</documentation>
</annotation>
<sequence>
<element name="ID" type="integer"/>
</sequence>
</complexType>
<element name="SequenceCode" type="short"/>
<element name="ControlPointAddress" type="base64Binary"/>
<!--ToolPack Extensions-->
<!--GetToolGroupReference-->
<element name="GetToolGroupReference" type="dmp2rdm:GetToolGroupReferenceType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolGroupReferenceType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType"/>
</complexContent>
</complexType>
<!--GetToolGroupReferenceResponse-->
<element name="GetToolGroupReferenceResponse" type="dmp2rdm:GetToolGroupReferenceResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolGroupReferenceResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element name="ToolGroupReference" type="base64Binary"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--GetToolReference-->
<element name="GetToolReference" type="dmp2rdm:GetToolReferenceType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolReferenceType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPToolID" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!--GetToolReferenceResponse-->
<element name="GetToolReferenceResponse" type="dmp2rdm:GetToolReferenceResponseType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolReferenceResponseType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<sequence maxOccurs="unbounded">
<element ref="dmp2_ipmpinfo:IPMPToolID"/>
<element name="ToolReference" type="base64Binary"/>
</sequence>
</sequence>
</extension>
</complexContent>
</complexType>
<!--ToolPackDataRequest-->
<element name="GetToolPackData" type="dmp2rdm:GetToolPackDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="GetToolPackDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType"/>
</complexContent>
</complexType>
<!--ToolPackData-->
<element name="ToolPackData" type="dmp2rdm:ToolPackDataType" substitutionGroup="dmp2rdm:Data_BaseClass"/>
<complexType name="ToolPackDataType">
<complexContent>
<extension base="dmp2rdm:Data_BaseClassType">
<sequence>
<element ref="dmp2rdm:OpaqueData"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
Figure 185: The dmp2rdm schema
B.2.12The Represent Key Schema
The Represent Key schema characterised by the following URI: urn:dmp:idp2:Represent:Key:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2rk="urn:dmp:idp2:Represent:Key:2006:02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dmp:idp2:Represent:Key:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<element name="Key">
<complexType>
<sequence>
<element ref="dsig:KeyInfo"/>
<element name="startDTS" type="unsignedLong" minOccurs="0"/>
<element name="startPacketID" type="unsignedInt" minOccurs="0"/>
<element name="expireDTS" type="unsignedLong" minOccurs="0"/>
<element name="expirePacketID" type="unsignedInt" minOccurs="0"/>
</sequence>
</complexType>
</element>
</schema>
Figure 186: The dmp2rk schema
Annex C – DMP Profiles of Schemas defined by other Bodies
C.1.1 The DMP Profile of MPEG-21 DIDL Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2002:02-DIDL-NS:2005:04 is given below.
<?xml version="1.0"?>
<schema targetNamespace="urn:dmp:idp1:mpeg21:2002:02-DIDL-NS:2005:04" xmlns:dmp1_ipmpinfo="urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04" xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns:dmp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" xmlns:dmp1rc="urn:dmp:idp1:Represent:Content:2005:04" xmlns:dmp1_didl="urn:dmp:idp1:mpeg21:2002:02-DIDL-NS:2005:04" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1">
<import namespace="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" schemaLocation="didmodel.xsd"/>
<import namespace="urn:dmp:idp1:Represent:Content:2005:04" schemaLocation="dmp1rc-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" schemaLocation="dmp1dii-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04" schemaLocation="dmp1ipmpinfo-2005-04.xsd"/>
<!--=========================================================-->
<attributeGroup name="ID_ATTRS">
<attribute name="id" type="ID" use="optional"/>
</attributeGroup>
<element name="DIDL" type="dmp1_didl:DIDLType"/>
<complexType name="DIDLType">
<sequence>
<element ref="didmodel:Container"/>
</sequence>
<attribute name="DIDLDocumentId" type="anyURI"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<element name="DIDLInfo" type="dmp1_didl:DIDLInfoType"/>
<complexType name="DIDLInfoType">
<sequence>
<any namespace="##any" processContents="lax"/>
</sequence>
</complexType>
<element name="Container" type="dmp1_didl:ContainerType" substitutionGroup="didmodel:Container"/>
<complexType name="ContainerType">
<complexContent>
<extension base="didmodel:ContainerType">
<sequence>
<element ref="didmodel:Item"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Item" type="dmp1_didl:ItemType" substitutionGroup="didmodel:Item"/>
<complexType name="ItemType">
<complexContent>
<extension base="didmodel:ItemType">
<sequence>
<element ref="didmodel:Descriptor" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="didmodel:Item"/>
<element ref="didmodel:Component"/>
</choice>
</sequence>
<attributeGroup ref="dmp1_didl:ID_ATTRS"/>
</extension>
</complexContent>
</complexType>
<element name="Descriptor" type="dmp1_didl:DescriptorType" substitutionGroup="didmodel:Descriptor"/>
<complexType name="DescriptorType">
<complexContent>
<extension base="didmodel:DescriptorType">
<sequence>
<element ref="didmodel:Statement"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Statement" type="dmp1_didl:StatementType" substitutionGroup="didmodel:Statement"/>
<complexType name="StatementType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:StatementType">
<sequence>
<choice>
<element ref="dmp1rc:DMPInformation"/>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp1_dii:RelatedIdentifier"/>
<element ref="dmp1_ipmpinfo:IPMPGeneralInfoDescriptor"/>
</choice>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
<attribute name="ref" type="anyURI"/>
</extension>
</complexContent>
</complexType>
<element name="Component" type="dmp1_didl:ComponentType" substitutionGroup="didmodel:Component"/>
<complexType name="ComponentType">
<complexContent>
<extension base="didmodel:ComponentType">
<sequence>
<element ref="didmodel:Resource" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Resource" type="dmp1_didl:ResourceType" substitutionGroup="didmodel:Resource"/>
<complexType name="ResourceType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:ResourceType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
<attribute name="ref" type="anyURI"/>
<attribute name="encoding" type="string"/>
<attribute name="contentEncoding" type="NMTOKENS"/>
</extension>
</complexContent>
</complexType>
</schema>
Figure 187: The dmp1_didl schema
C.1.2 The DMP Profile of MPEG-21 DII Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04 is given below.
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" targetNamespace="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" version="0.01">
<element name="Identifier" type="anyURI"/>
<element name="RelatedIdentifier">
<complexType>
<simpleContent>
<extension base="anyURI">
<attribute name="relationshipType" type="anyURI"/>
</extension>
</simpleContent>
</complexType>
</element>
</schema>
Figure 188: The dmp1_dii schema
C.1.3 The DMP Profile of MPEG-21 REL Core Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp1_rel_r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" targetNamespace="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!-- Elements -->
<element name="allConditions" type="dmp1_rel_r:AllConditions" substitutionGroup="dmp1_rel_r:condition"/>
<element name="condition" type="dmp1_rel_r:Condition" substitutionGroup="dmp1_rel_r:licensePart"/>
<element name="possessProperty" type="dmp1_rel_r:PossessProperty" substitutionGroup="dmp1_rel_r:right"/>
<element name="digitalResource" type="dmp1_rel_r:DigitalResource" substitutionGroup="dmp1_rel_r:resource"/>
<element name="propertyAbstract" type="dmp1_rel_r:PropertyAbstract" substitutionGroup="dmp1_rel_r:resource"/>
<element name="grant" type="dmp1_rel_r:Grant"/>
<element name="keyHolder" type="dmp1_rel_r:KeyHolder" substitutionGroup="dmp1_rel_r:principal"/>
<element name="issuer" type="dmp1_rel_r:Issuer"/>
<element name="license" type="dmp1_rel_r:License"/>
<element name="licensePart" type="dmp1_rel_r:LicensePart"/>
<element name="principal" type="dmp1_rel_r:Principal"/>
<element name="resource" type="dmp1_rel_r:Resource"/>
<element name="right" type="dmp1_rel_r:Right" substitutionGroup="dmp1_rel_r:licensePart"/>
<element name="validityInterval" type="dmp1_rel_r:ValidityInterval" substitutionGroup="dmp1_rel_r:condition"/>
<!--Complex Types-->
<complexType name="AllConditions">
<complexContent>
<extension base="dmp1_rel_r:Condition">
<sequence>
<element ref="dmp1_rel_r:condition" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="Condition">
<complexContent>
<extension base="dmp1_rel_r:LicensePart"/>
</complexContent>
</complexType>
<complexType name="DigitalResource">
<complexContent>
<extension base="dmp1_rel_r:Resource">
<choice minOccurs="0">
<element name="secureIndirect" type="dsig:ReferenceType"/>
<element name="nonSecureIndirect" type="dmp1_rel_r:NonSecureReference"/>
</choice>
</extension>
</complexContent>
</complexType>
<complexType name="Grant">
<complexContent>
<extension base="dmp1_rel_r:Resource">
<choice minOccurs="0">
<sequence>
<element ref="dmp1_rel_r:principal" minOccurs="0"/>
<element ref="dmp1_rel_r:right"/>
<element ref="dmp1_rel_r:resource" minOccurs="0"/>
<element ref="dmp1_rel_r:condition" minOccurs="0"/>
</sequence>
</choice>
</extension>
</complexContent>
</complexType>
<complexType name="Issuer">
<sequence>
<choice minOccurs="0">
<element ref="dsig:Signature"/>
<element ref="dmp1_rel_r:principal"/>
</choice>
<element name="details" type="dmp1_rel_r:IssuerDetails" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="IssuerDetails">
<sequence>
<element name="timeOfIssue" type="dateTime" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="KeyHolder">
<complexContent>
<extension base="dmp1_rel_r:Principal">
<sequence minOccurs="0">
<element name="info" type="dsig:KeyInfoType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="PossessProperty">
<complexContent>
<extension base="dmp1_rel_r:Right"/>
</complexContent>
</complexType>
<complexType name="License">
<choice>
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="dmp1_rel_r:grant"/>
</choice>
<element ref="dmp1_rel_r:issuer" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</choice>
<attribute name="licenseId" type="anyURI" use="optional"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="LicensePart">
<attribute name="licensePartId" type="dmp1_rel_r:LicensePartId" use="optional"/>
<attribute name="licensePartIdRef" type="dmp1_rel_r:LicensePartId" use="optional"/>
<attribute name="varRef" type="dmp1_rel_r:VariableName" use="optional"/>
</complexType>
<complexType name="PropertyAbstract">
<complexContent>
<extension base="dmp1_rel_r:Resource"/>
</complexContent>
</complexType>
<complexType name="NonSecureReference">
<attribute name="URI" type="anyURI"/>
</complexType>
<complexType name="Principal">
<complexContent>
<extension base="dmp1_rel_r:Resource"/>
</complexContent>
</complexType>
<complexType name="Right">
<complexContent>
<extension base="dmp1_rel_r:LicensePart"/>
</complexContent>
</complexType>
<complexType name="Resource">
<complexContent>
<extension base="dmp1_rel_r:LicensePart"/>
</complexContent>
</complexType>
<complexType name="ValidityInterval">
<complexContent>
<extension base="dmp1_rel_r:Condition">
<sequence>
<element name="notBefore" type="dateTime" minOccurs="0"/>
<element name="notAfter" type="dateTime" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- Simple Types-->
<simpleType name="LicensePartId">
<restriction base="NCName"/>
</simpleType>
<simpleType name="VariableName">
<restriction base="NCName"/>
</simpleType>
</schema>
Figure 189: The dmp1-rel-r schema
C.1.4 The DMP Profile of MPEG-21 REL Standard Extensions Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp1_rel_sx="urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04" xmlns:dmp1_rel_r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dmp:idp1:mpeg21:2003:01-REL-SX-NS:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" schemaLocation="dmp1-rel-r-2005-04.xsd"/>
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!-- Elements -->
<element name="exerciseLimit" type="dmp1_rel_sx:ExerciseLimit" substitutionGroup="dmp1_rel_r:condition"/>
<element name="propertyUri" type="dmp1_rel_sx:PropertyUri" substitutionGroup="dmp1_rel_r:propertyAbstract"/>
<element name="validityIntervalFloating" type="dmp1_rel_sx:ValidityIntervalFloating" substitutionGroup="dmp1_rel_r:condition"/>
<element name="validityTimeMetered" type="dmp1_rel_sx:ValidityTimeMetered" substitutionGroup="dmp1_rel_r:condition"/>
<!--Complex Types-->
<complexType name="ExerciseLimit">
<complexContent>
<extension base="dmp1_rel_r:Condition">
<sequence>
<element name="count" type="integer" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="PropertyUri">
<complexContent>
<extension base="dmp1_rel_r:PropertyAbstract">
<attribute name="definition" type="anyURI"/>
</extension>
</complexContent>
</complexType>
<complexType name="ValidityIntervalFloating">
<complexContent>
<extension base="dmp1_rel_r:Condition">
<sequence>
<element name="duration" type="duration" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ValidityTimeMetered">
<complexContent>
<extension base="dmp1_rel_r:Condition">
<sequence>
<element name="duration" type="duration" minOccurs="0"/>
<element name="quantum" type="duration" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- Simple Types -->
<simpleType name="ProfileCompliance">
<list itemType="QName"/>
</simpleType>
<!-- Attributes -->
<attribute name="profileCompliance" type="dmp1_rel_sx:ProfileCompliance"/>
</schema>
Figure 190: The dmp1-rel-sx schema
C.1.5 The DMP Profile of MPEG-21 REL Multimedia Extensions Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp1_rel_mx="urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04" xmlns:dmp1_rel_r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" targetNamespace="urn:dmp:idp1:mpeg21:2003:01-REL-MX-NS:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified">
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" schemaLocation="dmp1-rel-r-2005-04.xsd"/>
<!-- Rights -->
<element name="play" type="dmp1_rel_mx:Play" substitutionGroup="dmp1_rel_r:right"/>
<element name="print" type="dmp1_rel_mx:Print" substitutionGroup="dmp1_rel_r:right"/>
<element name="move" type="dmp1_rel_mx:Move" substitutionGroup="dmp1_rel_r:right"/>
<!--Complex Types-->
<complexType name="Play">
<complexContent>
<extension base="dmp1_rel_r:Right"/>
</complexContent>
</complexType>
<complexType name="Print">
<complexContent>
<extension base="dmp1_rel_r:Right"/>
</complexContent>
</complexType>
<complexType name="Move">
<complexContent>
<extension base="dmp1_rel_r:Right"/>
</complexContent>
</complexType>
</schema>
Figure 191: The dmp1-rel-mx schema
C.1.6 The DMP Profile of MPEG-21 IPMP Info Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04 is given below.
<?xml version="1.0"?>
<schema targetNamespace="urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04" xmlns:dmp1rc="urn:dmp:idp1:Represent:Content:2005:04" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp1_rel_r="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" xmlns:idp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" xmlns:dmp1_ipmpinfo="urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.01">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2003:01-REL-R-NS:2005:04" schemaLocation="dmp1-rel-r-2005-04.xsd"/>
<import namespace="urn:dmp:idp1:Represent:Content:2005:04" schemaLocation="dmp1rc-2005-04.xsd"/>
<import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<element name="IPMPInfoDescriptor" type="dmp1_ipmpinfo:IPMPInfoDescriptorType"/>
<complexType name="IPMPInfoDescriptorType">
<sequence>
<element ref="dmp1_ipmpinfo:Tool" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dmp1_ipmpinfo:RightsDescriptor" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="Tool" type="dmp1_ipmpinfo:ToolType"/>
<complexType name="ToolType">
<sequence>
<element ref="dmp1_ipmpinfo:ToolBaseDescription"/>
<element ref="dmp1_ipmpinfo:InitializationSettings" minOccurs="0"/>
<element ref="dmp1_ipmpinfo:RightsDescriptor" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
<attribute name="order" type="positiveInteger"/>
</complexType>
<element name="ToolBaseDescription" type="dmp1_ipmpinfo:ToolBaseDescriptionType"/>
<complexType name="ToolBaseDescriptionType">
<sequence>
<element ref="dmp1_ipmpinfo:IPMPToolID"/>
</sequence>
</complexType>
<element name="IPMPToolID" type="anyURI"/>
<element name="InitializationSettings" type="dmp1_ipmpinfo:InitializationSettingsType"/>
<complexType name="InitializationSettingsType" mixed="true">
<sequence>
<element ref="dmp1_ipmpinfo:InitializationData"/>
</sequence>
</complexType>
<element name="InitializationData" type="dmp1_ipmpinfo:InitializationDataType"/>
<complexType name="InitializationDataType" mixed="true">
<sequence>
<element ref="dsig:KeyInfo" minOccurs="0"/>
<element name="KeySize" type="xenc:KeySizeType" minOccurs="0"/>
</sequence>
</complexType>
<element name="RightsDescriptor" type="dmp1_ipmpinfo:RightsDescriptorType"/>
<complexType name="RightsDescriptorType">
<sequence>
<element ref="dmp1_ipmpinfo:License" minOccurs="0"/>
<element ref="dmp1_ipmpinfo:LicenseReference" minOccurs="0"/>
<element ref="dmp1_ipmpinfo:LicenseService" minOccurs="0"/>
</sequence>
</complexType>
<element name="License" type="dmp1_ipmpinfo:LicenseType"/>
<complexType name="LicenseType" mixed="true">
<sequence>
<element ref="dmp1rc:License" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="LicenseService" type="dmp1_ipmpinfo:LicenseServiceType"/>
<complexType name="LicenseServiceType" mixed="true">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
</complexType>
<element name="LicenseReference" type="dmp1_ipmpinfo:LicenseReferenceType"/>
<complexType name="LicenseReferenceType">
<simpleContent>
<extension base="anyURI"/>
</simpleContent>
</complexType>
<!-- IPMPGeneralInfoDescriptor -->
<element name="IPMPGeneralInfoDescriptor" type="dmp1_ipmpinfo:IPMPGeneralInfoDescriptorType"/>
<complexType name="IPMPGeneralInfoDescriptorType">
<sequence>
<element ref="dmp1_ipmpinfo:ToolList" minOccurs="0"/>
<element ref="dmp1_ipmpinfo:LicenseCollection" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
<!--Signature for the IPMPGeneralInfoDescriptor element and children -->
</sequence>
</complexType>
<element name="ToolList" type="dmp1_ipmpinfo:ToolListType"/>
<complexType name="ToolListType">
<sequence>
<element ref="dmp1_ipmpinfo:ToolDescription" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="ToolDescription" type="dmp1_ipmpinfo:ToolDescriptionType"/>
<complexType name="ToolDescriptionType">
<sequence>
<element ref="dmp1_ipmpinfo:IPMPToolID"/>
</sequence>
<attribute name="localID" type="ID" use="required"/>
</complexType>
<element name="LicenseCollection" type="dmp1_ipmpinfo:LicenseCollectionType"/>
<complexType name="LicenseCollectionType" mixed="true">
<sequence>
<element ref="dmp1_ipmpinfo:RightsDescriptor" maxOccurs="unbounded"/>
</sequence>
</complexType>
</schema>
Figure 192: The dmp1_ipmpinfo schema
C.1.7 The DMP Profile of MPEG-21 IPMP DIDL Schema
The schema characterised by the following URI: urn:dmp:idp1:mpeg21:2004:01-IPMPDIDL-NS:2005:04 is given below.
<?xml version="1.0"?>
<schema xmlns:idp1_ipmpinfo="urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04" xmlns:idp1_ipmpdidl="urn:dmp:idp1:mpeg21:2004:01-IPMPDIDL-NS:2005:04" xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp1:mpeg21:2004:01-IPMPDIDL-NS:2005:04" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.01">
<import namespace="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" schemaLocation="didmodel.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2004:01-IPMPINFO-NS:2005:04" schemaLocation="dmp1ipmpinfo-2005-04.xsd"/>
<element name="Container" type="idp1_ipmpdidl:ContainerType" substitutionGroup="didmodel:Container"/>
<complexType name="ContainerType">
<complexContent>
<extension base="didmodel:ContainerType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Item" type="idp1_ipmpdidl:ItemType" substitutionGroup="didmodel:Item"/>
<complexType name="ItemType">
<complexContent>
<extension base="didmodel:ItemType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Descriptor" type="idp1_ipmpdidl:DescriptorType" substitutionGroup="didmodel:Descriptor"/>
<complexType name="DescriptorType">
<complexContent>
<extension base="didmodel:DescriptorType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Statement" type="idp1_ipmpdidl:StatementType" substitutionGroup="didmodel:Statement"/>
<complexType name="StatementType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:StatementType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Component" type="idp1_ipmpdidl:ComponentType" substitutionGroup="didmodel:Component"/>
<complexType name="ComponentType">
<complexContent>
<extension base="didmodel:ComponentType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Resource" type="idp1_ipmpdidl:ResourceType" substitutionGroup="didmodel:Resource"/>
<complexType name="ResourceType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:ResourceType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- elements from here onward are unique to the IPMP DIDL Representation-->
<group name="IPMPDIDLChildGroup">
<sequence>
<element ref="idp1_ipmpdidl:Identifier" minOccurs="0"/>
<element ref="idp1_ipmpdidl:Info"/>
<element ref="idp1_ipmpdidl:Contents"/>
</sequence>
</group>
<element name="Contents">
<complexType mixed="true">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI"/>
</complexType>
</element>
<element name="Info">
<complexType mixed="true">
<sequence>
<element ref="idp1_ipmpinfo:IPMPInfoDescriptor" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="Identifier">
<complexType mixed="true">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="ProtectedAsset" type="idp1_ipmpdidl:ProtectedAssetType"/>
<complexType name="ProtectedAssetType">
<sequence>
<group ref="idp1_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
</complexType>
</schema>
Figure 193: The dmp1_ipmpdidl schema
C.2 IDP-2 Schema Profiles
C.2.1 The DMP Profile of MPEG-21 DIDL Schema
The schema characterised by the following URI: urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02 is given below.
<?xml version="1.0"?>
<schema xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns:dmp1_dii="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" xmlns:dmp2rc="urn:dmp:idp2:Represent:Content:2006:02" xmlns:dmp2_didl="urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp2:mpeg21:2002:02-DIDL-NS:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1">
<import namespace="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" schemaLocation="didmodel.xsd"/>
<import namespace="urn:dmp:idp2:Represent:Content:2006:02" schemaLocation="dmp2rc-2006-02.xsd"/>
<import namespace="urn:dmp:idp1:mpeg21:2002:01-DII-NS:2005:04" schemaLocation="dmp1dii-2005-04.xsd"/>
<import namespace="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" schemaLocation="dmp2ipmpinfo-2006-02.xsd"/>
<!--=========================================================-->
<attributeGroup name="ID_ATTRS">
<attribute name="id" type="ID" use="optional"/>
</attributeGroup>
<element name="DIDL" type="dmp2_didl:DIDLType"/>
<complexType name="DIDLType">
<sequence>
<element ref="didmodel:Container"/>
</sequence>
<attribute name="DIDLDocumentId" type="anyURI"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<element name="DIDLInfo" type="dmp2_didl:DIDLInfoType"/>
<complexType name="DIDLInfoType">
<sequence>
<any namespace="##any" processContents="lax"/>
</sequence>
</complexType>
<element name="Container" type="dmp2_didl:ContainerType" substitutionGroup="didmodel:Container"/>
<complexType name="ContainerType">
<complexContent>
<extension base="didmodel:ContainerType">
<sequence>
<element ref="didmodel:Item"/>
<element ref="didmodel:Descriptor" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Item" type="dmp2_didl:ItemType" substitutionGroup="didmodel:Item"/>
<complexType name="ItemType">
<complexContent>
<extension base="didmodel:ItemType">
<sequence>
<element ref="didmodel:Descriptor" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="didmodel:Item"/>
<element ref="didmodel:Component"/>
</choice>
</sequence>
<attributeGroup ref="dmp2_didl:ID_ATTRS"/>
</extension>
</complexContent>
</complexType>
<element name="Descriptor" type="dmp2_didl:DescriptorType" substitutionGroup="didmodel:Descriptor"/>
<complexType name="DescriptorType">
<complexContent>
<extension base="didmodel:DescriptorType">
<sequence>
<element ref="didmodel:Statement"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Statement" type="dmp2_didl:StatementType" substitutionGroup="didmodel:Statement"/>
<complexType name="StatementType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:StatementType">
<sequence>
<choice>
<element ref="dmp2rc:DMPInformation"/>
<element ref="dmp1_dii:Identifier"/>
<element ref="dmp1_dii:RelatedIdentifier"/>
<element ref="dmp2_ipmpinfo:IPMPGeneralInfoDescriptor"/>
<choice>
<element ref="dmp2rc:DCISignature"/>
<element ref="dmp2rc:DCIHash"/>
</choice>
</choice>
</sequence>
<attribute name="mimeType" type="string"/>
<attribute name="ref" type="anyURI"/>
</extension>
</complexContent>
</complexType>
<element name="Component" type="dmp2_didl:ComponentType" substitutionGroup="didmodel:Component"/>
<complexType name="ComponentType">
<complexContent>
<extension base="didmodel:ComponentType">
<sequence>
<element ref="didmodel:Resource" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Resource" type="dmp2_didl:ResourceType" substitutionGroup="didmodel:Resource"/>
<complexType name="ResourceType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:ResourceType">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
<attribute name="ref" type="anyURI"/>
<attribute name="encoding" type="string"/>
<attribute name="contentEncoding" type="NMTOKENS"/>
</extension>
</complexContent>
</complexType>
</schema>
Figure 194: The dmp2_didl schema
C.2.2 The DMP Profile of MPEG-21 IPMP DIDL Schema
The schema characterised by the following URI: urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02 is given below.
<?xml version="1.0"?>
<schema targetNamespace="urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02" xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" xmlns:dmp2_ipmpdidl="urn:dmp:idp2:mpeg21:2004:01-IPMPDIDL-NS:2006:02" xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.01">
<import namespace="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" schemaLocation="didmodel.xsd"/>
<import namespace="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" schemaLocation="dmp2ipmpinfo-2006-02.xsd"/>
<element name="Container" type="dmp2_ipmpdidl:ContainerType" substitutionGroup="didmodel:Container"/>
<complexType name="ContainerType">
<complexContent>
<extension base="didmodel:ContainerType">
<sequence>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Item" type="dmp2_ipmpdidl:ItemType" substitutionGroup="didmodel:Item"/>
<complexType name="ItemType">
<complexContent>
<extension base="didmodel:ItemType">
<sequence>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Statement" type="dmp2_ipmpdidl:StatementType" substitutionGroup="didmodel:Statement"/>
<complexType name="StatementType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:StatementType">
<sequence>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="Resource" type="dmp2_ipmpdidl:ResourceType" substitutionGroup="didmodel:Resource"/>
<complexType name="ResourceType" mixed="true">
<complexContent mixed="true">
<extension base="didmodel:ResourceType">
<sequence>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- elements from here onward are unique to the IPMP DIDL Representation-->
<group name="IPMPDIDLChildGroup">
<sequence>
<element ref="dmp2_ipmpdidl:Identifier" minOccurs="0"/>
<element ref="dmp2_ipmpdidl:Info"/>
<element ref="dmp2_ipmpdidl:Contents"/>
</sequence>
</group>
<element name="Contents">
<complexType mixed="true">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI"/>
</complexType>
</element>
<element name="Info">
<complexType mixed="true">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPInfoDescriptor" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="Identifier">
<complexType mixed="true">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="ProtectedAsset" type="dmp2_ipmpdidl:ProtectedAssetType"/>
<complexType name="ProtectedAssetType">
<sequence>
<group ref="dmp2_ipmpdidl:IPMPDIDLChildGroup"/>
</sequence>
<attribute name="mimeType" type="string" use="required"/>
<attribute name="contentEncoding" type="string"/>
</complexType>
</schema>
Figure 195: The dmp2_ipmpdidl schema
C.2.3 The DMP Profile of MPEG-21 IPMP Info Schema
The schema characterised by the following URI: urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02 is given below.
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2rtb="urn:dmp:idp2:Represent:ToolBody:2006:02" xmlns:dmp2rdi="urn:dmp:idp2:Represent:DeviceInformation:2006:02" xmlns:dmp2rl="urn:dmp:idp2:Represent:License:2006:02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dmp2rdm="urn:dmp:idp2:Represent:DRMMessages:2006:02" xmlns:dmp2_ipmpinfo="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" targetNamespace="urn:dmp:idp2:mpeg21:2004:01-IPMPINFO-NS:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.01">
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<import namespace="urn:dmp:idp2:Represent:License:2006:02" schemaLocation="dmp2rl-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:Represent:DRMMessages:2006:02" schemaLocation="dmp2rdm-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:Represent:ToolBody:2006:02" schemaLocation="dmp2rtb-2006-02.xsd"/>
<import namespace="urn:dmp:idp2:Represent:DeviceInformation:2006:02" schemaLocation="dmp2rdi-2006-02.xsd"/>
<!-- elements-->
<element name="IPMPInfoDescriptor" type="dmp2_ipmpinfo:IPMPInfoDescriptorType"/>
<complexType name="IPMPInfoDescriptorType">
<sequence>
<element ref="dmp2_ipmpinfo:Tool" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dmp2_ipmpinfo:RightsDescriptor" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="Tool" type="dmp2_ipmpinfo:ToolType"/>
<complexType name="ToolType">
<sequence>
<element ref="dmp2_ipmpinfo:ToolBaseDescription"/>
<element ref="dmp2_ipmpinfo:InitializationSettings" minOccurs="0"/>
<element ref="dmp2_ipmpinfo:RightsDescriptor" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
<attribute name="order" type="positiveInteger"/>
</complexType>
<element name="ToolBaseDescription" type="dmp2_ipmpinfo:ToolBaseDescriptionType"/>
<complexType name="ToolBaseDescriptionType">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPToolID"/>
<choice minOccurs="0">
<element ref="dmp2_ipmpinfo:Inline"/>
<element ref="dmp2_ipmpinfo:Remote"/>
</choice>
<element ref="dmp2_ipmpinfo:ConfigurationSettings" minOccurs="0" maxOccurs="unbounded"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="IPMPToolID" type="anyURI"/>
<element name="ToolRef" type="dmp2_ipmpinfo:ToolRef"/>
<complexType name="ToolRef">
<attribute name="localidref" type="IDREF" use="required"/>
</complexType>
<element name="Inline" type="dmp2_ipmpinfo:InlineType"/>
<complexType name="InlineType">
<sequence>
<element ref="dmp2_ipmpinfo:Binary"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="Binary">
<complexType>
<sequence>
<element ref="dmp2rtb:ToolBody"/>
</sequence>
</complexType>
</element>
<element name="Remote" type="dmp2_ipmpinfo:RemoteType"/>
<complexType name="RemoteType">
<sequence>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
<attribute name="ref" type="anyURI"/>
</complexType>
<element name="ConfigurationSettings" type="dmp2_ipmpinfo:ConfigurationSettingsType"/>
<complexType name="ConfigurationSettingsType" mixed="true">
<sequence>
<element ref="dmp2_ipmpinfo:Update" minOccurs="0"/>
</sequence>
</complexType>
<element name="Update" type="dmp2_ipmpinfo:UpdateType"/>
<complexType name="UpdateType">
<sequence>
<element ref="dmp2_ipmpinfo:Location" maxOccurs="unbounded"/>
<element ref="dmp2_ipmpinfo:Condition" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
</complexType>
<element name="Location" type="dmp2_ipmpinfo:RemoteType"/>
<element name="Condition" type="dmp2_ipmpinfo:ConditionType"/>
<complexType name="ConditionType">
<sequence>
<element ref="dmp2_ipmpinfo:ScheduledUpdateTime" minOccurs="0"/>
<element ref="dmp2_ipmpinfo:SupportedPlatform" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="ScheduledUpdateTime" type="dmp2_ipmpinfo:ScheduledUpdateTimeType"/>
<complexType name="ScheduledUpdateTimeType">
<simpleContent>
<extension base="dateTime">
<attribute name="periodic" type="duration" use="optional"/>
</extension>
</simpleContent>
</complexType>
<element name="SupportedPlatform" type="dmp2_ipmpinfo:SupportedPlatformType"/>
<complexType name="SupportedPlatformType">
<sequence>
<element ref="dmp2rdi:DeviceInformation"/>
</sequence>
</complexType>
<element name="InitializationSettings" type="dmp2_ipmpinfo:InitializationSettingsType"/>
<complexType name="InitializationSettingsType" mixed="true">
<sequence>
<element ref="dmp2_ipmpinfo:InitializationData"/>
</sequence>
</complexType>
<element name="InitializationData" type="dmp2_ipmpinfo:InitializationDataType"/>
<complexType name="InitializationDataType" mixed="true">
<sequence>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="dmp2rdm:ControlPointID" minOccurs="0"/>
<element ref="dmp2rdm:SequenceCode" minOccurs="0"/>
<element ref="dmp2rdm:ControlPointAddress" minOccurs="0"/>
</sequence>
<element ref="dmp2rdm:Data_BaseClass" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="RightsDescriptor" type="dmp2_ipmpinfo:RightsDescriptorType"/>
<complexType name="RightsDescriptorType">
<sequence>
<element ref="dmp2_ipmpinfo:License" minOccurs="0"/>
<element ref="dmp2_ipmpinfo:LicenseReference" minOccurs="0"/>
<element ref="dmp2_ipmpinfo:LicenseService" minOccurs="0"/>
</sequence>
</complexType>
<element name="License" type="dmp2_ipmpinfo:LicenseType"/>
<complexType name="LicenseType" mixed="true">
<sequence>
<element ref="dmp2rl:License" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="LicenseService" type="dmp2_ipmpinfo:LicenseServiceType"/>
<complexType name="LicenseServiceType" mixed="true">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"/>
</sequence>
</complexType>
<element name="LicenseReference" type="dmp2_ipmpinfo:LicenseReferenceType"/>
<complexType name="LicenseReferenceType">
<simpleContent>
<extension base="anyURI"/>
</simpleContent>
</complexType>
<!--********************************* -->
<!-- IPMPGeneralInfoDescriptor -->
<!--********************************* -->
<element name="IPMPGeneralInfoDescriptor" type="dmp2_ipmpinfo:IPMPGeneralInfoDescriptorType"/>
<complexType name="IPMPGeneralInfoDescriptorType">
<sequence>
<element ref="dmp2_ipmpinfo:ToolList" minOccurs="0"/>
<element ref="dmp2_ipmpinfo:LicenseCollection" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
<!--Signature for the IPMPGeneralInfoDescriptor element and children -->
</sequence>
</complexType>
<element name="ToolList" type="dmp2_ipmpinfo:ToolListType"/>
<complexType name="ToolListType">
<sequence>
<element ref="dmp2_ipmpinfo:ToolDescription" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="ToolDescription" type="dmp2_ipmpinfo:ToolDescriptionType"/>
<complexType name="ToolDescriptionType">
<sequence>
<element ref="dmp2_ipmpinfo:IPMPToolID"/>
<element ref="dmp2_ipmpinfo:MemberOf" minOccurs="0"/>
<choice minOccurs="0">
<element ref="dmp2_ipmpinfo:Inline"/>
<element ref="dmp2_ipmpinfo:Remote"/>
</choice>
<element ref="dmp2_ipmpinfo:RightsDescriptor" minOccurs="0"/>
<element ref="dsig:Signature" minOccurs="0"/>
</sequence>
<attribute name="localID" type="ID" use="required"/>
</complexType>
<element name="MemberOf" type="dmp2_ipmpinfo:MemberOfType"/>
<complexType name="MemberOfType">
<sequence maxOccurs="unbounded">
<element ref="dmp2_ipmpinfo:AlternateGroup"/>
</sequence>
</complexType>
<element name="AlternateGroup" type="dmp2_ipmpinfo:AlternateGroupType"/>
<complexType name="AlternateGroupType">
<attribute name="groupID" type="positiveInteger" use="required"/>
</complexType>
<element name="LicenseCollection" type="dmp2_ipmpinfo:LicenseCollectionType"/>
<complexType name="LicenseCollectionType" mixed="true">
<sequence>
<element ref="dmp2_ipmpinfo:RightsDescriptor" maxOccurs="unbounded"/>
</sequence>
</complexType>
</schema>
Figure 196: The dmp2_ipmpinfo schema
C.2.4 The DMP Profile of TVA Schema
The schema characterised by the following URI: urn:dmp:idp2:tva:metadata:2002:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:dmp2_tva="urn:dmp:idp2:tva:metadata:2002:2006:02" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:dmp:idp2:tva:metadata:2002:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<annotation>
<documentation xml:lang="en">
-------- This XML Schema file specifies normative DMP metadata types. It is a reduced profile ofr ETSI TS 102 822-3-1 V1.1.1 (2003-05)
It differs from ETSI TS 102 822-3-1 V1.1.1 (2003-05) in that it it does not include the following second level elements.
ServiceInformationTable
SegmentInformationTable
ProgramReviewTable
ProgramLocationTable.
UserDescriptionTable
All of which are defined in ETSI TS 102 822-3-1 V1.1.1 (2003-05) with minOccurrs=0
TVAMain and ProgramDescription
These omissions are made through a modified definition of TVAMAin and ProgrammeDesscription in the dmp:represent:Metadata namespace.
Apart from the omission of elements not used, all remaining elements are as ETSI TS 102 822-3-1 V1.1.1 (2003-05)
</documentation>
</annotation>
<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<import namespace="urn:mpeg:mpeg7:schema:2001" schemaLocation="mpeg7.xsd"/>
<annotation>
<documentation xml:lang="en">
======== Section 5.3.3 BASIC TYPES</documentation>
</annotation>
<simpleType name="TVAIDType">
<restriction base="string">
<whiteSpace value="collapse"/>
</restriction>
</simpleType>
<simpleType name="TVAIDRefType">
<restriction base="string">
<whiteSpace value="collapse"/>
</restriction>
</simpleType>
<simpleType name="TVAIDRefsType">
<list itemType="dmp2_tva:TVAIDRefType"/>
</simpleType>
<simpleType name="CRIDType">
<restriction base="anyURI">
<pattern value="(c|C)(r|R)(i|I)(d|D)://.*/.*"/>
</restriction>
</simpleType>
<complexType name="CRIDRefType">
<attribute name="crid" type="dmp2_tva:CRIDType" use="required"/>
</complexType>
<complexType name="FlagType">
<attribute name="value" type="boolean" use="required"/>
</complexType>
<complexType name="TVATimeType">
<sequence>
<element name="TimePoint" type="mpeg7:timePointType"/>
<element name="Duration" type="mpeg7:durationType" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="ControlledTermType">
<sequence>
<element name="Name" minOccurs="0">
<complexType>
<simpleContent>
<extension base="mpeg7:TextualType">
<attribute name="preferred" type="boolean" use="optional"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="Definition" type="mpeg7:TextualType" minOccurs="0"/>
</sequence>
<attribute name="href" type="mpeg7:termReferenceType" use="required"/>
</complexType>
<complexType name="TVAAgentType">
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="PersonName" type="mpeg7:PersonNameType"/>
<element name="PersonNameIDRef">
<complexType>
<attribute name="ref" type="dmp2_tva:TVAIDRefType" use="required"/>
</complexType>
</element>
<element name="OrganizationName" type="mpeg7:TextualType"/>
<element name="OrganizationNameIDRef">
<complexType>
<attribute name="ref" type="dmp2_tva:TVAIDRefType" use="required"/>
</complexType>
</element>
</choice>
</sequence>
</complexType>
<attributeGroup name="fragmentIdentification">
<attribute name="fragmentId" type="dmp2_tva:TVAIDType" use="optional"/>
<attribute name="fragmentVersion" type="unsignedLong" use="optional"/>
</attributeGroup>
<annotation>
<documentation xml:lang="en">
======== Section 5.3.4 DESCRIPTION</documentation>
</annotation>
<complexType name="KeywordType">
<simpleContent>
<extension base="mpeg7:TextualType">
<attribute name="type" use="optional" default="main">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="main"/>
<enumeration value="secondary"/>
<enumeration value="other"/>
</restriction>
</simpleType>
</attribute>
</extension>
</simpleContent>
</complexType>
<complexType name="GenreType">
<complexContent>
<extension base="dmp2_tva:ControlledTermType">
<attribute name="type" use="optional" default="main">
<simpleType>
<restriction base="string">
<enumeration value="main"/>
<enumeration value="secondary"/>
<enumeration value="other"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="SynopsisLengthType">
<restriction base="string"/>
</simpleType>
<complexType name="SynopsisType">
<simpleContent>
<extension base="mpeg7:TextualType">
<attribute name="length" type="dmp2_tva:SynopsisLengthType" use="optional"/>
</extension>
</simpleContent>
</complexType>
<complexType name="RelatedMaterialType">
<sequence>
<element name="HowRelated" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
<element name="Format" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
<element name="MediaLocator" type="mpeg7:MediaLocatorType"/>
<element name="PromotionalText" type="mpeg7:TextualType" minOccurs="0" maxOccurs="unbounded"/>
<element name="SourceMediaLocator" type="mpeg7:MediaLocatorType" minOccurs="0"/>
</sequence>
</complexType>
<complexType name="CreditsItemType">
<complexContent>
<extension base="dmp2_tva:TVAAgentType">
<sequence>
<element name="Character" type="mpeg7:PersonNameType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="role" type="mpeg7:termReferenceType" use="required"/>
</extension>
</complexContent>
</complexType>
<complexType name="CreditsListType">
<sequence>
<element name="CreditsItem" type="dmp2_tva:CreditsItemType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="AwardsListItemType">
<sequence>
<element name="Title" type="mpeg7:TextualType"/>
<element name="Year" type="gYear"/>
<element name="Award" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="Category" type="mpeg7:TextualType"/>
<choice minOccurs="0">
<element name="Nominee" type="dmp2_tva:CreditsItemType"/>
<element name="Recipient" type="dmp2_tva:CreditsItemType"/>
</choice>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<complexType name="AwardsListType">
<sequence>
<element name="AwardsListItem" type="dmp2_tva:AwardsListItemType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="BasicContentDescriptionType">
<sequence>
<element name="Title" type="mpeg7:TitleType" minOccurs="0" maxOccurs="unbounded"/>
<element name="MediaTitle" type="mpeg7:TitleMediaType" minOccurs="0" maxOccurs="unbounded"/>
<element name="ShortTitle" minOccurs="0" maxOccurs="unbounded">
<complexType>
<simpleContent>
<extension base="mpeg7:TitleType">
<attribute name="length" type="unsignedShort" use="required"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="Synopsis" type="dmp2_tva:SynopsisType" minOccurs="0" maxOccurs="unbounded"/>
<element name="PromotionalInformation" type="mpeg7:TextualType" minOccurs="0" maxOccurs="unbounded"/>
<element name="Keyword" type="dmp2_tva:KeywordType" minOccurs="0" maxOccurs="unbounded"/>
<element name="Genre" type="dmp2_tva:GenreType" minOccurs="0" maxOccurs="unbounded"/>
<element name="ParentalGuidance" type="mpeg7:ParentalGuidanceType" minOccurs="0" maxOccurs="unbounded"/>
<element name="Language" type="mpeg7:ExtendedLanguageType" minOccurs="0" maxOccurs="unbounded"/>
<element name="CaptionLanguage" minOccurs="0" maxOccurs="unbounded">
<complexType>
<simpleContent>
<extension base="language">
<attribute name="closed" type="boolean" use="optional" default="true"/>
<attribute name="supplemental" type="boolean" use="optional" default="false"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="SignLanguage" minOccurs="0" maxOccurs="unbounded">
<complexType>
<simpleContent>
<extension base="language">
<attribute name="primary" type="boolean" use="optional"/>
<attribute name="translation" type="boolean" use="optional"/>
<attribute name="type" type="string" use="optional"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="CreditsList" type="dmp2_tva:CreditsListType" minOccurs="0"/>
<element name="AwardsList" type="dmp2_tva:AwardsListType" minOccurs="0"/>
<element name="RelatedMaterial" type="dmp2_tva:RelatedMaterialType" minOccurs="0" maxOccurs="unbounded"/>
<element name="ProductionDate" type="dmp2_tva:TVATimeType" minOccurs="0"/>
<element name="ProductionLocation" type="mpeg7:regionCode" minOccurs="0" maxOccurs="unbounded"/>
<element name="CreationCoordinates" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="CreationDate" type="dmp2_tva:TVATimeType" minOccurs="0"/>
<element name="CreationLocation" type="mpeg7:regionCode" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="DepictedCoordinates" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="DepictedDate" type="dmp2_tva:TVATimeType" minOccurs="0"/>
<element name="DepictedLocation" type="mpeg7:PlaceType" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="ReleaseInformation" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="ReleaseDate" minOccurs="0">
<complexType>
<choice>
<element name="DayAndYear" type="date"/>
<element name="Year" type="gYear"/>
</choice>
</complexType>
</element>
<element name="ReleaseLocation" type="mpeg7:regionCode" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<annotation>
<documentation xml:lang="en">
======== Section 5.3.5 AUDIO AND VIDEO INFORMATION</documentation>
</annotation>
<complexType name="AVAttributesType">
<sequence>
<element name="FileFormat" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
<element name="FileSize" type="unsignedLong" minOccurs="0"/>
<element name="System" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
<element name="BitRate" minOccurs="0">
<complexType>
<simpleContent>
<extension base="nonNegativeInteger">
<attribute name="variable" type="boolean" use="optional" default="false"/>
<attribute name="minimum" type="unsignedLong" use="optional"/>
<attribute name="average" type="unsignedLong" use="optional"/>
<attribute name="maximum" type="unsignedLong" use="optional"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="AudioAttributes" minOccurs="0">
<complexType>
<sequence>
<element name="Coding" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
<element name="NumOfChannels" type="unsignedShort" minOccurs="0"/>
<element name="MixType" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="VideoAttributes" minOccurs="0">
<complexType>
<sequence>
<element name="Coding" type="dmp2_tva:ControlledTermType" minOccurs="0"/>
<element name="Scan" type="dmp2_tva:ScanType" minOccurs="0"/>
<element name="HorizontalSize" type="unsignedShort" minOccurs="0"/>
<element name="VerticalSize" type="unsignedShort" minOccurs="0"/>
<element name="AspectRatio" type="dmp2_tva:AspectRatioType" minOccurs="0" maxOccurs="2"/>
<element name="Color" type="dmp2_tva:ColorType" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<simpleType name="ScanType">
<restriction base="string">
<enumeration value="interlaced"/>
<enumeration value="progressive"/>
</restriction>
</simpleType>
<simpleType name="ColorTypeType">
<restriction base="string">
<enumeration value="color"/>
<enumeration value="blackAndWhite"/>
<enumeration value="blackAndWhiteAndColor"/>
<enumeration value="colorized"/>
</restriction>
</simpleType>
<complexType name="ColorType">
<attribute name="type" type="dmp2_tva:ColorTypeType" use="required"/>
</complexType>
<simpleType name="RatioType">
<restriction base="string">
<pattern value="\d+:\d+"/>
</restriction>
</simpleType>
<complexType name="AspectRatioType">
<simpleContent>
<extension base="dmp2_tva:RatioType">
<attribute name="type" use="optional" default="original">
<simpleType>
<restriction base="string">
<enumeration value="original"/>
<enumeration value="publication"/>
</restriction>
</simpleType>
</attribute>
</extension>
</simpleContent>
</complexType>
<annotation>
<documentation xml:lang="en">
======== Section 5.3.6 PROGRAMME INFORMATION</documentation>
</annotation>
<complexType name="ProgramInformationType">
<sequence>
<element name="BasicDescription" type="dmp2_tva:BasicContentDescriptionType"/>
<element name="OtherIdentifier" type="mpeg7:UniqueIDType" minOccurs="0" maxOccurs="unbounded"/>
<element name="AVAttributes" type="dmp2_tva:AVAttributesType" minOccurs="0"/>
<element name="MemberOf" type="dmp2_tva:BaseMemberOfType" minOccurs="0" maxOccurs="unbounded"/>
<element name="DerivedFrom" type="dmp2_tva:DerivedFromType" minOccurs="0"/>
<element name="EpisodeOf" type="dmp2_tva:EpisodeOfType" minOccurs="0"/>
<element name="PartOfAggregatedProgram" type="dmp2_tva:CRIDType" minOccurs="0"/>
<element name="AggregationOf" minOccurs="0">
<complexType>
<sequence>
<element name="AggregatedProgram" type="dmp2_tva:CRIDRefType" minOccurs="2" maxOccurs="unbounded"/>
</sequence>
<attribute name="type" use="required">
<simpleType>
<restriction base="string">
<enumeration value="omnibus"/>
<enumeration value="magazine"/>
</restriction>
</simpleType>
</attribute>
</complexType>
</element>
</sequence>
<attribute name="programId" type="dmp2_tva:CRIDType" use="required"/>
<attributeGroup ref="dmp2_tva:fragmentIdentification"/>
</complexType>
<complexType name="EpisodeOfType">
<complexContent>
<extension base="dmp2_tva:BaseMemberOfType"/>
</complexContent>
</complexType>
<complexType name="BaseMemberOfType" abstract="true">
<complexContent>
<extension base="dmp2_tva:CRIDRefType">
<attribute name="index" type="unsignedInt" use="optional"/>
</extension>
</complexContent>
</complexType>
<complexType name="MemberOfType">
<complexContent>
<extension base="dmp2_tva:BaseMemberOfType"/>
</complexContent>
</complexType>
<complexType name="BaseDerivationReasonType" abstract="true"/>
<complexType name="DerivationReasonType">
<complexContent>
<extension base="dmp2_tva:BaseDerivationReasonType">
<attribute name="value" use="required">
<simpleType>
<restriction base="string">
<enumeration value="violence"/>
<enumeration value="language"/>
<enumeration value="sex"/>
<enumeration value="duration"/>
<enumeration value="other"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="DerivedFromType">
<complexContent>
<extension base="dmp2_tva:BaseMemberOfType">
<sequence>
<element name="DerivationReason" type="dmp2_tva:BaseDerivationReasonType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<annotation>
<documentation xml:lang="en">
======== Section 5.3.7 GROUP INFORMATION</documentation>
</annotation>
<complexType name="BaseProgramGroupTypeType" abstract="true"/>
<complexType name="ProgramGroupTypeType">
<complexContent>
<extension base="dmp2_tva:BaseProgramGroupTypeType">
<attribute name="value" use="required">
<simpleType>
<restriction base="string">
<enumeration value="series"/>
<enumeration value="show"/>
<enumeration value="programConcept"/>
<enumeration value="programCompilation"/>
<enumeration value="otherCollection"/>
<enumeration value="otherChoice"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="GroupInformationType">
<sequence>
<element name="GroupType" type="dmp2_tva:BaseProgramGroupTypeType"/>
<element name="BasicDescription" type="dmp2_tva:BasicContentDescriptionType"/>
<element name="MemberOf" type="dmp2_tva:BaseMemberOfType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="groupId" type="dmp2_tva:CRIDType" use="required"/>
<attribute name="ordered" type="boolean" use="optional" default="false"/>
<attribute name="numOfItems" type="unsignedInt" use="optional"/>
<attributeGroup ref="dmp2_tva:fragmentIdentification"/>
</complexType>
<annotation>
<documentation xml:lang="en">
======== Section 5.7.1 INFORMATION TABLES</documentation>
</annotation>
<complexType name="ProgramInformationTableType">
<sequence>
<element name="ProgramInformation" type="dmp2_tva:ProgramInformationType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="copyrightNotice" type="string" use="optional"/>
</complexType>
<complexType name="GroupInformationTableType">
<sequence>
<element name="GroupInformation" type="dmp2_tva:GroupInformationType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="copyrightNotice" type="string" use="optional"/>
</complexType>
<complexType name="CreditsInformationTableType">
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="PersonName">
<complexType>
<complexContent>
<extension base="mpeg7:PersonNameType">
<attribute name="personNameId" type="dmp2_tva:TVAIDType" use="required"/>
<attributeGroup ref="dmp2_tva:fragmentIdentification"/>
</extension>
</complexContent>
</complexType>
</element>
<element name="OrganizationName">
<complexType>
<simpleContent>
<extension base="mpeg7:TextualType">
<attribute name="organizationNameId" type="dmp2_tva:TVAIDType" use="required"/>
<attributeGroup ref="dmp2_tva:fragmentIdentification"/>
</extension>
</simpleContent>
</complexType>
</element>
</choice>
</sequence>
<attribute name="copyrightNotice" type="string" use="optional"/>
</complexType>
<element name="TVAContentLinks">
<complexType>
<sequence>
<element name="RelatedMaterial" type="dmp2_tva:RelatedMaterialType" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<annotation>
<documentation xml:lang="en">
======== Section 5.7.2 TV-ANYTIME PROGRAM INFORMATION DOCUMENT</documentation>
</annotation>
<complexType name="ClassificationSchemeTableType">
<sequence>
<element name="CSAlias" minOccurs="0" maxOccurs="unbounded">
<complexType>
<complexContent>
<extension base="mpeg7:ClassificationSchemeAliasType">
<attributeGroup ref="dmp2_tva:fragmentIdentification"/>
</extension>
</complexContent>
</complexType>
</element>
<element name="ClassificationScheme" minOccurs="0" maxOccurs="unbounded">
<complexType>
<complexContent>
<extension base="mpeg7:ClassificationSchemeType">
<attributeGroup ref="dmp2_tva:fragmentIdentification"/>
</extension>
</complexContent>
</complexType>
</element>
</sequence>
</complexType>
</schema>
Figure 197: The dmp2_tva schema
C.2.5 The DMP Profile of MPEG-4 IPMP Schema
The schema characterised by the following URI: urn:dmp:idp2:mpeg4:IPMPSchema:2002:2006:02 is given below.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dmp2_mpeg4ipmp="urn:dmp:idp2:mpeg4:IPMPSchema:2002:2006:02" targetNamespace="urn:dmp:idp2:mpeg4:IPMPSchema:2002:2006:02" elementFormDefault="qualified" attributeFormDefault="unqualified">
<element name="TerminalID" type="dmp2_mpeg4ipmp:TerminalIDType">
<annotation>
<documentation>Identification of a terminal</documentation>
</annotation>
</element>
<complexType name="TerminalIDType">
<sequence>
<element name="TerminalType" minOccurs="0">
<complexType>
<sequence>
<element name="Vendor" type="string"/>
<element name="Model" type="string"/>
<element name="SerialNO" type="string" minOccurs="0"/>
</sequence>
</complexType>
</element>
<element name="OperatingSystem" type="dmp2_mpeg4ipmp:OSType" minOccurs="0"/>
<element name="CPU" type="dmp2_mpeg4ipmp:CPUType" minOccurs="0"/>
<element name="Memory" type="dmp2_mpeg4ipmp:MemoryType" minOccurs="0"/>
<element name="AsstHardware" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="SmartCard" minOccurs="0">
<complexType>
<sequence>
<element name="Vendor" type="string"/>
<element name="Model" type="string"/>
</sequence>
</complexType>
</element>
<element name="HardKey" minOccurs="0">
<complexType>
<sequence>
<element name="Type" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
<element name="Network" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="Type" type="string"/>
<element name="Details" type="string"/>
</sequence>
</complexType>
</element>
<element name="Downloading" minOccurs="0" maxOccurs="unbounded">
<complexType>
<attribute name="Capability" type="boolean" use="required"/>
</complexType>
</element>
<element name="RPCMechanism" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="Type" type="string"/>
<element name="Details" type="string"/>
</sequence>
</complexType>
</element>
<element name="Firmware" minOccurs="0" maxOccurs="unbounded">
<complexType>
<attribute name="Vendor" type="string" use="required"/>
<attribute name="Name" type="string" use="required"/>
<attribute name="Version" type="string" use="required"/>
</complexType>
</element>
</sequence>
</complexType>
<complexType name="OSType">
<sequence>
<element name="Vendor" type="string"/>
<element name="Model" type="string"/>
<element name="Version" type="string"/>
<element name="SerialNO" type="string" minOccurs="0"/>
<element name="VirtualMachine" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="Vendor" type="string"/>
<element name="Name" type="string"/>
<element name="Version" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<complexType name="CPUType">
<sequence>
<element name="Vendor" type="string"/>
<element name="Model" type="string"/>
<element name="Speed" type="integer"/>
</sequence>
</complexType>
<complexType name="MemoryType">
<sequence>
<element name="Vendor" type="string"/>
<element name="Model" type="string"/>
<element name="Size" type="integer"/>
<element name="Speed" type="integer"/>
</sequence>
</complexType>
</schema>
Figure 198: The dmp2_mpeg4ipmp schema
Annex D – Schemas defined by other bodies and referenced in this specification
D.1.1 The XML Namespace Schema
The XML schema characterised by the following URI: http://www.w3.org/XML/1998/namespace is available at the following URL: http://www.w3.org/XML/2001/namespace.
D.1.2 The Digital Signature Schema
The Digital Signature schema characterised by the following URI: http://www.w3.org/2000/09/xmldsig# is available at the following URL: http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd.
D.1.3 The MPEG-21 DIDMODEL Schema
The DIDMODEL schema characterised by the following URI: urn:mpeg:mpeg21:2002:02-DIDMODEL-NS is given below.
<?xml version="1.0"?>
<!-- ********************************************************************************
This XML document was originally developed in the course of development of the ISO/IEC
21000 standard (MPEG-21). This XML document contains either a part of the MPEG-21 schema
implementation for one or more MPEG-21 tools as specified by the MPEG-21 Requirements or
MPEG-21 examples conformant to the MPEG-21 schemas.
ISO/IEC gives users of MPEG-21 free license to this XML document or modifications thereof
for use in hardware or software products claiming conformance to MPEG-21.
Those intending to use this XML document in hardware or software products are advised that
its use may infringe existing patents. The original developers of this XML document and his/her
company, the subsequent editors and their companies, and ISO/IEC have no liability for use of
this XML document or modifications thereof in an implementation.
Copyright is not released for non MPEG-21 conforming products. The organizations who
contributed to this XML document retain the full right to use the code for their own purpose,
assign or donate their contribution to a third party and inhibit third parties from using their
contribution for non MPEG-21 conforming products.
Copyright (c) 2001-2005 ISO/IEC.
This XML document is provided for informative purposes only. If any parts of this XML
document contradict the normative part of the corresponding standard document then the
normative part should be used as the definitive specification.
This notice must be included in all copies or derivative works.
************************************************************************************ -->
<!--=======================================
####################################################################
# ISO/IEC 21000-2:2005 #
# Information technology #
# - Multimedia framework (MPEG-21) #
# - Part 2: Digital Item Declaration #
# #
# Schema for DID Model abstract Types #
# #
####################################################################
=======================================-->
<schema targetNamespace="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.01">
<complexType name="DIDBaseType" abstract="true"/>
<element name="Container" type="didmodel:ContainerType" abstract="true"/>
<complexType name="ContainerType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Item" type="didmodel:ItemType" abstract="true"/>
<complexType name="ItemType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Descriptor" type="didmodel:DescriptorType" abstract="true"/>
<complexType name="DescriptorType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Statement" type="didmodel:StatementType" abstract="true"/>
<complexType name="StatementType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Component" type="didmodel:ComponentType" abstract="true"/>
<complexType name="ComponentType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Anchor" type="didmodel:AnchorType" abstract="true"/>
<complexType name="AnchorType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Fragment" type="didmodel:FragmentType" abstract="true"/>
<complexType name="FragmentType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Condition" type="didmodel:ConditionType" abstract="true"/>
<complexType name="ConditionType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Choice" type="didmodel:ChoiceType" abstract="true"/>
<complexType name="ChoiceType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Selection" type="didmodel:SelectionType" abstract="true"/>
<complexType name="SelectionType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Resource" type="didmodel:ResourceType" abstract="true"/>
<complexType name="ResourceType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Annotation" type="didmodel:AnnotationType" abstract="true"/>
<complexType name="AnnotationType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
<element name="Assertion" type="didmodel:AssertionType" abstract="true"/>
<complexType name="AssertionType" abstract="true">
<complexContent>
<extension base="didmodel:DIDBaseType"/>
</complexContent>
</complexType>
</schema>
Figure 199: The didmodel schema
D.1.4 The MPEG-21 REL Base Profile Schema
The MPEG-21 REL Base Profile schema characterised by the following URI: urn:mpeg:mpeg21:2005:01-REL-BPX-NS is given below.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" schemaLocation="rel-sx-bpx-v1.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" schemaLocation="rel-mx-bpx-v1.xsd"/>
<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<!-- Elements -->
<xsd:element name="drmSystem" type="bpx:DrmSystem" substitutionGroup="r:condition"/>
<xsd:element name="derivationConstraint" type="bpx:DerivationConstraint" substitutionGroup="r:condition"/>
<xsd:element name="governedCopy" type="bpx:GovernedCopy" substitutionGroup="r:right"/>
<xsd:element name="governedMove" type="bpx:GovernedMove" substitutionGroup="r:right"/>
<xsd:element name="identityHolder" type="bpx:IdentityHolder" substitutionGroup="r:principal"/>
<xsd:element name="outputRegulation" type="bpx:OutputRegulation" substitutionGroup="r:condition"/>
<xsd:element name="protectedResource" type="bpx:ProtectedResource" substitutionGroup="r:resource"/>
<xsd:element name="seekPermission" type="bpx:SeekPermission" substitutionGroup="r:condition"/>
<xsd:element name="serviceLocation" type="bpx:ServiceLocation" substitutionGroup="r:serviceDescription"/>
<xsd:element name="startCondition" type="bpx:StartCondition" substitutionGroup="r:condition"/>
<!--Complex Types-->
<xsd:complexType name="DrmSystem">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence minOccurs="0">
<xsd:element name="identifier" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DerivationConstraint">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="isPartOf" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="r:digitalResource" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="resourceInclusionList" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="r:digitalResource" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="temporalRelation" type="xsd:QName" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resourceExclusionList" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="r:digitalResource" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="temporalRelation" type="xsd:QName" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resourceReplacementList" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="r:digitalResource" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GovernedCopy">
<xsd:complexContent>
<xsd:extension base="r:Right">
<xsd:attribute name="governanceRule" type="xsd:QName"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GovernedMove">
<xsd:complexContent>
<xsd:extension base="r:Right">
<xsd:attribute name="governanceRule" type="xsd:QName"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IdentityHolder">
<xsd:complexContent>
<xsd:extension base="r:Principal">
<xsd:sequence minOccurs="0">
<xsd:element name="idSystem" type="xsd:anyURI" minOccurs="0"/>
<xsd:element name="idValue">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any namespace="##any" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="OutputRegulation">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="regulation">
<xsd:complexType mixed="true">
<xsd:attribute name="typeOfSignal" type="xsd:QName" use="optional"/>
<xsd:attribute name="qualityOfSignal" type="xsd:QName" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ProtectedResource">
<xsd:complexContent>
<xsd:extension base="r:Resource">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:digitalResource"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="xenc:EncryptedData"/>
<xsd:element ref="xenc:EncryptedKey"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SeekPermission">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:serviceReference"/>
<xsd:element name="cacheable" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="period" type="xsd:duration" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ServiceLocation">
<xsd:complexContent>
<xsd:extension base="r:ServiceDescription">
<xsd:sequence minOccurs="0">
<xsd:element name="url" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StartCondition">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:condition"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Simple Types -->
<xsd:simpleType name="LicenseType">
<xsd:list itemType="xsd:QName"/>
</xsd:simpleType>
<!-- Attributes -->
<xsd:attribute name="licenseType" type="bpx:LicenseType"/>
</xsd:schema>
Figure 200: The rel-bpx schema
D.1.5 The MPEG-21 REL Dissemination and Capture Profile Schema
The MPEG-21 REL Dissemination and Capture (DACX) Profile schema characterised by the following URI: urn:mpeg:mpeg21:2006:01-REL-DACX-NS is given below.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:bpx="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" xmlns:dacx="urn:mpeg:mpeg21:2006:01-REL-DACX-NS" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" schemaLocation="rel-sx-bpx-v1.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" schemaLocation="rel-mx-bpx-v1.xsd"/>
<xsd:import namespace="urn:mpeg:mpeg21:2005:01-REL-BPX-NS" schemaLocation="rel-bpx-v1.xsd"/>
<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!-- Elements -->
<xsd:element name="export" type="dacx:Export" substitutionGroup="r:right"/>
<xsd:element name="extendRights" type="dacx:ExtendRights" substitutionGroup="r:right"/>
<xsd:element name="simultaneousAccessCount" type="dacx:SimultaneousAccessCount" substitutionGroup="r:condition"/>
<xsd:element name="destinationPrincipal" type="dacx:DestinationPrincipal" substitutionGroup="r:condition"/>
<xsd:element name="destinationCondition" type="dacx:DestinationCondition" substitutionGroup="r:condition"/>
<xsd:element name="securityLevel" type="dacx:SecurityLevel" substitutionGroup="r:condition"/>
<xsd:element name="proximity" type="dacx:Proximity" substitutionGroup="r:condition"/>
<xsd:element name="scrambling" type="dacx:Scrambling" substitutionGroup="r:condition"/>
<xsd:element name="timedExerciseLimit" type="dacx:TimedExerciseLimit" substitutionGroup="r:condition"/>
<xsd:element name="timeShiftDuration" type="dacx:TimeShiftDuration" substitutionGroup="r:condition"/>
<!-- Complex Type -->
<xsd:complexType name="DestinationPrincipal">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element ref="r:principal"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DestinationCondition">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:condition"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Export">
<xsd:complexContent>
<xsd:extension base="r:Right"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ControlledPlay">
<xsd:complexContent>
<xsd:extension base="mx:Play">
<xsd:attribute name="bufferDuration" type="xsd:QName" default="immediate"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ExtendRights">
<xsd:complexContent>
<xsd:extension base="r:Right">
<xsd:sequence>
<xsd:element ref="bpx:serviceLocation"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SimultaneousAccessCount">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="count" type="xsd:positiveInteger"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SecurityLevel">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="level" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Proximity">
<xsd:complexContent>
<xsd:extension base="r:Condition"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Scrambling">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:attribute name="cipherType" type="xsd:QName" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimedExerciseLimit">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:choice>
<xsd:element name="duration" type="xsd:duration" minOccurs="0"/>
<xsd:element name="quantum" type="xsd:duration" minOccurs="0"/>
</xsd:choice>
<xsd:element name="count" type="xsd:integer" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeShiftDuration">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="duration" type="xsd:duration" minOccurs="1"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
Figure 201: The rel-dacx schema
D.1.6 The MPEG-21 REL Core Profile Schema for rel-bpx and rel-dacx
The MPEG-21 REL Core profile schema on which rel-bpx and rel-dacx are based, characterised by the following URI: urn:mpeg:mpeg21:2003:01-REL-R-NS is given below.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sccns="urn:uddi-org:schemaCentricC14N:2002-07-10" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!-- Elements -->
<xsd:element name="allConditions" type="r:AllConditions" substitutionGroup="r:condition"/>
<xsd:element name="anXmlExpression" type="r:AnXmlExpression"/>
<xsd:element name="condition" type="r:Condition" substitutionGroup="r:licensePart"/>
<xsd:element name="digitalResource" type="r:DigitalResource" substitutionGroup="r:resource"/>
<xsd:element name="forAll" block="#all" substitutionGroup="r:licensePart" final="#all">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="r:LicensePart">
<xsd:choice minOccurs="0">
<xsd:element name="anXmlExpression" type="r:AnXmlExpression"/>
<xsd:element name="propertyPossessor" type="r:PropertyPossessor"/>
</xsd:choice>
<xsd:attribute name="varName" type="r:VariableName"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="grant" type="r:Grant" substitutionGroup="r:resource"/>
<xsd:element name="keyHolder" type="r:KeyHolder" substitutionGroup="r:principal"/>
<xsd:element name="issuer" type="r:Issuer"/>
<xsd:element name="license" type="r:License"/>
<xsd:element name="licensePart" type="r:LicensePart"/>
<xsd:element name="possessProperty" type="r:PossessProperty" substitutionGroup="r:right"/>
<xsd:element name="propertyAbstract" type="r:PropertyAbstract" substitutionGroup="r:resource"/>
<xsd:element name="principal" type="r:Principal" substitutionGroup="r:resource"/>
<xsd:element name="propertyPossessor" type="r:PropertyPossessor"/>
<xsd:element name="resource" type="r:Resource" substitutionGroup="r:licensePart"/>
<xsd:element name="right" type="r:Right" substitutionGroup="r:licensePart"/>
<xsd:element name="serviceDescription" type="r:ServiceDescription" substitutionGroup="r:licensePart"/>
<xsd:element name="serviceReference" type="r:ServiceReference" substitutionGroup="r:resource"/>
<xsd:element name="trustedRootIssuers" type="r:TrustedRootIssuers"/>
<xsd:element name="validityInterval" type="r:ValidityInterval" substitutionGroup="r:condition"/>
<!--Complex Types-->
<xsd:complexType name="AllConditions">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element ref="r:condition" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AnXmlExpression" mixed="true" sccns:embeddedLangAttribute="r:lang">
<xsd:complexContent mixed="true">
<xsd:extension base="r:Resource">
<xsd:attribute name="lang" type="xsd:anyURI" default="http://www.w3.org/TR/1999/REC-xpath-19991116"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Condition">
<xsd:complexContent>
<xsd:extension base="r:LicensePart"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DigitalResource">
<xsd:complexContent>
<xsd:extension base="r:Resource">
<xsd:choice minOccurs="0">
<xsd:element name="secureIndirect" type="dsig:ReferenceType"/>
<xsd:element name="nonSecureIndirect" type="r:NonSecureReference"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Grant">
<xsd:complexContent>
<xsd:extension base="r:Resource">
<xsd:choice minOccurs="0">
<xsd:sequence>
<xsd:element ref="r:forAll" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="r:principal" minOccurs="0"/>
<xsd:element ref="r:right"/>
<xsd:element ref="r:resource" minOccurs="0"/>
<xsd:element ref="r:condition" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Issuer">
<xsd:sequence>
<xsd:choice minOccurs="0">
<xsd:element ref="dsig:Signature"/>
<xsd:element ref="r:principal"/>
</xsd:choice>
<xsd:element name="details" type="r:IssuerDetails" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IssuerDetails">
<xsd:sequence>
<xsd:element name="timeOfIssue" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="KeyHolder">
<xsd:complexContent>
<xsd:extension base="r:Principal">
<xsd:sequence minOccurs="0">
<xsd:element name="info" type="dsig:KeyInfoType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="License">
<xsd:choice>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="r:grant"/>
</xsd:choice>
<xsd:element ref="r:issuer" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:choice>
<xsd:attribute name="licenseId" type="xsd:anyURI" use="optional"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="LicensePart">
<xsd:attribute name="licensePartId" type="r:LicensePartId" use="optional"/>
<xsd:attribute name="licensePartIdRef" type="r:LicensePartId" use="optional"/>
<xsd:attribute name="varRef" type="r:VariableName" use="optional"/>
</xsd:complexType>
<xsd:complexType name="NonSecureReference">
<xsd:attribute name="URI" type="xsd:anyURI"/>
</xsd:complexType>
<xsd:complexType name="PossessProperty">
<xsd:complexContent>
<xsd:extension base="r:Right"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Principal">
<xsd:complexContent>
<xsd:extension base="r:Resource"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PropertyAbstract">
<xsd:complexContent>
<xsd:extension base="r:Resource"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PropertyPossessor">
<xsd:complexContent>
<xsd:extension base="r:Resource">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:propertyAbstract"/>
<xsd:element ref="r:trustedRootIssuers" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Right">
<xsd:complexContent>
<xsd:extension base="r:LicensePart"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Resource">
<xsd:complexContent>
<xsd:extension base="r:LicensePart"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ServiceDescription">
<xsd:complexContent>
<xsd:extension base="r:LicensePart"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ServiceReference">
<xsd:complexContent>
<xsd:extension base="r:Resource">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:serviceDescription"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TrustRoot">
<xsd:complexContent>
<xsd:extension base="r:LicensePart"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TrustedRootIssuers">
<xsd:complexContent>
<xsd:extension base="r:TrustRoot">
<xsd:sequence minOccurs="0">
<xsd:element ref="r:principal" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ValidityInterval">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="notBefore" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="notAfter" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Simple Types-->
<xsd:simpleType name="LicensePartId">
<xsd:restriction base="xsd:NCName"/>
</xsd:simpleType>
<xsd:simpleType name="VariableName">
<xsd:restriction base="xsd:NCName"/>
</xsd:simpleType>
</xsd:schema>
Figure 202: The rel-r-bpx schema
D.1.7 The MPEG-21 REL SX Profile Schema for rel-bpx and rel-dacx
The MPEG-21 REL Standard Extensions profile schema on which rel-bpx and rel-dacx are based, characterised by the following URI: urn:mpeg:mpeg21:2003:01-REL-SX-NS is given below.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<!-- Elements -->
<xsd:element name="exerciseLimit" type="sx:ExerciseLimit" substitutionGroup="r:condition"/>
<xsd:element name="propertyUri" type="sx:PropertyUri" substitutionGroup="r:propertyAbstract"/>
<xsd:element name="territory" type="sx:Territory" substitutionGroup="r:condition"/>
<xsd:element name="validityIntervalFloating" type="sx:ValidityIntervalFloating" substitutionGroup="r:condition"/>
<xsd:element name="validityTimeMetered" type="sx:ValidityTimeMetered" substitutionGroup="r:condition"/>
<!--Complex Types-->
<xsd:complexType name="ExerciseLimit">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="count" type="xsd:integer" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PropertyUri">
<xsd:complexContent>
<xsd:extension base="r:PropertyAbstract">
<xsd:attribute name="definition" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Territory">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="location">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="country" type="xsd:QName" minOccurs="0"/>
<xsd:element name="region" type="xsd:QName" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="domain">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="uri" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ValidityIntervalFloating">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="duration" type="xsd:duration" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ValidityTimeMetered">
<xsd:complexContent>
<xsd:extension base="r:Condition">
<xsd:sequence>
<xsd:element name="duration" type="xsd:duration" minOccurs="0"/>
<xsd:element name="quantum" type="xsd:duration" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Simple Types -->
<xsd:simpleType name="ProfileCompliance">
<xsd:list itemType="xsd:QName"/>
</xsd:simpleType>
<!-- Attributes -->
<xsd:attribute name="profileCompliance" type="sx:ProfileCompliance"/>
</xsd:schema>
Figure 203: The rel-sx-bpx schema
D.1.8 The MPEG-21 REL MX Profile Schema for rel-bpx and rel-dacx
The MPEG-21 REL multimedia Extensions profile schema on which rel-bpx and rel-dacx are based, characterised by the following URI: urn:mpeg:mpeg21:2003:01-REL-MX-NS is given below.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="rel-r-bpx-v1.xsd"/>
<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
<!-- Rights -->
<xsd:element name="enhance" type="mx:Enhance" substitutionGroup="r:right"/>
<xsd:element name="execute" type="mx:Execute" substitutionGroup="r:right"/>
<xsd:element name="play" type="mx:Play" substitutionGroup="r:right"/>
<xsd:element name="print" type="mx:Print" substitutionGroup="r:right"/>
<!--Complex Types-->
<xsd:complexType name="Enhance">
<xsd:complexContent>
<xsd:extension base="r:Right"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Execute">
<xsd:complexContent>
<xsd:extension base="r:Right"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Play">
<xsd:complexContent>
<xsd:extension base="r:Right"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Print">
<xsd:complexContent>
<xsd:extension base="r:Right"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
Figure 204: The rel-mx-bpx schema
Annex E - Compatibility between TVA RMPI and Represent License
This Annex explains how Represent License (hereafter to be referred as the MPEG-21 REL DACX) can handle and represent TV-Anytime RMPI information
There are 4 child elements in the RMPI-MB and M main type.

Figure 205: The RMPI-MBAndMType complex type
The first child element, ‘AncillaryRMPI’ does not convey usage rules or conditions but carry further information that is required when handling the content.

Figure 206: The AncillaryRMPI element
Since RMPI-MB(Macro Broadcast) can be considered as a specific instance of the RMPI-M (Macro), the classification between RMPI MB and M is not necessary in the case an RMPI License is converted into a DMP License.
This element can be represented by means of sx:profileCompliance attribute of rel-r-bpx:license element.
This element can be represented by means of rel-r-bpx:issuer element.
This element can be represented by means of xenc:EncryptedData element which is child element of rel-bpx:encryptedResource element.

Figure 207: The xenc:EncryptedData element
RMPI specifies possible ‘Cipher’ methods (i.e. encryption algorithms) for broadcast content. These are:
0 – No cipher
1 - AES
2 - Camellia
3 - DVB Common Scrambling Algorithm v1
4 - DVB Common Scrambling Algorithm v2
5- 3DES
6- M2
7-15: reserved for future use
The element xenc:EncryptionMethod element can fully express the encryption algorithm applied, as in the following example:
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<EncryptionMethod Algorithm="AES"/>
<EncryptionMethod Algorithm="Camellia"/>
<EncryptionMethod Algorithm="DVB Common Scrambling Algorithm v1"/>
<EncryptionMethod Algorithm="DVB Common Scrambling Algorithm v2"/>
<EncryptionMethod Algorithm="3DES"/>
<EncryptionMethod Algorithm="M2"/>
This condition indicates the scrambling policy to implement.
‘maintain’ : Maintain original scrambling status including no scrambling.
‘change’ : Apply or re-apply RMP cipher.
This information can be represented by means of the xenc:EncryptedData element which is child element of bpx:encryptedResource, as explained in the section above.
Since RMPI-MB(Macro Broadcast) can be considered as a specific instance of the RMPI-M(Macro), the same conversion mechanism can be applied.
The second child element, ‘ExtendRights’ allows new rights to be applied to content

Figure 208: The rmpi:ExtendRights element
E.1.2.1 ExtendRightsFlagGranted
MPEG-21 REL has either SecurityLevel or SourceOfAdditionalRights elements, this implies that REL natively allows ExtendRights. This element is therefore not necessary.
This condition can be expressed by means of rel-dacx:securityLevel element.
E.1.2.3 SourceOfAdditionalRights
This information can be represented by means of rel-dacx:extendRights condition as in following example.
<r:grant>
<bpx:identityHolder licensePartIdRef="device"/>
<mx:play/>
<r:digitalResource licensePartIdRef="news"/>
<dacx:extendRights>
<bpx:serviceLocation>http://www.foo.org/extendLiceseService</bpx:serviceLocation>
</dacx:extendRights>
</r:grant>
Figure 209: Example of conversion of rmpi:SourceOfAdditionalRights
The rmpi:ReceivingDomainRights element indicates the first TVA RMP-compliant domain that receives the Content and associated RMPI–MB via broadcast. Once the Content is in the Domain, the receiving domain is explicitly identified.

Figure 210: The rmpi:ReceivingDomainRights element
This information can be represented by means of the rel-bpx-mx:play element.
This information can be represented by means of rel-dacx:export Right and rel-bpx:outputRegulation Condition elements as shown in following example.
<r:grant>
<bpx:identityHolder licensePartIdRef="device"/>
<dacx:export/>
<r:digitalResource licensePartIdRef="news"/>
<bpx:outputRegulation>
<bpx:regulation typeOfSignal="analog">APSTB:01</bpx:regulation>
</bpx:outputRegulation>
</r:grant>
Figure 211: Example of conversion of rmpi:AnalogExportRights element
This information can be represented by means of the rel-dacx:export Right and rel-bpx:outputRegulation Condition elements as shown in the following example.
<r:grant>
<bpx:identityHolder licensePartIdRef="device"/>
<dacx:export/>
<r:digitalResource licensePartIdRef="news"/>
<bpx:outputRegulation>
<bpx:regulation typeOfSignal="digital" qualityOfSignal="SD">DTCP</bpx:regulation>
</bpx:outputRegulation>
</r:grant>
Figure 212: Example of conversion of rmpi:DigitalExportSDRights element
This information can be represented by means of the rel-dacx:export Right and rel-bpx:outputRegulation Condition elements as shown in the following example.
<r:grant>
<bpx:identityHolder licensePartIdRef="device"/>
<dacx:export/>
<r:digitalResource licensePartIdRef="news"/>
<bpx:outputRegulation>
<bpx:regulation typeOfSignal="digital" qualityOfSignal="HD">HTCP</bpx:regulation>
</bpx:outputRegulation>
</r:grant>
Figure 213: Example of conversion of rmpi:DigitalExportHDRights element
This information can be represented by means of the rel-dacx:securityLevel Condition.
This information can be represented by means of the rel-dacx:timeShiftDuration Condition.
This information can be represented by means of the rel-r:validityInterval Condition.
This information can be represented by means of the rel-sx:territory element.
E.1.3.9 AnalogExportSignalling
This information can be represented by means of the rel-dacx:export Right and rel-bpx:outputRegulation Condition elements like in the example shown in Section E.1.3.2 – AnalogExportRights.
This information can be represented by means of the rel-r:principal extension element such as rel-bpx:identityHolder specifying the device ID, as shown in the following example.
<r:grant>
<bpx:identityHolder>
<bpx:idSystem>urn:dmp:2006-01-REL-DAC-NS:DM-1000:DO-0001</bpx:idSystem>
<bpx:idValue>DEVICE-00000001</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</r:digitalResource>
</r:grant>
Figure 214: Example of conversion of rmpi:SinglePointOfControl element
E.1.3.11 PhysicalProximityFlag
This information can be represented by means of the rel-r:principal extension element such as rel-bpx:identityHolder specifying the domain ID as shown in the following example.
<r:grant>
<bpx:identityHolder>
<bpx:idSystem>urn:dmp:2006-01-REL-DAC-NS:DM-1000 </bpx:idSystem>
<bpx:idValue>DOMAIN-1234567</bpx:idValue>
</bpx:identityHolder>
<mx:play/>
<r:digitalResource>
<r:nonSecureIndirect URI="urn:broadcast:news:2005_07_10-12H-00M"/>
</r:digitalResource>
</r:grant>
Figure 215: Example of conversion of rmpi:PhysicalProximityFlag element
E.1.3.12 SimultaneousRendering
This information can be represented by means of the rel-dacx:SimultaneousAccessCount element.
E.1.3.13 DomainID
This information can be represented by means of the rel-r:principal element
Any Domain is any TVA RMP-compliant domain that can respond to the usage conditions stated within RMPI-MB and RMPI-M.

Figure 216: The rmpi:AnyDomain element
E.2 Mapping Table between RMPI and DMP Represent License
|
Function |
Semantic |
RMPI |
MPEG-21 REL dac |
|
Grant to |
Receiving Domain |
<rmpi:ReceivingDomainRights> |
|
|
Right |
play_right_flag (Play) |
<rmpi:PlayRightFlag> |
<mx:play/> |
|
analogue_export_right_flag (Analogue Export) |
<rmpi:AnalogExportRight> |
<dacx:export/> <bpx:outputRegulation typeOfSignal="analog"> |
|
|
digital_export_SD_flag (Digital SD Export) |
<rmpi:DigitalExportSDRight> |
<dacx:export/> <bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="SD"> |
|
|
digital_export_HD_flag (Digital HD Export) |
<rmpi:DigitalExportHDRight> |
<dacx:export/> <bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="HD"> |
|
|
Constraints |
Geographic Control |
<rmpi:GeographicalControl> |
<sx:terrority> |
|
Single point of control |
<rmpi:SinglePointOfControl> |
<bpx:identityHolder> <bpx:idValue>DEVICE-ID</bpx:idValue> </bpx:identityHolder> |
|
|
Simultaneous Rendering Count |
<rmpi:SimultaneousRendering> |
<dacx:SimultaneousAccessCount> |
|
|
Physical Proximity |
<rmpi:PhysicalProximityFlag> |
<dacx:proximity/> |
|
|
Buffer Duration: |
<rmpi:BufferDuration> |
<dacx:timeShiftDuration> |
|
|
Time Window Start/End |
<rmpi:TimeWindow> |
<r:validityInterval> |
|
|
SD Digital Export Control |
<rmpi:DigitalExportSDRight> <rmpi:DigitalExportControl> |
<bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="SD"> |
|
|
HD Digital Export Control |
<rmpi:DigitalExportHDRight> <rmpi:DigitalExportControl> |
<bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="HD"> |
|
|
Analogue Export Signalling |
<rmpi:AnalogueExportSignaling> |
<bpx:outputRegulation typeOfSignal="analog"> |
|
|
Analogue SD Control |
<rmpi:AnalogueExportSDControl> |
<bpx:outputRegulation typeOfSignal="analog" qualityOfSignal="SD"> |
|
|
Grant to |
Any Domain |
<rmpi:AnyDomainRights> |
|
|
Right |
Play |
<rmpi:PlayRightFlag> |
<mx:play/> |
|
Analogue Export |
<rmpi:AnalogExportRight> |
<dacx:export/> <bpx:outputRegulation typeOfSignal="analog"> |
|
|
Digital SD Export |
<rmpi:DigitalExportSDRight> |
<dacx:export/> <bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="SD"> |
|
|
Digital HD Export |
<rmpi:DigitalExportHDRight> |
<dacx:export/> <bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="HD"> |
|
|
Constraints |
Geographic Control |
<rmpi:GeographicalControl> |
<dacx:destinationCondition> <sx:terrority> |
|
Single Point of Control |
<rmpi:SinglePointOfControl> |
<dacx:destinationPrincipal> <bpx:identityHolder> |
|
|
Buffer Duration: |
<rmpi:BufferDuration> |
<dacx:destinationCondition> <dacx:timeShiftDuration> |
|
|
Time Window Start/End |
<rmpi:TimeWindow> |
<r:validityInterval> |
|
|
SD Digital Export Control |
<rmpi:DigitalExportSDRight> <rmpi:DigitalExportControl> |
<bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="SD"> |
|
|
HD Digital Export Control
|
<rmpi:DigitalExportHDRight> <rmpi:DigitalExportControl> |
<bpx:outputRegulation typeOfSignal="digital" qualityOfSignal="HD"> |
|
|
Analogue Export Signalling |
<rmpi:AnalogueExportSignaling> |
<bpx:outputRegulation typeOfSignal="analog"> |
|
|
Analogue SD Control |
<rmpi:AnalogueExportSDControl> |
<bpx:outputRegulation typeOfSignal="analog" qualityOfSignal="SD"> |
|
|
Identifiers |
Domain |
<rmpi:DomainId> |
<bpx:identityHolder> <bpx:idValue>DOMAIN-ID</bpx:idValue> </bpx:identityHolder> |
|
Single Point of Control |
<rmpi:SinglePointOfControl> |
<bpx:identityHolder> <bpx:idValue>DEVICE-ID</bpx:idValue> </bpx:identityHolder> |
|
|
Ancillary applies to both grants |
<rmpi:AncillaryRMPI> |
|
|
|
Ancillary |
Cipher Algorithm |
<rmpi:Cipher> |
<bpx:protectedResource> |
|
Scrambling control |
<rmpi:MBScramblingControl> <rmpi:MScramblingControl> |
<bpx:protectedResource> <xenc:EncryptedData> |
|
|
Version of RMPI |
<rmpi:VersionOfRMPI> |
<r:license sx:profileCompliance="mpeg-rel-dac v1.0"> |
|
|
Origin of RMPI |
<rmpi:OriginOfRMPI> |
<r:issuer> <r:keyHolder> |
|
|
RMPI-Type flag |
<rmpi:RMPITypeFlag> |
N/A |
|
|
Extend Rights Apply to both grants |
<rmpi:ExtendRights> |
|
|
|
Extend Rights |
Extend Right Granted |
<rmpi:ExtendRightsFlagGranted> |
<dacx:extendRights> |
|
Security Level |
<rmpi:SecurityLevel> |
<dacx:securityLevel> |
|
|
Source of Additional Rights |
<rmpi:SourceOfAdditionalRights> |
<dacx:extendRights> <bpx:serviceLocation> |
|
Annex F– Example of Content Registration
The Registration Authority uses the namespace of DMPF and the DMPF scheme defines its syntax conforming to the URN syntax with a specific purpose of Identifying Content. In order to Use Content in accordance with the DMP specification, the ContentPro company asks a Registration Agency of its choice to assign the string 123456abc to a given Content Item. The Registration Agency, which was given the subordinate namespace I100 by the Registration Authority, will use the following identifier for content Registration: urn:dmpf:I100-123456abc. The syntax of Content Identifier is based on DMPF syntax.
This scheme can also be used to support linkage to other naming schemes. For example, in order to enable support for the ISBN naming scheme (ISBN no. 12345689), the Certification Agency establishes a link between the Content Identifier mentioned above, and the ISBN number. Then, the identifier urn:dmpi:isbn-12345689 can be used.
G.1 To Be Completed By Applicant Registration Agency
|
Name of organisation (maximum 40 characters). Abbreviate where necessary.
|
||
|
Address (maximum 60 characters), with street, city. Abbreviate where necessary.
|
||
|
Principal contact in organisation Position
|
||
|
|
Telephone number
|
Fax number
|
|
Legal status of organisation |
Anticipated date of first use of sub namespace
|
|
|
|
Expected number of identifiers maintained
|
|
|
|
Expected number of identifiers issued annually
|
|
|
|
List of countries in which the organisation is represented
|
|
|
Address for correspondence/billing
|
||
|
Authorised representative Name: _________________________________ Title: _________________________________ |
||
|
(On separate sheet) Details of provisions made by the application to safeguard conformance with the DMP specification (required to ensure compliance with the Registration Agency responsibilities)
|
|
We hereby apply for the assignment of an DMP subordinate namespace, and state that the use of the sub namespace will be in accordance with the DMP specification
Signature/date
|
Please return application to: The Registration Authority
Organization
Address here
Fax:
E-mail:
G.2 To Be Completed By The Registration Authority
|
Form received on
|
Subordinate namespace |
issued on |
|
Signature/date
|
||