4.3DTD的声明
###4.3 XML DTD声明
在XML中使用DTD有三种方式
内部DTD(Internal Subset Declaration):直接插入XML文档中和XML放在一起。
外部DTD(External Subset Declaration):使用外部独立的DTD文件。
混合方式:同时使用上述两种方法,建立更为复杂的DTD。
DTD声明以“”结束。
内部DTD qqDTD在XML文档的序言区域中定义时,使用内部的DTD声明
根元素指定DTD根元素名称,一个XML文档有且只有一个根元素
如果XML文档中使用了DTD,则文档的根元素必须在DTD中指定
<?xml version=“1.0” ?>
<!DOCTYPE 根元素[元素描述]> 文档数据区......
内部DTD
文档类型声明(DOCTYPE)通知解析器本XML文档需要与一个DTD文件一起使用
在XML文档使用DTD时,DOCTYPE必须放在文档的开头,只允许XML声明语句在它前面
DOCTYPE声明语句的第一个字符必须是“!”
XML推荐标准规定,声明元素必须以“!”开头
声明元素是DTD的一部分,不允许出现在XML主体内容中
紧跟在DOCTYPE后面的是DTD定义的主体
内部DTD
紧跟在DOCTYPE后面的是DTD定义的主体,声明元素、属性、实体和注释
声明的元素组成了文档的词汇
“]>”是DTD声明的结束符,结束DTD文档类型定义,XML文档紧接其后
<!ELEMENT name (first, middle, last)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT last (#PCDATA)>
<?xml version=“1.0”?>
<!DOCTYPE name [ <!ELEMENT name (first, middle, last)> <!ELEMENT first (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT last (#PCDATA)> ]>
<name>
<first>John</first>
<middle>Fitzgerald Johansen</middle>
<last>Doe</last>
</name>
<html>
<body>
<h3>This demonstrates a parser error:</h3>
<script type="text/javascript">
varxmlDoc= new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false" xmlDoc.validateOnParse="true"
xmlDoc.load("./name2.xml")
document.write("<br/>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br/>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br/>Error Line: ")
document.write(xmlDoc.parseError.line)
</script>
</body>
</html>
Last updated