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