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)
它是否违反了标准和最佳实践?
没有“XYZ 规范”。不过,我建议您阅读 XML 及其规范,因为您需要考虑在 JSON 中转义以下字符,以便与 XML 解析器良好配合。
XML escape characters.
" "
' '
< <
> >
& &
or use
<![CDATA[ ]]>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10949 次 |
最近记录: |