设备描述之 XML与设备描述
XML使用的一般要求
XML命名空间前缀不必与规定中的例子一样。它可以使用任何遵循一般XML命名空间机制的规则。
设备应该接受使用其他合法前缀的请求。
如果一个XML元素不含任何值,那么可以将开标签和闭标签合为一个
如:用<actionname/>代替<actionname></actionname>
设备描述
UPnP设备的描述文件包含了一些设备的信息。主要是由设备提供商提供的信息,嵌入设备的定义,设备表达的URL,服务列表,包含控制URL和事件URL。此外,要定义非标准的设备,供应商可以在标准设备基础上添加嵌入的设备和服务。
下面是一个具体的实例(我使用##表示每个元素标签的含义,所有的标签大小写敏感,标签值初URL外大小写不敏感):
<?xml version="1.0"?> ##所有xml文件必须,大小写敏感
<root xmlns="urn:schemas-upnp-org:device-1-0" ##root标签包含描述根设备的所有元素
configId="configuration number"> ##必须,configId属性代表配置号,在发现过程中使用
<specVersion> ##必须,表示设备支持的UDA版本
<major>2</major>
<minor>0</minor> ##URLbase标签在UDA2.0中不再支持
</specVersion>
<device> ##必须,与设备相关的定义
<deviceType>urn:schemas-upnp-org:device:deviceType:ver</deviceType> ##设备类型
<friendlyName>short user-friendly title</friendlyName> ##设备短友好名,方便最终用户
<manufacturer>manufacturer name</manufacturer> ##制造商,必须
<manufacturerURL>URL to manufacturer site</manufacturerURL> ##制造商URL,允许
<modelDescription>long user-friendly title</modelDescription> ##设备长友好名,推荐
<modelName>model name</modelName> ##模型名,必须
<modelNumber>model number</modelNumber> ##模型号,推荐
<modelURL>URL to model site</modelURL> ##模型URL,允许
<serialNumber>manufacturer's serial number</serialNumber> ##序列号,推荐
<UDN>uuid:UUID</UDN> ##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:serviceType:ver</serviceType> ##服务类型
<serviceId>urn:upnp-org:serviceId:serviceID</serviceId> ##服务ID
<SCPDURL>URL to service description</SCPDURL> ##设备描述文件URL
<controlURL>URL for control</controlURL> ##服务控制URL
<eventSubURL>URL for eventing</eventSubURL> ##服务事件URL
</service>
<!-- Declarations for other services defined by a UPnP Forum working committee
(if any) go here -->
<!-- Declarations for other services added by UPnP vendor (if any) go here -->
</serviceList>
<deviceList> ##嵌入设备列表,如果有的话
<!-- Description of embedded devices defined by a UPnP Forum working committee
(if any) go here -->
<!-- Description of embedded devices added by UPnP vendor (if any) go here -->
</deviceList>
<presentationURL>URL for presentation</presentationURL> ##推荐,设备表达URL
</device>
</root>
由于存在不同的标签,在解析的过程中遇到不认识的元素标签,连同其子标签一起忽略;忽略任何不认识的属性和属性值。
控制点和设备应该忽略任何XML注释或不认识的嵌入设备和服务。
XML设备描述文件使用UTF-8编码。如果元素值或属性值中出现标记符号(&或<>),应使用别名(&,<,>)
UPnP设备模版
上面的描述表明了一个设备描述文件和设备模版之间的关系。
一个UPnP设备描述文件是由设备提供商以设备模版为基础,以XML语法编写的。
设备模版是UPNP论坛工作委员会发布的用于设备标准化的一个方法。
通过合适的占位符,上面的XML文件可以即是一个设备描述文件又是一个设备模版。
设备模版定义了设备的整体类型,每一个设备描述文件通过具体的供应商信息实例化一个设备模版。
前者由UPnP论坛工作委员会创建,后者由供应商编写。