ISO/IEC 29341-4-4:2011
(Main)Information technology - UPnP Device Architecture - Part 4-4: Audio Video Device Control Protocol - Level 2 - Audio Video Data Structures
Information technology - UPnP Device Architecture - Part 4-4: Audio Video Device Control Protocol - Level 2 - Audio Video Data Structures
ISO/IEC 29341-4-4:2011(E) defines the layout of the AV Datastructure Template (AVDT) XML document. An AVDT document describes the format requirements and restrictions of various data structures used within the UPnP AV specifications. Its purpose is to enable each device to describe (at run-time) its particular variation of these AV data structures. AVDT documents allow users of AV data structures (e.g. UPnP control points) to reduce the number of instances of those data structures that comply with the service specification but are not compatible with the device's particular capabilities. The ultimate goal of an AVDT document is to reduce those error conditions that are caused by control points creating instances of a data structure that exceed the static (known) capabilities of the device. Unfortunately, the AVDT mechanism will never eliminate all preventable error conditions, but it will help to reduce them by giving the client more information about the device's particular capabilities. This International Standard replaces ISO/IEC 29341-4-4, first edition, published in 2008, and constitutes a technical revision.
General Information
Relations
Standards Content (Sample)
ISO/IEC 29341-4-4
Edition 2.0 2011-09
INTERNATIONAL
STANDARD
colour
inside
Information technology – UPnP device architecture –
Part 4-4: Audio Video Device Control Protocol – Level 2 – Audio Video Data
Structures
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
either IEC or IEC's member National Committee in the country of the requester.
If you have any questions about ISO/IEC copyright or have an enquiry about obtaining additional rights to this
publication, please contact the address below or your local IEC member National Committee for further information.
IEC Central Office
3, rue de Varembé
CH-1211 Geneva 20
Switzerland
Email: inmail@iec.ch
Web: www.iec.ch
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.
About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigenda or an amendment might have been published.
Catalogue of IEC publications: www.iec.ch/searchpub
The IEC on-line Catalogue enables you to search by a variety of criteria (reference number, text, technical committee,…).
It also gives information on projects, withdrawn and replaced publications.
IEC Just Published: www.iec.ch/online_news/justpub
Stay up to date on all new IEC publications. Just Published details twice a month all new publications released. Available
on-line and also by email.
Electropedia: www.electropedia.org
The world's leading online dictionary of electronic and electrical terms containing more than 20 000 terms and definitions
in English and French, with equivalent terms in additional languages. Also known as the International Electrotechnical
Vocabulary online.
Customer Service Centre: www.iec.ch/webstore/custserv
If you wish to give us your feedback on this publication or need further assistance, please visit the Customer Service
Centre FAQ or contact us:
Email: csc@iec.ch
Tel.: +41 22 919 02 11
Fax: +41 22 919 03 00
ISO/IEC 29341-4-4
Edition 2.0 2011-09
INTERNATIONAL
STANDARD
colour
inside
Information technology – UPnP device architecture –
Part 4-4: Audio Video Device Control Protocol – Level 2 – Audio Video Data
Structures
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
PRICE CODE
L
ICS 35.200 ISBN 978-2-88912-679-8
29341-4-4 © ISO/IEC:2011(E)
CONTENTS
1 Overview and Scope . 2
1.1 Introduction . 2
1.2 Notation . 3
1.2.1 Data Types . 4
1.2.2 Strings Embedded in Other Strings . 4
1.2.3 Extended Backus-Naur Form . 4
1.3 Derived Data Types . 5
1.3.1 Comma Separated Value (CSV) Lists . 5
1.4 Management of XML Namespaces in Standardized DCPs . 6
1.4.1 Namespace Prefix Requirements . 9
1.4.2 Namespace Names, Namespace Versioning and Schema Versioning . 10
1.4.3 Namespace Usage Examples . 12
1.5 Vendor-defined Extensions . 13
1.5.1 Vendor-defined Action Names . 13
1.5.2 Vendor-defined State Variable Names . 13
1.5.3 Vendor-defined XML Elements and attributes . 13
1.5.4 Vendor-defined Property Names . 13
1.6 References . 13
2 AV Datastructure Template . 17
3 AV Datastructure Schema . 23
Figure 1: Typical Usage of AVDT . 3
Table 1-1 — EBNF Operators . 5
Table 1-2 — CSV Examples . 6
Table 1-3 — Namespace Definitions . 8
Table 1-4 — Schema-related Information . 9
Table 1-5 — Default Namespaces for the AV Specifications . 10
29341-4-4 © ISO/IEC:2011(E)
INFORMATION TECHNOLOGY –
UPNP DEVICE ARCHITECTURE –
Part 4-4: Audio Video Device Control Protocol –
Level 2 – Audio Video Data Structures
FOREWORD
1) ISO (International Organization for Standardization) and IEC (International Electrotechnical Commission) form the
specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in
the development of International Standards. Their preparation is entrusted to technical committees; any ISO and
IEC member body interested in the subject dealt with may participate in this preparatory work. International
governmental and non-governmental organizations liaising with ISO and IEC also participate in this preparation.
2) In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting.
Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote.
3) The formal decisions or agreements of IEC and ISO on technical matters express, as nearly as possible, an
international consensus of opinion on the relevant subjects since each technical committee has representation
from all interested IEC and ISO member bodies.
4) IEC, ISO and ISO/IEC publications have the form of recommendations for international use and are accepted
by IEC and ISO member bodies in that sense. While all reasonable efforts are made to ensure that the
technical content of IEC, ISO and ISO/IEC publications is accurate, IEC or ISO cannot be held responsible for
the way in which they are used or for any misinterpretation by any end user.
5) In order to promote international uniformity, IEC and ISO member bodies undertake to apply IEC, ISO and
ISO/IEC publications transparently to the maximum extent possible in their national and regional publications.
Any divergence between any ISO/IEC publication and the corresponding national or regional publication
should be clearly indicated in the latter.
6) ISO and IEC provide no marking procedure to indicate their approval and cannot be rendered responsible for
any equipment declared to be in conformity with an ISO/IEC publication.
7) All users should ensure that they have the latest edition of this publication.
8) No liability shall attach to IEC or ISO or its directors, employees, servants or agents including individual experts
and members of their technical committees and IEC or ISO member bodies for any personal injury, property
damage or other damage of any nature whatsoever, whether direct or indirect, or for costs (including legal fees)
and expenses arising out of the publication of, use of, or reliance upon, this ISO/IEC publication or any other IEC,
ISO or ISO/IEC publications.
9) Attention is drawn to the normative references cited in this publication. Use of the referenced publications is
indispensable for the correct application of this publication.
10) Attention is drawn to the possibility that some of the elements of this International Standard may be the subject of
patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
International Standard ISO/IEC 29341-4-4 was prepared by UPnP Forum Steering
committee , was adopted, under the fast track procedure, by subcommittee 25:
Interconnection of information technology equipment, of ISO/IEC joint technical committee 1:
Information technology.
This International Standard replaces ISO/IEC 29341-4-4, first edition, published in 2008, and
constitutes a technical revision.
The list of all currently available parts of the ISO/IEC 29341 series, under the general title
Information technology – UPnP device architecture, can be found on the IEC web site.
This International Standard has been approved by vote of the member bodies, and the voting
results may be obtained from the address given on the second title page.
—————————
rd
UPnP Forum Steering committee, UPnP Forum, 3855 SW 153 Drive, Beaverton, Oregon 97006 USA. See also
“Introduction”.
29341-4-4 © ISO/IEC:2011(E)
IMPORTANT – The “colour inside” logo on the cover page of this publication indicates
that it contains colours which are considered to be useful for the correct understanding
of its contents. Users should therefore print this publication using a colour printer.
XXXX: © IEC:2010 — 2 — 29341-4-4 © ISO/IEC:2011(E)
1 Overview and Scope
1.1 Introduction
This document defines the layout of the AV Datastructure Template (AVDT) XML document.
An AVDT document describes the format requirements and restrictions of various data
structures used within the UPnP AV specifications. Although these data structures are
defined very precisely in the appropriate service specification, in most cases, each data
structure definition allows for a certain degree of variation in order to accommodate
differences between individual devices.
The purpose of an AVDT document is to enable each device to describe (at run-time) its
particular variation of these AV data structures. AVDT documents allow users of AV data
structures (e.g. UPnP control points) to reduce the number of instances of those data
structures that comply with the service specification but are not compatible with the device’s
particular capabilities. The ultimate goal of an AVDT document is to reduce those error
conditions that are caused by control points creating instances of a data structure that
exceed the static (known) capabilities of the device. Unfortunately, the AVDT mechanism will
never eliminate all preventable error conditions, but it will help to reduce them by giving the
client more information about the device’s particular capabilities.
As described above, an AVDT document is a machine readable, implementation-specific
variant of an AV data structure defined by one of the UPnP AV specifications. For a given
device, each instance of that data structure must conform to both the specification definition
AND the device’s AVDT definition of that data structure.
Ironically, an AVDT document is both a more-restrictive and more-permissive variant of the
specification definition. AVDT documents are more restrictive because they limit certain
aspects of the data structure (e.g. such as the allowed values for each field) that are
otherwise permitted by the specification definition. However, due to limitations of the AVDT
constructs, it is simply not possible to express some of the more intricate requirements
defined by the specification (e.g. subtle interdependencies between data structure fields).
Consequently, instances of a data structure that comply with a given AVDT description may
not fully comply with all of the requirements defined in the specification.
The types of data structures that can be described by an AVDT document represent a (non-
hierarchitical) set of named property values. The set of allowed property names and their
allowed values for a given data structure are defined by one of the UPnP AV specifications.
Individual instances of these data structures are manifested via an XML document whose
elements and attributes correspond to the set of named properties. In other words, within the
XML document that corresponds to a given instance of a certain data structure, each XML
element and attribute contains the value of a specific named property.
An AVDT document is conceptually similar to an XML schema in that both entities identify the
XML elements and attributes that appear in any given document instance. Additionally, both
AVDT documents and XML schemas identify the allowed values that are permitted for each
element and/or attribute which corresponds to a specific property. However, unlike an XML
schema, an AVDT document can also identify certain dependencies between two or more
properties. For example, the set of allowed values of one property may depend on the actual
value of another property. This type of interrelationship is difficult to represent using an XML
schema. Hence, the AVDTdocument structure is needed.
In the various AV Architecture scenarios, sometimes there is a need to exchange device
capabilities to ensure high level interoperability. In order to express the parameterized
capability, an AV specification defines various templates for each purpose. A device uses the
template and populates it with values to reflect its capabilities at run-time.
29341-4-4 XXXX: © IEC:2010 © ISO/IEC:2011(E) — 3 —
The AV Datastructure Template (AVDT) is a common structure to define various templates,
which are called “Datastructure”. This is written in XML and each data structure uses a
subset of the AVDT to meet the necessary requirement.
Figure 1: Typical Usage of AVDT
1.2 Notation
• In this document, features are described as Required, Recommended, or Optional as
follows:
The keywords “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 prohibited by 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 [DEVICE].
• Keywords that are defined by the UPnP Device Architecture specification are printed
using the arch character style.
XXXX: © IEC:2010 — 4 — 29341-4-4 © ISO/IEC:2011(E)
• 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 boolean 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 Boolean 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 characters in the string and/or its independent
substrings. This document uses embedded strings in two contexts – Comma Separated Value
(CSV) lists (see Clause 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
29341-4-4 XXXX: © IEC:2010 © ISO/IEC:2011(E) — 5 —
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 clause 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. 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 US-
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.
XXXX: © IEC:2010 — 6 — 29341-4-4 © ISO/IEC:2011(E)
• 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 Clause
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 Value Comments
string
CSV (string) or “+artist,-date” List of 2 property sort
criteria.
CSV (xsd:string)
CSV (int) or “1,-5,006,0,+7” List of 5 integers.
CSV (xsd:integer)
“0,1,1,0” List of 4 booleans
CSV (boolean) or
CSV (xsd:Boolean)
“Smith\, Fred,Jones\, Davey” List of 2 names,
CSV (string) or
CSV (xsd:string) “Smith, Fred” and
“Jones, Davey”
“-29837, string with leading blanks,0” Note that the second value
CSV (i4,string,ui2) or
CSV (xsd:int, is “ string with leading
xsd:string, blanks”
xsd:unsignedShort)
CSV (i4) or “3, 4” Illegal CSV. White space
CSV (xsd:int) is not allowed as part of
an integer value.
CSV (string) or “,,” List of 3 empty string
CSV (xsd: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
29341-4-4 XXXX: © IEC:2010 © ISO/IEC:2011(E) — 7 —
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 documents, it only
augments and complements them in important contexts that are out-of-scope for the XML
specifications. For example, action arguments which refer to CDS properties, such as the
SearchCriteria argument of the Search() action or the Filter argument of the Browse() action,
MUST use the predefined namespace prefixes when referring to CDS properties (“upnp:”,
“dc:”, etc).
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. For example, since the Scheduled
Recording Service depends on and refers to the Content Directory Service, the predefined
“srs:” namespace prefix is included.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 clause 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.
XXXX: © IEC:2010 — 8 — 29341-4-4 © ISO/IEC:2011(E)
Table 1-3 — Namespace Definitions
Standar Normative
d Name- Definition
space Document
Prefix Namespace Name Namespace Description Reference
AV Working Committee defined namespaces
av urn:schemas-upnp-org:av:av Common data types for use [AV-XSD]
in AV schemas
avs urn:schemas-upnp-org:av:avs Common structures for use [AVS-XSD]
in AV schemas
avdt urn:schemas-upnp-org:av:avdt Datastructure Template [AVDT]
avt-event urn:schemas-upnp-org:metadata-1-0/AVT/ Evented LastChange state [AVT]
variable for AVTransport
cds- urn:schemas-upnp-org:av:cds-event Evented LastChange state [CDS]
event variable for ContentDirectory
didl-lite urn:schemas-upnp-org:metadata-1-0/DIDL- Structure and metadata for [CDS]
Lite/ ContentDirectory
rcs-event urn:schemas-upnp-org:metadata-1-0/RCS/ Evented LastChange state [RCS]
variable for
RenderingControl
srs urn:schemas-upnp-org:av:srs Metadata and structure for [SRS]
ScheduledRecording
srs-event urn:schemas-upnp-org:av:srs-event Evented LastChange state [SRS]
variable for
ScheduledRecording
upnp urn:schemas-upnp-org:metadata-1-0/upnp/ Metadata for [CDS]
ContentDirectory
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 Clauses 2.6 &
Document schema 3.2.7 of [XML
SCHEMA-1]
xml http://www.w3.org/XML/1998/namespace The “xml:” Namespace [XML-NS]
29341-4-4 XXXX: © IEC:2010 © ISO/IEC:2011(E) — 9 —
Table 1-4 — Schema-related Information
Standard
Relative URI and
Name-
a
space File Name
Prefix ● Form 1, Form 2, Form3 Valid Root Element(s) Schema Reference
AV Working Committee Defined Namespaces
av: av-vn-yyyymmdd.xsd n/a [AV-XSD]
av-vn.xsd
av.xsd
avs: avs-vn-yyyymmdd.xsd [AVS-XSD]
avs-vn.xsd
avs.xsd
avdt: avdt-vn-yyyymmdd.xsd [AVDT]
avdt-vn.xsd
avdt.xsd
avt-event: avt-event-vn-yyyymmdd.xsd [AVT-EVENT-XSD]
avt-event-vn.xsd
avt-event.xsd
cds- cds-event-vn-yyyymmdd.xsd [CDS-EVENT-XSD]
event:
cds-event-vn.xsd
cds-event.xsd
didl-lite: didl-lite-vn-yyyymmdd.xsd [DIDL-LITE-XSD]
didl-lite-vn.xsd
didl-lite.xsd
rcs-event: rcs-event-vn-yyyymmdd.xsd [RCS-EVENT-XSD]
rcs-event-vn.xsd
rcs-event.xsd
srs: srs-vn-yyyymmdd.xsd [SRS-XSD]
srs-vn.xsd
srs.xsd
srs-event: srs-event-vn-yyyymmdd.xsd [SRS-EVENT-XSD]
srs-event-vn.xsd
srs-event.xsd
upnp: upnp-vn-yyyymmdd.xsd n/a [UPNP-XSD]
upnp-vn.xsd
upnp.xsd
Externally Defined Namespaces
dc Absolute URL: http://dublincore.org/schemas/xmls/simpledc20021212.xsd [DC-XSD]
xsd n/a [XMLSCHEMA-
XSD]
xsi n/a n/a
xml n/a [XML-XSD]
a
Absolute URIs are generated by prefixing the relative URIs with "http://www.upnp.org/schemas/av/".
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
XXXX: © IEC:2010 — 10 — 29341-4-4 © ISO/IEC:2011(E)
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 instance document, even when it uses a non-standard prefix for
ordinary XML names. However, 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 avt-event
ConnectionManager n/a
ContentDirectory didl-lite
MediaRenderer n/a
MediaServer n/a
RenderingControl rcs-event
ScheduledRecording srs
1.4.2 Namespace Names, Namespace Versioning and Schema Versioning
The UPnP AV service specifications define several data structures (such as state variables
and action arguments) whose format is an XML instance document that must comply with one
or more specific XML namespaces. Each namespace is uniquely identified by an assigned
namespace name. The namespaces that are defined by the AV Working Committee MUST be
named by a URN. See Table 1-3, “Namespace Definitions” for a current list of namespace
names. Additionally, each namespace corresponds to an XML schema document that
provides a machine-readable representation of the associated namespace to enable
automated validation of the XML (state variable or action parameter) instance documents.
Within an XML schema and XML instance document, the name of each corresponding
namespace appears as the value of an xmlns attribute within the root element. Each xmlns
attribute also includes a namespace prefix that is associated with that namespace in order to
disambiguate (a.k.a. qualify) element and attribute names that are defined within different
namespaces. The schemas that correspond to the listed namespaces are identified by URI
values that are listed in the schemaLocation attribute also within the root element. (See
Clause 1.4.3 “Namespace Usage Examples”)
In order to enable both forward and backward compatibility, namespace names are
permanently assigned and MUST NOT change even when a new version of a specification
changes the definition of a namespace. However, all changes to a namespace definition
MUST be backward-compatible. In other words, the updated definition of a namespace
MUST NOT invalidate any XML documents that comply with an earlier definition of that same
namespace. This means, for example, that a namespace MUST NOT be changed so that a
new element or attribute is required. Although namespace names MUST NOT change,
namespaces still have version numbers that reflect a specific set of definitional changes.
29341-4-4 XXXX: © IEC:2010 © ISO/IEC:2011(E) — 11 —
Each time the definition of a namespace is changed, the namespace’s version number is
incremented by one.
Each time a new namespace version is created, a new XML schema document (.xsd) is
created and published so that the new namespace definition is represented in a machine-
readable form. Since a XML schema document is just a representation of a namespace
definition, translation errors can occur. Therefore, it is sometime necessary to re-release a
published schema in order to correct typos or other namespace representation errors. In
order to easily identify the potential multiplicity of schema releases for the same namespace,
the URI of each released schema MUST conform to the following format (called Form 1):
Form 1: "http://www.upnp.org/schemas/av/" schema-root-name "-v" ver "-" yyyymmdd
where
• schema-root-name is the name of the root element of the namespace that this schema
represents.
• ver corresponds to the version number of the namespace that is represented by the
schema.
• yyyymmdd is the year, month and day (in the Gregorian calendar) that this schema was
released.
Table 1-4, “Schema-related Information” identifies the URI formats for each of the
namespaces that are currently defined by the UPnP AV Working Committee.
As an example, the original schema URI for the “rcs-event” namespace (that was released
with the original publication of the UPnP AV service specifications in the year 2002) was
“http://www.upnp.org/schemas/av/rcs-event-v1-20020625.xsd”. When the UPnP AV service
specifications were subsequently updated in the year 2006, the URI for the updated version
of the “rcs-event” namespace was “http://www.upnp.org/schemas/av/rcs-event-v2-
20060531.xsd”. However, in 2006, the schema URI for the newly created “srs-event”
namespace was “http://www.upnp.org/schemas/av/srs-event-v1-20060531.xsd”. Note the
version field for the “srs-event” schema is “v1” since it was first version of that namespace
whereas the version field for the “rcs-event” schema is “v2” since it was the second version of
that namespace.
In addition to the dated schema URIs that are associated with each namespace, each
namepace also has a set of undated schema URIs. These undated schema URIs have two
distinct formats with slightly different meanings:
Form 2: “http://www.upnp.org/schemas/av/” schema-root-name “-v” ver
where ver is described above.
Form 3: “http://www.upnp.org/schemas/av/” schema-root-name
Form 2 of the undated schema URI is always linked to the most recent release of the schema
that represents the version of the namespace indicated by ver. For example, the undated URI
“…/av/rcs-event-v2.xsd” is linked to the most recent schema release of version 2 of the “rcs-
event” namespace. Therefore, on May 31, 2006 (20060531), the undated schema URI was
linked to the schema that is otherwise known as “…/av/rcs-event-v2-20060531.xsd”.
Furthermore, if the schema for version 2 of the “rcs-event” namespace was ever re-released,
for example to fix a typo in the 20060531 schema, then the same undated schema URI
(“…/av/rcs-event-v2.xsd”) would automatically be updated to link to the updated version 2
schema for the “rcs-event” namespace.
Form 3 of the undated schema URI is always linked to the most recent release of the schema
that represents the highest version of the namespace that has been published. For example,
on June 25, 2002 (20020625), the undated schema URI “…/av/rcs-event.xsd” was linked to
the schema that is otherwise known as “…/av/rcs-event-v1-20020625.xsd”. However, on May
XXXX: © IEC:2010 — 12 — 29341-4-4 © ISO/IEC:2011(E)
31, 2006 (20060531), that same undated schema URI was linked to the schema that is
otherwise known as “…/av/rcs-event-v2-20060531.xsd”.
When referencing a schema URI within an XML instance document or a referencing XML
schema document, the following usage rules apply:
• All instance documents, whether generated by a service or a control point, MUST use
Form 3.
• All UPnP AV published schemas that reference other UPnP AV schemas MUST also use
Form 3.
Within an XML instance document, the definition for the schemaLocation attribute comes
from the XML Schema 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 that is
interpreted as a 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.
In addition to the schema URI naming and usage rules described above, each released
schema MUST contain a version attribute in the root element. Its value MUST
correspond to the format:
ver “-” yyyymmdd where ver and yyyymmdd are described above.
The version attribute provides self-identification of the namespace version and release date
of the schema itself. For example, within the original schema released for the “rcs-event”
namespace (…/rcs-event-v2-20020625.xsd), the root element contains the
following attribute: version="2-20020625".
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 Instance Document. Note that the references to the UPnP AV
schemas do not contain any version or release date information. In other words, the
references follow Form 3 from above. Consequently, this example is valid for all releases of
the UPnP AV service specifications.
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.xsd
urn:schemas-upnp-org:metadata-1-0/upnp/
http://www.upnp.org/schemas/av/upnp.xsd">
...
29341-4-4 XXXX: © IEC:2010 © ISO/IEC:2011(E) — 13 —
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 below.
1.5.1 Vendor-defined Action Names
Vendor-defined action names MUST begin with “X_”. Additionally, it SHOULD be followed by
an ICANN assigned domain name owned by the vendor followed by the underscore character
(“_”). It MUST then be followed by the vendor-assigned action name. The vendor-assigned
action name MUST NOT contain a hyphen character (“-”, 2D Hex in UTF-8) nor a hash
character (“#”, 23 Hex in UTF-8). Vendor-assigned action names are case sensitive. The first
charac
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...