Information technology - UPnP Device Architecture - Part 3-12: Audio Video Device Control Protocol - Content Directory Service

Ingrid Glavich Ingrid Glavich 2 1 1995-11-10T13:27:00Z 2008-11-17T14:52:00Z 2008-11-17T14:52:00Z 1 84 480 4 1 563 10.6845    21 0 0            MicrosoftInternetExplorer4    /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman";}        
ISO/IEC 29341-3-12:2008(E) defines the a content directory service which enables the user to acces various types of content that other devices would like to access, such as music, videos and still images. The series of ISO/IEC 29341 publications defines an architecture for pervasive peer-to-peer network connectivity of intelligent appliances, wireless devices and PCs. It is designed to bring easy to use, flexible, standards-based connectivity to ad-hoc or unmanaged networks whether in the home, in a small business, public spaces or attached to the Internet.

General Information

Status
Published
Publication Date
27-Nov-2008
Current Stage
PPUB - Publication issued
Start Date
18-Nov-2008
Completion Date
15-Nov-2008
Ref Project
Standard
ISO/IEC 29341-3-12:2008 - Information technology - UPnP Device Architecture - Part 3-12: Audio Video Device Control Protocol - Content Directory Service
English language
86 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


ISO/IEC 29341-3-12
Edition 1.0 2008-11
INTERNATIONAL
STANDARD
Information technology – UPnP Device Architecture –
Part 3-12: Audio Video Device Control Protocol – Content Directory Service

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-3-12
Edition 1.0 2008-11
INTERNATIONAL
STANDARD
Information technology – UPnP Device Architecture –
Part 3-12: Audio Video Device Control Protocol – Content Directory Service

INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
PRICE CODE
X
ICS 35.200 ISBN 978-2-88910-847-3

– 2 – 29341-3-12 © ISO/IEC:2008(E)
CONTENTS
FOREWORD .5
ORIGINAL UPNP DOCUMENTS (informative) .7
1. Overview and Scope .9
1.1. Introduction.9
2. Service Modeling Definitions .10
2.1. Service Type .10
2.2. References.10
2.3. Terms.11
2.3.1. Notation: Strings Embedded in Other Strings.12
2.3.2. Notation: Extended Backus-Naur Form .13
2.4. Class Hierarchy.13
2.4.1. Class name syntax.13
2.4.2. Base Properties .14
2.4.3. Class ‘object’ (Base Class) .15
2.4.4. Class ‘item’ : ‘object’ .15
2.4.5. Class ‘container’ : ‘object’ .15
2.5. State Variables.16
2.5.1. Derived data types .16
2.5.2. TransferIDs .18
2.5.3. A_ARG_TYPE_ObjectID .19
2.5.4. A_ARG_TYPE_Result .19
2.5.5. A_ARG_TYPE_SearchCriteria .19
2.5.6. A_ARG_TYPE_BrowseFlag .21
2.5.7. A_ARG_TYPE_Filter .21
2.5.8. A_ARG_TYPE_SortCriteria .21
2.5.9. A_ARG_TYPE_Index.21
2.5.10. A_ARG_TYPE_Count.21
2.5.11. A_ARG_TYPE_UpdateID .22
2.5.12. A_ARG_TYPE_TransferID .22
2.5.13. A_ARG_TYPE_TransferStatus.22
2.5.14. A_ARG_TYPE_TransferLength.22
2.5.15. A_ARG_TYPE_TransferTotal.22
2.5.16. A_ARG_TYPE_TagValueList .22
2.5.17. A_ARG_TYPE_URI .22
2.5.18. SearchCapabilities .22
2.5.19. SortCapabilities.22
2.5.20. SystemUpdateID.23
2.5.21. ContainerUpdateIDs .23
2.6. Eventing and Moderation .25
2.7. Actions.26
2.7.1. GetSearchCapabilities .26
2.7.2. GetSortCapabilities .27
2.7.3. GetSystemUpdateID .27
2.7.4. Browse .28
2.7.5. Search.30
2.7.6. CreateObject.32
2.7.7. DestroyObject .34
2.7.8. UpdateObject.35
2.7.9. ImportResource .38
2.7.10. ExportResource .39
2.7.11. StopTransferResource.40
2.7.12. GetTransferProgress .41
2.7.13. DeleteResource .42
2.7.14. CreateReference.43
2.7.15. Non-Standard Actions Implemented by an UPnP Vendor .43
2.7.16. Common Error Codes.43

29341-3-12 © ISO/IEC:2008(E) – 3 –
2.8. Theory of Operation (Informative).45
2.8.1. Introduction .45
2.8.2. Content setup for Browsing and Searching .45
2.8.3. Browsing .46
2.8.4. Searching.50
2.8.5. Browsing, Searching, and References.53
2.8.6. Browsing, Searching, and Filtering .54
2.8.7. Object Creation.55
2.8.8. File Transfer of a resource in Objects.56
2.8.9. Playlist Manipulation .58
2.8.10. Internet Content Representation.60
2.8.11. Vendor Metadata Extensions.60
3. XML Service Description .61
4. Test .68
Annex A (normative) DIDL-Lite .69
Annex B (normative) AV Working Committee Extended Properties.74
Annex C (normative) AV Working Committee Class Definitions.84
C.1 audioItem : item.85
C.1.1 musicTrack : audioItem.86
C.1.2 audioBroadcast : audioItem .86
C.1.3 audioBook : audioItem .86
C.2 videoItem : item.87
C.2.1 movie : videoItem.87
C.2.2 videoBroadcast: videoItem.87
C.2.3 musicVideoClip: videoItem.88
C.3 imageItem : item.88
C.3.1 photo: imageItem .88
C.4 playlistItem : item.89
C.5 textItem : item.90
C.6 album : container.90
C.6.1 musicAlbum : album .91
C.6.2 photoAlbum : album .91
C.7 genre : container .91
C.7.1 musicGenre : genre .91
C.7.2 movieGenre : genre .91
C.8 playlistContainer : container .92
C.9 person : container .92
C.9.1 musicArtist : person .92
C.10 storageSystem : container .93
C.11 storageVolume : container .93
C.12 storageFolder : container .94

– 4 – 29341-3-12 © ISO/IEC:2008(E)
LIST OF TABLES
Table 1: Terms .11
Table 2: Base properties.14
Table 3: Object properties .15
Table 4: Item properties.15
Table 5: Container properties .15
Table 6: CSV Examples .17
Table 7: State variables.18
Table 8:ContainerUpdateIDs Example .24
Table 9: Event moderation.25
Table 10: Actions.26
Table 11: Update examples.36
Table 12: Common error codes.44

29341-3-12 © ISO/IEC:2008(E) – 5 –
INFORMATION TECHNOLOGY –
UPNP DEVICE ARCHITECTURE –
Part 3-12: Audio Video Device Control Protocol –
Content Directory Service
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.
IEC and ISO draw attention to the fact that it is claimed that compliance with this document may involve the use of
patents as indicated below.
ISO and IEC take no position concerning the evidence, validity and scope of the putative patent rights. The holders
of the putative patent rights have assured IEC and ISO that they are willing to negotiate free licences or licences
under reasonable and non-discriminatory terms and conditions with applicants throughout the world. In this respect,
the statements of the holders of the putative patent rights are registered with IEC and ISO.
Intel Corporation has informed IEC and ISO that it has patent applications or granted patents.
Information may be obtained from:
Intel Corporation
Standards Licensing Department
5200 NE Elam Young Parkway
MS: JFS-98
USA – Hillsboro, Oregon 97124
Microsoft Corporation has informed IEC and ISO that it has patent applications or granted patents as listed below:

– 6 – 29341-3-12 © ISO/IEC:2008(E)
6101499 / US; 6687755 / US; 6910068 / US; 7130895 / US; 6725281 / US; 7089307 / US; 7069312 / US;
10/783 524 /US
Information may be obtained from:
Microsoft Corporation
One Microsoft Way
USA – Redmond WA 98052
Philips International B.V. has informed IEC and ISO that it has patent applications or granted patents.
Information may be obtained from:
Philips International B.V. – IP&S
High Tech campus, building 44 3A21
NL – 5656 Eindhoven
NXP B.V. (NL) has informed IEC and ISO that it has patent applications or granted patents.
Information may be obtained from:
NXP B.V. (NL)
High Tech campus 60
NL – 5656 AG Eindhoven
Matsushita Electric Industrial Co. Ltd. has informed IEC and ISO that it has patent applications or granted patents.
Information may be obtained from:
Matsushita Electric Industrial Co. Ltd.
1-3-7 Shiromi, Chuoh-ku
JP – Osaka 540-6139
Hewlett Packard Company has informed IEC and ISO that it has patent applications or granted patents as listed
below:
5 956 487 / US; 6 170 007 / US; 6 139 177 / US; 6 529 936 / US; 6 470 339 / US; 6 571 388 / US; 6 205
466 / US
Information may be obtained from:
Hewlett Packard Company
1501 Page Mill Road
USA – Palo Alto, CA 94304
Samsung Electronics Co. Ltd. has informed IEC and ISO that it has patent applications or granted patents.
Information may be obtained from:
Digital Media Business, Samsung Electronics Co. Ltd.
416 Maetan-3 Dong, Yeongtang-Gu,
KR – Suwon City 443-742
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights
other than those identified above. IEC and ISO shall not be held responsible for identifying any or all such patent
rights.
ISO/IEC 29341-3-12 was prepared by UPnP Implementers Corporation and adopted, under the PAS procedure, by
joint technical committee ISO/IEC JTC 1, Information technology, in parallel with its approval by national bodies of
ISO and IEC.
The list of all currently available parts of the ISO/IEC 29341 series, under the general title Universal plug and play
(UPnP) 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.

29341-3-12 © ISO/IEC:2008(E) – 7 –
ORIGINAL UPNP DOCUMENTS
(informative)
Reference may be made in this document to original UPnP documents. These references are retained in order to
maintain consistency between the specifications as published by ISO/IEC and by UPnP Implementers Corporation.
The following table indicates the original UPnP document titles and the corresponding part of ISO/IEC 29341:
UPnP Document Title ISO/IEC 29341 Part
UPnP Device Architecture 1.0 ISO/IEC 29341-1
UPnP Basic:1 Device ISO/IEC 29341-2
UPnP AV Architecture:1 ISO/IEC 29341-3-1
UPnP MediaRenderer:1 Device ISO/IEC 29341-3-2
UPnP MediaServer:1 Device ISO/IEC 29341-3-3
UPnP AVTransport:1 Service ISO/IEC 29341-3-10
UPnP ConnectionManager:1 Service ISO/IEC 29341-3-11
UPnP ContentDirectory:1 Service ISO/IEC 29341-3-12
UPnP RenderingControl:1 Service ISO/IEC 29341-3-13
UPnP MediaRenderer:2 Device ISO/IEC 29341-4-2
UPnP MediaServer:2 Device ISO/IEC 29341-4-3
UPnP AV Datastructure Template:1 ISO/IEC 29341-4-4
UPnP AVTransport:2 Service ISO/IEC 29341-4-10
UPnP ConnectionManager:2 Service ISO/IEC 29341-4-11
UPnP ContentDirectory:2 Service ISO/IEC 29341-4-12
UPnP RenderingControl:2 Service ISO/IEC 29341-4-13
UPnP ScheduledRecording:1 ISO/IEC 29341-4-14
UPnP DigitalSecurityCamera:1 Device ISO/IEC 29341-5-1
UPnP DigitalSecurityCameraMotionImage:1 Service ISO/IEC 29341-5-10
UPnP DigitalSecurityCameraSettings:1 Service ISO/IEC 29341-5-11
UPnP DigitalSecurityCameraStillImage:1 Service ISO/IEC 29341-5-12
UPnP HVAC_System:1 Device ISO/IEC 29341-6-1
UPnP HVAC_ZoneThermostat:1 Device ISO/IEC 29341-6-2
UPnP ControlValve:1 Service ISO/IEC 29341-6-10
UPnP HVAC_FanOperatingMode:1 Service ISO/IEC 29341-6-11
UPnP FanSpeed:1 Service ISO/IEC 29341-6-12
UPnP HouseStatus:1 Service ISO/IEC 29341-6-13
UPnP HVAC_SetpointSchedule:1 Service ISO/IEC 29341-6-14
UPnP TemperatureSensor:1 Service ISO/IEC 29341-6-15
UPnP TemperatureSetpoint:1 Service ISO/IEC 29341-6-16
UPnP HVAC_UserOperatingMode:1 Service ISO/IEC 29341-6-17
UPnP BinaryLight:1 Device ISO/IEC 29341-7-1
UPnP DimmableLight:1 Device ISO/IEC 29341-7-2
UPnP Dimming:1 Service ISO/IEC 29341-7-10
UPnP SwitchPower:1 Service ISO/IEC 29341-7-11
UPnP InternetGatewayDevice:1 Device ISO/IEC 29341-8-1
UPnP LANDevice:1 Device ISO/IEC 29341-8-2
UPnP WANDevice:1 Device ISO/IEC 29341-8-3
UPnP WANConnectionDevice:1 Device ISO/IEC 29341-8-4
UPnP WLANAccessPointDevice:1 Device ISO/IEC 29341-8-5
UPnP LANHostConfigManagement:1 Service ISO/IEC 29341-8-10
UPnP Layer3Forwarding:1 Service ISO/IEC 29341-8-11
UPnP LinkAuthentication:1 Service ISO/IEC 29341-8-12
UPnP RadiusClient:1 Service ISO/IEC 29341-8-13
UPnP WANCableLinkConfig:1 Service ISO/IEC 29341-8-14
UPnP WANCommonInterfaceConfig:1 Service ISO/IEC 29341-8-15
UPnP WANDSLLinkConfig:1 Service ISO/IEC 29341-8-16
UPnP WANEthernetLinkConfig:1 Service ISO/IEC 29341-8-17
UPnP WANIPConnection:1 Service ISO/IEC 29341-8-18
UPnP WANPOTSLinkConfig:1 Service ISO/IEC 29341-8-19
UPnP WANPPPConnection:1 Service ISO/IEC 29341-8-20
UPnP WLANConfiguration:1 Service ISO/IEC 29341-8-21
UPnP Printer:1 Device ISO/IEC 29341-9-1
UPnP Scanner:1.0 Device ISO/IEC 29341-9-2
UPnP ExternalActivity:1 Service ISO/IEC 29341-9-10
UPnP Feeder:1.0 Service ISO/IEC 29341-9-11
UPnP PrintBasic:1 Service ISO/IEC 29341-9-12
UPnP Scan:1 Service ISO/IEC 29341-9-13
UPnP QoS Architecture:1.0 ISO/IEC 29341-10-1
UPnP QosDevice:1 Service ISO/IEC 29341-10-10
UPnP QosManager:1 Service ISO/IEC 29341-10-11
UPnP QosPolicyHolder:1 Service ISO/IEC 29341-10-12
UPnP QoS Architecture:2 ISO/IEC 29341-11-1
UPnP QOS v2 Schema Files ISO/IEC 29341-11-2

– 8 – 29341-3-12 © ISO/IEC:2008(E)
UPnP Document Title ISO/IEC 29341 Part
UPnP QosDevice:2 Service ISO/IEC 29341-11-10
UPnP QosManager:2 Service ISO/IEC 29341-11-11
UPnP QosPolicyHolder:2 Service ISO/IEC 29341-11-12
UPnP RemoteUIClientDevice:1 Device ISO/IEC 29341-12-1
UPnP RemoteUIServerDevice:1 Device ISO/IEC 29341-12-2
UPnP RemoteUIClient:1 Service ISO/IEC 29341-12-10
UPnP RemoteUIServer:1 Service ISO/IEC 29341-12-11
UPnP DeviceSecurity:1 Service ISO/IEC 29341-13-10
UPnP SecurityConsole:1 Service ISO/IEC 29341-13-11

