您的位置:首页 > 其它

XML和DTD学习

2011-05-10 09:14 141 查看
<!--
写一个dtd和xml文件,要求描述电影的信息,至少包括两条电影信息
信息包括:电影编码/电影名称/上映时间/导演/主演/时长/种类
要求:
Dtd元素是有序的,电影编码作为电影名称的属性,名称是必须的,

上映时间可以有多个(地区作为上映时间的属性)
所属种类包括:科幻片/动作片/喜剧片, Dtd/xml是单独文件
-->

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

<!ELEMENT 电影院 (电影)+ >
<!-- 根:电影院包含子元素电影1个或多个     -->
<!ATTLIST 电影 种类 (科幻片|动作片|喜剧片) #REQUIRED>
<!-- 电影里有属性:种类,(#REQUIRED)必须有,
种类是泛型,上面3选1   -->
<!ELEMENT 电影 (名称,导演,主演,时长,上映时间+)>
<!-- 电影内包含名称,导演,主演,时长,
上映时间的顺序子元素,上映时间可以有多个     -->
<!ELEMENT 名称 (#PCDATA)>
<!-- PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。
PDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。
-->
<!ATTLIST 名称 电影编码 CDATA #REQUIRED>
<!-- 名称里必须有属性电影编码,值为字符数据 (character data)  -->
<!ELEMENT 导演 (#PCDATA)>
<!ELEMENT 主演 (#PCDATA)>
<!ELEMENT 时长 (#PCDATA)>
<!ELEMENT 上映时间 (#PCDATA)>
<!ATTLIST 上映时间 地区 CDATA #REQUIRED>
<!-- 上映时间里必须有属性地区,值为字符数据 (character data)  -->


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 电影院 SYSTEM "moive.dtd">

<电影院>
<电影 种类="动作片">
<名称 电影编码="001">关云长</名称>
<导演>不知道</导演>
<主演>甄子丹</主演>
<时长>1H</时长>
<上映时间 地区="广州">2011-05-01</上映时间>
<上映时间 地区="上海">2011-05-02</上映时间>
<上映时间 地区="北京">2011-04-29</上映时间>
</电影>
<电影 种类="动作片">
<名称 电影编码="002">战国</名称>
<导演>不知道</导演>
<主演>不知道</主演>
<时长>1.5H</时长>
<上映时间 地区="广州">2011-05-01</上映时间>
<上映时间 地区="上海">2011-05-02</上映时间>
<上映时间 地区="北京">2011-04-29</上映时间>
</电影>
<电影 种类="科幻片">
<名称 电影编码="003">钢铁侠2</名称>
<导演>不知道</导演>
<主演>钢铁侠</主演>
<时长>1.3H</时长>
<上映时间 地区="美国">2010-05-01</上映时间>
<上映时间 地区="中国">2010-05-02</上映时间>
<上映时间 地区="香港">2010-04-29</上映时间>
</电影>
</电影院>


下面的实体在 XML 中被预定义:

实体引用字符
<<
>>
&&
""
''

以下是属性类型的选项:

类型描述
CDATA值为字符数据 (character data)
(en1|en2|..)此值是枚举列表中的一个值
ID值为唯一的 id
IDREF值为另外一个元素的 id
IDREFS值为其他 id 的列表
NMTOKEN值为合法的 XML 名称
NMTOKENS值为合法的 XML 名称的列表
ENTITY值是一个实体
ENTITIES值是一个实体列表
NOTATION此值是符号的名称
xml:值是一个预定义的 XML 值

默认值参数可使用下列值:

解释
属性的默认值
#REQUIRED属性值是必需的
#IMPLIED属性不是必需的
#FIXED value属性值是固定的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: