XML文件有3种变体。它们之间的区别是什么?我应该使用哪个?
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Name (First, Last)>
<!ELEMENT First (#PCDATA)>
<!ELEMENT Last (#PCDATA)>
<!ELEMENT Name EMPTY>
<!ATTLIST Name
First CDATA #REQUIRED
Last CDATA #REQUIRED >
答案 0 :(得分:0)
!ELEMENT 映射到XML节点:
<!ELEMENT Name (#PCDATA)>
:
<Name>Tony Stark</Name>
!ATTLIST 映射到XML节点的属性:
<!ELEMENT Name EMPTY>
<!ATTLIST Name
First CDATA #REQUIRED
Last CDATA #REQUIRED >
:
<Name First="Tony" Last="Stark"/>
这些的使用完全取决于您和您的使用案例。
答案 1 :(得分:0)
第二和第三种情况相当于XML attributes vs XML elements,之间的区别,已在链接问题中广泛回答。
您的第一个案例引入了不将名称标记为单独的名字和姓氏的可能性。你问什么时候你可能想要这样做。通常,名称数据源自您已经单独确定名字和姓氏的形式。保持这种区别是有道理的。但是,您可能希望使用单个名称字段而不是分隔名字和姓氏,这有一些原因:
这些原因概括为非名称数据。如果您的标记处于更精细的粒度级别,您将促进下游处理,但实现这种粒度并不总是容易的。还有一个关于需要的可能性的判断调用,用于当前和未来消费应用程序的更大程度的标记。不需要更多标记只会增加开销,无意义。