XML的文档声明<?xml version="1.0" encoding="UTF-8" ?>
xml转义字符
<![CDATA[内容]]>
实例:
<![CDATA[
<student stuno=‘s01‘>
<name>张三</name>
<age>23</age>
<sex>男<</sex>
</student>
]]>
XML的约束文档DTD和Schem
DTD的元素定义
1.定义元素的语法:<!ELEMENT 元素名 内容类型或内容>
①内容类型:EMPTY 定义空元素 ANY元素内容是任意的
②元素的内容:
元素的内容可以是文本数据,可以是子元素
<!ELEMENT name (#PCDATA)>表示name元素的内容为文本 <name>zansan</name>
<!ELEMENT student (name, age, gender)> 表示student元素的内容为子元素
③子元素出现的次数:
可以使用 “?” “+” “*”来指定子元素出现的次数
<!ELEMENT students (student?)> ?表示students元素可以有0-1个student元素
<!ELEMENT students (student*)> * 表示students元素①可以有0-n个student子元素
<!ELEMENT students (student+)> + 表示students元素可以有1-n个student子元素
④多个子元素:
<!ELEMENT student (name, age, gender)>表示必须有三个子元素,并且者三个子元素 出现顺序要与申明顺序保持一致
⑤枚举子元素:
<!ELEMENT student (name|age|gender)>表示只要一个子元素,可以是name,age,sex中 任意一个。
2.元素属性的语法:
<!ATTLIST 元素名
属性名1 属性类型 属性说明
属性名2 属性类型 属性说明...>
常见的属性类型:CDATA 表示文本类型 ;ID 属性值是唯一的
常见的设置说明:#REQUIRED 表示属性是必须的
#IMPLIED 表示属性可选的
Schema概述
? DTD的局限性
DTD不遵循XML语法
DTD数据类型有限
DTD不可扩展
DTD不支持命名空间(命名冲突)
? Schema的新的特性
Schema基于xml语法
Schema可以用能处理xml文档的工具处理
Schema大大扩充了数据类型,可以自定义数据类型
Schema支持属性组
Schema约束的元素
Schema元素 (只要是schema约束,都以schema元素作为根节点)
作用:包含已经定义的schema
用法;<xs:schema> xs就是命名空间的别名,可以自定义,我们都用默认的
属性:xmlns 约束当前xml的命名空间
targetNamespace
Element元素
声明一个元素
<
属性:
name :元素的名称 type :属性的类型 ref:引用已定义的元素
maxoccurs 最多出现的次数 minoccurs 最少出现的次数
Attribute属性
作用:声明一个属性
<xs:attribute name="stuno" type="xs:int" use="optional"></xs:attribute>
Name:属性名 type:属性类型 use是否是必填 ref 外部属性的引用
complexType 元素定义复杂类型
<xs:element name="student"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="gender" type="xs:string"/> </xs:sequence> <xs:attributeGroup ref="stuattr"/> </xs:complexType> </xs:element> <xs:attributeGroup name="stuattr"> <xs:attribute name="stuno" type="scorest" use="required"/> </xs:attributeGroup> <!-- 0-100的数值约束--> <xs:simpleType name="scorest"> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType>