Search code examples
upnp

what are all the possible options for "class" attribute in the Metadata of AVTransport service's SetCurrentURI of UPNP


I am trying to find all the possible options for the "class" attribute in the metadata DIDL XML piece for the AVTransport service used by UPnP. I couldn't find them in the official specs and my only source was this page. The options I got are these :

  1. object.item.imageItem
  2. object.item.audioItem
  3. object.item.videoItem
  4. object.item.playlistItem
  5. object.item.textItem
  6. object.item.bookmarkItem
  7. object.item.epgItem

What it turns out each of these have subItems like "object.item.audioItem.audioTrack", which is found in the official specs but with no link to any full list of possible subItems whatsoever. Is there any sources I can get that information from ?


Solution

  • You can check the XML schema which lists all the legal values. It is available at http://www.upnp.org/schemas/av/upnp.xsd

        <xsd:simpleType name="className.wc.type">
            <xsd:restriction base="xsd:NCName">
                <xsd:enumeration value="object.item"/>
                <xsd:enumeration value="object.item.imageItem"/>
                <xsd:enumeration value="object.item.imageItem.photo"/>
                <xsd:enumeration value="object.item.audioItem"/>
                <xsd:enumeration value="object.item.audioItem.musicTrack"/>
                <xsd:enumeration value="object.item.audioItem.audioBroadcast"/>
                <xsd:enumeration value="object.item.audioItem.audioBook"/>
                <xsd:enumeration value="object.item.videoItem"/>
                <xsd:enumeration value="object.item.videoItem.movie"/>
                <xsd:enumeration value="object.item.videoItem.videoBroadcast"/>
                <xsd:enumeration value="object.item.videoItem.musicVideoClip"/>
                <xsd:enumeration value="object.item.playlistItem"/>
                <xsd:enumeration value="object.item.textItem"/>
                <xsd:enumeration value="object.item.bookmarkItem"/>
                <xsd:enumeration value="object.item.epgItem"/>
                <xsd:enumeration value="object.item.epgItem.audioProgram"/>
                <xsd:enumeration value="object.item.epgItem.videoProgram"/>
                <xsd:enumeration value="object.container.person"/>
                <xsd:enumeration value="object.container.person.musicArtist"/>
                <xsd:enumeration value="object.container.playlistContainer"/>
                <xsd:enumeration value="object.container.album"/>
                <xsd:enumeration value="object.container.album.musicAlbum"/>
                <xsd:enumeration value="object.container.album.photoAlbum"/>
                <xsd:enumeration value="object.container.genre"/>
                <xsd:enumeration value="object.container.genre.musicGenre"/>
                <xsd:enumeration value="object.container.genre.movieGenre"/>
                <xsd:enumeration value="object.container.channelGroup"/>
                <xsd:enumeration value="object.container.channelGroup.audioChannelGroup"/>
                <xsd:enumeration value="object.container.channelGroup.videoChannelGroup"/>
                <xsd:enumeration value="object.container.epgContainer"/>
                <xsd:enumeration value="object.container.storageSystem"/>
                <xsd:enumeration value="object.container.storageVolume"/>
                <xsd:enumeration value="object.container.storageFolder"/>
                <xsd:enumeration value="object.container.bookmarkFolder"/>
            </xsd:restriction>
        </xsd:simpleType>
    

    The Standardized DCP spec uses it in examples:

    <?xml version="1.0" encoding="UTF-8"?>
    <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" 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">
      <item id="18" parentID="13" restricted="0">
        <dc:title>Try a little tenderness</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <res protocolInfo="http-get:*:audio/mpeg:*" size="3558000">http://168.192.1.1/audio197.mp3</res>
      </item>
    </DIDL-Lite>