【php精品源码栏目提醒】:网学会员--在 php精品源码编辑为广大网友搜集整理了:【精品】DTD简明教程 - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
DTD 教程DTD 简介DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。
它使用一系列的合法元素来定义文档结构。
内部的 DOCTYPE 声明假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:带有 DTD 的 XML 文档实例(请在 IE5 以及更高的版本打开,并选择查看源代码): George John Reminder Dont forget the meeting以上 DTD 解释如下:DOCTYPE note 第二行定义此文档是 note 类型的文档。
ELEMENT note 第三行定义 note 元素有四个元素:to、from、heading、bodyELEMENT to 第四行定义 to 元素为 PCDATA 类型ELEMENT from 第五行定义 frome 元素为 PCDATA 类型ELEMENT heading 第六行定义 heading 元素为 PCDATA 类型ELEMENT body 第七行定义 body 元素为 PCDATA 类型外部文档声明假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (在 IE5 中打开,并选择“查看源代码”命令。
)GeorgeJohnReminderDont forget the meeting这是包含 DTD 的 note.dtd 文件:XML 文档构建模块所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成: 元素 属性 实体 PCDATA CDATA下面是每个构建模块的简要描述。
元素元素是 XML 以及 HTML 文档的主要构建模块。
HTML 元素的例子是 body 和 table。
XML 元素的例子是 note 和 message 。
元素可包含文本、其他元素或者是空的。
空的 HTML 元素的例子是 hr、br 以及 img。
实例:body text in betweensome message in between属性属性可提供有关元素的额外信息。
属性总是被置于某元素的开始标签中。
属性总是以名称/值的形式成对出现的。
下面的 img 元素拥有关于源文件的额外信息:元素的名称是 img。
属性的名称是 src。
属性的值是 computer.gif。
由于元素本身为空,它被一个 / 关闭。
实体实体是用来定义普通文本的变量。
实体引用是对实体的引用。
大多数同学都了解这个 HTML 实体引用:nbsp。
这个“无折行空格”实体在 HTML 中被用于在某个文档中插入一个额外的空格。
当文档被 XML 解析器解析时,实体就会被展开。
下面的实体在 XML 中被预定义:实体引用 字符 lt gt amp quot apos PCDATAPCDATA 的意思是被解析的字符数据(parsed character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。
PCDATA 是会被解析器解析的文本。
这些文本将被解析器检查实体以及标记。
文本中的标签会被当作标记来处理,而实体会被展开。
不过,被解析的字符数据不应当包含任何 、 或者 字符;需要使用 amp、lt 以及 gt 实体来分别替换它们。
CDATACDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。
在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
DTD - 元素声明一个元素在 DTD 中,XML 元素通过元素声明来进行声明。
元素声明使用下面的语法:或者空元素空元素通过类别关键词 EMPTY 进行声明:例子:XML 例子:只有 PCDATA 的元素只有 PCDATA 的元素通过圆括号中的 PCDATA 进行声明:例子:带有任何内容的元素通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合:例子:带有子元素(序列)的元素带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:或者例子:当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。
在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。
note 元素的完整声明是:声明只出现一次的元素例子:上面的例子声明了:message 子元素必须出现一次,并且必须只在 note 元素中出现一次。
声明最少出现一次的元素例子:上面的例子中的加号声明了:message 子元素必须在 note 元素内出现至少一次。
声明出现零次或多次的元素例子:上面的例子中的星号声明了:子元素 message 可在 note 元素内出现零次或多次。
声明出现零次或一次的元素例子:上面的例子中的问号声明了:子元素 message 可在 note 元素内出现零次或一次。
声明“非.../既...”类型的内容例子:上面的例子声明了:note 元素必须包含 to 元素、from 元素、header 元素,以及非 message元素既 body 元素。
声明混合型的内容例子:上面的例子声明了:note 元素可包含出现零次或多次的 PCDATA、to、from、header 或者message。
DTD - 属性在 DTD 中,属性通过 ATTLIST 声明来进行声明。
声明属性属性声明使用下列语法:DTD 实例:XML 实例:以下是属性类型的选项:类型 描述 CDATA 值为字符数据 character data en1en2.. 此值是枚举列表中的一个值 ID 值为唯一的 id IDREF 值为另外一个元素的 id IDREFS 值为其他 id 的列表 NMTOKEN 值为合法的 XML 名称 NMTOKENS 值为合法的 XML 名称的列表 ENTITY 值是一个实体 ENTITIES 值是一个实体列表 NOTATION 此值是符号的名称 xml: 值是一个预定义的 XML 值默认值参数可使用下列值:值 解释 值 属性的默认值 REQUIRED 属性值是必需的 IMPLIED 属性不是必需的 FIXED value 属性值是固定的规定一个默认的属性值DTD:合法的 XML:在上面的例子中,square 被定义为带有 CDATA 类型的 width 属性的空元素。
如果宽度没有被设定,其默认值为 0 。
IMPLIED语法例子DTD:合法的 XML:合法的 XML:假如您不希望强制作者包含属性,并且您没有默认值选项的话,请使用关键词 IMPLIED。
REQUIRED语法例子DTD:合法的 XML:非法的 XML:假如您没有默认值选项,但是仍然希望强制作者提交属性的话,请使用关键词 REQUIRED。
FIXED语法例子DTD:合法的 XML:非法的 XML:如果您希望属性拥有固定的值,并不允许作者改变这个值,请使用 FIXED 关键词。
如果作者使用了不同的值,XML 解析器会返回错误。
列举属性值语法:DTD 例子:XML 例子:或者如果您希望属性值为一系列固定的合法值之一,请使用列举属性值。
DTD - 实体实体是用于定义引用普通文本或特殊字符的快捷方式的变量。
实体引用是对实体的引用。
实体可在内部或外部进行声明。
一个内部实体声明语法:例子:DTD 例子:XML 例子:writercopyright注释: 一个实体由三部分构成: 一个和号 一个实体名称 以及一个分号 。
一个外部实体声明语法:例子:DTD 例子:XML 例子:writercopyright DTD 验证Internet Explorer 5.0 可根据某个 DTD 来验证您的 XML。
通过 XML 解析器进行验证当您试图打开某个 XML 文档时,XML 解析器有可能会产生错误。
通过访问 parseError 对象,就可以取回引起错误的确切代码、文本甚至所在的行。
注释:load 方法用于文件,而 loadXML 方法用于字符串。
var xmlDoc new ActiveXObjectMicrosoft.XMLDOMxmlDoc.asyncfalsexmlDoc.validateOnParsetruexmlDoc.loadnote_dtd_error.xmldocument.writeError Code: document.writexmlDoc.parseError.errorCodedocument.writeError Reason: document.writexmlDoc.parseError.reasondocument.writeError Line: document.writexmlDoc.parseError.line关闭验证通过把 XML 解析器的 validateOnParse 设置为 false,就可以关闭验证。
var xmlDoc new ActiveXObjectMicrosoft.XMLDOMxmlDoc.asyncfalsexmlDoc.validateOnParsefalsexmlDoc.loadnote_dtd_error.xmldocument.writeError Code: document.writexmlDoc.parseError.errorCodedocument.writeError Reason: document.writexmlDoc.parseError.reasondocument.writeError Line: document.writexmlDoc.parseError.line通用的 XML 验证器为了帮助您验证 XML 文件,我们创建了此链接,这样你就可以验证任何 XML 文件了。
上一篇:
【精品】《网站设计、维护与管理》复习题
下一篇:
:现在要收费的搜猫9.0正式版现在免费分享给大家