• 沒有找到結果。

MediaRenderer:2 Device Template Version 1.01 For UPnP™ Version 1.0 Status: Approved Standard Date: May 31, 2006 Document Version: 1.00

N/A
N/A
Protected

Academic year: 2022

Share "MediaRenderer:2 Device Template Version 1.01 For UPnP™ Version 1.0 Status: Approved Standard Date: May 31, 2006 Document Version: 1.00"

Copied!
24
0
0

加載中.... (立即查看全文)

全文

(1)

For UPnP™ Version 1.0 Status: Approved Standard Date: May 31, 2006

Document Version: 1.00

This Standardized DCP has been adopted as a Standardized DCP by the Steering Committee of the UPnP Forum, pursuant to Section 2.1(c)(ii) of the UPnP Membership Agreement. UPnP Forum Members have rights and licenses defined by Section 3 of the UPnP Membership Agreement to use and reproduce the Standardized DCP in UPnP Compliant Devices. All such use is subject to all of the provisions of the UPnP Membership Agreement.

THE UPNP FORUM TAKES NO POSITION AS TO WHETHER ANY INTELLECTUAL PROPERTY RIGHTS EXIST IN THE STANDARDIZED DCPS. THE STANDARDIZED DCPS ARE PROVIDED

"AS IS" AND "WITH ALL FAULTS". THE UPNP FORUM MAKES NO WARRANTIES, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE STANDARDIZED DCPS, INCLUDING BUT NOT LIMITED TO ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE, OF REASONABLE CARE OR WORKMANLIKE EFFORT, OR RESULTS OR OF LACK OF NEGLIGENCE.

Copyright © 1999-2006, Contributing Members of the UPnPTM Forum. All rights Reserved.

Authors Company

Alan Presser Allegrosoft

Gary Langille Echostar

Gerrie Shults HP

John Ritchie (Co-Chair) Intel

Mark Walker Intel

Changhyun Kim LG Electronics

Sungjoon Ahn LG Electronics

Masatomo Hori Matsushita Electric (Panasonic)

Matthew Ma Matsushita Electric (Panasonic)

Jack Unverferth Microsoft

Wim Bronnenberg Philips

Geert Knapen (Co-Chair) Philips

Russell Berkoff Pioneer

Irene Shen Pioneer

(2)

Authors Company

Norifumi Kikkawa Sony

Jonathan Tourzan Sony

Yasuhiro Morioka Toshiba

(3)

Contents

1 Overview and Scope ...6

1.1 Introduction...6

1.2 Notation...7

1.2.1 Data Types ...7

1.2.2 Strings Embedded in Other Strings...7

1.2.3 Extended Backus-Naur Form...8

1.3 Derived Data Types ...8

1.3.1 Comma Separated Value (CSV) Lists...9

1.4 Management of XML Namespaces in Standardized DCPs...10

1.4.1 Namespace Prefix Requirements ...12

1.4.2 Namespace Names, Namespace Versioning and Schema Versioning ...13

1.4.3 Namespace Usage Examples ...14

1.5 Vendor-defined Extensions...15

1.6 References...15

2 Device Definitions...19

2.1 Device Type ...19

2.2 Device Model...19

2.2.1 Description of Device Requirements ...19

2.2.2 Relationships Between Services ...20

2.3 Theory of Operation...20

2.3.1 Device Discovery...20

2.3.2 Preparing to Transfer the Content...21

2.3.3 Controlling the Transfer of the Content...21

2.3.4 Controlling How the Content is Rendered ...21

3 XML Device Description ...22

4 Test ...24

(4)

List of Tables

Table 1-1: EBNF Operators ...8

Table 1-2: CSV Examples...9

Table 1-3: Namespace Definitions ...11

Table 1-4: Schema-related Information...12

Table 1-5: Default Namespaces for the AV Specifications...13

Table 2-6: Device Requirements ...19

(5)

List of Figures

Figure 1: MediaRenderer Functional Diagram...6

(6)

1 Overview and Scope

1.1 Introduction

This device specification is compliant with the Universal Plug and Play Device Architecture version 1.0. It defines a device type referred to herein as MediaRenderer.

The MediaRenderer specification defines a general-purpose device template that can be used to instantiate any Consumer Electronics (CE) device that is capable of rendering AV content from the home network. It exposes a set of rendering controls in which a control point can control how the specified AV content is rendered. This includes controlling various rendering features such as brightness, contrast, volume, etc.

Example instances of a MediaRenderer include traditional devices such as TVs and stereo systems. Some more contemporary examples include digital devices such as MP3 players and Electronic Picture Frames (EPFs). Although most of these examples typically render one specific type of content (for example, a TV typically renders video content), a MediaRenderer is able to support a number of different data formats and transfer protocols. For example, a sophisticated implementation of a TV MediaRenderer could also support MP3 data so that its speakers could be used to play MP3 audio content.

The MediaRenderer device specification is very lightweight and is easy to implement on low-resource devices such as an MP3 player. However, it can also be used to expose the high-end capabilities of devices such as a PC.

A full-featured MediaRenderer exposes the following capabilities:

• Control various rendering characteristics

• Expose the supported transfer protocols and data formats

• Control the flow of the content (for example, FF, REW, etc), if appropriate depending on the transfer protocol.

The MediaRenderer DOES NOT enable control points to:

• Send AV content to another device

• Retrieve any type of meta-data associated with the content

Figure 1: MediaRenderer Functional Diagram

The un-shaded blocks represent the UPnP services that are contained by a MediaRenderer. The shaded blocks represent various device-specific modules that the UPnP services might interact with. However, the internal architecture of a MediaRenderer device is vendor specific.

(7)

1.2 Notation

• In this document, features are described as Required, Recommended, or Optional as follows:

The key words “MUST,” “MUST NOT,” “REQUIRED,” “SHALL,” “SHALL NOT,”

“SHOULD,” “SHOULD NOT,” “RECOMMENDED,” “MAY,” and “OPTIONAL” in this specification are to be interpreted as described in [RFC 2119].

In addition, the following keywords are used in this specification:

PROHIBITED – The definition or behavior is an absolute prohibition of this specification.

Opposite of REQUIRED.

CONDITIONALLY REQUIRED – The definition or behavior depends on a condition. If the specified condition is met, then the definition or behavior is REQUIRED, otherwise it is PROHIBITED.

CONDITIONALLY OPTIONAL – The definition or behavior depends on a condition. If the specified condition is met, then the definition or behavior is OPTIONAL, otherwise it is PROHIBITED.

These keywords are thus capitalized when used to unambiguously specify requirements over protocol and application features and behavior that affect the interoperability and security of implementations. When these words are not capitalized, they are meant in their natural-language sense.

• Strings that are to be taken literally are enclosed in “double quotes”.

• Words that are emphasized are printed in italic.

• Keywords that are defined by the UPnP AV Working Committee are printed using the forum character style.

• Keywords that are defined by the UPnP Device Architecture are printed using the arch character style.

• A double colon delimiter, “::”, signifies a hierarchical parent-child (parent::child) relationship between the two objects separated by the double colon. This delimiter is used in multiple contexts, for example: Service::Action(), Action()::Argument, parentProperty::childProperty.

1.2.1 Data Types

This specification uses data type definitions from two different sources. The UPnP Device Architecture defined data types are used to define state variable and action argument data types [DEVICE]. The XML Schema namespace is used to define property data types [XML SCHEMA-2].

For UPnP Device Architecture defined Boolean data types, it is strongly RECOMMENDED to use the value “0” for false, and the value “1” for true. However, when used as input arguments, the values “false”,

“no”, “true”, “yes” may also be encountered and MUST be accepted. Nevertheless, it is strongly RECOMMENDED that all state variables and output arguments be represented as “0” and “1”.

For XML Schema defined Boolean data types, it is strongly RECOMMENDED to use the value “0” for false, and the value “1” for true. However, when used as input properties, the values “false”, “true” may also be encountered and MUST be accepted. Nevertheless, it is strongly RECOMMENDED that all properties be represented as “0” and “1”.

1.2.2 Strings Embedded in Other Strings

Some string variables and arguments described in this document contain substrings that MUST be independently identifiable and extractable for other processing. This requires the definition of appropriate substring delimiters and an escaping mechanism so that these delimiters can also appear as ordinary

(8)

characters in the string and/or its independent substrings. This document uses embedded strings in two contexts – Comma Separated Value (CSV) lists (see Section 1.3.1, “Comma Separated Value (CSV) Lists”) and property values in search criteria strings. Escaping conventions use the backslash character, “\”

(character code U+005C), as follows:

a. Backslash (“\”) is represented as “\\” in both contexts.

b. Comma (“,”) is

1. represented as “\,” in individual substring entries in CSV lists 2. not escaped in search strings

c. Double quote (“””) is 1. not escaped in CSV lists

2. not escaped in search strings when it appears as the start or end delimiter of a property value 3. represented as “\”” in search strings when it appears as a character that is part of the property

value

1.2.3 Extended Backus-Naur Form

Extended Backus-Naur Form is used in this document for a formal syntax description of certain constructs.

The usage here is according to the reference [EBNF].

1.2.3.1 Typographic conventions for EBNF

Non-terminal symbols are unquoted sequences of characters from the set of English upper and lower case letters, the digits “0” through “9”, and the hyphen (“-”). Character sequences between 'single quotes' are terminal strings and MUST appear literally in valid strings. Character sequences between (*comment delimiters*) are English language definitions or supplementary explanations of their associated symbols. White space in the EBNF is used to separate elements of the EBNF, not to represent white space in valid strings. White space usage in valid strings is described explicitly in the EBNF. Finally, the EBNF uses the following operators:

Table 1-1: EBNF Operators Operator Semantics

::= definition – the non-terminal symbol on the left is defined by one or more alternative sequences of terminals and/or non-terminals to its right.

| alternative separator – separates sequences on the right that are independently allowed definitions for the non-terminal on the left.

* null repetition – means the expression to its left MAY occur zero or more times.

+ non-null repetition – means the expression to its left MUST occur at least once and MAY occur more times.

[ ] optional – the expression between the brackets is optional.

( ) grouping – groups the expressions between the parentheses.

- character range – represents all characters between the left and right character operands inclusively.

1.3 Derived Data Types

This section defines a derived data type that is represented as a string data type with special syntax. This specification uses string data type definitions that originate from two different sources. The UPnP Device Architecture defined string data type is used to define state variable and action argument string data types.

(9)

The XML Schema namespace is used to define property xsd:string data types. The following definition applies to both string data types.

1.3.1 Comma Separated Value (CSV) Lists

The UPnP AV services use state variables, action arguments and properties that represent lists – or one- dimensional arrays – of values. The UPnP Device Architecture, Version 1.0 [DEVICE], does not provide for either an array type or a list type, so a list type is defined here. Lists MAY either be homogeneous (all values are the same type) or heterogeneous (values of different types are allowed). Lists MAY also consist of repeated occurrences of homogeneous or heterogeneous subsequences, all of which have the same syntax and semantics (same number of values, same value types and in the same order). The data type of a homogeneous list is string or xsd:string and denoted by CSV (x), where x is the type of the individual values. The data type of a heterogeneous list is also string or xsd:string and denoted by CSV (x, y, z), where x, y and z are the types of the individual values. If the number of values in the heterogeneous list is too large to show each type individually, that variable type is represented as CSV (heterogeneous), and the variable description includes additional information as to the expected sequence of values appearing in the list and their corresponding types. The data type of a repeated subsequence list is string or xsd:string and denoted by CSV ({x, y, z}), where x, y and z are the types of the individual values in the subsequence and the subsequence MAY be repeated zero or more times.

• A list is represented as a string type (for state variables and action arguments) or xsd:string type (for properties).

• Commas separate values within a list.

• Integer values are represented in CSVs with the same syntax as the integer data type specified in [DEVICE] (that is: optional leading sign, optional leading zeroes, numeric ASCII)

• Boolean values are represented in state variable and action argument CSVs as either “0” for false or “1” for true. These values are a subset of the defined Boolean data type values specified in [DEVICE]: 0, false, no, 1, true, yes.

• Boolean values are represented in property CSVs as either “0” for false or “1” for true. These values are a subset of the defined Boolean data type values specified in [XML SCHEMA-2]: 0, false, 1, true.

• Escaping conventions for the comma and backslash characters are defined in Section 1.2.2,

“Strings Embedded in Other Strings”.

• White space before, after, or interior to any numeric data type is not allowed.

• White space before, after, or interior to any other data type is part of the value.

Table 1-2: CSV Examples Type refinement

of string

Value Comments

CSV (string) or CSV (xsd:string)

“+artist,-date” List of 2 property sort

criteria.

CSV (int) or CSV (xsd:integer)

“1,-5,006,0,+7” List of 5 integers.

CSV (boolean) or CSV (xsd:Boolean)

“0,1,1,0” List of 4 booleans

CSV (string) or CSV (xsd:string)

“Smith\, Fred,Jones\, Davey” List of 2 names,

“Smith, Fred” and

“Jones, Davey”

(10)

Type refinement of string

Value Comments

CSV (i4,string,ui2) or CSV (xsd:int, xsd:string,

xsd:unsignedShort)

“-29837, string with leading blanks,0” Note that the second value is “ string with leading blanks”

CSV (i4) or CSV (xsd:int)

“3, 4” Illegal CSV. White space

is not allowed as part of an integer value.

CSV (string) or CSV (xsd:string)

“,,” List of 3 empty string

values

CSV (heterogeneous) “Alice,Marketing,5,Sue,R&D,21,Dave,Finance,7” List of unspecified number of people and associated attributes. Each person is described by 3 elements: a name string, a department string and years-of-service ui2 or a name xsd:string, a department xsd:string and years-of-service

xsd:unsignedShort.

1.4 Management of XML Namespaces in Standardized DCPs

UPnP specifications make extensive use of XML namespaces. This allows separate DCPs, and even separate components of an individual DCP, to be designed independently and still avoid name collisions when they share XML documents. Every name in an XML document belongs to exactly one namespace. In documents, XML names appear in one of two forms: qualified or unqualified. An unqualified name (or no- colon-name) contains no colon ( “:”) characters. An unqualified name belongs to the document’s default namespace. A qualified name is two no-colon-names separated by one colon character. The no-colon-name before the colon is the qualified name’s namespace prefix, the no-colon-name after the colon is the qualified name’s “local” name (meaning local to the namespace identified by the namespace prefix).

Similarly, the unqualified name is a local name in the default namespace.

The formal name of a namespace is a URI. The namespace prefix used in an XML document is not the name of the namespace. The namespace name is, or should be, globally unique. It has a single definition that is accessible to anyone who uses the namespace. It has the same meaning anywhere that it is used, both inside and outside XML documents. The namespace prefix, however, in formal XML usage, is defined only in an XML document. It must be locally unique to the document. Any valid XML no-colon-name may be used. And, in formal XML usage, no two XML documents are ever required to use the same namespace prefix to refer to the same namespace. The creation and use of the namespace prefix was standardized by the W3C XML Committee in [XML-NMSP] strictly as a convenient local shorthand replacement for the full URI name of a namespace in individual documents.

All AV object properties are represented in XML by element and attribute names, therefore, all property names belong to an XML namespace.

For the same reason that namespace prefixes are convenient in XML documents, it is convenient in specification text to refer to namespaces using a namespace prefix. Therefore, this specification declares a

“standard” prefix for all XML namespaces used herein. In addition, this specification expands the scope where these prefixes have meaning, beyond a single XML document, to all of its text, XML examples, and certain string-valued properties. This expansion of scope does not supercede XML rules for usage in

(11)

documents, it only augments and complements them in important contexts that are out-of-scope for the XML specifications.

All of the namespaces used in this specification are listed in the Tables “Namespace Definitions” and

“Schema-related Information”. For each such namespace, Table 1-3, “Namespace Definitions” gives a brief description of it, its name (a URI) and its defined “standard” prefix name. Some namespaces included in these tables are not directly used or referenced in this document. They are included for completeness to accommodate those situations where this specification is used in conjunction with other UPnP

specifications to construct a complete system of devices and services. The individual specifications in such collections all use the same standard prefix. The standard prefixes are also used in Table 1-4, “Schema- related Information”, to cross-reference additional namespace information. This second table includes each namespace’s valid XML document root elements (if any), its schema file name, versioning information (to be discussed in more detail below), and links to the entries in the Reference section for its associated schema.

The normative definitions for these namespaces are the documents referenced in Table 1-3. The schemas are designed to support these definitions for both human understanding and as test tools. However, limitations of the XML Schema language itself make it difficult for the UPnP-defined schemas to accurately represent all details of the namespace definitions. As a result, the schemas will validate many XML documents that are not valid according to the specifications.

The Working Committee expects to continue refining these schemas after specification release to reduce the number of documents that are validated by the schemas while violating the specifications, but the schemas will still be informative, supporting documents. Some schemas might become normative in future versions of the specifications.

Table 1-3: Namespace Definitions

Standard Name- space

Prefix Namespace Name Namespace Description

Normative Definition Document

Reference AV Working Committee defined namespaces

av: urn:schemas-upnp-org:av:av Common data types for use in AV schemas

[AV-XSD]

avs: urn:schemas-upnp-org:av:avs Common structures for use in AV schemas [AVS-XSD]

avdt: urn:schemas-upnp-org:av:avdt Datastructure Template [AVDT]

avt-event: urn:schemas-upnp-org:metadata-1-0/AVT/ Evented LastChange state variable for AVTransport

[AVT]

didl-lite: urn:schemas-upnp-org:metadata-1-0/DIDL- Lite/

Structure and metadata for ContentDirectory

[CDS]

rcs-event: urn:schemas-upnp-org:metadata-1-0/RCS/ Evented LastChange state variable for RenderingControl

[RCS]

srs: urn:schemas-upnp-org:av:srs Metadata and structure for ScheduledRecording

[SRS]

srs-event: urn:schemas-upnp-org:av:srs-event Evented LastChange state variable for ScheduledRecording

[SRS]

upnp: urn:schemas-upnp-org:metadata-1-0/upnp/ Metadata for ContentDirectory [CDS]

Externally defined namespaces

dc: http://purl.org/dc/elements/1.1/ Dublin Core [DC-TERMS]

xsd: http://www.w3.org/2001/XMLSchema XML Schema Language 1.0 [XML SCHEMA-1]

[XML SCHEMA-2]

xsi: http://www.w3.org/2001/XMLSchema- instance

XML Schema Instance Document schema Sections 2.6 & 3.2.7 of [XML SCHEMA-1]

(12)

Standard Name- space

Prefix Namespace Name Namespace Description

Normative Definition Document

Reference xml: http://www.w3.org/XML/1998/namespace The “xml:” Namespace [XML-NS]

Table 1-4: Schema-related Information

Standard Name- space Prefix

Relative URI and File Name

● Form 1

● Form 2 Valid Root Element(s) Schema Reference

AV Working Committee Defined Namespaces av: • av-vn-yyyymmdd.xsd

• av-vn.xsd

n/a [AV-XSD]

avs: • avs-vn-yyyymmdd.xsd

• avs-vn.xsd

<Features>

<stateVariableValuePairs>

[AVS-XSD]

avdt: • avdt-vn-yyyymmdd.xsd

• avdt-vn.xsd

<AVDT> [AVDT]

avt-event: • avt-event-vn-yyyymmdd.xsd

• avt-event-vn.xsd

<Event> [AVT-EVENT-XSD]

didl-lite: • didl-lite-vn-yyyymmdd.xsd

• didl-lite-vn.xsd

<DIDL-Lite> [DIDL-LITE-XSD]

rcs-event: • rcs-event-vn-yyyymmdd.xsd

• rcs-event-vn.xsd

<Event> [RCS-EVENT-XSD]

srs: • srs-vn-yyyymmdd.xsd

• srs-vn.xsd

<srs> [SRS-XSD]

srs-event: • srs-event-vn-yyyymmdd.xsd

• srs-event-vn.xsd

<StateEvent> [SRS-EVENT-XSD]

upnp: • upnp-vn-yyyymmdd.xsd

• upnp-vn.xsd

n/a [UPNP-XSD]

Externally Defined Namespaces

dc: Absolute URL: http://dublincore.org/schemas/xmls/simpledc20021212.xsd [DC-XSD]

xsd: n/a <schema> [XMLSCHEMA-XSD]

xsi: n/a n/a

xml: n/a [XML-XSD]

1.4.1 Namespace Prefix Requirements

There are many occurrences in this specification of string data types that contain XML names (property names). These XML names in strings will not be processed under namespace-aware conditions. Therefore, all occurrences in instance documents of XML names in strings MUST use the standard namespace prefixes as declared in Table 1-3. In order to properly process the XML documents described herein, control points and devices MUST use namespace-aware XML processors [XML-NMSP] for both reading and writing. As allowed by [XML-NMSP], the namespace prefixes used in an instance document are at the sole discretion of the document creator. Therefore, the declared prefix for a namespace in a document MAY be different from the standard prefix. All devices MUST be able to correctly process any valid XML

(13)

instance document, even when it uses a non-standard prefix for ordinary XML names. It is strongly RECOMMENDED that all devices use these standard prefixes for all instance documents to avoid confusion on the part of both human and machine readers. These standard prefixes are used in all descriptive text and all XML examples in this and related UPnP specifications. Also, each individual specification may assume a default namespace for its descriptive text. In that case, names from that namespace may appear with no prefix.

The assumed default namespace, if any, for each UPnP AV specification is given in Table 1-5, “Default Namespaces for the AV Specifications”.

Note: all UPnP AV schemas declare attributes to be “unqualified”, so namespace prefixes are never used with AV Working Committee defined attribute names.

Table 1-5: Default Namespaces for the AV Specifications AV Specification Name Default Namespace Prefix

AVTransport:2 avt-event:

ConnectionManager:2 n/a

ContentDirectory:2 didl-lite:

MediaRenderer:2 n/a

MediaServer:2 n/a

RenderingControl:2 rcs-event:

ScheduledRecording:1 srs:

1.4.2 Namespace Names, Namespace Versioning and Schema Versioning

Each namespace that is defined by the AV Working Committee is named by a URN.

In order to enable both forward and backward compatibility, the UPnP TC has established the general policy that namespace names will not change with new versions of specifications, even when the specification changes the definition of a namespace. But, namespaces still have version numbers that reflect definitional changes. Each time the definition of a namespace is changed, the namespace’s version number is incremented by one. Therefore, namespace version information must be provided with each XML instance document so that the document’s receiver can properly understand its meaning. This is achieved by the following rules:

• Every release of a schema is identified by a version number and date of the form “n-yyyymmdd”, where n corresponds to the namespace definition version number and yyyymmdd is the year, month and day in the Gregorian calendar that the schema is released.

For example, the new version numbers of the pre-existing “DIDL-Lite” and “upnp” schemas are

“2”. Versions for new schemas, such as “srs” are “1”.

For each schema, the version-date will appear in two places:

1. In the schema file name, according to the naming structure shown in Table 1-4, “Schema- related Information”.

2. As the value of the version attribute of each schema’s schema root element.

Namespaces are referenced in both schema and XML instance documents by namespace name. The namespace name appears as the value of an xmlns attribute. The xmlns attribute also declares a

namespace prefix that will be used to qualify names from each namespace. Schemas are referenced in both schema and XML instance documents by URI in the schemaLocation attribute. See section 1.4.3,

“Namespace Usage Examples” . Two different forms of URI are available, each with a different meaning.

All UPnP AV-defined schema URIs share a common base path of “http://www.upnp.org/schemas/av/”.

(14)

Each schema URI has two unique relative forms (see Table 1-4, “Schema-related Information”), according to which version of a namespace and its representative schema is of interest. The allowed relative URI forms are:

1. schema-root-name “-v” version-date

where version-date is a full version-date of the form n-yyyymmdd. This form references the schema whose “root” name (typically the standardized prefix name used for the namespace that the schema represents) and version-date match schema-root-name and version-date, respectively.

2. schema-root-name “-v” version

where version is an integer representing the namespace’s version number. This form references the most recent version of the schema whose root name and namespace version number match schema-root-name and the version, respectively.

Usage rules for schema location URIs are as follows:

• All instance documents, whether generated by a service or a control point, MUST use Form 1.

• All UPnP AV published schemas that reference other UPnP AV schemas will also use Form 1.

• Validation of XML instance documents in UPnP AV systems potentially serves two purposes.

The first is based on standard XML and XML Schema semantics: the document’s creator asserts that the document is syntactically correct with respect to the referenced schema. The receiving processor can confirm this with a validating parser that uses the referenced schema(s). The second is based on UPnP AV namespace semantics. The receiving processor knows that the XML instance document is supposed to conform to one or more specific UPnP AV specifications. Since the second context is actually the more important context for instance document processing, the receiving processor MAY validate the instance document against any version of a schema that satisfies its needs in assessing the acceptability of the received instance document.

1.4.3 Namespace Usage Examples

The schemaLocation attribute for XML instance documents comes from the XML Schema instance namespace “http:://www.w3.org/2002/XMLSchema-instance”. A single occurrence of the attribute can declare the location of one or more schemas. The schemaLocation attribute value consists of a whitespace separated list of values: namespace name followed by its schema location URL. This pair- sequence is repeated as necessary for the schemas that need to be located for this instance document.

Example 1:

Sample DIDL-Lite XML Document. This document assumes version-date 2-20060531 of the “didl-lite:”

namespace/schema combination and (a possible later) version 2-20061231 of “upnp:”. The lines with the gray background show how to express this versioning information in the instance document.

<?xml version="1.0" encoding="UTF-8"?>

<DIDL-Lite

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"

xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/

http://www.upnp.org/schemas/av/didl-lite-v2-20060531.xsd urn:schemas-upnp-org:metadata-1-0/upnp/

http://www.upnp.org/schemas/av/upnp-v2-20061231.xsd">

<item id="18" parentID="13" restricted="0">

...

</item>

</DIDL-Lite>

(15)

Example 2:

Sample srs XML Document. This document assumes version 1-20060531 of the “srs:” namespace/schema combination. Again, the lines with the gray background show how to express this versioning information in the instance document.

<?xml version="1.0" encoding="UTF-8"?>

<srs

xmlns="urn:schemas-upnp-org:av:srs"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

urn:schemas-upnp-org:av:srs

http://www.upnp.org/schemas/av/srs-v1-20060531.xsd">

...

</srs>

1.5 Vendor-defined Extensions

Whenever vendors create additional vendor-defined state variables, actions or properties, their assigned names and XML representation MUST follow the naming conventions and XML rules as specified in [DEVICE], Section 2.5, “Description: Non-standard vendor extensions”.

1.6 References

This section lists the normative references used in the UPnP AV specifications and includes the tag inside square brackets that is used for each such reference:

[AVARCH] – AVArchitecture:1, UPnP Forum, June 25, 2002.

Available at: http://www.upnp.org/specs/av/UPnP-av-AVArchitecture-v1-20020625.pdf.

[AVDT] – AV DataStructure Template:1, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-AVDataStructure-v1-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-av-AVDataStructure-v1.pdf.

[AVDT-XSD] – XML Schema for UPnP AV Datastructure Template:1, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/avdt-v1-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/avdt-v1.xsd.

[AV-XSD] – XML Schema for UPnP AV Common XML Data Types, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/av-v1-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/av-v1.xsd.

[AVS-XSD] – XML Schema for UPnP AV Common XML Structures, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/avs-v1-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/avs-v1.xsd.

[AVT] – AVTransport:2, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-AVTransport-v2-Service-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-av-AVTransport-v2-Service.pdf.

[AVT-EVENT-XSD] – XML Schema for AVTransport:2 LastChange Eventing, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/avt-event-v2-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/avt-event-v2.xsd.

[CDS] – ContentDirectory:2, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-ContentDirectory-v2-Service-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-av-ContentDirectory-v2-Service.pdf.

[CM] – ConnectionManager:2, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-ConnectionManager-v2-Service-20060531.pdf.

(16)

Latest version available at: http://www.upnp.org/specs/av/UPnP-av-ConnectionManager-v2-Service.pdf.

[DC-XSD] – XML Schema for UPnP AV Dublin Core.

Available at: http://www.dublincore.org/schemas/xmls/simpledc20020312.xsd.

[DC-TERMS] – DCMI term declarations represented in XML schema language.

Available at: http://www.dublincore.org/schemas/xmls.

[DEVICE] – UPnP Device Architecture, version 1.0, UPnP Forum, June 13, 2000.

Available at: http://www.upnp.org/specs/architecture/UPnP-DeviceArchitecture-v1.0-20000613.htm.

Latest version available at: http://www.upnp.org/specs/architecture/UPnP-DeviceArchitecture-v1.0.htm.

[DIDL] – ISO/IEC CD 21000-2:2001, Information Technology - Multimedia Framework - Part 2: Digital Item Declaration, July 2001.

[DIDL-LITE-XSD] – XML Schema for ContentDirectory:2 Structure and Metadata (DIDL-Lite), UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/didl-lite-v2-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/didl-lite-v2.xsd.

[EBNF] – ISO/IEC 14977, Information technology - Syntactic metalanguage - Extended BNF, December 1996.

[HTTP/1.1] – HyperText Transport Protocol – HTTP/1.1, R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L.

Masinter, P. Leach, T. Berners-Lee, June 1999.

Available at: http://www.ietf.org/rfc/rfc2616.txt.

IEC 61883] – IEC 61883 Consumer Audio/Video Equipment – Digital Interface - Part 1 to 5.

Available at: http://www.iec.ch.

[IEC-PAS 61883] – IEC-PAS 61883 Consumer Audio/Video Equipment – Digital Interface - Part 6.

Available at: http://www.iec.ch.

[ISO 8601] – Data elements and interchange formats – Information interchange -- Representation of dates and times, International Standards Organization, December 21, 2000.

Available at: ISO 8601:2000.

[MIME] – IETF RFC 1341, MIME (Multipurpose Internet Mail Extensions), N. Borenstein, N. Freed, June 1992.

Available at: http://www.ietf.org/rfc/rfc1341.txt.

[MR] – MediaRenderer:2, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-MediaRenderer-v2-Device-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-AV-MediaRenderer-v2-Device.pdf.

[MS] – MediaServer:2, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-MediaServer-v2-Device-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-AV-MediaServer-v2-Device.pdf.

[RCS] – RenderingControl:2, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-RenderingControl-v2-Service-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-av-RenderingControl-v2-Service.pdf.

[RCS-EVENT-XSD] –XML Schema for RenderingControl:2 LastChange Eventing, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/rcs-event-v1-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/rcs-event-v1.xsd.

[RFC 1738] – IETF RFC 1738, Uniform Resource Locators (URL), Tim Berners-Lee, et. Al., December 1994.

Available at: http://www.ietf.org/rfc/rfc1738.txt.

(17)

[RFC 2119] – IETF RFC 2119, Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, 1997.

Available at: http://www.faqs.org/rfcs/rfc2119.html.

[RFC 2396] – IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax, Tim Berners-Lee, et al, 1998.

Available at: http://www.ietf.org/rfc/rfc2396.txt.

[RFC 3339] – IETF RFC 3339, Date and Time on the Internet: Timestamps, G. Klyne, Clearswift Corporation, C. Newman, Sun Microsystems, July 2002.

Available at: http://www.ietf.org/rfc/rfc3339.txt.

[RTP] – IETF RFC 1889, Realtime Transport Protocol (RTP), H. Schulzrinne, S. Casner, R. Frederick, V.

Jacobson, January 1996.

Available at: http://www.ietf.org/rfc/rfc1889.txt.

[RTSP] – IETF RFC 2326, Real Time Streaming Protocol (RTSP), H. Schulzrinne, A. Rao, R. Lanphier, April 1998.

Available at: http://www.ietf.org/rfc/rfc2326.txt.

[SRS] – ScheduledRecording:1, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/specs/av/UPnP-av-ScheduledRecording-v1-Service-20060531.pdf.

Latest version available at: http://www.upnp.org/specs/av/UPnP-av-ScheduledRecording-v1-Service- 20060531.pdf.

[SRS-XSD] – XML Schema for ScheduledRecording:1 Metadata and Structure, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/srs-v1-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/srs-v1.xsd.

[SRS-EVENT-XSD] – XML Schema for ScheduledRecording:1 LastChange Eventing, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/srs-event-v1-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/srs-event-v1.xsd.

[UAX 15] – Unicode Standard Annex #15, Unicode Normalization Forms, version 4.1.0, revision 25, M.

Davis, M. Dürst, March 25, 2005.

Available at: http://www.unicode.org/reports/tr15/tr15-25.html.

[UNICODE COLLATION] – Unicode Technical Standard #10, Unicode Collation Algorithm version 4.1.0, M. Davis, K. Whistler, May 5, 2005.

Available at: http://www.unicode.org/reports/tr10/tr10-14.html.

[UPNP-XSD] – XML Schema for ContentDirectory:2 Metadata, UPnP Forum, May 31, 2006.

Available at: http://www.upnp.org/schemas/av/upnp-v2-20060531.xsd.

Latest version available at: http://www.upnp.org/schemas/av/upnp-v2.xsd.

[UTS 10] – Unicode Technical Standard #10, Unicode Collation Algorithm, version 4.1.0, revision 14, M.

Davis, K. Whistler, May 5, 2005.

Available at: http://www.unicode.org/reports/tr10/tr10-14.html.

[UTS 35] – Unicode Technical Standard #35, Locale Data Markup Language, version 1.3R1, revision 5,.M. Davis, June 2, 2005.

Available at: http://www.unicode.org/reports/tr35/tr35-5.html.

[XML] – Extensible Markup Language (XML) 1.0 (Third Edition), François Yergeau, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, eds., W3C Recommendation, February 4, 2004.

Available at: http://www.w3.org/TR/2004/REC-xml-20040204.

[XML-NS] – The “xml:” Namespace, November 3, 2004.

Available at: http://www.w3.org/XML/1998/namespace.

(18)

[XML-XSD] – XML Schema for the “xml:” Namespace.

Available at: http://www.w3.org/2001/xml.xsd.

[XML-NMSP] – Namespaces in XML, Tim Bray, Dave Hollander, Andrew Layman, eds., W3C Recommendation, January 14, 1999.

Available at: http://www.w3.org/TR/1999/REC-xml-names-19990114.

[XML SCHEMA-1] – XML Schema Part 1: Structures, Second Edition, Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, W3C Recommendation, 28 October 2004.

Available at: http://www.w3.org/TR/2004/REC-xmlschema-1-20041028.

[XML SCHEMA-2] – XML Schema Part 2: Data Types, Second Edition, Paul V. Biron, Ashok Malhotra, W3C Recommendation, 28 October 2004.

Available at: http://www.w3.org/TR/2004/REC-xmlschema-2-20041028.

[XMLSCHEMA-XSD] – XML Schema for XML Schema.

Available at: http://www.w3.org/2001/XMLSchema.xsd.

(19)

2 Device Definitions

2.1 Device Type

The following device type identifies a device that is compliant with this specification:

urn:schemas-upnp-org:device:MediaRenderer:2

The shorthand MediaRenderer is used herein to refer to this device type.

2.2 Device Model

MediaRenderer products MUST implement minimum version numbers of all REQUIRED embedded devices and services specified in the table below. A MediaRenderer device can be either a Root device or can be Embedded in another UPnP device (MediaRenderer or other). A MediaRenderer device (Root or Embedded) can in turn contain other standard or non-standard Embedded UPnP devices.

Table 2-6: Device Requirements

DeviceType Root R/O1 ServiceType R/O Service ID2 MediaRenderer:2 Root

or

Embedded

R RenderingControl:2 R RenderingControl

ConnectionManager:2 R ConnectionManager

AVTransport:2 O AVTransport

Standard non-AV services defined by UPnP (QoS, Security, etc.) go here.

X TBD

Non-standard services embedded by a UPnP vendor go here.

X TBD

Standard devices embedded by a UPnP vendor go here.

Embedded O Services as defined by the corresponding standard UPnP Device Definition go here.

Non-standard devices embedded by a UPnP vendor go here.

Embedded X TBD TBD TBD

1 R = REQUIRED, O = OPTIONAL, X = Non-standard.

2 Prefixed by urn:upnp-org:serviceId:

2.2.1 Description of Device Requirements

Any instance of a MediaRenderer MUST have a RenderingControl service and a ConnectionManager service. For a given instance (MediaRenderer), there MUST only be one instance of these standard defined services. There MAY be one instance of a standard AVTransport service. The semantics of additional AV services are not defined. Other standard services, such as UPnP QoS, MAY be added with semantics defined by the relevant specifications.

(20)

It should be noted that MediaRenderer:2 implementations MUST respond to all SSDP queries that specify MediaRenderer:1 and must respond to all actions defined by the MediaRenderer:1 specification.

The RenderingControl service allows control points to control the various rendering capabilities of the device. The ConnectionManager service is used to enumerate and select a particular transfer protocol and data format to be used for transferring the content. Additionally, the ConnectionManager service also allows control points, such as a home network management application, to discover useful information about the content transfers that the device is actively participating in. Such information could be useful to a Quality of Service capability, which may be defined in the future.

The existence of the AVTransport service depends on the transfer protocols that are supported by the device. The ConnectionManager service specification includes a table that identifies which transfer protocols REQUIRE an AVTransport service to be implemented on the MediaRenderer. If an

implementation of the MediaRenderer supports any of these transfer protocols, then it MUST implement the AVTransport service. However, no AVTransport service instances will be instantiated until a connection is made using one of those transfer protocols.

2.2.2 Relationships Between Services

The ConnectionManager::PrepareForConnection() action provides the trigger point for creating a new virtual instance of the RenderingControl and AVTransport service (refer to the RenderingControl and AVTransport service specifications for a description of virtual instances of those services). When a new connection is established (one that REQUIRES an AVTransport service on the MediaRenderer, which is determined by the selected transfer protocol), the ConnectionManager::PrepareForConnection() action returns the InstanceID of the RenderingControl and AVTransport services that are bound to that

connection. The RenderingControl service virtual instance is used by the control point to control how the content from that connection is rendered. The AVTransport service virtual instance is used by the control point to control the flow (for example, AVTransport::Play(), AVTransport::Seek(), etc.) of the content received via that connection. As described in the RenderingControl and AVTransport service

specifications, each virtual instance of these services operates independently from all other virtual instances.

2.3 Theory of Operation

MediaRenderer devices are used in conjunction with one or more MediaServer device(s) to allow a control point to render entertainment (AV) content (for example, video, music, images, etc.) that is discovered on a MediaServer device within the home network. In general terms, the process begins with the control point(s) discovering MediaServer and MediaRenderer devices within the home network. After a control point locates the desired content on a MediaServer, the control point needs to identify a common transfer protocol and data format that can be used to transfer the content from the MediaServer to the

MediaRenderer. After these transfer parameters have been established, the control point controls the flow of the content (for example, AVTransport::Play(), AVTransport::Pause(), AVTransport::Stop(),

AVTransport::Seek(), etc.). (Depending on the selected transfer protocol, these flow control operations are sent either to the MediaServer or the MediaRenderer, but not both). The actual transfer of the content is performed directly by the MediaServer and MediaRenderer. The content transfer happens independently from the control point and does not involve UPnP itself. The control point uses UPnP to setup the transfer of the content, but the transfer is performed using an out-of band transfer protocol.

2.3.1 Device Discovery

Control points can discover MediaRenderer devices using the standard UPnP SSDP-based device discovery mechanism to search for any device that is a member of the MediaRenderer device class including Root devices and/or Embedded devices.

(21)

2.3.2 Preparing to Transfer the Content

After the desired content has been identified, the control point needs to determine which transfer protocol and data format should be used to transfer the content from the MediaServer to the MediaRenderer.

(Transfer protocol examples include IEEE-1394, HTTP GET, RTSP/RTP, etc., and data format examples include MPEG2, MPEG4, MP3, WMA, JPEG, etc.) The control point makes this determination by comparing the content’s protocol/format information (obtained via the MediaServer’s ContentDirectory service) with the protocol/format information obtained via the MediaRenderer’s

ConnectionManager::GetProtocolInfo() action.

After the transfer protocol and data format have been identified, the control point uses the

ConnectionManager::PrepareForConnection() action on each device to inform the device that the specified protocol/format are about to be used. Depending on which transfer protocol was selected, the ConnectionManager::PrepareForConnection() action on either the MediaRenderer or MediaServer will return an AVTransport InstanceID to the control point. This AVTransport InstanceID is used by the control point to control the transfer of the content (for example, AVTransport::Play(),

AVTransport::Pause(), AVTransport::Stop(), AVTransport::Seek(), etc). Refer to the subsection below for more details.

Depending on which transfer protocols are supported by the device (for example, devices that only support HTTP GET), a MediaRenderer and/or MediaServer MAY choose to NOT implement the

ConnectionManager::PrepareForConnection() action. In this case, the control point may not have been able to obtain an AVTransport InstanceID from either device. When this happens, the control point should use an AVTransport InstanceID of 0 (zero). If the MediaRenderer has implemented the AVTransport service, the control point should use it for all AVTransport actions. Otherwise, AVTransport actions should be sent to the MediaServer device. Refer to the ConnectionManager service for more information.

2.3.3 Controlling the Transfer of the Content

In all cases, the control point uses the InstanceID, obtained as described above, to control the flow of the content. For example, to begin transferring the content, the control point invokes the AVTransport::Play() action. To skip to a specific location within the content, the control point invokes the AVTransport::Seek() action. In most cases, the choice of AVTransport actions that are actually invoked will likely be directed by the end-user while interacting with the control point’s UI. Refer to the AVTransport service specification for additional details about these and other AVTransport actions.

2.3.4 Controlling How the Content is Rendered

Similar to the allocation of AVTransport InstanceIDs, the MediaRenderer’s

ConnectionManager::PrepareForConnection() action will also return a RenderingControl InstanceID.

This InstanceID is used in conjunction with the RenderingControl service to control how the content is to be rendered. For example, to change the loudness of the sound, the control point invokes the

RenderingControl::SetVolume() action. The control point passes the RenderingControl InstanceID and the desired volume setting as input parameters. To get the current brightness of the MediaRenderer’s display, the control point invokes the RenderingControl::GetBrightness() action. The InstanceID is passed as an input parameter and the current brightness setting is returned. Refer to the RenderingControl service for additional details on these and other actions that affect how content is rendered.

(22)

3 XML Device Description

<?xml version="1.0"?>

<root xmlns="urn:schemas-upnp-org:device-1-0">

<specVersion>

<major>1</major>

<minor>0</minor>

</specVersion>

<URLBase>base URL for all relative URLs</URLBase>

<device>

<deviceType>

urn:schemas-upnp-org:device:MediaRenderer:2

</deviceType>

<friendlyName>short user-friendly title</friendlyName>

<manufacturer>manufacturer name</manufacturer>

<manufacturerURL>URL to manufacturer site</manufacturerURL>

<modelDescription>long user-friendly title</modelDescription>

<modelName>model name</modelName>

<modelNumber>model number</modelNumber>

<modelURL>URL to model site</modelURL>

<serialNumber>manufacturer's serial number</serialNumber>

<UDN>uuid:UUID</UDN>

<UPC>Universal Product Code</UPC>

<iconList>

<icon>

<mimetype>image/format</mimetype>

<width>horizontal pixels</width>

<height>vertical pixels</height>

<depth>color depth</depth>

<url>URL to icon</url>

</icon>

XML to declare other icons, if any, go here

</iconList>

<serviceList>

<service>

<serviceType>

urn:schemas-upnp-org:service:RenderingControl:2

</serviceType>

<serviceId>

urn:upnp-org:serviceId:RenderingControl

</serviceId>

<SCPDURL>URL to service description</SCPDURL>

<controlURL>URL for control</controlURL>

<eventSubURL>URL for eventing</eventSubURL>

</service>

<service>

<serviceType>

urn:schemas-upnp-org:service:ConnectionManager:2

</serviceType>

<serviceId>

urn:upnp-org:serviceId:ConnectionManager

</serviceId>

<SCPDURL>URL to service description</SCPDURL>

<controlURL>URL for control</controlURL>

<eventSubURL>URL for eventing</eventSubURL>

(23)

</service>

<service>

<serviceType>

urn:schemas-upnp-org:service:AVTransport:2

</serviceType>

<serviceId>

urn:upnp-org:serviceId:AVTransport

</serviceId>

<SCPDURL>URL to service description</SCPDURL>

<controlURL>URL for control</controlURL>

<eventSubURL>URL for eventing</eventSubURL>

</service>

Declarations for standard non-AV services defined by UPnP (if any) go here

Declarations for other services added by UPnP vendor (if any) go here

</serviceList>

<deviceList>

Description of embedded devices added by UPnP vendor (if any) go here

</deviceList>

<presentationURL>URL for presentation</presentationURL>

</device>

</root>

(24)

4 Test

There are no semantic tests defined for this device.

參考文獻

相關文件

The transfer will probably be chunked (HTTP v1.1). When the sheet is done, the scanner will decrement SideCount, increment SideNumber and transition to Pending because

A floating point number in double precision IEEE standard format uses two words (64 bits) to store the number as shown in the following figure.. 1 sign

A floating point number in double precision IEEE standard format uses two words (64 bits) to store the number as shown in the following figure.. 1 sign

• ‘ content teachers need to support support the learning of those parts of language knowledge that students are missing and that may be preventing them mastering the

 Promote project learning, mathematical modeling, and problem-based learning to strengthen the ability to integrate and apply knowledge and skills, and make. calculated

Teachers may consider the school’s aims and conditions or even the language environment to select the most appropriate approach according to students’ need and ability; or develop

Students read the adapted version of the fable “The Lion and the Mouse” to learn to be grateful and the English saying of wisdom “One good turn deserves another.” Teachers

Now, nearly all of the current flows through wire S since it has a much lower resistance than the light bulb. The light bulb does not glow because the current flowing through it