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

Foreword

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 and Digital Technologies

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 con­nected to business practices. As the introduction of digital technologies is currently forcing chan­ges 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.

DRM requires more than technology

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.

The suite of DMP Approved Documents

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.


 

1          Value Chain Functions and Requirements

1.1        Introduction

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).

1.2        Value-Chain Users

 

#  

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.3        General requirements

 

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

1.4        Primitive Functions

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

 

 

1.5        Functional requirements

1.5.1           Represent

1.5.1.1           Represent Identifier of Content

 

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.

1.5.1.2           Represent Identifier of Device

 

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.

1.5.1.3           Represent Identifier of User

 

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

1.5.1.4           Represent Identifier of Domain

 

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

1.5.1.5           Represent Identifier of DRM Tool

 

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

1.5.1.6           Represent Identifier of Footprint

 

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

1.5.1.7           Represent Identifier of Class of Users

 

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

1.5.1.8           Represent Identifier of Territory

 

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

1.5.1.9           Represent Identifier of Jurisdiction

 

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

1.5.1.10       Represent Content

 

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

1.5.1.11       Represent Resource

 

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

1.5.1.12       Represent Metadata

 

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

1.5.1.13       Represent DRM Information

 

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

1.5.1.14       Represent DRM Tool Body

 

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

1.5.1.15       Represent DRM Tool

 

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

1.5.1.16       Represent Rights Expression

 

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

1.5.1.17       Represent Rights Data

 

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.

1.5.1.18       Represent Key

 

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

1.5.1.19       Represent Device Information

 

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

1.5.1.20       Represent Domain Information

 

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

1.5.1.21       Represent Use Data

 

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

1.5.1.22       Represent Resource Format

 

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

1.5.1.23       Represent Binarised XML

 

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

1.5.2           Assign

1.5.2.1           Assign Identifier

 

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.

1.5.2.2           Assign Metadata

 

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

1.5.3           Revoke

1.5.3.1           Revoke Content

 

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

1.5.3.2           Revoke Content Element

 

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

1.5.3.3           Revoke Device

 

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

1.5.3.4           Revoke Domain

 

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

1.5.3.5           Revoke User

 

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

1.5.4           Authenticate

1.5.4.1           Authenticate Content

 

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

1.5.4.2           Authenticate Device

 

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

1.5.4.3           Authenticate DRM Tool

 

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

1.5.4.4           Authenticate User

 

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

1.5.5           Verify

1.5.5.1           Verify Content

 

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

1.5.5.2           Verify Device

 

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

1.5.6           Deliver

1.5.6.1           Render

 

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

1.5.6.2           Store

 

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

1.5.6.3           Copy

 

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

1.5.6.4           Move

 

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

1.5.6.5           Backup

 

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.

1.5.6.6           Export

 

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.

1.5.6.7           Access

 

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

1.5.6.8           Restore

 

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.

1.5.6.9           Import

 

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.

1.5.6.10       Update

 

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

1.5.7           Manage

1.5.7.1           Manage Domain

 

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.

1.5.7.2           Manage DRM Tool

 

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

1.5.7.3           Manage Use Data Confidentiality

 

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.

1.5.8           Package

1.5.8.1           Package as File

 

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

1.5.8.2           Package as Broadcast

 

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

1.5.8.3           Package as Streaming

 

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

1.5.9           Process

1.5.9.1           Encrypt/Decrypt

 

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

1.5.10       Pay

 

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

1.5.11       Test Conformance

1.5.11.1       Test Conformance of Rights Expressions

 

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.

1.5.11.2       Test Conformance of Enforcing 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.

1.5.11.3       Test Conformance of Tamper resistance

 

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.

1.5.12       Certify

1.5.12.1       Certify Content

 

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

1.5.12.2       Certify Device

 

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

1.5.12.3       Certify User

(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

 


 

2          Architecture

2.1        Introduction

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].

2.2        An End-to-End Value-Chain

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.

2.2.1           A walkthrough

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.

2.2.2           Setting up Value-Chains

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.

2.2.3           Navigating the Value-Chain

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

2.3        The DMP Models

2.3.1           Creation Model

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, interop­erability 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 indepen­dent 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 exist­ence 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 depend­ent on both the Manifestation and the Work that it is of, that it is classified separately as “Neigh­bouring” 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 pur­pose 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

2.3.2           Distribution Model

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.

2.3.3           Delivery Model

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

2.3.4           DRM Tool Model

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.

 

Figure  8 –“Stand alone” DRM Tools

Figure  9 – 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

2.3.5           Device Model

IDP-2 requires the following Device types:

 

Table  3 – IDP-2 Device types

 

#

Device Name

Acronym

  1.  

Content Consumption Device

PAV

  1.  

Content Consumption Device

SAV

  1.  

Content Creation Device

CCD

  1.  

Content Identification Device

CID

  1.  

Content Provider Device

CPD

  1.  

Device Identification Device

DeID

  1.  

DRM Tool Identification Device

TID

  1.  

Domain Identification Device

DoID

  1.  

Domain Management Device

DMD

  1.  

DRM Tool Provider Device

DPD

  1.  

License Identification Device

LID

  1.  

License Provider Device

LPD

  1.  

PAV eXternal Device

PXD

 

These are briefly described below

2.3.5.1           Device Identification Device

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.

2.3.5.2           Content Creation Device

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.

2.3.5.3           Content Identification Device

The current phase of DMP specifications does not provide a Protocol for a Content Creation Device to obtain a Content Identifier.

2.3.5.4           License Identification Device

This is functionally equivalent to Content Identification Device.

2.3.5.5           DRM Tool Identification Device

This is functionally equivalent to Content Identification Device.

2.3.5.6           Content Provider 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.

2.3.5.7           License Provider Device

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).

2.3.5.8           DRM Tool Provider Device

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.

2.3.5.9           PAV eXternal Device

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:

  1. End-User connects his PXD to a Delivery System, e.g. Memory module, the Internet or a Broadcast channel;
  2. End-User activates a browser;
  3. End-User selects a Service;
  4. End-User select a Content Item (without a License Bundled within it);
  5. End-User Stores the selected Content in the PXD;
  6. End-User plugs his PAV in the PXD;
  7. End-User Accesses the License from License Service Provider;
  8. PXD Bundles the License within the Content;
  9. PXD makes a DCF;
  10. DCF is Copied/Moved to PAV as in case 1.

2.3.5.10       Content Consumption Device (PAV)

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.

2.3.5.11       Content Consumption Device (SAV)

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.

2.3.5.12       Domain Identification Device

See Domain Model below.

2.3.5.13       Domain Management Device

See Domain Model below.

2.3.6           Domain Model

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.

2.3.7           Import/Export Model

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.

2.3.8           Data Model

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

 

2.4        Platform Tools

This section provides a high-level description of the three types of Tools specified by Chapter 3: Represent, Protocols and Package.

2.4.1           Represent

2.4.1.1           Content

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].

2.4.1.2           Identifier

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].

2.4.1.3           Resources

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.

2.4.1.4           Metadata

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.

2.4.1.5           DRM Information

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.

2.4.1.6           DRM Tool

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.

2.4.1.7           License

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.

2.4.1.8           Key

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.

2.4.1.9           Use Data

Currently DMP defines Use Data for the purpose of Domain Management.

2.4.2           Protocols

2.4.2.1           Identify

The following Entities require Identification:

 

1.        Content

2.        DRM Tool

3.        Device

4.        User

5.        Domain

2.4.2.1.1          Identify Content

Currently Chapter 3 only specifies the Representation of Content Identification, not the Protocol to request Content Identification.

2.4.2.1.2          Identify DRM Tool

Currently Chapter 3 only specifies the Representation of DRM Tool Identification, not the Protocol to request DRM Tool Identification.

2.4.2.1.3          Identify Device

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.

2.4.2.1.4          Identify User

User Identification is outside the scope of DMP.

2.4.2.1.5          Identify Domain

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.

2.4.2.2           Authenticate

The following Entities: Devices, Users and DRM Tools need to establish Trust between themselves before they may perform DRM-related Functions.

2.4.2.2.1          Authenticate Device

Chapter 3 specifies a Protocol to Authenticate Devices having unique Certificates.

2.4.2.2.2          Authenticate User

User Authentication is outside the scope of DMP.

2.4.2.2.3          Authenticate DRM Tool

These Protocols are currently part of Manage DRM Tool Protocols.

2.4.2.3           Deliver

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

2.4.2.3.1          Access

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

2.4.2.4           Manage DRM Tool

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

2.4.2.5           Manage Domain

Approved Document #3 provides a set of protocols that can be used to manage a Domain. See Domain Model.

2.4.3           Package Content

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).

2.4.3.1           DMP Content File

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)

2.4.3.2           DMP Content Stream

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.

2.4.3.2.1          Broadcast

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.

2.4.3.2.2          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.

 

3          Interoperable DRM Platform

3.1        Introduction

 

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.

3.2        Represent

 

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].

3.2.1           Represent Content

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

 

See, for example the block “Represent Key” in Figure 1, which appears nested in two different Represent blocks.

 

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

3.2.1.1           The DCI Structure

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.

3.2.1.2           Location of Identifiers

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.

3.2.1.2.1          Location of Identifier for Content Item

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

3.2.1.2.2          Location of Identifiers for Content Elements

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

3.2.1.3           Location of Metadata

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

3.2.1.3.1          Location of Metadata for a Content Item

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

3.2.1.3.2          Location of Metadata for a Content Element

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

3.2.1.4           Location of DCI signatures

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

3.2.1.5           Location of DCI hash

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

3.2.1.6           Location of Resources 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

3.2.1.7           Location of Governed Content Elements

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.

3.2.1.8           Location of DRM Information including DRM Tools

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.

3.2.1.9           Location of General DRM Information including DRM ToolList

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

3.2.1.10       Location of Licenses

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 Elem­ents hierarchy described in 3.2.7.1 – Represent Governed Elements, and is a child of the IPMPInfoDescriptor out­lined 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.

3.2.1.10.1       Licenses Granting the Right to Use Content

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.

3.2.1.10.2       Licenses Governing the Use of DRM Tools

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

3.2.1.11       Location of Key Information

There are two types of Keys identified in this specification: time-dependent and time-independent.

3.2.1.11.1       Time-independent Keys

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

3.2.1.11.2       Time-dependent Keys

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.

3.2.1.12       Location of DRM Tool Body

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.

3.2.1.13       Location of Device Information

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.

3.2.2           Represent Metadata

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

3.2.2.1           The DMP Profile of TV-Anytime Metadata

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.

3.2.3           Represent DCI Signature

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

3.2.4           Represent DCI Hash

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

A number of hash values can be contained in a dmp2rc:DCIHash element, as represented in the figure above.

3.2.5           Represent Identifier

3.2.5.1           Represent Content and Content Elements Identifier

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).

3.2.5.1.1          Format of Content Identifiers

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

3.2.5.2           Represent License Identifier

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

3.2.5.3           Represent Metadata Identifier

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

3.2.5.4           Represent DRM Tool 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

3.2.5.5           Represent Device Identifier

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

3.2.5.5.1          Represent User Identifier

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.)

3.2.5.6           Represent Domain Identifier

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.

3.2.6           Represent Resource

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.

3.2.7           Represent DRM Information

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.

3.2.7.1           Represent Governed Elements

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.

3.2.7.2           Represent Local DRM Information

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.

3.2.7.3           Represent General DRM Information

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.

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

 

DRM Tool related information is divided between two parent location elements within the DCI as follows;

 

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.

3.2.8.1           The dmp2_ipmpinfo:ToolList

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].

3.2.8.1.1          Location of the dmp2_ipmpinfo:ToolList element

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

 

3.2.8.2           The dmp2_ipmpinfo:Tool 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].

3.2.8.2.1          dmp2_ipmpinfo:ToolBaseDescription

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

 

3.2.8.2.2          dmp2_ipmpinfo:InitializationSettings

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.

3.2.8.2.3          Location of dmp2_ipmpinfo: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

3.2.8.3           Fixed DRM Tools

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"/>

3.2.9           Represent DRM Tool Body

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.

3.2.9.1           Single DRM Tool Body

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

3.2.9.2           DRM Tool Pack Body

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

3.2.10       Represent License

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.

3.2.10.1       The License element

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.

3.2.10.2       The DomainResource element

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.

3.2.10.3       The digitalResource element

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.

3.2.10.4       The protectedResource element

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.

3.2.11       Represent Key

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.

3.2.11.1       Time-independent 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].

3.2.11.2       Time-dependent Keys

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.

3.2.12       Represent DRM Messages

3.2.12.1       Introduction

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.

3.2.12.2       Containers for DRM Messages

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

3.2.12.2.1       dmp2rdm:ToolMessageBase

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’.

3.2.12.2.2       dmp2rdm:Data_BaseClass

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.

3.2.12.2.3       dmp2rdm:MessageFromDCI

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.

3.2.12.2.4       dmp2rdm:MessageFromTool

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.

3.2.12.3       DRM Messages

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 prof­ile of this specification. All DRM Tools shall be able to process DRM Messages belonging to the base profile, label­led 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.

3.2.12.3.1       Mutual Authentication Messages

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.

3.2.12.3.2       DRM Tool Connection and Disconnection Messages

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.

3.2.12.3.3       DRM Tool Notification Messages

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.

3.2.12.3.4       DRM Processing Messages

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

3.2.12.3.5       User Interaction Messages

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

3.2.12.3.6       DMP-defined DRM Messages

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

3.2.13       Represent Authentication Messages

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.

3.2.13.1       InitAuthentication

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.

3.2.13.2       MutualAuthentication

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 Auth­entication 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.

3.2.14       Represent Device Information

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.

3.2.15       Represent Domain

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.

3.2.16       Represent Domain Protocol

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’.

3.2.17       Represent Use Data

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.

3.2.18       Represent Access Protocol

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.

3.2.19       Represent Binary XML

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].

 

3.3        Protocols

3.3.1           Protocols to Identify Entities

This section collects the specification of the Protocols to Identify Entities. This Chapter 3 currently specifies Protocols to Identify Devices.

3.3.1.1           Protocols to Identify Device

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.

3.3.1.1.1          Device Info-Based Identification

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.

3.3.1.1.2          Certificate-Based Identification

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.

3.3.1.2           Protocols to Identify User

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.

3.3.2           Protocols to Authenticate Entities

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.

3.3.2.1           Protocols to Authenticate Device

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”).

3.3.2.1.1          Certificate-based Device Authentication

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

3.3.2.2           Protocols to Authenticate User

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.

3.3.3           Protocols to Manage Domain

3.3.3.1           Overview

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.

3.3.3.2           Protocols between the Domain Administrator and the DMD

This subsection collects the following Protocols

 

1.        Create Domain Protocol

2.        Renew Domain Protocol

3.        Delete Domain Protocol

3.3.3.2.1          Create 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.

3.3.3.2.2          Renew Domain Protocol

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.

3.3.3.2.3          Delete Domain Protocol

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.

3.3.3.3           Protocol between the DMD and the LPD

3.3.3.3.1          DMD-LPD protocol

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.

3.3.3.4           Protocols between the Device/User and the DMD

This subsection collects the following Protocols

 

·         Add Device Protocol

·         Add User Protocol

·         Renew Device Protocol

·         Renew User Protocol

·         Leave Device Protocol

·         Leave User Protocol

3.3.3.4.1          Add Device 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.

3.3.3.4.2          Add User Protocol

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.

3.3.3.4.3          Renew Device Protocol

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].

3.3.3.4.4          Renew User Protocol

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].

3.3.3.4.5          Leave Device Protocol

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.

3.3.3.4.6          Leave User Protocol

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.

3.3.3.5           Protocols to Detect Simultaneous Usage

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.

3.3.3.5.1          Use Data

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.

3.3.3.5.2          Merging Use Data between Devices

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.

3.3.3.5.3          Un-Licensed Simultaneous Use

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.

3.3.3.5.4          Notification to Domain Management Device

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.

3.3.4           Protocols to Manage DRM Tools

3.3.4.1           Introduction

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]).

3.3.4.2           Instantiation of a DRM Tool

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.

3.3.4.2.1          Instantiation of a single DRM Tool

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.

 

 

3.3.4.2.2          Instantiation of a DRM Tool Pack

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.

3.3.4.3           Initialisation of a DRM Tool

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.

3.3.4.3.1          Initialisation of a single DRM Tool

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).

3.3.4.3.2          Initialisation of a DRM Tool Pack

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.

3.3.4.4           Authentication of DRM Tools and DRM Processor

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.

3.3.4.5           General DRM Tool Management

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].

3.3.4.5.1          Obtaining a reference to the DRM Tool Group

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.

3.3.4.5.2          Obtaining a reference to a DRM Tool

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.

3.3.5           Protocols to Access

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.

3.3.5.1           Protocol to Access Content as File

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.

3.3.5.2           Protocol to Access Content as Stream

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.

3.3.5.3           Protocol to Access License as File

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.

3.3.5.4           Protocol to Access License as Stream

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.

3.3.5.5           Protocol to Access DRM Tool Body as File

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.

3.3.5.6           Protocol to Access DRM Tool Body as Stream

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).

3.3.5.7           Protocols to Access Key as Stream

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

3.3.5.8           Local License Access Protocol

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).

3.3.5.9           Local DRM Tool Body Access Protocol

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

3.4        Package

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).

3.4.1           Package Content

3.4.1.1           Package Content as File

This section specifies how to Package Content into the DMP Content File (DCF).

3.4.1.1.1          Introduction

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.

3.4.1.1.2          ISO Base Media File Format Boxes used in the DCF

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).

3.4.1.1.3          File Type Box (‘ftyp’)

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.

3.4.1.1.4          Free Box (‘free’)

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[];

}

3.4.1.1.5          Meta Box (‘meta’)

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.

3.4.1.1.6          XML Boxes (‘bxml’) and (‘xml’)

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;

}

3.4.1.1.7          Item Location Box

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.

3.4.1.1.8          Media Data Box (‘mdat’)

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[];

}

3.4.1.1.9          License_Container Box (‘licc’)

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

3.4.1.1.10       License Box (‘licb’)

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

3.4.1.1.11       Signature Box (‘sign’)

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[];

}

3.4.1.2           Package Content as Stream

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.
 

4          Use Cases and Value Chains

4.1        Introduction

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.

 

4.2        Use Case and Value Chain No. 1 – Open Release

4.2.1           Rationale

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.

4.2.2           Tools for walkthrough #1

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”.

4.2.2.1           Creation

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

4.2.2.2           Consumption

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

4.2.3           Tools for walkthrough #2

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.

4.2.3.1           Creation

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

 

4.2.3.2           Consumption

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

Luigi

Un-Package

Content Item

 

Package Content

4.1.1

Luigi

Use

Content Item

As per License terms

Represent Content Elements

2.

4.2.4           Tools for walkthrough #3

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.

4.2.4.1           Consumption

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.

4.3        Use Case and Value Chain No. 2 – Open Search

4.3.1           Rationale

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.

4.3.2           Tools for walkthrough #1

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.

4.3.2.1           Creation

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

 

4.3.2.2           Consumption

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.

4.4        Use Case and Value Chain No. 3 – Home Distribution #1

4.4.1           Rationale

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.

4.4.2           Tools for walkthrough #1

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.

4.5        Use Case and Value Chain No. 4 – Home Distribution #2

4.5.1           Rationale

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.

4.5.2           Tools for walkthrough #2

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.

4.6        Use Case and Value Chain No. 5 – Internet Distribution

4.6.1           Rationale

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.

4.6.2           Tools for walkthrough #1

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.

4.6.2.1           Creation

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

 

4.6.2.2           Consumption

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

 

PAV

Un-Package

Content Item

 

Package Content

4.1.1

PAV

Use

Content Item

As per License terms

Represent Content Elements

2.

4.6.3           Tools for walkthrough #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.

4.6.3.1           Creation

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.

4.7        Use Case and Value Chain No. 6 – Controlled Peer-to-Peer Distribution

4.7.1           Rationale

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.

4.7.2           Tools for walkthrough #1

4.7.2.1           Creation (Sara’s Content)

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

 

4.7.2.2           Consumption (Sara’s Content)

 

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.

4.7.3           Tools for walkthrough #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.

4.7.3.1           Creation (GGR’s Content)

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.

4.7.3.2           Consumption (GGR’s Content)

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

 

4.8        Use Case and Value Chain No. 7 – Smart Retailer

4.8.1           Rationale

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.

4.8.2           Tools for walkthrough #1

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

4.8.3           Tools for walkthrough #2

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

4.8.4           Tools for walkthrough #3

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

4.8.5           Tools for walkthrough #4

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

4.8.6           Tools for walkthrough #5

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

4.8.7           Tools for walkthrough #6

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

4.9        Use Case and Value Chain no. 8 – Personal photography

4.9.1           Rationale

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.

4.9.2           Tools for walkthrough #1

4.9.2.1           Creation

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

 

4.9.2.2           Consumption

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

 

4.10    Use Case and Value Chain No. 9 – Open Broadcast

4.10.1       Rationale

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.

4.10.2       Tools for walkthrough #1

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.

4.11    Use Case and Value Chain No. 10 – Open Governed Broadcast

4.11.1       Rationale

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.

4.11.2       Tools for walkthrough #1

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

 

4.11.2.1       Keigo Accesses, Plays and Stores Content

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

4.11.3       Tools for walkthrough #2

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

 

4.11.3.1       Keigo Plays Stored Content

 

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.

4.11.3.2       Ken’ichi Plays Copied/Moved Content

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”.

4.11.3.3       Keigo Copies/Moves Content to a reduced-Device-capability PAV

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.

4.11.4       Tools for walkthrough #3

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

 

4.11.4.1       Choi Accesses, Plays and Store Content

 

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

4.11.5       Tools for walkthrough #4

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

 

4.11.5.1       Choi Plays Stored Content

 

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.

4.11.5.2       Joo Plays Copied/Moved Content

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.

4.12    Use Case and Value Chain No. 11 – Smart Broadcaster

4.12.1       Rationale

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.

 

4.12.2       Tools for walkthrough #1 – Simple Play with simple condition

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

4.12.3       Tools for walkthrough #2 Play with condition

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

4.12.4       Tools for walkthrough #3 Export with condition

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

4.12.5       Tools for walkthrough #4 Store with condition

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

 

4.12.6       Tools for walkthrough #5 - Play broadcast program with constraints

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

4.12.7       Tools for walkthrough #6 - Store & Export broadcast program with constraints

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

4.12.8       Tools for walkthrough #7 - CCI (Copy Control Information ) representation

 

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

4.13    Use Case and Value Chain No. 12 – TVA Broadcaster

4.13.1       Rationale

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.

 

4.13.2       Tools for walkthrough #1 – Free-To-Air Content

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.

4.13.2.1       Expression with RMPI namespace

 

<?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>

4.13.2.2       Expression with MPEG-21 REL dac namespace

 

<?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>

4.13.3       Tools for walkthrough #2 – Pay-Per-View Content

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

4.13.3.1       Expression with RMPI namespace

 

<?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>

4.13.3.2       Expression with MPEG-21 REL dac namespace

 

<?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>

4.13.4       Tools for walkthrough #3 – Video-On-Demand Content

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

4.13.4.1       Expression with RMPI namespace

 

<?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>

