我正在尝试使用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>
答案 0 :(得分:2)
取决于您关注的数据。您想存储有关房间或计算机的信息吗?在第一个示例中,您将存储有关房间的信息。这可能还包括沙发,灯具等。在您的第二个,您存储有关计算机的信息。这可能包括他们的位置,模型等。
这取决于您希望获得的信息。
答案 1 :(得分:0)
没有“正确”的表示。对于XML来说,没有像关系数据库这样的“正常形式”。通常,系统中的对象将形成一般图形,并且您的XML需要是该图形的一些分层投影。为方便起见,请选择您的表示,并准备从一种表示转换为另一种表示。
(例如,MusicXML定义了两种表示形式,一种是时间线中的事件位于顶层,另一种是乐器或声乐部分位于顶层。这两种表示是等效的,并且很有用用于不同的目的。)