用XML分组项目

时间:2012-08-09 11:42:02

标签: xml

我正在尝试使用XML存储一些信息,对数据进行分组的正确方法是什么? 我在三个房间有多台电脑,我应该创建房间元素还是使用属性?

<rooms>
<room name="Room 1">
  <computer>
    <name>Student14</name>
    <ipaddress>00.00.00.01</ipaddress>
    <macaddress>00-0B-DB-74-12-AB</macaddress>
  </computer>
 </room>
<room name="Room 2">
  <computer>
    <name>Student15</name>
    <ipaddress>00.00.00.02</ipaddress>
    <macaddress>00-0B-DB-74-12-AC</macaddress>
  </computer>
 </room>
<room name="Room 3">
  <computer>
    <name>Student16</name>
    <ipaddress>00.00.00.03</ipaddress>
    <macaddress>00-0B-DB-74-12-AD</macaddress>
  </computer>
 </room>
</rooms>

或者像这样:

<computers>
  <computer>
    <name>Student14</name>
    <ipaddress>00.00.00.01</ipaddress>
    <macaddress>00-0B-DB-74-00-AC</macaddress>
    <location>Room 1</location>
  </computer>
  <computer>
    <name>Student15</name>
    <ipaddress>00.00.00.02</ipaddress>
    <macaddress>00-0B-DB-74-00-AB</macaddress>
    <location>Room 2</location>
  </computer>
  <computer>
    <name>Student16</name>
    <ipaddress>00.00.00.03</ipaddress>
    <macaddress>00-0B-DB-74-00-AD</macaddress>
    <location>Room 3</location>
  </computer>
</computers>

2 个答案:

答案 0 :(得分:2)

取决于您关注的数据。您想存储有关房间或计算机的信息吗?在第一个示例中,您将存储有关房间的信息。这可能还包括沙发,灯具等。在您的第二个,您存储有关计算机的信息。这可能包括他们的位置,模型等。

这取决于您希望获得的信息。

答案 1 :(得分:0)

没有“正确”的表示。对于XML来说,没有像关系数据库这样的“正常形式”。通常,系统中的对象将形成一般图形,并且您的XML需要是该图形的一些分层投影。为方便起见,请选择您的表示,并准备从一种表示转换为另一种表示。

(例如,MusicXML定义了两种表示形式,一种是时间线中的事件位于顶层,另一种是乐器或声乐部分位于顶层。这两种表示是等效的,并且很有用用于不同的目的。)