xml引用xsd文件规则

转自:http://www.jk1123.com/?p=124
以前写spring的配置文件的时候 一直搞不清楚在xml引入的xsd文件到底是怎么回事,只会从官方文档拷贝一份用,今天细细地研究了一下,原来也不难,就那么回事,记录下来

我们写下如下的示例的xml文件

这里添加一些描述信息 c++从入门到放弃 329.0 小笨蛋 javaweb开发实战 212.09 小笨蛋 接下来我们要求对上面的xml文件中的元素和属性加上限制

description元素可以有 也可以没有 而且必须出现在book元素前面

id必须有 且 值是int类型

name必须有 名字是字符串类型

price必须有 价格是double类型

author必须有 作者是字符串

一个books元素中可以有多个book元素

但是我们知道xml是可扩展的标记语言 根本是无限制的 那么我们就要引入books.xsd文件 对他进行限制

写下来如下规则:

xmlns:xs=“http://www.w3.org/2001/XMLSchema”
targetNamespace=“http://xml.jk1123.com/books”
elementFormDefault=“qualified”
version=“0.0.1”>
xmlns=“http://xml.jk1123.com/books”
这里格式是 xmlns:前缀
但是我们这里为啥没写前缀呢 因为我们决定将此命名空间作为默认命名空间 所以省略不写了
这也是为啥在下方代码中: 我们可以直接写book元素

如果这里我们没有默认 比方说这里写成
xmlns:books=“http://xml.jk1123.com/books”
也即是说我们将使用该命名空间 前缀是books
那么那段代码应该写成

所以一般情况下,我们都会有一个默认命名空间

   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   这里的格式是  xmlns:前缀
   这里表示引入了   w3中xmlSchema官方命名空间 正式由于引入了这个命名空间 所以我们才可以使用下方那些
      等等一些标签  这个元素都被定义在官方的命名空间中
   一个schema文件 必定会应用该官方命名空间

   targetNamespace="http://xml.jk1123.com/books"
   表示此约束文件的命名空间的名字 这个名字可以随便自定义,
   但是一般情况下我们都会写成 http://公司域名/根元素的名字 比如这个例子中
   http://xml.jk1123.com 表示的jk1123我的一个个人域名  books表示该约束文件中根元素

   elementFormDefault="qualified"
   表示该约束文件约束的xml 所有的元素都必须有命名空间前缀

   version="0.0.1"
   表示此约束文件的版本

-->

    
        
            该xsd文件是对books命名空间的一些约束信息
        
    
    
        
            
            
            
            
        
    


    
        
            
            
            
        
        
    


如上的books.xsd文件就是对上面books.xml的限制

接下来我们的任务就是将xsd引入 books.xml代码修改如下

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="
http://xml.jk1123.com/books http://xml.jk1123.com/xsd/books.xsd

">


    这里添加一些描述信息


	c++从入门到放弃
	329.0
	小笨蛋


	javaweb开发实战
	212.09
	小笨蛋

接下来我们再尝试写一些不合法的值 ![在这里插入图片描述](http://img.jk1123.com/blog/2018/04/18/05.png)

你可能感兴趣的:(xml引用xsd文件规则)