为什么 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 是可扩展的。
- DTD 可以通过各种技术进行扩展。示例包括重复
ATTLIST
添加属性和重新定义参数 ENTITIES。
将巧妙的 DTD 可扩展性应用于大量项目的历史由来已久。示例:
- TEI:文本编码计划有 extensible DTDs。
- XHTML:参见 Developing DTDs with defined and extended modules。
So, why this is not extensible as XSD?
因为 DTD 早于 XSD,并且 发生了进展。
另见
我知道一种语言是可扩展的,如果它允许用户创建任何需要的标签,然后描述这些标签及其允许的用途。
如果我没记错的话,在这个例子中
代码:
<!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 是可扩展的。
- DTD 可以通过各种技术进行扩展。示例包括重复
ATTLIST
添加属性和重新定义参数 ENTITIES。 将巧妙的 DTD 可扩展性应用于大量项目的历史由来已久。示例:
- TEI:文本编码计划有 extensible DTDs。
- XHTML:参见 Developing DTDs with defined and extended modules。
So, why this is not extensible as XSD?
因为 DTD 早于 XSD,并且 发生了进展。