4.13.4.2       Expression with MPEG-21 REL dacx namespace

 

<?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>

4.14    Use Case and Value Chain No. 13 – Open Governed Interactive Content

4.14.1       Rationale

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.

4.14.2       Tools for walkthrough #1

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

 

4.14.2.1       Rufus Accesses, Plays and Stores Content

 

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

 


 

5          Certification and Registration Authorities

5.1        Introduction

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.

5.2        DMP Certification Authorities

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.

5.2.1           Process

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.

5.2.2           Qualification Requirements for a Certification Authority

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.

5.2.3           Procedure to appoint a Certification Authority

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.

5.2.4           Responsibilities of a Certification Authority

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.

5.2.5           Responsibilities of Certification Agencies

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.

5.3        DMP Registration Authorities

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.

5.3.1           Process

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.

5.3.2           Qualification Requirements for a Registration Authority

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.

5.3.3           Procedure to appoint a Registration Authority

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.

5.3.4           Responsibilities of a Registration Authority

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.

5.3.5           Responsibilities of Registration Agencies

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.

5.4        Roles of Registration Agencies

5.4.1           Roles of DRM Tool Body Registration Agencies

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.

5.5        Board of Directors tasks regarding Certification and Registration Authorities

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.

 

 


 

6          Terminology

6.1        Introduction

 

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".

6.2        Definitions

 

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

 

 

7          References

 

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

9.        Digital Media Project; Chapter 9 – Recommended Action: Mapping of Traditional Rights and Usages to the Digital Space, 2006/01

10.     The Digital Media Manifesto, http://www.dmpf.org/manifesto/, 2003/09/30

11.     The Digital Media Project, Procedures of Work, http://www.dmpf.org/project/procedures_of_work.htm

12.     ISO/IEC 13818-1, Information technology — Generic coding of moving pictures and associated audio information — Part 11: IPMP on MPEG-2 systems

13.     ISO/IEC 14496-12, Information technology – Coding of audio-visual objects (MPEG-4) – Part 12: ISO base media file format

14.     ISO/IEC 14496-13, Information technology — Coding of audio-visual objects — Part 13: Intellectual Property Management and Protection (IPMP) extensions

15.     ISO/IEC 15938-1, Information technology – Multimedia content description interface (MPEG-7) – Part 1: Systems

16.     ISO/IEC 15938-2, Information technology – Multimedia content description interface (MPEG-7) – Part 2: Description Definition Language

17.     ISO/IEC 15938-5, Information technology – Multimedia content description interface (MPEG-7) – Part 5: Multimedia Description Schemes

18.     ISO/IEC 15938-9, Information technology – Multimedia content description interface (MPEG-7) – Part 9: Profiles and Levels

19.     ISO/IEC 15938-10, Information technology – Multimedia content description interface (MPEG-7) – Part 10: Schema Definition

20.     ISO/IEC 15938-11, Information technology — Multimedia content description interface — Part 11: MPEG-7 profile schemas

21.     ISO/IEC 21000-2, Information technology – Multimedia framework (MPEG-21) – Part 2: Digital Item Declaration

22.     ISO/IEC 21000-3, Information technology – Multimedia framework (MPEG-21) – Part 3: Digital Item Identification

23.     ISO/IEC 21000-4, Information technology – Multimedia framework (MPEG-21) – Part 4: IPMP Components

24.     ISO/IEC 21000-5, Information technology – Multimedia framework (MPEG-21) – Part 5: Rights Expression Language

25.     ISO/IEC 21000-5 Amd 2, Information technology – Multimedia framework (MPEG-21) – Part 5: Rights Expression Language, Amendment 2, Dissemination & Capture Extension (DACX) Profile

26.     ISO/IEC 21000-7, Information technology – Multimedia framework (MPEG-21) – Part 7: Digital Item Adaptation

27.     ISO/IEC 21000-9, Information technology – Multimedia framework (MPEG-21) – Part 9: File format

28.     ISO/IEC 21000-18, Information technology – Multimedia framework (MPEG-21) – Part 18: Digital Item Streaming

