## Device Description

This is the schema for the UPnP Device Description document, in the RELAX NG Compact syntax.

    # Relax NG schema for UPnP Device Description files.  See section 2.1 of UPnP
    # Device Architecture 1.0 for the canonical reference.

    default namespace = "urn:schemas-upnp-org:device-1-0"

    start = root

    root = element root {
       element specVersion {
          element major { text } &
          element minor { text }
       } &

       element URLBase { text }? &

       device
    }

    device = element device {
       element deviceType { text } &
       element friendlyName { text } &
       element manufacturer { text } &
       element manufacturerURL { text }? &
       element modelDescription { text }? &
       element modelName { text } &
       element modelNumber { text }? &
       element modelURL { text }? &
       element serialNumber { text }? &
       element UDN { text } &
       element UPC { text }? &

       element iconList {
          element icon {
             element mimetype { text } &
             element width { text } &
             element height { text } &
             element depth { text } &
             element url { text }
          }+
       }? &

       element serviceList {
          element service {
             element serviceType { text } &
             element serviceId { text } &
             element SCPDURL { text } &
             element controlURL { text } &
             element eventSubURL { text }
          }+
       }? &

       element deviceList {
          device+
       }? &

       element presentationURL { text }?
    }+