为什么这是一个坏主意(是吗?)

时间:2017-02-07 13:24:02

标签: xml xml-parsing

我正在研究这个项目,有人想出了一个XML结构。我很确定,这不是XML应该使用的方式,但我也知道,这是一个非常透视的问题。

有问题的序列是

 <TestDetailsProperties>
    <Property Type="String"           Name="TestDetails_String1"     ValueChar="TestDetails - AdditionalText1"/>
    <Property Type="Decimal"          Name="TestDetails_Decimal1"    ValueNum="1.23"/>
    <Property Type="Time"             Name="TestDetails_Time2"       ValueTime="10:11:12"/>
    <Property Type="Date"             Name="TestDetails_Date2"       ValueDate="2000-01-01"/>
    <Property Type="Integer"          Name="TestDetails_Integer2"    ValueInt="234"/>
    <Property Type="String"           Name="TestDetails_String2"     ValueChar="TestDetails - ZusatzText2"/>
    <Property Type="Decimal"          Name="TestDetails_Decimal2"    ValueNum="4.33"/>
    <Property Type="DateTime"         Name="TestDetails_DateTime1"   ValueDateTime="2000-01-03T01:01:01"/>
    <Property Type="Integer"          Name="TestDetails_Integer1"    ValueInt="42"/>
    <Property Type="Date"             Name="TestDetails_Date1"       ValueDate="2000-01-02"/>
    <Property Type="Time"             Name="TestDetails_Time1"       ValueTime="10:30:12"/>
    <Property Type="DateTime"         Name="TestDetails_DateTime2"   ValueDateTime="2000-01-12T20:34:12"/>
 </TestDetailsProperties>

我的问题是,为什么不以这种方式这样做的技术原因是什么。是否有合理的论据可以预期会出现什么问题?

我知道,这可能不是一个很好的stackoverflow问题,但我搜索了这个问题,我能找到的一切只是说它很糟糕,你不应该这样做,但不是确切原因。我找不到另一个地方可以转向,如果你对更好的地方有任何建议,我会很乐意提出这个问题。

目的是存储有关自动化测试的数据,这是存储测试详细信息的部分。

我感觉我错过了什么,但我不知道是什么。

1 个答案:

答案 0 :(得分:0)

可能会有一些改进:

    为了便于阅读,请在Name之前
  • Type
  • 如果Name始终以TestDetails_开头,并且可以从父节点读取此前缀,则可以删除前缀。
  • 每个节点的
  • Value属性,而不是每个不同类型的不同属性名称。这将大大简化解析XML的逻辑

除此之外,它看起来很好,并且可以用任何C#/ Java / Python / Ruby库解析几行。