更新時(shí)間:2020-08-28 08:07:38 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1566次
學(xué)習(xí)XML教程的時(shí)候,很多朋友都看到過(guò)XML文件視頻教程,其中有一部分是講的約束文檔。

在xml技術(shù)里,編寫(xiě)一個(gè)文檔/文件來(lái)約束一個(gè)xml文檔的書(shū)寫(xiě)規(guī)范、稱(chēng)為xml約束。因?yàn)闆](méi)有約束 編寫(xiě)的xml文件格式就不統(tǒng)一。
xml dtd document type definition 文檔類(lèi)型定義
xml xsd xml schema definition 維基
xml schema 本身也是一種xml 所以它也要引用schema 文件來(lái)規(guī)范
<schema xmlns="http://www.w3.org/2001/XMLSchema"> </schema>
xmlnsd 的全稱(chēng)是 xml namespace 命名空間
那么這么多xsd 我們?nèi)绾螀^(qū)分它們呢(當(dāng)然不能僅僅通過(guò)文件名),那么就可以為每個(gè)xsd文件設(shè)置一個(gè)標(biāo)識(shí),這個(gè)標(biāo)識(shí)就是 targetNameSpace
<schema xmlns="http://www.soulsinkind.com" targetNamespace="http://copyLi.com"> </shema>
而targetNameSpace 這個(gè)屬性的定義來(lái)源就是 xmlns 中定義的
而targetNameSpace 這個(gè)屬性的值是一個(gè)url,但是它可能根本不是一個(gè)存在的url
而schema 標(biāo)簽中還有一個(gè)重要的屬性,那就是elementFormDefault 這個(gè)屬性的值只有兩個(gè),一個(gè)是qualified 和 unqualified。代表的意思分別是 應(yīng)用這個(gè)xsd 的其他xml文件 是否遵守xsd文件定義的所有標(biāo)簽元素、qualified就是遵守 而unqualified就是只遵守根元素、一般都是qualified 默認(rèn)值是unqualified
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://copyLi.com" elementFormDefault="qualified"> <!--根元素--> <element name="書(shū)架"> <!--代表是一個(gè)復(fù)雜的類(lèi)型--> <complexType> <!--maxOccurs 代表了最大的數(shù)目、unbounded 代表可以放置無(wú)限多--> <sequence maxOccurs="unbounded"> <!--第二個(gè)元素--> <element name="書(shū)"> <complexType> <sequence> <element name="書(shū)名" type="string"/> <element name="作者" type="string"/> <element name="售價(jià)" 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>
這個(gè)xml文件引用了xsd 一個(gè)是 spring 自己的 一個(gè)是w3c 的,為啥要引用w3c的呢?因?yàn)橐褂玫竭@個(gè)xsd 中的 schemaLocation 屬性 這個(gè)屬性表明了這個(gè)xsd 文件的位置
因?yàn)樵谕粋€(gè)xml中引用到了兩個(gè)xsd 文件 這個(gè)時(shí)候如何區(qū)分呢,那就是通過(guò)別名了
xmlns:xsi-----> xsi 這個(gè)就是這個(gè)xsd 的別名 所以使用schemaLocation屬性時(shí)就加上了xsi
而schemaLocation 這個(gè)值得設(shè)置就是
xsd的targeNameSpa xsd的文件路徑
以上就是對(duì)XML約束文檔的一些介紹,其他Java視頻教程可從官網(wǎng)視頻頁(yè)面中免費(fèi)下載。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)