当然是Schema,DTD是较早的方式,不过用的也还是比较多 XML Schema 比 DTD 更强大 XML Schema 最重要的能力之一就是对数据类型的支持。 通过对数据类型的支持: 可更容易地描述允许的文档内容 可更容易地验证数据的正确性 可更容易地与来自数据库的数据一并工作 可更容易地定义数据约束(data facets) 可更容易地定义数据模型(或称数据格式) 可更容易地在不同的数据类型间转换数据
XML Schema本身的定义中,也是用到DTD的。 比如XML Schema的定义文件中有如下语句: <!ATTLIST xs:simpleType id ID #IMPLIED> <!ATTLIST xs:maxExclusive id ID #IMPLIED> <!ATTLIST xs:minExclusive id ID #IMPLIED> <!ATTLIST xs:maxInclusive id ID #IMPLIED> <!ATTLIST xs:minInclusive id ID #IMPLIED> <!ATTLIST xs:totalDigits id ID #IMPLIED>
XML Schema 比 DTD 更强大
XML Schema 最重要的能力之一就是对数据类型的支持。
通过对数据类型的支持:
可更容易地描述允许的文档内容
可更容易地验证数据的正确性
可更容易地与来自数据库的数据一并工作
可更容易地定义数据约束(data facets)
可更容易地定义数据模型(或称数据格式)
可更容易地在不同的数据类型间转换数据
比如XML Schema的定义文件中有如下语句:
<!ATTLIST xs:simpleType id ID #IMPLIED>
<!ATTLIST xs:maxExclusive id ID #IMPLIED>
<!ATTLIST xs:minExclusive id ID #IMPLIED>
<!ATTLIST xs:maxInclusive id ID #IMPLIED>
<!ATTLIST xs:minInclusive id ID #IMPLIED>
<!ATTLIST xs:totalDigits id ID #IMPLIED>
它的功能更加强大,就像高级语言比汇编的能力要强大。
所以大部分情况下,还是推荐使用XSD。
有人同意这种说法吗?
XSD的确是比DTD好,这一点你就不用质疑了。
但是高级语言的强大之处,难道是可以否认的吗?
没有高级语言,难道指望你能用汇编写个现在的Windows出来?
随便说一个吧
DTD它不能支持不同位置的重名问题,你就不得不用成XSD了,使用xsd的命名空间来解决。
使用SGML中的其他标记语言(不是XML),就可以有何XSD完全等价的其他 ASD、BSD的
没有到一定复杂度的东西,用xsd写实在太虐自己了