当创建一个XML文档,其中包含来自其他设备的信息中的多个元素,并且假设某些信息未被发送(来自SecFile ID信息),是否更好地接收此XML(a)元素不存在,或(b)空元素,或(c)插入元素或(d)插入属性xsi:nil =“true”?
实施例 所有信息
<FilmFile_ID>
<Film_ID>02</Film_ID>
<PriFile_ID>08</PriFile_ID>
<SecFile_ID>03</SecFile_ID>
</FilmFile_ID>
a)删除了SecFile_ID元素
<FilmFile_ID>
<Film_ID>02</Film_ID>
<PriFile_ID>08</PriFile_ID>
</FilmFile_ID>
b)SecFile_ID为空
<FilmFile_ID>
<Film_ID>02</Film_ID>
<PriFile_ID>08</PriFile_ID>
<SecFile_ID></SecFile_ID>
</FilmFile_ID>
c)插入
<FilmFile_ID>
<Film_ID>02</Film_ID>
<PriFile_ID>08</PriFile_ID>
<SecFile_ID><null/></SecFile_ID>
</FilmFile_ID>
d)xsi:nil =“true”inserted
<FilmFile_ID>
<Film_ID>02</Film_ID>
<PriFile_ID>08</PriFile_ID>
<SecFile_ID xsi:nil=”true”/>
</FilmFile_ID>'
答案 0 :(得分:0)
嗯,没有“更好”的方式,但是,你仍然可以争辩说:
b)含糊不清,因为你无法真正知道它是否意味着空或不存在的值,而
c)在处理特殊数据类型时引入了不必要的复杂性,
d)表达与a)相同的含义,但有更多的冗长,因此
a)获胜
如果使用a),那么<SecFile></SecFile>
应该被解释为“空”值(非空),如果应用程序(或模式)允许的话。
答案 1 :(得分:0)
通常,XML文化是您作为文档设计者可以选择用于特定语义的语法,或者换句话说,文档意味着您所说的意思。如果你需要区分不同类型的缺席值(例如“约翰没有中间名”,“我不知道约翰的中间名”),那么区别可能很重要,但在大多数情况下,你可以非常愉快地使用其中任何一个。使用空元素可以使使用XML的应用程序的生活更轻松。