schema约束
dtd语法:<!ELEMENT 元素名称 约束>
schema符合xml的语法,xml语句
一个xml中可以有多个schema,多个schema用名称空间区分(类似java包名)
dtd里面有PCDATA类型,但是在schema里面可以支持更多的数据类型
比如年龄只能是整数,在schema里面可以直接定义一个整数类型
schema语法更加复杂,目前不能代替dtd
快速入门
*创建一个schema文件(后缀名一般为.xsd)
根节点为<schema>
**在schema文件里面
属性:xmlns="http://www.w3.org/2001/XMLSchema"//表示当前xml文件是一个约束文件
targetNamespace="http://www.zyf.cn/20191111"//使用schema约束文件,直接通过这个地址引入约束文件
elementFormDefault="qualified"//表示元素质量良好
(1)看xml中有多少个元素
<element>
(2)看是简单元素还是复杂元素
1 <element name="person"> 2 <complexType> 3 <sequence> 4 <element name="name" type="string"></element> 5 <element name="age" type="int"></element> 6 </sequence> 7 </complexType> 8 </element>
(3)在被约束的文件中引入约束文件
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"//其中instance表明这是一个被约束的xml
xmlns="http://www.itcast.cn/20151111"//这与约束文件中的targetNamespace相同
xsi:schemaLocation="http://www.itcast.cn/20151111 2.xsd">//targetNamespace+空格+约束文件路径