0

有効なUPnPコントロールの応答に従っていますか?の値でこれらの文字をエスケープする必要があり<OutProfile>ますか?UPnPデバイスarchitecture1.1(sec 3.2.4)は、引数値に<などの文字が含まれている場合はエスケープする必要があると述べていますが、xmlの場合はエスケープしないでください。この混乱を解消できる標準的なドキュメントを誰かが参照できますか?私のポイントは、次の場合にエスケープ文字を使用する必要がなく、デバッグが困難になるということです。しかし、私はこの点を私の仲間への確かな言及で説明する必要があります。

<?xml version="1.0"?><s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetABCResponse
xmlns:u="urn:schemas-upnp-org:service:Client:1"><OutProfile>&lt;cProfile&gt;
 &lt;cID&gt;0&lt;/cID&gt;
 &lt;iconPreference&gt;
  &lt;mimetype&gt;image/bmp&lt;/mimetype&gt;
  &lt;width&gt;32&lt;/width&gt;
  &lt;height&gt;32&lt;/height&gt;
  &lt;depth&gt;24&lt;/depth&gt;
 &lt;/iconPreference&gt;
&lt;/cProfile&gt;
</OutProfile></u:SetABCResponse></s:Body></s:Envelope>
4

2 に答える 2

0

文字を手動でエスケープする必要はありません。<![CDATA[ ]]>タグを使用すると、タグ内で必要なものをすべてエスケープできます

<Node>
<![CDATA[<SubNode>Content</SubNode> ]]>
</Node>

http://www.w3schools.com/xml/xml_cdata.asp

于 2011-05-16T19:09:57.513 に答える
0

まず、投稿したXMLドキュメントは整形式のXMLです。

次に、参照したPDFドキュメントのセクション3.2.4を読んでも、サンプルXMLドキュメントがそのUPnP仕様に違反していると推測することはできません。(一方、私はそれを読まないので、それがその中の何かに適合しているとは言えません。)

第三に、の内容<OutProfile>はテキストノード、つまり文字列です。

第4に、出力をエスケープせずに抽出してセリザライズすると、もう1つの整形式のXMLドキュメントになります。

<?xml version="1.0"?>
<cProfile>
 <cID>0</cID>
 <iconPreference>
    <mimetype>image/bmp</mimetype>
    <width>32</width>
    <height>32</height>
    <depth>24</depth>
 </iconPreference>
</cProfile>

したがって、第5に、他の開発者がいくつかの要件を誤解している可能性はありません。一方、ドキュメントをこのようにしたいと考えるアプリケーション上の理由がある可能性があります。

最後に、XMLドキュメントにテキストノードとしてマークアップを埋め込みたい場合は、CDATAセクションを使用することをお勧めします。これは見た目が簡単だからです。一方、キャラクターのエスケープを行わないのは難しい理由はありません。

于 2011-05-16T19:26:59.250 に答える