一文看懂xml文件

开都不用说,这是固定个格式:

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

这说明xml的版本是1.0 ,用的是UTF-8的编码格式,版本我们一直都是用1.0版的,这个编码格式你应该根据具体情况改。

我们知道xml是可以定义自己的标签的,那摩我们在写框架时使用标签为什么会有限制呢?那是因为文件中引入了约束文件,基本上都是引入.dtd文件

引入dtd文件有三种方式:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 约束文件引入的三种方式 -->
<!-- 1 通过本地文件引入 -->
<!DOCTYPE person SYSTEM "day.dtd">
<!-- 2 通过文件内部定义约束 -->
<!DOCTYPE person [
	<!ELEMENT person (name,age)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
]>
<!-- 3 通过网络文件引入 -->
<!DOCTYPE 根元素 public "文件名" "文件的URL路径">
<!DOCTYPE struts PUBLIC   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    
 "http://struts.apache.org/dtds/struts-2.0.dtd">

好了有了约束文件我们只能按照他们限定的标准来写了,如果不符合其标准会报错的额。

让我们来看看这个dtd文件的书写方法吧!

元素定义

在DTD文档中使用ELEMENT关键字来声明一个XML元素。

语法:<!ELEMENT 元素名称 使用规则>

使用规则:
(#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)
EMPTY:用于指示元素的主体为空。比如<br/>
ANY:用于指示元素的主体内容为任意类型。
(子元素):指示元素中包含的子元素

定义子元素及描述它们的关系:
如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。
如: <!ELEMENT FILE (TITLE,AUTHOR,EMAIL)
如果子元素用“|”分开,说明任选其一。
如:<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)

用+、*、?来表示元素出现的次数
+:表示至少出现一次,一次或多次
*:表示可有可无,零次、一次或多次
?:表示可以有也可以无,有的话只能有一次。零次或一次

属性定义

在DTD文档中使用ATTLIST关键字来声明属性

语法:<!ATTLIST 元素名称
属性名  属性类型  约束
属性名  属性类型  约束
……….
>

属性值类型:

CDATA:表示属性的取值为普通的文本字符串
ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
ID:表示属性的取值不能重复,属性的值只能由字母,下划线开始,不能出现空白字符

属性约束设置说明

#REQUIRED:表示该属性必须出现
#IMPLIED:表示该属性可有可无
#FIXED:表示属性的取值为一个固定值。语法:#FIXED “固定值”
直接值:表示属性的取值为该默认值

<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 购物篮 [
	<!ELEMENT 肉 EMPTY>
	<!ATTLIST 肉 品种 ( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">
]> 
<购物篮>
	<肉 品种="鱼肉"/>
	<肉 品种="牛肉"/>
	<肉/>
</购物篮>

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注