1

UPnP AV ContentDirectory v2 Service Templateからのサンプル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 パッケージを使用してこれにマーシャリングするにはどうすればよいでしょうか? すなわち:

  1. や などの名前空間プレフィックスはどのように定義されxmlns:dcていxmlns:upnpますか?
  2. 複数の名前空間は要素でどのように構成されていますか?
  3. 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
}

このおそらく関連するバグも見つけました。

4

1 に答える 1