29341-3-12 © ISO/IEC:2008(E) – 9 –
1. Overview and Scope
This service template is compliant with the UPnP Device Architecture version 1.0. It defines a service type
referred to herein as Content Directory Service (CDS).
1.1. Introduction
Many devices within the home network contain various types of content that other devices would like to access
(e.g. music, videos, still images, etc). As an example, a “Media Server” device might contain a significant
portion of the homeowner’s audio, video, and still-image library. In order for the homeowner to enjoy this
content, the homeowner must be able to browse the objects stored on the Media Server, select a specific one, and
cause it to be “played” on an appropriate rendering device (e.g. an audio player for music objects, a TV for video
content, an Electronic Picture Frame for still-images, etc).
For maximum convenience, it is highly desirable to allow the homeowner to initiate these operations from a
variety of UI devices. In most cases, these UI devices will either be a UI built into the rendering device, or it will
be a stand-alone UI device such as a wireless PDA or tablet. In any case, it is unlikely that the homeowner will
interact directly with the device containing the content (i.e. the homeowner won’t have to walk over to the server
device). In order to enable this capability, the service device needs to provide a uniform mechanism for UI
devices to browse the content on the server and to obtain detailed information about individual content objects.
This is the purpose of the Content Directory Service
The Content Directory Service additionally provides a lookup/storage service that allows clients (e.g. UI devices)
to locate (and possibly store) individual objects (e.g. songs, movies, pictures, etc) that the (server) device is
capable of providing. For example, this service can be used to enumerate a list of songs stored on an MP3
player, a list of still-images comprising various slide-shows, a list of movies stored in a DVD-Jukebox, a list of
TV shows currently being broadcast (a.k.a an EPG), a list of songs stored in a CD-Jukebox, a list of programs
stored on a PVR (Personal Video Recorder) device, etc. Nearly any type of content can be enumerated via this
Content Directory service. For those devices that contain multiple types of content (e.g. MP3, MPEG2, JPEG,
etc), a single instance of the Content Directory Service can be used to enumerate all objects, regardless of their
type.
– 10 – 29341-3-12 © ISO/IEC:2008(E)
2. Service Modeling Definitions
2.1. Service Type
The following service type identifies a service that is compliant with this template:
urn:schemas-upnp-org:service:ContentDirectory:1
Content Directory Service (CDS) is used herein to refer to this service type.
2.2. References
This section lists the normative references used in this document and includes the tag inside square brackets that
is used for each such reference:
[DEVICE] - UPnP Device Architecture, version 1.0.
[XML] - “Extensible Markup Language (XML) 1.0 (Second Edition)”, T. Bray, J. Paoli, C. M. Sperberg-
McQueen, E. Maler, eds. W3C Recommendation, 6 October 2000. Available at:
http://www.w3.org/TR/2000/REC-xml-20001006.
[EBNF] ISO/IEC 14977, Information technology - Syntactic metalanguage - Extended BNF, December 1996.
[DIDL] ISO/IEC CD 21000-2:2001, Information Technology - Multimedia Framework - Part 2: Digital Item
Declaration, July 2001.
[RFC 2396] Tim Berners-Lee, et. al. RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax. 1998.
Available at: http://www.ietf.org/rfc/rfc2396.txt

29341-3-12 © ISO/IEC:2008(E) – 11 –
2.3. Terms
Table 1: Terms
Term Description
object Any data entity that can be returned by a Content Directory Service from a browsing
or searching action. The Content Directory Service defines a class system to
represent the different types of objects that are ‘managed’ by the CDS. The base
class, from which all other classes are derived, is named object. The class object
cannot be instantiated.
property
A property represents a CDS or client-defined characteristic of an object. The
Content Directory Service expresses properties in XML as either elements or
attributes. When expressed as an element, the property is addressed via its
property/element tag name (including namespace other than DIDL-Lite) e.g. dc:title,
upnp:class. When expressed as an attribute, the property is addressed with its parent
expression, the @ delimeter and its property name e.g. res@size, res@protocolInfo,
upnp:class@name. One exception is if the property is expressed as an attribute of
an element which is a top-level object tag (item, container, etc.) in which case it is
simply addressed with the @ delimeter and its property name e.g. @id, @parentID,
@restricted, @childCount etc. Properties declared in this specification come from
one of three metadata namespaces: DIDL-Lite, Dublin Core (dc) or UPnP (upnp).
Their data types and meanings are defined in Anne x B .
class A class is used to assign a type to an object, and identifies the minimum required and
optional set of properties that must be present on that object. Classes are organized
in a hierarchy with certain classes being derived from others as in a typical object
oriented system. At the root of the class hierarchy is the object base class. Examples
are object.item.audioItem.musicTrack and object.container.album.musicAlbum. See
section 2.4 for a definition of the format of the class specification for an object.
item item is a first-level class derived directly from object. An item most often represents
a single piece of AV data, such as a CD track, a movie or an audio file. Items may be
playable, meaning they have information that can be played on a rendering device.
Any object which derives from the item class is expressed via the DIDL-Lite item
structure.
container container is a first-level class derived directly from object. A container represents
a collection of objects. Containers can represent the physical organization of objects
(storage containers) or logical collections. Logical collections can have formal
definitions of their contents or they can be arbitrary collections. Containers can be
either homogeneous, containing objects that are all of the same class, or
heterogeneous, containing objects of mixed class. Containers can contain other
containers.  Any object derived from the container class is expressed via the DIDL-
Lite container structure.
A CDS is required to maintain a ContainerUpdateID for each of its containers.
This value is maintained internally, does not appear in any XML expression of the
container, and cannot be used in a search or sort criterion.

– 12 – 29341-3-12 © ISO/IEC:2008(E)
Term Description
container A container is considered modified when any of the following occurs:
modification
A property of the container is added, removed or changed in value.
A direct child element, whether object-derived or ordinary element, is
added to or removed from the container.
A direct, non-container-derived, child object has one of its properties or
child elements added, removed or changed.
A direct container-derived child element has one of its properties or non-
object-derived child elements added, removed or changed.

Note to implementors: since ‘ContainerUpdateID’ is not a formal property of a
container, a modification to a direct child container that affects that child’s
‘ContainerUpdateID’ does not propagate upward to the parent container.
XML fragment In this document, XML fragment refers to a string that represents one element from a
valid XML document. Individual uses of ‘XML fragment’ do not always specify the
exact XML context that would be required to validate the fragment. If a “qualifying
name” is given, the name defines the root element tag of the fragment. For example,
‘DIDL-Lite XML fragment’ means a string of the form “… Lite>”. In addition, any AV-defined XML fragment is permitted to be fully
compliant XML. Any extraneous headers/tags should be gracefully ignored by the
code processing the fragment.
CDS Content Directory Service
ContainerUpdateID An unsigned integer associated with each container. The integer value is
incremented each time the container is modified (see the entry in this ‘Terms’ table
for the precise definition of ‘container modification’). Upon reaching the value 2 -1,
the next update rolls the value back to zero. Initial value of ContainerUpdateID for
any newly created container is unspecified, but recommended to be zero.
Implementers should maintain the same value for each container’s
ContainerUpdateID through power cycles and any other
disappearance/reappearance on the network.
2.3.1. Notation: 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 Section 2.5.1.1 below) and property values in search criteria strings. Escaping conventions use the
backslash character, '\' (UTF-8 character code 0x5C), 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
29341-3-12 © ISO/IEC:2008(E) – 13 –
2.3.2. Notation: 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].
Typographic conventions for EBNF
Symbol names in monospace font are non-terminal symbols. Character sequences between ‘single quotes’
are terminal strings and must appear literally in valid expressions. 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 search strings.
White space usage in actual search strings is described explicitly in the EBNF. Finally, the EBNF uses the
following four 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
2.4. Class Hierarchy
The ContentDirectory service exposes a class hierarchy which is used to type all objects that can be retrieved
from it. The ContentDirectory service exposes a class hierarchy which is used to type all objects that can be
retrived from it. Each class is named using a string of the form described in 2.4.1 below. Each class definition
includes a list of properties. Some properties are required while others are optional. Some properties are ‘multi-
valued’ for a class, meaning that, in an XML instance of the class, the property may occur more than once. A
class that is derived from another class must include all the required properties of the base class. The definition of
a subclass may make some optional properties of the base class required. Each property will be expressed in
XML as either an XML Element or XML Attribute.
This section will describe three classes, object, object.item and object.container which make up the base
hierarchy from which all other classes (UPnP- or vendor-defined) derive, see Anne x C.
2.4.1. Class name syntax
Class name syntax is formally described using EBNF as described in section 2.3.2.
className ::= baseName | derivedName
baseName ::= ‘object’
derivedName ::= ( baseName | derivedName ) ‘.’ shortName
shortName ::=  (* valid XML name, excluding the characters
‘.’ — UTF-8 code 0x2E and
‘:’ — UTF-8 code 0x3A *)
– 14 – 29341-3-12 © ISO/IEC:2008(E)
2.4.2. Base Properties
These properties are used by the base classes. Where a property is defined as having an "element" XML
structure, all properties that are defined as attributes of that XML element are implicitly included (see Anne x B
for details on those properties). The base properties are defined as follows:
Table 2: Base properties
Property XML Namespace Property Property Description
Name Structure Type
id Element DIDL-Lite String An identifier for the object. The value
attribute of each object id property must be
unique with respect to the Content
Directory.
title Element Dublin Core String Name of the object
creator Element Dublin Core String Primary content creator or owner of
the object
res Element DIDL-Lite URI Resource, typically a media file,
associated with the object. Values
must be properly escaped URIs as
described in [RFC 2396].
class Element UPnP String Class of the object.
searchable Element DIDL-Lite Boolean When true, the ability to perform a
attribute Search() action under a container is
enabled, otherwise a Search() under
that container will return no results.
The default value of this attribute
when it is absent on a container is
false
searchClass Element UPnP String See Annex B for details
createClass Element UPnP String See Annex B for details
parentID Element DIDL-Lite String id property of object’s parent. The
attribute parentID of the Content Directory
‘root’ container must be set to the
reserved value of “-1”. No other
parentID attribute of any other
Content Directory object may take this
value.
refID Element DIDL-Lite String id property of the item being referred
attribute to.
restricted Element DIDL-Lite Boolean When true, ability to modify a given
attribute object is confined to the Content
Directory Service. Control point
metadata write access is disabled.
writeStatus Element UPnP String When present, controls the
modifiability of the resources of a
given object. Ability of a Control
Point to change writeStatus of a
given resource(s) is implementation
dependent. Allowed values are:
WRITABLE, PROTECTED,
NOT_WRITABLE, UNKNOWN,
MIXED.
childCount Element DIDL-Lite Integer Child count for the object. Applies to
attribute containers only.
29341-3-12 © ISO/IEC:2008(E) – 15 –
2.4.3. Class ‘object’ (Base Class)
This is the root class of the entire content directory class hierarchy. It can not be instantiated, in the sense that no
XML fragment returned by a Browse() or Search() action can be of class object. The object class defines
properties that are common to both atomic media items, as well as logical collections of these items. The object
class contains the following properties:
Table 3: Object properties
Property Required Multiple
Name Values
id yes no
parentID yes no
title yes no
creator no no
res no yes
class yes no
restricted yes no
writeStatus no no
2.4.4. Class ‘item’ : ‘object’
This is a derived class of object used to represent “atomic” content objects, i.e., object that don’t contain other
objects, for example, a music track on an audio CD. The XML expression of any instance of a class that is
derived from item is the tag. The item class identifies the properties specified on its base class object,
as well as the following additional properties:
Table 4: Item properties
Property Required Multiple
Name Values
refID no no
2.4.5. Class ‘container’ : ‘object’
This is a derived class of object used to represent containers e.g. a music album. The XML expression of any
instance of a class that is derived from container is the tag. The container class identifies the
pr
...

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