2011-05-16 26 views
0

是否遵循有效的UPnP控制響應?他們是否必須逃避<OutProfile>的這些字符? UPnP device architecture1.1(sec 3.2.4)表示如果參數值包含像<,&等字符,則應該轉義參數值。但我認爲它不應該,如果它的xml。任何人都可以參考一些可以消除這種混淆的標準文檔嗎?我的觀點是,在以下情況下使用轉義字符是不必要的,並且使調試變得困難。但是我需要用堅實的參考來解釋這一點。允許用於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> 
+0

您應該簡單地使用XML API來創建您的XML。它會知道逃跑規則是什麼,所以你不必這樣做。 – 2011-05-16 19:11:53

回答

0

首先在逃避任何你想要的,您發佈的XML文檔格式良好的XML。

其次,您引用的PDF文檔的閱讀部分3.2.4不允許推斷您的示例XML文檔違反了該UPnP規範。 (另一方面,我不能說它符合任何東西,因爲我不會讀它。)

三,<OutProfile>的內容是文本節點,換句話說,是一個字符串。

四,提取和serizalized沒有輸出轉義時,它是另一個格式良好的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> 

所以第五,你的開發夥伴不太可能誤解了某些要求。另一方面,爲什麼他們希望文檔完全像這樣,可能存在應用原因。

最後,要將標記作爲文本節點嵌入到XML文檔中,最好使用CDATA節,因爲這樣更容易。另一方面,沒有硬性理由不去與角色轉義。

相關問題