<!-- 注释 -->
一、文档声明:必须在文件开头
1、<?xml version="1.0" encoding="gbk">
属性:
(1)version: 版本号
(2)encoding: 编码
(3)standalone: 是否需要依赖其他文件
2、<![CDATA[ 内容]]>:内容中出现的特殊符号不需要转义
二、xml的约束
1、dtd约束 和 schema约束
2、dtd约束:
(1)<!ELEMENT 元素名 约束>
约束:
<1>如果有子元素,就写子元素列表
(元素名1[+/?/*],元素名2...)
+: 一次或多次
?: 零次或一次
*: 任意次
','换成'|': 在列出元素中选择一个
',': 表示元素必须按指定的顺序出现
<2>没有子元素,写元素类型
(#PCDATA): 字符串类型
EMPTY:元素为空
ANY: 任意
(2)dtd定义元素属性:
<!ATTLIST 元素名 属性名 属性类型 属性约束>
<1>属性类型:
CDATA: 普通文本字符串
ENUMERATED: 枚举(枚举值1|枚举值2...)
ID: 取值不能重复
<2>属性约束:
#REQUIRED: 必须出现
#IMPLIED: 可有可无
#FIXED: 固定值:#FIXED "固定值"
直接值:默认值
(3)定义运用实体:(写在内部dtd里,否则有些浏览器取不到值)
<!ENTITY 实体名 "实体内容">
在xml中引用: &实体名;
(4)xml文件中引入:
使用本地dtd文件: <!DOCTYPE 根元素名 SYSTEM "dtd文件路径">
使用内部dtd: <!DOCTYPE 根元素名 [ dtd代码 ]>
使用网络的dtd: <!DOCTYPE 根元素名 PUBLIC "dtd名称" "dtd文档的url">
3、schema约束:
(1)特点:
符合xml的语法
一个xml中可以有多个schema,多个schema使用名称空间区分(类似java的包)
schema中支持更多的数据类型
(2)<schema></schema>:最外层标签
标签写法为:<
schema xmlns="
http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/1"
xmlns:tns="http://www.example.org/1"
elementFormDefault="qualified">
属性:
xmlns: 默认使用的名称空间
targetNamespace: 声明该文档中的元素属于哪个命名空间
xmlns:tns: 该文档使用的元素和数据类型来自哪个命名空间,同时来自这个命名空间的元素和数据类型应该使用前缀xsd:
elementFormDefault="qualified": 指出XML文档使用在此schema中声明过的元素必须被命名空间限定
(3)<element></element>: 定义元素
<1>若有子元素:
<element><complexType><元素指示器>子element元素</元素指示器></complexType></element>
元素指示器:
sequence: 表示元素是有顺序的
all: 表示只能出现一次
Choice: 只能出现其中一个
设置属性:(放在</complexType>前)
<attribute></attribute>
属性:
name: 名称
type: 类型
use: 是否必须有
<2>若无子元素:
<element></element>
属性:
name: 数据名称
type: 数据类型
maxOccurs: 表示出现次数,="unbounded"时无限制
<any></any>: 可以出现任意元素
4、xml文件中引入:
<根元素名 xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.org/1"
xsi:schemaLocation="http://www.example.org/1 1.xsd">
属性:
xmlns: 声明默认约束来自哪个名称空间
xsi:schemaLocation: 引入的名称空间和哪个xsd文件对应,第一个为名称空间, 第二个为xsd文件路径.