龙空技术网

XML DTD元素和属性

寒笛过霜天 45

前言:

此时各位老铁们对“xml属性值包含特殊字符”大致比较看重,看官们都想要了解一些“xml属性值包含特殊字符”的相关资讯。那么小编同时在网摘上搜集了一些关于“xml属性值包含特殊字符””的相关资讯,希望咱们能喜欢,同学们快快来学习一下吧!

DTD元素

语法:

<!ELEMENT NAME CONTENT>

以上三个单词分别对应关键字、元素名称、元素类型(大写);

CONTENT包括以下三种:

(1)EMPTY:该元素不能包含子元素和文本, 但是可以有属性(即空元素);

<!ELEMENT 人 EMPTY><家庭><人 名字="皮诺曹" 性别="男" 年龄="6"/></家庭>

(2)ANY:该元素可以包含任何在DTD中定义的元素内容;

<!ELEMENT 人 ANY><家庭><人>皮诺曹</人><人><大人>皮诺曹爸爸</大人></人></家庭>

(3)#PCDATA:可以包含任何字符数据, 但是不能再其中包含任何子元素其它类型(组合), 必须要有括号(#PCDATA)。

<!ELEMENT 人 (#PCDATA)><家庭><人 性别="男" 年龄="6">皮诺曹</人></家庭>

组合类型如下所示:

<!ELEMENT 家庭(人+,家电*)><家庭><人 名字="郭大路" 性别="男" 年龄="25"/><人 名字="李寻欢" 性别="男" 年龄="38" 爱好="作个教育家和伟人"/><家电 名称="彩电" 数量="3"/></家庭>

修饰符如下所示:

编号 符号 用途 示例 示例说明

1 ( ) 用来给元素分组 (古龙|金庸),(王朔|余杰),三毛 分成三组

2 | 在列中的对象中选择一个 (男人|女人) 表示男人或者女人必须出现, 两者至少选一

3 + 该对象最少出现一次,可以出现多次 (成员+) 表示成员必须出现, 而且可以出现多个成员

4 * 该对象允许出现零次到多次 (爱好*) 爱好可以出现零次到多次

5 ? 该对象可以出现,但是只能出现(0到1次) (菜鸟?) 菜鸟可以出现, 也可以不出现, 但是如果出现的话, 最多只能出现一次

6 , 对象必须按指定的顺序出现 (西瓜,苹果,香蕉) 表示西瓜, 苹果, 香蕉必须出现, 并且按这个顺序出现

元素属性

语法:

<!ATTLIST 元素名称属性名称 类型 属性特点属性名称 类型 属性特点...>

其中类型包括四种:CDATA、ID、IDREF/IDREFS、Enumerated、ENTITY/ENTITIES;

属性特点包括四种:#REQUIRED、#IMPLIED、#FIXED value、#Default value。

属性类型:

CDATA:属性值可以使任何字符(包括数字和中文)

<!ATTLIST 木偶姓名 CDATA #REQUIRED><木偶 姓名="dirk"/><木偶 姓名="德克"/><木偶 姓名="dirk41"/>

ID:表明该属性的取值必须是唯一的。

<!ELEMENT 公司职员 ANY><!ATTLIST 公司职员编号 ID #REQUIRED姓名 CDATA #REQUIRED><公司职员 编号="1001" 姓名="张三"/><公司职员 编号="1002" 姓名="李四"/>

IDREF/IDREFS:IDREF属性的值指向文档中其它地方声明的ID类型的值;(reference:参考)

IDREFS与IDREF比较,可以具有由空格分开的多个引用。

<!ELEMENT 家庭(人+)><!ELEMENT 人 EMPTY><!ATTLIST 人relID ID #REQUIREDparentID IDREFS #IMPLIEDname CDATA #REQUIRED><家庭><人 relID="p01" name="爸爸"/><人 relID="p02" name="妈妈"/><人 relID="p03" parentID="p01 p02" name="儿子"/></家庭>

Enumerated:事先定义好一些值, 属性的值必须在所列出的值的范围内。(枚举类型)

<!ATTLIST person 婚姻状态(single|married|divorced|widowed) #IMPLIED><!ATTLIST person 性别(男|女) #REQUIRED>

属性的特点:

#REQUIRED:元素的所有实例都必须有该属性的值(NOT NULL)。

语法:<!ATTLIST 元素名 属性名 属性类型 #REQUIRED>

<!ATTLIST person number CDATA #REQUIRED><person number="5678"/>

#IMPLIED:元素的实例中可以忽略该属性(NULL)。即属性不是必需的

语法:<!ATTLIST 元素名 属性名 属性类型 #IMPLIED>

<!ATTLIST contact fax CDATA #IMPLIED><contact fax="555-667788"/><contact />

#FIXED value:元素实例中该属性的值必须为指定的固定值。

语法:<!ATTLIST 元素名 属性名 属性类型 #FIXED "value">

<!ATTLIST sender company CDATA #FIXED "Microsoft"><sender company="Microsoft"/>

Default value:为属性指定一个默认值。

语法:<!ATTLIST 元素名 属性名 属性类型 "value" //注意:关键字default可以不给定

<!ATTLIST payment type CDATA "check"><payment type="check"/>

标签: #xml属性值包含特殊字符