这是来自UPnP AV ContentDirectory v2 服务模板的示例DIDL-Lite XML 文档:
<?xml version="1.0" encoding="UTF-8"?>
<DIDL-Lite
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-v2-20060531.xsd
urn:schemas-upnp-org:metadata-1-0/upnp/
http://www.upnp.org/schemas/av/upnp-v2-20061231.xsd">
<item id="18" parentID="13" restricted="0">
...
</item>
</DIDL-Lite>
如何使用Go 的 xml 包进行编组?进一步来说:
- 命名空间前缀是如何定义的,例如
xmlns:dc
andxmlns:upnp
? - 如何在一个元素上配置多个名称空间?
- 属性的命名空间是如何设置的,比如属性
xsi
上的前缀schemaLocation
?
作为一个基础,我有这样的事情:
type DIDLLite struct {
XMLName xml.Name `xml:"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/ DIDL-Lite"`
// ??? namespace prefixes dc, upnp, xsi
Objects []Object
}
我还发现了这个可能相关的错误。