XML 中的 JSON

hid*_*ser 7 xml json xml-parsing

我想了解以下标准和最佳实践:

案例场景:

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

<home>
<person name="ZEN" />
<person name="PAUL" />
<animal name="DOG" />
<animal name="CAT" />
</home>
Run Code Online (Sandbox Code Playgroud)

和“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>
Run Code Online (Sandbox Code Playgroud)

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

  <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>
Run Code Online (Sandbox Code Playgroud)

或者

<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>
Run Code Online (Sandbox Code Playgroud)

它是否违反了标准和最佳实践?