DTD 教程
DTD 教程
--------------
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
1
在XML内部定义文档结构
<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]><note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body></note>
<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]>
<!DOCTYPE note SYSTEM "note.dtd"><note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
EMPTY: 表示元素没有内容ANY:表示元素任何内容* 0次或多次+ 1次或多次? 0次或1次| 选择其中之一
CDATA值为字符数据 (character data)(en1|en2|..)此值是枚举列表中的一个值ID值为唯一的 idIDREF值为另外一个元素的 idIDREFS值为其他 id 的列表NMTOKEN值为合法的 XML 名称NMTOKENS值为合法的 XML 名称的列表ENTITY值是一个实体ENTITIES值是一个实体列表NOTATION此值是符号的名称xml:值是一个预定义的 XML 值
值属性的默认值#REQUIRED属性值是必需的#IMPLIED属性不是必需的#FIXED value属性值是固定的
一个内部实体声明语法:<!ENTITY 实体名称 "实体的值">例子:DTD 例子:<!ENTITY writer "Bill Gates"><!ENTITY copyright "Copyright W3School.com.cn">XML 例子:<author>&writer;©right;</author>注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。一个外部实体声明语法:<!ENTITY 实体名称 SYSTEM "URI/URL">例子:DTD 例子:<!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"><!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">XML 例子:<author>&writer;©right;</author>
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")xmlDoc.async="false"xmlDoc.validateOnParse="false"xmlDoc.load("note_dtd_error.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)