写外部DTD:
步骤:
1.在srd目录下新建DTD文件,并命名为:scores.dtd
2.在练习1的基础上,剪切练习1的DTD内部声明。粘贴到一个新建的DTD文件中。剪切之后的地方换上:包含外部DTD的声明语句:<!DOCTYPE scores SYSTEM "scores.dtd">,新建的引入外部DTD文件的xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- 引入外部DTD文件 --> <!DOCTYPE scores SYSTEM "scores.dtd"> <scores> <student id="1"> <name>王同</name> <course>java</course> <score>89</score> </student> <student id="2"> <name>李佳</name> <course>sql</course> <score>58</score> </student> <student id="3"> <name>王二狗</name> <course>经济学原理</course> <score>88</score> </student> <student id="4"> <name>刘德华</name> <course>怎样做一个好演员</course> <score>100</score> </student> </scores>
3.其中,scores.dtd文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT scores (student+)> <!ELEMENT student (name,course,score)> <!ATTLIST student id CDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT course (#PCDATA)> <!ELEMENT score (#PCDATA)>
4.一个可能要注意的地方是,当引入外部约束文件DTD文件之后,.xml文件就要包含元素name,course,score 了,如果在.xml文件中删去<score>100</score> 这一行,会报错(必须匹配name,course,score),如果没报错,把文件保存一下就行了。
原文:https://www.cnblogs.com/yibeimingyue/p/9961546.html