Home > Web Front-end > HTML Tutorial > XML study notes 2??DTD_html/css_WEB-ITnose

XML study notes 2??DTD_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 12:33:43
Original
1168 people have browsed it

In the previous note, when classifying document types, we used to distinguish them into well-formed XML and valid XML based on whether the document uses and complies with DTD or Schema. So what are DTD and Schema? Both DTD and Schema are used to standardize XML documents and impose semantic constraints on XML documents. DTD is simple and easy to use, while Schema is powerful. In this note, first learn about DTD (Document Type Definition, document type definition).

1. How to use DTD in XML documents

< tr>
Import method Syntax format Instructions
Internal DTD
导入方式 语法格式 说明
内部DTD

<!DOCTYPE 根元素名[     元素描述]>
Copy after login

将DTD定义放在XML文档内部,紧跟在XML声明和处理指令后面

如:

  

]>

外部DTD

<!DOCTYPE 根元素名 SYSTEM "外部DTD的URI">
Copy after login

将DTD单独定义在一个文件内,然后通过关键字SYSTEM导入DTD

如:

公用DTD

<!DOCTYPE 根元素名 PUBLIC "DTD的标识名" "公用DTD的URI">
Copy after login

公用DTD,这种DTD一般是由某个权威机构指定,供特定行业或公众使用,通过关键字PUBLIC导入

如:

<!ATTLIST 属性所属的元素名称  属性名称  属性类型  [元素对属性的约束]  [默认值]>
Copy after login
Copy after login

Place the DTD definition inside the XML document, followed by After the XML declaration and processing instructions

such as:

 

]>

External DTD

<!ATTLIST 属性所属的元素 属性名 NOTATION  (值1|值2|...) 约束 默认值>
Copy after login
Copy after login

Define the DTD separately in a file within, and then import the DTD through the keyword SYSTEM

For example:

Public DTD

<🎝>

Public DTD. This DTD is generally designated by an authoritative organization for specific purposes. For industry or public use, import through the keyword PUBLIC

such as:

2. The structure of DTD

The DTD document itself is not XML document, but only a document that defines semantic constraints for XML. The syntax of a DTD document is very simple and has the following structure:
元素类型 定义格式 说明
任意类型 元素可以是字符串,可以是空元素,也可以包含子元素
字符串值 元素值只能是字符串,不可以是空元素,也不能包含子元素
空元素
包含子元素 比较复杂,需要详细定义子元素之间的顺序以及子元素出现的次数等
混合类型 指定值只能是几个确定的类型,比任意类型有更强的约束,但功能相当,应尽量使用混合类型

(1) The first line is the declaration of the DTD document, and the syntax is the same as the declaration of XML

(2) 0 to multiple comment parts, DTD comments have the same syntax as XML comments

(3) 0 to multiple definitions, each Define an XML element

(4) 0 to multiple definitions, each defines one XML element Attributes

(5) 0 to multiple definitions, each defines an entity

定义子元素的语法 说明 子元素的出现频率修饰词 说明
(子元素1,子元素2,...) 使用英文逗号定义有序的子元素 默认(没有修饰词) 出现一次,且只能出现一次
(子元素1|子元素2|...) 使用竖线定义互斥的子元素 ? 出现0或1次
((子元素1,子元素2)|(子元素3,子元素4)) 使用括号将子元素分组 出现1或多次
(子元素1|子元素2|...) 使用竖线互斥,然后使用频率修饰实现定义无序的子元素 * 出现0或多次
(6) 0 to Multiple definitions, each defines a symbol <🎜> <🎜> among which , , , are completely independent of each other and do not need to be nested in each other. The four definitions will be explained one by one below. <🎜> <🎜>3. Define elements <🎜> <🎜> (1) Element Type Definition, referred to as ETD <🎜> <🎜> (2) Element type <🎜> <🎜> <🎜> About The definition of mixed types, please explain a few points: <🎜> <🎜>A: #PCDATA must be placed at the front <🎜> <🎜>B: #PCDATA and each sub-element can only be separated by vertical bars (|). Do not use commas to separate <🎜> <🎜>C: Do not use ?, *, and other frequency modifiers after child elements <🎜> <🎜> (3) Define child elements <🎜> <🎜>

4、定义属性

在XML中,属性不能单独存在,因此定义属性时必须指定属于哪个元素。定义属性的语法格式如下:

<!ATTLIST 属性所属的元素名称  属性名称  属性类型  [元素对属性的约束]  [默认值]>
Copy after login
Copy after login

(1)属性类型

类型 说明
CDATA 该属性值只能是字符串数据
(en1|en2|en3) 该属性值必须是一系列枚举值之一
ID 该属性值必须是有些的标识符,且该属性值可用于标识该元素,因此必须在此XML文档中唯一
IDREF 该属性值必须是引用另一个已有的ID类型的属性值
IDREFS 该属性值必须是引用已有的一个或多个ID类型的属性值,多个ID类型的属性值之间使用空格分隔
NMTOKEN 该属性值必须是合法的XML名称,必须是字符串数据,比CDATA约束更强,只能由字母、数字、下划线、中划线,点号和冒号组成
NMTOKENS 该属性值必须是一个或多个NMTOKEN类型的属性值,多个使用空格分隔
ENTITY 该属性值是一个外部实体,比如图片
ENTITIES 该属性值是一个或多个ENTITY类型的属性值,多个使用空格分隔
NOTATION 该属性值是在DTD中声明过的符号(NOTATION),这是个将要过期的规范,尽量避免使用
xml: 该属性值是一个预定义的XML值

(2)元素对属性的约束与默认值的关系

元素对属性的约束 说明 默认值
未指定 必须指定默认值
#REQUIRED 必须的属性,必须为相应元素提供该属性 不能指定默认值
#IMPLIED 该属性可有可无 不能指定默认值
#FIXED 该属性值是固定的,定义时必须指定固定值 必须指定默认值

5、定义实体

实体引用就是用一个字符串代替另一个字符串,类似于C语言中的宏,上一篇笔记中已经提到过XML中内置的5个实体引用,在这里接着看看怎么自定义实体引用。

实体类型 使用场所 定义语法 使用语法 说明
普通实体 XML &实体名;
参数实体 DTD %实体名; 必须在使用前先定义
外部实体 XML &实体名; 这里外部文件必须是满足XML文档结构的文本文档
公用外部实体 XML &实体名;
外部参数实体 DTD %实体名;
公用外部参数实体 DTD %实体名;
未解析实体 XML 需要通过ENTITY等类型的属性调用 未解析实体不能由XML文档解析,而需要根据相应的符号名去解析
公用未解析实体 XML

6、定义符号

定义符号也有两种语法格式,分别定义普通符号和公用符号:

符号类型 定义语法
普通符号
公用符号

符号值通常有两种形式:

(1)MIME:通用MIME类型的文件总是由相应的程序负责处理

(2)外部程序所在路径:直接指定某个外部程序负责处理XML文档中的外部数据

符号通常有两种用途:

(1)如上,符号可以用来定义未解析实体

(2)符号可以作为ENTITY或ENTITIES类型的属性值

(3)符号还可以作为NOTATION类型的属性的值,定义NOTATION类型的属性时,语法如下:

<!ATTLIST 属性所属的元素 属性名 NOTATION  (值1|值2|...) 约束 默认值>
Copy after login
Copy after login

比一般的属性定义多一个值的列表。

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template