学习XML教程的时候,很多朋友都看到过XML文件视频教程,其中有一部分是讲的约束文档。
在xml技术里,编写一个文档/文件来约束一个xml文档的书写规范、称为xml约束。因为没有约束 编写的xml文件格式就不统一。
xml dtd document type definition 文档类型定义
xml xsd xml schema definition 维基
xml schema 本身也是一种xml 所以它也要引用schema 文件来规范
<schema xmlns="http://www.w3.org/2001/XMLSchema"> </schema>
xmlnsd 的全称是 xml namespace 命名空间
那么这么多xsd 我们如何区分它们呢(当然不能仅仅通过文件名),那么就可以为每个xsd文件设置一个标识,这个标识就是 targetNameSpace
<schema xmlns="http://www.6acf.com" targetNamespace="http://copyLi.com"> </shema>
而targetNameSpace 这个属性的定义来源就是 xmlns 中定义的
而targetNameSpace 这个属性的值是一个url,但是它可能根本不是一个存在的url
而schema 标签中还有一个重要的属性,那就是elementFormDefault 这个属性的值只有两个,一个是qualified 和 unqualified。代表的意思分别是 应用这个xsd 的其他xml文件 是否遵守xsd文件定义的所有标签元素、qualified就是遵守 而unqualified就是只遵守根元素、一般都是qualified 默认值是unqualified
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://copyLi.com" elementFormDefault="qualified"> <!--根元素--> <element name="书架"> <!--代表是一个复杂的类型--> <complexType> <!--maxOccurs 代表了最大的数目、unbounded 代表可以放置无限多--> <sequence maxOccurs="unbounded"> <!--第二个元素--> <element name="书"> <complexType> <sequence> <element name="书名" type="string"/> <element name="作者" type="string"/> <element name="售价" type="string"/> </sequence> </complexType> </element> </sequence> </complexType> </element></schema>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>
这个xml文件引用了xsd 一个是 spring 自己的 一个是w3c 的,为啥要引用w3c的呢?因为要使用到这个xsd 中的 schemaLocation 属性 这个属性表明了这个xsd 文件的位置
因为在同一个xml中引用到了两个xsd 文件 这个时候如何区分呢,那就是通过别名了
xmlns:xsi-----> xsi 这个就是这个xsd 的别名 所以使用schemaLocation属性时就加上了xsi
而schemaLocation 这个值得设置就是
xsd的targeNameSpa xsd的文件路径
以上就是对XML约束文档的一些介绍,其他Java视频教程可从官网视频页面中免费下载。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习