以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [讨论]DTD的限制  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=9927)


--  作者:luckykimrw
--  发布时间:9/13/2004 3:58:00 PM

--  [讨论]DTD的限制
不知道下面这些有关DTD的限制的说法是否适当,如果是这样,那为什么还要用DTD文档定义呢????

DTD的限制:

1、无法指定元素内容或属性数据型态
     Ex. 只有PCDATA, CDATA宣告
2、不易描述元素出现次数
     Ex. 无法保证(A|B)*之中A和B仅可只出现一次
3、DTD并未遵守XML的语法规则
    Ex. <!ELEMENT book (title, authorlist, pub_date?)>
    Ex. <!ATTLIST book code CDATA #REQUIRED>
4、无法使用名称空间(namespace)
5、混合型态的内容无法精确区分
    Ex. <SNO>123</SNO>是整数还是字符串
6、数集关系只具备0,1和「多个」的条件
    Ex. ?, +, *
7、缺乏元素与属性的群组命名设定,无法重复使用先前宣告之元素或属性

摘自:余显强《XML标准与技术简介》


[此贴子已经被作者于2004-9-13 16:52:34编辑过]

--  作者:luckykimrw
--  发布时间:9/13/2004 4:50:00 PM

--  
下面是DTD与XML Schema应用比较example:

XML文件范例(片断)
<InvoiceNo>123456789</InvoiceNo>
<ProductID>J123456</ProductID>

以DTD描述的型别定义:
<!ELEMENT InvoiceNo (#PCDATA)>
<!ELEMENT ProductID (#PCDATA)>

以XML Schema描述的型别定义:
<element name='InvoiceNo' type='positive-integer'/>
<element name='ProductID' type='ProductCode'/>
                           ↓
<simpleType name='ProductCode' base='string'>
      <pattern value='[A-Z]{1}d{6}'/>
</simpleType>

因为不是很懂,所以怎么看上去,Schema很麻烦的样子哦

摘自:余显强《XML标准与技术简介》



--  作者:xippi
--  发布时间:10/11/2004 8:30:00 PM

--  
DTD 适合三个基本用途。它能:
•  针对标记编制文档
•  加强标记参数内部的一致性
•  使 XML 语法分析器能够确认文档
XML真正的能力来自于许多文档共享的常用DTD,这些DTD是由不同的人编写的。对于应用程序、组织和感兴趣的群体,DTD为形成一致的标记标准并使其文档化,以及加强对标准的遵循提供了一种方式。
DTD最初出现在SGML中,由于XML和SGML的关系,也被用来描述XML文档。XML Schema则是一种新兴的模式语言,XML Schema能够在很多方面避免DTD的缺点。但是模式并不是能够解决所有的问题。特别是模式不能替代DTD,可以对同一个文档使用模式和DTD。DTD可以进行模式不能进行的操作。
楼上的说:
所以怎么看上去,Schema很麻烦的样子哦
这个确实是这样的,但是对于解析器来说,这点麻烦小意思,呵呵,他带来的好处更多。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms