以XML格式编写二维点

以XML格式编写二维点,xml,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&l

在用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>
  ...

110
0
109.5105
3.0901
108.0901
5.8778
...
在内部,我们正在讨论编写它们的最佳布局/标记命名。以下是其他几个选项:

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

110, 0
109.5105, 3.0901
108.0901, 5.8778
...


110, 0
109.5105, 3.0901
108.0901, 5.8778
...
假设您需要解析此XML文件:

  • 你最喜欢什么布局
  • 根据XML规范,哪种布局更正确

谢谢。

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

我选择第一种方法有几个原因:

  • 这种数据格式可能只在内部使用,所以它是否美观并不重要,只要它是机器可读的
  • 它易于扩展。想要Z坐标吗?好吧,添加另一个元素。这在不破坏现有功能的情况下是可能的!这意味着需要Z坐标的应用程序版本仍然可以读取不包含它的XML文件,并假定Z为0。无法处理Z坐标的应用程序版本将直接忽略它
  • 它很容易验证。您可以假设每个坐标都包含一个浮点值,可以使用标准方法(如)进行验证。其他格式需要更多关于每个元素内容的知识,而标准工具中可能不包括这些内容
  • 格式化中的另一个选项可能是:

    <vertices>
        <vertex x="0.123" y="1.443" />
        <vertex x="1.321" y="0.334" />
    </vertices>
    
    
    
    同样的优势列表也适用于这种格式,只是它更易于人类阅读



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

    那么
    count=42
    属性呢?我们把它包括进去好吗?它只会带来问题。设想有人在不更新属性的情况下手动删除节点。还有,这个属性有什么意义?您可以在解析XML文件之后甚至在解析XML文件时轻松计算顶点的数量。使用
    XmlDocument
    这是一个很简单的方法。请注意,XML规范没有对节点的读取顺序做出任何声明!我知道的大多数XML解析器都会按照节点在XML文件中的顺序返回节点,但这不是给定的,因此如果顶点的顺序相关,则需要另一个属性,以便在解析XML文件后进行排序。
    <vertices>
        <vertex x="0.123" y="1.443" />
        <vertex x="1.321" y="0.334" />
    </vertices>