新闻中心

您现在的位置: > 辉煌国际娱乐城 >

XML学习小结:有效的XML文件 定义:

来源:未知作者:admin 发布时间:2017-06-02 18:24 浏览量:
XML学习小结:有效的XML文件 定义:

1) 一个规范的XML文件。

2) 和某个DTD文件相关联。

3) 遵守该DTD文件规定的限制条件

例子:

dtdFile.dtd:

<!ELEMENT 列车时刻表 (T28次, T226次)>

<!ELEMENT T28次 (开车时间, 终到时间)>

<!ELEMENT T226次 (开车时间, 终到时间)>

<!ELEMENT 开车时间 (hour, minute)>

<!ELEMENT 终到时间 (hour, minute)>

<!ELEMENT hour (#PCDATA)>

<!ELEMENT minute (#PCDATA)>

Train.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE 列车时刻表 PUBLIC "-//ISO88/China/xml/CH" "dtdFile.dtd">

<列车时刻表>

<T28次>

<开车时间>

<hour>23点</hour>

<minute>12分</minute>

</开车时间>

<终到时间>

<hour>23点</hour>

<minute>12分</minute>

</终到时间>

</T28次>

<T226次>

<开车时间>

<hour>08点</hour>

<minute>45分</minute>

</开车时间>

<终到时间>

<hour>08点</hour>

<minute>45分</minute>

</终到时间>

</T226次>

</列车时刻表>

DTD文件对XML标记的约束:

DTD中对XML标记的约束是通过关键字(ELEMENT)

1) 规定标记的子标记:

<!ELEMENT 标记名称 (子标记列表) >

例如:

<!ELEMENT T28次 (开车时间, 终到时间)>

2) 子标记列表的尾加限定符号:

l +:该子标记必须出现一次或多次。

l *:该子标记可以出现0次或多次。

l ?:该子标记可以出现0次或一次。

例如:

<!ELEMENT 应聘信息 (应聘者)* >

3) 子标记的“或运算”:

分项可以是几个子标记的“或运算”

例如:

<!ELEMENT 应聘者 (姓名,(本科|硕士|博士),(奖励|处分)*,性别 ) >

4) 限制标记只有文本数据:

如果一个标记没有子标记,只有文本数据,那么可以使用#PCDATA来限制该标记。

文本数据可以是普通字符,CDATA段中内容、字符引用和实体引用。

格式如下:

<!ELEMENT 标记名称 (#PCDATA) >

5) 规定标记的混合内容:

一个标记的内容如果有子标记也有文本数据,那么将使用#PCDATA和若干子标记进行“或运算”,该运算必须用小括号扩起并在尾部加一个“*”号。

格式如下:

<!ELEMENT 标记名称 (#PCDATA|子标记1|子标记2|子标记3...|子标记m)* >

此种约束只能约束可以有哪些标记,不能约束标记出现的次数和顺序。

6) EMPTY和ANY:

如果准备约束一个标记是空标记或者只含空字符的非空标记,那么可以使用关键字EMPTY。

如果对一个标记没有任何约束可以使用关键字ANY

<!ELEMENT 标记名称 EMPTY >

<!ELEMENT 标记名称 ANY >

例子(或运算):

Dtdfile.dtd:

<!ELEMENT 应聘信息 (应聘者)* >

<!ELEMENT 应聘者 (姓名,(本科|硕士|博士),(奖励|处分)*,性别 ) >

<!ELEMENT 姓名 (#PCDATA) >

<!ELEMENT 本科 (#PCDATA) >

<!ELEMENT 硕士 (#PCDATA) >

<!ELEMENT 博士 (#PCDATA) >

<!ELEMENT 奖励 (#PCDATA) >

<!ELEMENT 处分 (#PCDATA) >

<!ELEMENT 性别 (#PCDATA) >,辉煌国际二站www.137.com;

Apply.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE 应聘信息 SYSTEM "dtdFile,辉煌国际二站www.137.com.dtd">

<应聘信息>

<应聘者>

<姓名>张林将</姓名>

<硕士>北大计算机理学硕士</硕士>

<奖励>获2005年光华奖学金</奖励>

<奖励>获2003年一等奖学金</奖励>

<处分>2004年被一次警告处分</处分>

<性别>男</性别>

</应聘者>

<应聘者>

<姓名>李小黎</姓名>

<博士>清华自动化专业工学博士</博士>

<奖励>获2003年度光华奖学金</奖励>

<性别>女</性别>

</应聘者>

<应聘者>

<姓名>王竟竟</姓名>

<本科>南京大学文学系文学学士</本科>

<性别>女</性别>

</应聘者>

</应聘信息>

例子(混合标记):

Dtdfile.dtd:

<!ELEMENT 列车时刻表 (车次)* >

<!ELEMENT 车次 (#PCDATA|开车时间|终到时间)* >

<!ELEMENT 开车时间 (#PCDATA) >

<,辉煌国际二站www.137.com;!ELEMENT 终到时间 (#PCDATA) >

Mix.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE 列车时刻表 PUBLIC "-//ISO88//raiway//ForXML/ch" "dtdFile.dtd">

<列车时刻表>

<车次>

T28

<开车时间>19:00PM</开车时间>

<终到时间>8:00AM</终到时间>

</车次>

<车次>

T226

<开车时间>21:00PM</开车时间>

<终到时间>10:00AM</终到时间>

</车次>

</列车时刻表>

相关新闻