29.     ISO/IEC 23001-1, Information technology – MPEG Systems Technologies (MPEG-B) – Part 1: Binary MPEG format for XML

30.     ITU Recommendation X.509 | ISO/IEC 9594-8 –  Information technology – Open Systems Interconnection – The Directory: Public-key and attribute certificate frameworks, 03/00

31.     ETSI TS 102 822-2 v1.2.1 ; Broadcast and On-line Services: Search, select and rightful use of content on personal storage systems ("TV-Anytime Phase 1"), Part 2 System Description", September 2004

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

33.     ETSI TS 102 822-5 v1.1.1; Broadcast and On-line Services: Search, select, and rightful use of content on personal storage systems ("TV-Anytime Phase 1"); Part 5: Rights Management and Protection (RMP) Information for Broadcast Applications

34.     IETF RFC 1737, K. Sollins and L. Masinter, Functional Requirements for Uniform Resource Names, December 1994.

35.     IETF RFC 2045 N. Freed and N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part one: Format of Internet Message Bodies.

36.     IETF RFC 2141 R. Moats, URN Syntax, May 1997.

37.     IETF RFC 2616  R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach and T. Berners-Lee "Hypertext Transfer Protocol – HTTP/1.1"

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/.

40.     “XML-Signature Syntax and Processing” - W3C Recommendation 12 February 2002. http://www.w3.org/TR/xmldsig-core/.

41.     “XML SchemaXML Schema Part 1: Structures Second Edition W3C Recommendation 28 October 2004”, http://www.w3.org/2001/XMLSchema

42.     W3C Candidate Recommendation, “XML Path Language (XPath) 2.0”, 3 November 2005, http://www.w3.org/TR/xpath20/

 

8          Acronyms

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.

A.2MPEG-21 IPMP Components

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.

A.2.1 IPMP DIDL

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>.

A.2.2 The IPMPInfoDescriptor

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

A.4MPEG-2/4 IPMP Extension

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

A.5TV Anytime Metadata

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.

A.5.2.1         Grouping

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.5.2.2         Use of MPEG-7

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.

A.7MPEG-7 BiM

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.

Annex B– DMP Schemas

B.1    IDP-1 Schemas

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

B.1.4    The Access 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    IDP-2 Schemas

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    IDP-1 Schema Profiles

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

E.1 Compatibility

There are 4 child elements in the RMPI-MB and M main type.

Figure  205: The RMPI-MBAndMType complex type

E.1.1     AncillaryRMPI

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

E.1.1.1         RMPITypeFlag

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.

E.1.1.2         VersionOfRMPI

This element can be represented by means of sx:profileCompliance attribute of rel-r-bpx:license element.

E.1.1.3         OriginOfRMPI

This element can be represented by means of rel-r-bpx:issuer element.

E.1.1.4         Cipher

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"/>

E.1.1.5         MBScramblingControl

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.

E.1.1.6         MScramblingControl

Since RMPI-MB(Macro Broadcast) can be considered as a specific instance of the RMPI-M(Macro), the same conversion mechanism can be applied.

E.1.2     ExtendRights

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.

E.1.2.2         SecurityLevel

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

E.1.3     ReceivingDomainRights

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

E.1.3.1         PlayRightsFlag

This information can be represented by means of the rel-bpx-mx:play element.

E.1.3.2         AnalogExportRights

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

E.1.3.3         DigitalExportSDRights

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

E.1.3.4         DigitalExportHDRights

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

E.1.3.5         SecurityLevel

This information can be represented by means of the rel-dacx:securityLevel Condition.

E.1.3.6         BufferDuration

This information can be represented by means of the rel-dacx:timeShiftDuration Condition.

E.1.3.7         TimeWindow

This information can be represented by means of the rel-r:validityInterval Condition.

E.1.3.8         GeographicalControl

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.

E.1.3.10      SinglePointOfControl

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

E.1.4     AnyDomain

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.

Annex G Application forms

 

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

 

 

 

E-mail

 

 

 

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