xml学习总结(一)
xml DTD
定义元素<!ELEMENT 元素名 元素类型描述 >
(1)元素类型描述:任意类型,字符串型,空元素,包含子元素,混合类型
任意类型:
<?xml version="1.0" encoding="GB2312" standalone="yes"?> <!DOCTYPE 书籍列表[ <!ELEMENT 书籍列表 ANY> ]> <书籍列表> 书籍列表 </书籍列表>
<?xml version="1.0" encoding="GB2312" standalone="yes"?> <!DOCTYPE 书籍列表[ <!ELEMENT 书籍列表 ANY> ]> <书籍列表/>
字符串类型:
<?xml version="1.0" encoding="GB2312" standalone="yes"?> <!DOCTYPE 书籍列表[ <!ELEMENT 书籍列表 (#PCDATA)> ]> <书籍列表>描述</书籍列表>
空类型
<?xml version="1.0" encoding="GB2312" standalone="yes"?> <!DOCTYPE 书籍列表[ <!ELEMENT 书籍列表 EMPTY> ]> <书籍列表/>
混合类型
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT 喜欢的游戏 (#PCDATA | 游戏)*> <!ELEMENT 游戏 (#PCDATA | 游戏名称 | 游戏类型)*> <!ELEMENT 游戏名称 (#PCDATA)> <!ELEMENT 游戏类型 (#PCDATA)>
<?xml version="1.0" encoding="GB2312"?> <!DOCTYPE 喜欢的游戏 SYSTEM "mixed.dtd"> <喜欢的游戏> 游戏和编程是类似的,都是一种兴趣 <游戏> <游戏类型>动作格斗</游戏类型> <游戏名称>侍魂</游戏名称> 适合释放紧张的、沉闷的感觉 </游戏> <游戏> 放松、舒缓心情的好游戏。 <游戏名称>雷电</游戏名称> <游戏类型>飞行射击</游戏类型> </游戏> <游戏> <游戏名称>雷电</游戏名称> </游戏> <游戏> <游戏名称>雷电</游戏名称> <游戏名称>侍魂</游戏名称> </游戏> </喜欢的游戏>
(2)定义子元素
有序子元素-----使用英文(,)作为子元素之间的分割符
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT 书籍列表 (计算机书籍)*> <!ELEMENT 计算机书籍 (书名,作者,价格,简要介绍)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 价格 (#PCDATA)> <!ELEMENT 简要介绍 (#PCDATA)>
互斥------使用(|)隔开
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT 书籍列表 (计算机书籍)*> <!ELEMENT 计算机书籍 (书名|作者|价格)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 价格 (#PCDATA)>
子元素出现的频率
+:可以出现一次货多次
*:可以出现零次或多次
?:可以出现零次或一次
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT 书籍列表 (计算机书籍)*> <!ELEMENT 计算机书籍 (书名|作者*|价格+|简要介绍?)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 价格 (#PCDATA)> <!ELEMENT 简要介绍 (#PCDATA)>
组合子元素
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT 书籍列表 (计算机书籍)*> <!ELEMENT 计算机书籍 ((书名+,作者)|(价格,简要介绍))> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 价格 (#PCDATA)> <!ELEMENT 简要介绍 (#PCDATA)>
无序子元素
<?xml version="1.0" encoding="GB2312"?> <!ELEMENT 书籍列表 (计算机书籍)*> <!ELEMENT 计算机书籍 (书名|作者|价格)+> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 价格 (#PCDATA)>
(3)定义属性
<!ATTLIST 属性所属的元素 属性名 属性类型 [元素对属性的约束] [默认值]>
属性约束:
->#REQUIRED:必须为该元素提供该属性
->#IMPLIED:该属性值可有可无
->#FIXED:必须为该属性值指定默认值
属性类型:
CDATA ------------------属性值只能是字符串数据
(en1|en2)--------------枚举类型
ID------------------------属性的有效标示符(唯一)
IDREF--------------------引自另一个已有的ID属性值
IDREFS-------------------引自多个ID,之间用空格分隔
ENTITY-------------------一个外部实体,例如图片文件
ENTITIES-----------------多个外部实体,多实体之间用空格隔开
XML:--------------------预定义的XML值