我想了解标准和最佳做法:
案例情景:
如果“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>
是否违反了标准和最佳做法?
答案 0 :(得分:3)
每个人都没有“XYZ规范”。虽然我建议阅读XML及其规范,因为您需要考虑转义JSON中的以下字符,以便与XML解析器很好地协同工作。
XML escape characters.
" "
' '
< <
> >
& &
or use
<![CDATA[ ]]>