赞
踩
目录
DTD(Document Type Definition)是一种用于定义XML文档结构和元素的规范。它可以指定文档中允许出现的元素、元素的顺序、元素的属性以及元素之间的关系等信息。
参考地址:DTD Tutorial
在XML文档中,可以通过引用DTD来验证文档的结构是否符合规范。DTD通常以一种特定的语法格式编写,包括元素声明、属性声明、实体声明等内容。
简单的DTD示例:
- <!DOCTYPE note [
- <!ELEMENT note (to, from, heading, body)>
- <!ELEMENT to (#PCDATA)>
- <!ELEMENT from (#PCDATA)>
- <!ELEMENT heading (#PCDATA)>
- <!ELEMENT body (#PCDATA)>
- ]>
这个DTD定义了一个名为note的元素,其中包含to、from、heading和body四个子元素,它们的内容类型均为文本数据(#PCDATA)。
使用 DTD,独立的人群可以就交换数据的标准 DTD 达成一致。
应用程序可以使用 DTD 来验证 XML 数据是否有效。
如果 DTD 是在 XML 文件中声明的,则必须将其包装在<中!DOCTYPE>定义:
- <?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>Tove</to>
- <from>Jani</from>
- <heading>Reminder</heading>
- <body>Don't forget me this weekend</body>
- </note>
上面的 DTD 是这样解释的:
如果 DTD 是在外部文件中声明的,则<!DOCTYPE>定义必须 包含对 DTD 文件的引用:
- <?xml version="1.0"?>
- <!DOCTYPE note SYSTEM "note.dtd">
- <note>
- <to>Tove</to>
- <from>Jani</from>
- <heading>Reminder</heading>
- <body>Don't forget me this weekend!</body>
- </note>
这里是文件“note.dtd”,其中包含 DTD:
- <!ELEMENT note (to,from,heading,body)>
- <!ELEMENT to (#PCDATA)>
- <!ELEMENT from (#PCDATA)>
- <!ELEMENT heading (#PCDATA)>
- <!ELEMENT body (#PCDATA)>
XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它具有自我描述性并且易于阅读。XML被广泛应用于各种领域,如网页开发、数据交换和配置文件等。
参考地址:XML Introduction
XML的基本语法规则包括使用标签、属性和值来描述数据的结构和内容。标签用尖括号包围,属性以键值对的形式出现在标签中,值则位于标签的起始和结束之间。
XML示例:
- <bookstore>
- <book category="fiction">
- <title>Harry Potter</title>
- <author>J.K. Rowling</author>
- </book>
- <book category="non-fiction">
- <title>Introduction to XML</title>
- <author>John Doe</author>
- </book>
- </bookstore>
也许这有点难以理解,但XML不做任何事情。
此注释是 Jani 给 Tove 的注释,存储为 XML:
- <note>
- <to>Tove</to>
- <from>Jani</from>
- <heading>Reminder</heading>
- <body>Don't forget me this weekend!</body>
- </note>
上面的 XML 是相当自我描述的:
但是,上面的XML仍然没有做任何事情。XML 只是包装在标签中的信息。
必须有人编写一个软件来发送、接收、存储或显示它:
XML 和 HTML 的设计目标不同:
XML 语言没有预定义的标记。
上面示例中的标记(如 <to> 和 <from>)未在任何 XML 标准中定义。这些标记是由 XML 文档的作者“发明”的。
HTML 适用于预定义的标签,如 <p>、<h1>、<table> 等。
使用 XML 时,作者必须同时定义标签和文档结构。
即使添加了新数据,大多数 XML 应用程序也会按预期工作(或 已删除)。
想象一下,一个旨在显示原始版本的应用程序note.xml (<> <从> <heading> <body>)。
然后想象一个更新版本的note.xml,增加了<日期>和<小时> 元素,并删除了<标题>。
XML的构造方式,旧版本的应用程序仍然可以工作。
XML(可扩展标记语言)的两种主要文档约束分别是 DTD(文档类型定义)和 XML Schema。这两种文档约束用于定义 XML 文档的结构、元素、属性和约束规则,以确保文档的有效性和一致性。
DTD(文档类型定义):DTD 是一种声明性约束,它使用一组语法规则定义 XML 文档的结构、元素和属性。通过 DTD,可以定义元素的顺序、数量和内容约束,以及元素和属性的数据类型。DTD 使用简单的语法规则,但在处理命名空间和数据类型等方面具有一定的局限性。
XML Schema:XML Schema 是一种更加强大和灵活的文档约束方式,它使用 XML 格式本身来定义 XML 文档的结构和约束规则。XML Schema 支持更丰富的数据类型定义、命名空间管理、键值约束等功能,使得对 XML 文档的约束和验证更加灵活和强大。XML Schema 常用于替代 DTD,成为更现代化的 XML 文档约束方式。
XML 元素都必须有关闭标签
XML 标签对大小写敏感
XML 必须正确地嵌套
XML 文档必须有根元素,有且只有一个
XML 的属性值须加引号
XML中的特殊字符处理
特殊字符 | 实体引用 |
---|---|
> | > |
< | < |
& | & |
' | ' |
" | " |
内部的 DOCTYPE 声明
<!DOCTYPE 根元素 [元素声明]>
外部文档声明
<!DOCTYPE 根元素 SYSTEM "文件名">
<!ELEMENT 元素名称 元素类型 >
空元素
<!ELEMENT 元素名称 EMPTY>
文本元素
<!ELEMENT 元素名称 (#PCDATA)>
混合元素
<!ELEMENT 元素名称 (子元素名称1,子元素名称2,...)>
限制 | 说明 |
---|---|
, | 表示内容的出现顺序必须与声明一致 |
| | 表示两者或多个时只能出现一个 |
+ | 表示元素出现1次或多次 |
* | 表示元素出现0次或多次 |
? | 表示元素出现1次或1次 |
基本语法
<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
属性类型
类型 | 描述 |
---|---|
CDATA | 值为字符数据 (character data) |
(en1|en2|..) | 此值是枚举列表中的一个值 |
ID | 值为唯一的 id |
IDREF | 值为另外一个元素的 id |
IDREFS | 值为其他 id 的列表 |
NMTOKEN | 值为合法的 XML 名称 |
NMTOKENS | 值为合法的 XML 名称的列表 |
ENTITY | 值是一个实体 |
ENTITIES | 值是一个实体列表 |
NOTATION | 此值是符号的名称 |
xml: | 值是一个预定义的 XML 值 |
设置说明
值 | 解释 |
---|---|
值 | 属性的默认值 |
#REQUIRED | 属性值是必需的 |
#IMPLIED | 属性不是必需的 |
#FIXED value | 属性值是固定的 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。