自定义XML

目录:
xml简介
xml语法
dtd简介
dtd语法
案例

XML

简介

1、XML 指可扩展标记语言(eXtensible Markup Language)
2、XML 被设计用来传输和存储数据,是通用的数据传输方式,兼容性非常好,XML 于 1998 年 2 月 10 日成为 W3C 的推荐标准。
3、XML和HTML结构非常像,但两者有着本质区别。XML针对数据传输。HTML针对数 据展示
4、因为 XML 语言没有预定义的标签,所以如果我们要规范XML那么就必须用到DTD文件了

XML实例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html SYSTEM "TrainNumber03.dtd">
<Person>
	<Name>张三</Name>
	<Age>18</Age>
	<Sex>女</Sex>
</Person>

注意:xml文件开通一定要声明

version 代表版本     encoding 代表编码格式
<?xml version="1.0" encoding="UTF-8"?>

dtd文件

简介

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。简单了解就是制定了xml数据格式规范。

语法

xml使用DTD

方法1:外部文件引入XML

<!DOCTYPE 根节点名称 SYSTEM "文件名.dtd">

方法2:使用内部dtd文件

<!DOCTYPE 根节点名称 [
    dtd文件信息
]>

元素

声明节点。并指定它的子节点

dtd:
单个子节点
<!ELEMENT a (b)>
多个子节点
<!ELEMENT a (b, c)>
声明一下子节点(也可用不声明,不声明那么就是混乱规则。子节点内的规则并没有被元素)
<!ELENEET b (#PCDATA)>
<!ELEMENT c (#PCDATA)>
xml
<a>
	<b>1<b>
	<c>c<c>
<a>

声明一个文本节点

dtd:
<!ELEMENT a (#PCDATA)>
xml:
<a>我是文本<a>

声明一个空节点

dtd:
<!ELEMENT br EMPTY>
XML:
<br />

特别注意:子节点可多个根节点只能有一个

属性

语法:
<!ATTLIST 点名称 属性名称 CDATA #REQUIRED| #IMPLIED| #FIXED "固定的值">
例:
dtd:
<!ELEMENT note EMPTY>
<!ATTLIST note border CDATA #REQUIRED>
xml:
<note border="1"/>

REQUIRED: 必须设置该属性

IMPELIPD:可用设置也可用不设置

FIXED:说明该属性取值固定为一个值,在XML中不能为该属性设置其它值。 但需要为该属性提供这个值.

FIXED的声明方式

dtd
<!ATTLIST sender company CDATA #FIXED "Microsoft">
合法的 XML:
<sender company="Microsoft" />
非法的 XML:
<sender company="W3Schools" />

元素次数限制
也就是我们指定子节点在其父节点中出现的次数

符号 次数
  • | 1 ~ n
  • | 0 ~ n
    ? | 0 ~ 1
    不指定|必须也只能出现 1次

例:

<!ELEMENT Persons (Person+)>

案例

使用xml展示车次信息,并使用dtd规范格式

DTD:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT TrainNumbers (TrainNumber+)>
<!ELEMENT TrainNumber (Number, Startadd, Endadd, StartTime, EndTime, Diachronic)>
<!ELEMENT Number (#PCDATA)>
<!ELEMENT Startadd (#PCDATA)>
<!ELEMENT Endadd (#PCDATA)>
<!ELEMENT StartTime (#PCDATA)>
<!ELEMENT EndTime (#PCDATA)>
<!ELEMENT Diachronic (#PCDATA)>

XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TrainNumbers SYSTEM 'TrainNumberD.dtd'>
<TrainNumbers>
	<TrainNumber>
		<Number>k1375</Number>
		<Startadd>长沙</Startadd>
		<Endadd>上海南</Endadd>
		<StartTime>00:06</StartTime>
		<EndTime>15:13</EndTime>
		<Diachronic>15:07</Diachronic>
	</TrainNumber>
	<TrainNumber>
		<Number>G1342</Number>
		<Startadd>长沙南</Startadd>
		<Endadd>上海虹桥</Endadd>
		<StartTime>07:06</StartTime>
		<EndTime>12:14</EndTime>
		<Diachronic>05:08</Diachronic>
	</TrainNumber>
	<TrainNumber>
		<Number>G1778</Number>
		<Startadd>长沙南</Startadd>
		<Endadd>上海虹桥</Endadd>
		<StartTime>07:15</StartTime>
		<EndTime>12:54</EndTime>
		<Diachronic>07:22</Diachronic>
	</TrainNumber>
</TrainNumbers>

更详细请查看:
XML教程
DTD教程

posted @ 2019-05-23 16:23  小cai一碟  阅读(1045)  评论(0编辑  收藏  举报