很多关于XML的书都讲解了如何写DTD文件
我自己学习的时候,边看书边动手写,但是遇到了一些问题。
在这里写出来
1、DTD写的是正确的(我当时是照着书抄了一些),然后在XML文档中故意写了些违法DTD文档要求的代码,但是,浏览器依然可以正常显示。
要是你也遇到这问题,就不要再用简单的记事本写DTD和XML文档了,用专业的XML编辑软件,如XML Spy。
据网上有人说,这是因为浏览器没有DTD解析器。
我也不管是不是真是这样,这也不是关键问题,我就直接下载了个XML Spy,然后就完全可以照着书折腾来折腾去了。
2、如何在DTD中声明中顺序任意的元素?
我自己拿的一本书,直接告诉我是用“|”符号来实现的,如下面的代码
<!ELEMENT book (author|price)*>
如果你看过XML书籍中讲解如何规定元素出现的次数时,就会遇到“|”、“*”、“?”、“+”符号
然后,你的大脑可能就要打架了
经过我的思考,我终于明白 "*" 符号的真正作用是什么了?
它的作用就是循环
在上面的例子中,就是将 (author|price)循环,每次从author和price中任选选择一个,再重复N次,不就实现了顺序的任意性,且数量不限么?