XML中的JSON

时间:2013-12-03 06:31:23

标签: xml json xml-parsing

我想了解标准和最佳做法:

案例情景:

如果“XYZ SPECIFICATION”(例如:BPMN规范) 存在 xml标准,则:

<home>
<person name="ZEN" />
<person name="PAUL" />
<animal name="DOG" />
<animal name="CAT" />
</home>

和“XYZ SPECIFICATION”还提供扩展元素来定义您自己的标记,如:

   <home>
    <person name="ZEN" />
    <person name="PAUL" />
    <animal name="DOG" />
    <animal name="CAT" />
    <extension>
    <instrument-list>
    <type name="acoustic">
      <instrument name="GUITAR" />
      <instrument name="VIOLIN"  />
    </type>
    <type name="electronic">
      <instrument name="GUITAR" />
      <instrument name="VIOLIN"/>
    </type>
    </instrument-list>
    </extension>
    </home>

标准定义的标签由其他客户端解析器使用,它们不需要解析扩展标记,因此我认为使用json压缩扩展元素会更好(因为json与xml相比占用的空间更少):

  <home>
    <person name="ZEN" />
    <person name="PAUL" />
    <animal name="DOG" />
    <animal name="CAT" />
    <extension>
    <instrument-list>{"type":[{"name":"acoustic","instrument":[{"name":"GUITAR"},{"name":"VIOLIN"}]},{"name":"electronic","instrument":[{"name":"GUITAR"},{"name":"VIOLIN"}]}]}</instrument-list>
    </extension>
    </home>

<home>
    <person name="ZEN" />
    <person name="PAUL" />
    <animal name="DOG" />
    <animal name="CAT" />
    <extension>
    <instrument-list><![CDATA[ {"type":[{"name":"acoustic","instrument":[{"name":"GUITAR"},{"name":"VIOLIN"}]},{"name":"electronic","instrument":[{"name":"GUITAR"},{"name":"VIOLIN"}]}]} ]]></instrument-list>
    </extension>
    </home>

是否违反了标准和最佳做法?

1 个答案:

答案 0 :(得分:3)

每个人都没有“XYZ规范”。虽然我建议阅读XML及其规范,因为您需要考虑转义JSON中的以下字符,以便与XML解析器很好地协同工作。

XML escape characters.
"   &quot;
'   &apos;
<   &lt;
>   &gt;
&   &amp;

or use

<![CDATA[ ]]>