日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xml引用xsd文件规则

發(fā)布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xml引用xsd文件规则 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://www.jk1123.com/?p=124
以前寫spring的配置文件的時候 一直搞不清楚在xml引入的xsd文件到底是怎么回事,只會從官方文檔拷貝一份用,今天細(xì)細(xì)地研究了一下,原來也不難,就那么回事,記錄下來

我們寫下如下的示例的xml文件

<?xml version="1.0" encoding="UTF-8"?> 這里添加一些描述信息 c++從入門到放棄 329.0 小笨蛋 javaweb開發(fā)實戰(zhàn) 212.09 小笨蛋 接下來我們要求對上面的xml文件中的元素和屬性加上限制

description元素可以有 也可以沒有 而且必須出現(xiàn)在book元素前面

id必須有 且 值是int類型

name必須有 名字是字符串類型

price必須有 價格是double類型

author必須有 作者是字符串

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

但是我們知道xml是可擴展的標(biāo)記語言 根本是無限制的 那么我們就要引入books.xsd文件 對他進行限制

寫下來如下規(guī)則:

<xs:schema xmlns=“http://xml.jk1123.com/books”
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:前綴
但是我們這里為啥沒寫前綴呢 因為我們決定將此命名空間作為默認(rèn)命名空間 所以省略不寫了
這也是為啥在下方代碼中: 我們可以直接寫book元素
<xs:element ref=“book” minOccurs=“1” maxOccurs=“unbounded”></xs:element>
如果這里我們沒有默認(rèn) 比方說這里寫成
xmlns:books=“http://xml.jk1123.com/books”
也即是說我們將使用該命名空間 前綴是books
那么那段代碼應(yīng)該寫成
<xs:element ref=“books:book” minOccurs=“1” maxOccurs=“unbounded”></xs:element>
所以一般情況下,我們都會有一個默認(rèn)命名空間

xmlns:xs="http://www.w3.org/2001/XMLSchema"這里的格式是 xmlns:前綴這里表示引入了 w3中xmlSchema官方命名空間 正式由于引入了這個命名空間 所以我們才可以使用下方那些<xs:element> <xs:documentation> 等等一些標(biāo)簽 這個元素都被定義在官方的命名空間中一個schema文件 必定會應(yīng)用該官方命名空間targetNamespace="http://xml.jk1123.com/books"表示此約束文件的命名空間的名字 這個名字可以隨便自定義,但是一般情況下我們都會寫成 http://公司域名/根元素的名字 比如這個例子中http://xml.jk1123.com 表示的jk1123我的一個個人域名 books表示該約束文件中根元素elementFormDefault="qualified"表示該約束文件約束的xml 所有的元素都必須有命名空間前綴version="0.0.1"表示此約束文件的版本--> <xs:element name="books"><!--表示使用該命名空間的根元素是books--><xs:annotation><xs:documentation><!--該xsd的描述信息 -->該xsd文件是對books命名空間的一些約束信息</xs:documentation></xs:annotation><xs:complexType><!--表示該類型是一個復(fù)合類型也就是還說在books元素下可以包含子元素和屬性--><xs:sequence><!--表示隊列 也就是說books元素中可以有以下元素 而且必須是有序的出現(xiàn) 順序不對也不行 --><xs:element name="description" maxOccurs="1" minOccurs="0"></xs:element><!--上面表示books元素可以包含子標(biāo)簽description 而且最多出現(xiàn)一次 必須出現(xiàn)在book子元素之前 --><xs:element ref="book" minOccurs="1" maxOccurs="unbounded"></xs:element><!--上面表示books元素可以包含子標(biāo)簽book 而且最少出現(xiàn)一次 必須出現(xiàn)在description子元素之后 最多無限制 --></xs:sequence></xs:complexType> </xs:element> <xs:element name="book"><xs:complexType><xs:sequence><xs:element type="xs:string" name="name" minOccurs="1" ></xs:element><xs:element type="xs:double" name="price" minOccurs="1"></xs:element><xs:element type="xs:string" name="author" minOccurs="1"></xs:element></xs:sequence><xs:attribute name="id" use="required" type="xs:int"></xs:attribute></xs:complexType> </xs:element>

</xs:schema>
如上的books.xsd文件就是對上面books.xml的限制

接下來我們的任務(wù)就是將xsd引入 books.xml代碼修改如下

<?xml version="1.0" encoding="UTF-8"?>

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

"> <!--http://xml.jk1123.com/books http://xml.jk1123.com/xsd/books.xsdxmlns="http://xml.jk1123.com/books"表示引入books命名空間 并且作為默認(rèn)命名空間xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"表示引入官方的命名空間XMLSchema-instance 并且前綴是xsi 約定俗成xsi當(dāng)然你可以寫 xyz一個xml文件必然會引入該命名空間 因為看下面xsi:schemaLocation="http://xml.jk1123.com/books http://xml.jk1123.com/xsd/books.xsd"使用xsi前綴 使用官方命名空間中schemaLocation元素 該元素的作用是告知命名空間對應(yīng)xsd位置語法如下xsi:schemaLocation="namespace名字 location地址"http://xml.jk1123.com/books http://xml.jk1123.com/xsd/books.xsd表示該命名空間對應(yīng)的xsd文件 在http://xml.jk1123.com/xsd/books.xsd網(wǎng)絡(luò)地址上 xml校驗器會去該位置下載xsd文件當(dāng)然如果你的xsd文件在本地 你可以寫相對地址 或者絕對地址 例如http://xml.jk1123.com/books books.xsd表示該xsd跟xml文件在同一個目錄下http://xml.jk1123.com/books file://E:\interllijworkspace\beike\xml\src\resource\books.xsd表示該xsd文件在本地磁盤的哪個目錄 --> <description>這里添加一些描述信息 </description> <book id="1"><name>c++從入門到放棄</name><price>329.0</price><author>小笨蛋</author> </book> <book id="2"><name>javaweb開發(fā)實戰(zhàn)</name><price>212.09</price><author>小笨蛋</author> </book> 接下來我們再嘗試寫一些不合法的值 ![在這里插入圖片描述](http://img.jk1123.com/blog/2018/04/18/05.png)

總結(jié)

以上是生活随笔為你收集整理的xml引用xsd文件规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。