以XML格式编写2D点

时间:2016-07-05 07:36:18

标签: c# .net xml

在XML中编写2D点数组时,我得到以下输出:

<Vertices count="42">
  <V>
    <X>110</X>
    <Y>0</Y>
  </V>
  <V>
    <X>109.5105</X>
    <Y>3.0901</Y>
  </V>
  <V>
    <X>108.0901</X>
    <Y>5.8778</Y>
  </V>
  ...

在内部,我们正在讨论编写它们的最佳布局/标签命名。以下是其他几个选项:

<Vertices>
  <Point>110, 0</Point>
  <Point>109.5105, 3.0901</Point>
  <Point>108.0901, 5.8778</Point>
  ...

<Vertices>
  <item>110, 0</item>
  <item>109.5105, 3.0901</item>
  <item>108.0901, 5.8778</item>
  ...

假设您需要解析此XML文件:

  • 您最喜欢哪种布局?
  • 根据XML规范,哪种布局更正确?

感谢。

1 个答案:

答案 0 :(得分:1)

这是基于意见的,所以这里是我的:

我出于第一种方法有几个原因:

  1. 此数据格式可能仅在内部使用,因此只要它是机器可读的,它是否漂亮并不重要。
  2. 易于扩展。想要一个Z坐标?好吧,添加另一个元素。这可能而不破坏现有功能!这意味着需要Z-Coordinate的应用程序版本仍然可以读取不包含Z-Coordinate的XML文件,并假设Z为0.无法处理Z-Coordinate的应用程序版本将忽略它。 / LI>
  3. 很容易验证。您可以假设每个坐标都包含一个浮点值,可以使用XSD等标准方法对其进行验证。其他格式需要更多关于每个元素内容的知识,这可能不包含在标准工具中。
  4. 格式化的另一个选择是:

    <vertices>
        <vertex x="0.123" y="1.443" />
        <vertex x="1.321" y="0.334" />
    </vertices>
    

    对于这种格式,同样的优点列表是正确的,只是它更容易为人类阅读。

    编辑:我忘了解析它对你的第一个建议(以及我上面提到的那个)比你建议的其他两种格式要容易得多,这需要为每个点进行另一个字符串拆分/修剪操作。