为什么 DTD 不可扩展?

Why DTD is not extensible?

我知道一种语言是可扩展的,如果它允许用户创建任何需要的标签,然后描述这些标签及其允许的用途。

如果我没记错的话,在这个例子中

代码:

<!ELEMENT people_list (person)*>
<!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT birthdate (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT socialsecuritynumber (#PCDATA)>

DTD 正在定义一个名为 person 的元素(标签),另一个名为 name 的元素等...

那么,为什么这不能扩展为 XSD?

背景:DTD 的存在是为了支持XML 的可扩展性。代替 一种固定的标记语言,XML 允许您定义自己的词汇表 和通过 DTD 等模式的语法。

Why DTD is not extensible?

DTD 可扩展的。

So, why this is not extensible as XSD?

因为 DTD 早于 XSD,并且 发生了进展

另见