是否遵循有效的UPnP Control响应?他们是否必须以<OutProfile>
的值逃避这些字符? UPnP device architecture1.1(sec 3.2.4)表示如果参数值包含&lt;,&amp;等字符,则应对其进行转义。等我认为它不应该,如果它的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><cProfile>
<cID>0</cID>
<iconPreference>
<mimetype>image/bmp</mimetype>
<width>32</width>
<height>32</height>
<depth>24</depth>
</iconPreference>
</cProfile>
</OutProfile></u:SetABCResponse></s:Body></s:Envelope>
答案 0 :(得分:0)
无需手动转义字符。 <![CDATA[ ]]>
标记允许您在标记中转义任何内容
<Node>
<![CDATA[<SubNode>Content</SubNode> ]]>
</Node>
答案 1 :(得分:0)
首先,您发布的XML文档是格式良好的XML。
其次,阅读您引用的PDF文档的第3.2.4节不允许推断您的示例XML文档违反了该UPnP规范。 (另一方面,我不能说它符合其中的任何内容,因为我不会读它。)
第三,<OutProfile>
的内容是文本节点,换句话说,是字符串。
第四,在没有输出转义的情况下提取和逐步化时,它是另一个格式良好的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部分,因为这样更容易。另一方面,没有理由不去追逐角色。