XML基础总结
XML使用DOCTYPE来声明需要遵循的DTD文件。DOCTYPE声明紧跟在XML声明之后。
格式:<! DOCTYPE 文档名 SYSTEM “DTD文件路径”>
<! DOCTYPE 文档名 PUBLIC “DTD文件路径”>
直接在XML中嵌套DTD声明
格式:<! DOCTYPE 根元素名 [DTD定义语句]>
DTD 语法
1、元素声明:<! ELEMENT 元素名 元素的内容规范>
元素的内容规范:
- EMPTY 不包含数据内容,但可以有属性
- ANY 可以包含任何XML允许的内容
- 列出该元素允许的子元素
- 圆括号():将允许包含的所有子元素写在里面,以表示一个整体。
- 子元素和逗号,:子元素必须按照顺序出现。
- 子元素和竖线|:子元素从中选择,只能选择一个,只能出现一次。
- 只包含数据:只允许普通的文本字符串
- 既包含子元素又包含数据
子元素可以使用+、*、?等来标记。如果内有任何标记,则表示该子元素必须出现,而且只能出现一次。+标记表示必须出现1次以上;*标记表示可以出现任意次;?标记表示可以出现1次或者0次。
格式:<! ELEMENT 元素名(#PCDATA)>
格式:<! ELEMENT 元素名(#PCDATA|子元素名1|子元素名2|子元素名3|…|子元素n)*>
注意,#PCDATA必须出现在最前面,*必须在圆括号后面。
2、对属性的设置
<!ATTLIST 页面作者
姓名 CDATA #IMPLIED
年龄 CDATA #IMPLIED
联系信息 CDATA #REQUIRED
网站职务 CDATA #FIXED “页面作者”
个人爱好 CDATA “上网”
>
说明:#REQUIRED表示该属性必须设置;#IMPLIED表示该属性可有可无;#FIXED表示该属性必须为某一固定值。还可以直接使用默认值。
可以将属性设置为以下的十种类型:CDATA(普通文本字符串)、ENUMERATED(枚举)、ID(一个唯一的识别符)、IDREF(另一个元素的ID)和IDREFS(其他元素的一列ID)、NMTOKEN(一个有效的XML名字)和NMTO、NOTATION、ENTITY(一个实体名字)和ENTITYS(一列实体名字)。
3、定义实体
实体的作用是为一段文本设置一个别名,以后在引用这段文本的时候,就可以直接使用这个别名。在解析XML的时候,就可以把别名转变成相对应的文本内容。
格式:<! ENTITY …>
实体可以分为引用实体和参数实体。
引用实体
格式:<! ENTITY 实体名 “实体内容”>或者<! ENTRY 实体名 SYSTEM “外部XML的URL”>
引用方式:&实体名;
参数实体
格式:<! ENTITY %实体名 “实体内容”>
引用方式:%实体名;
举例:
<!ENTITY %info “姓名|EMAIL|电话|地址|”>
<!ELEMENT 个人信息 (%info;|职务)>
<!ELEMENT 客户信息 (%info;|公司名)>
XML命名空间
作用:区分XML标记的作用范围
引入namespaces后,完整的标记写法:<命名空间前缀:标记名>
命名空间前缀的声明是在标记的属性中引入的:
<标记名 xmlns:前缀名1=”URI1″ xmlns:前缀名2=”URI2″ xmlns::前缀名3=”URI3″ xmlns::前缀名4=”URI4″></标记名>
声明的命名空间只在声明该命名空间的元素及其子元素内有效。
默认的命名空间:<标记名 xmlns=”URI”>