1. 程式人生 > >XML——DTD與XSD的區別

XML——DTD與XSD的區別

    XML我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下DTD,XSD的區別並以XSD為例看spring中定義與使用。

一.DTD(Documnet Type Definition)

    1、DTD    即文件型別定義,是一種XML約束模式語言,是XML檔案的驗證機制,屬於XML檔案組成的一部分。

    2、DTD 是一種保證XML文件格式正確的有效方法,可以通過比較XML文件和DTD檔案來看文件是否符合規範,元素和標籤使用是否正確。 一個 DTD文件包含:元素的定義規則,元素間關係的定義規則,元素可使用的屬性,可使用的實體或符號規則。
    3、DTD和XSD相比:DTD 是使用非 XML 語法編寫的。
    4、DTD 不可擴充套件,不支援名稱空間,只提供非常有限的資料型別 .

二.XSD(XML Schemas Definition)

    1、XML Schema語言也就是XSD。XML Schema描述了XML文件的結構。

    2、可以用XML Schema來驗證xml文件是否符合其要求,由於XML Schema本身就是一個XMl格式的,它可以用通用的XML解析器來進行解析(如DOM4j)。xsd之所以能成為dtd的替代品,是因為xsd的的可擴充套件性比較強,它支援名稱空間、資料型別。

    3、XML Schema的優點:

    ①、XML Schema基於XMl語言,沒有專門的語言

    ②、XML Schema可以像其他XML檔案被XML解析器解析

    ③、XML Schema提供了更多的資料型別

    ④、XML Schema支援名稱空間

    ⑤、XML Schema支援屬性組

  三.spring中spring-beans-2.5.xsd

Java程式碼  收藏程式碼

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>  
        <xsd:schema xmlns="http://www.springframework.org/schema/beans"  
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
                targetNamespace="http://www.springframework.org/schema/beans">  
                      
            <!-- base types -->  
            <xsd:complexType name="identifiedType" abstract="true">         
                <xsd:attribute name="id" type="xsd:ID">  
                </xsd:attribute>  
            </xsd:complexType>  
          
        </xsd:schema>  
    ①、schema元素為所有XML Schema模式文件的根元素,它用於宣告該XML文件是一個XML Schema文件。該模式文件本身也一個XML文件,自己的名稱空間為xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd為其字首。
    ②、Schema中targetNamespace定義了Schema定義出的新元素與屬性的名稱空間。也就是它是對所定義的XML模型進行限制:限制定義出的元素,或者屬性的名稱空間.

四.Spring中配置檔案對XSD檔案的使用

Java程式碼  收藏程式碼

    <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-2.5.xsd
>

說明:在使用XML Schema 文件對XML例項文件進行檢驗,除了要宣告名稱空間外(xmlns="http://www.springframework.org/schema/beans"),還必須指定該名稱空間所對應的XML Schema文件的儲存位置.
通過schemaLocation屬性來指定名稱空間所對應的XML Schema文件的儲存位置,它包含兩個部分,一部分是名稱空間的URI,第二部分就是該名稱空間所標識的XML Schema檔案位置或URL地址
(xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd)

相關推薦

XML——DTDXSD區別

    XML我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下DTD,XSD的區別並以XSD為例看spring中定義與使用。一.DTD(Documnet Type Definition)    1、DTD    即文件型別定義,是一種XML約束模式語言,是

DTDXSD區別

DTD(Document Type Definition)即文件型別定義,是一種XML約束模式語言,是XML檔案的驗證機制一個DTD文件包含:(1)元素的定義規則;(2)元素間關係的定義規則;(3)元素可使用的屬性,可使用的實體或符號規則新建一個.dtd檔案:<!ELE

SqlMap.xml中$#的區別

在Ibatis中我們使用SqlMap進行Sql查詢時需要引用引數,在引數引用中遇到的符號#和$之間的區分為,#可以進行與編譯,進行型別匹配,而$不進行資料型別匹配, 例如: select * from table where id = #id# ,其中如果欄位id為字元

springmvc配置檔案web.xml中//*的區別

<!-- 配置springmvc的 DispatcherServlet ctrl+alt+向上鍵 --><servlet><servlet-name>springDispatcherServlet</servlet-name>

不認識spring xml配置檔案dtdxsd型別,血淚的教訓啊

今天在初次使用spring原始碼的時候,在spring4.2中使用了xsd型別的配置檔案,導致一直解析配置檔案出錯: 找不到元素 'beans' 的宣告 後來從原始碼工程的test/sources目錄中copy新的dtd格式,該巴改巴就成功了。真是汗啊(⊙﹏⊙)b 記住了,

xml html 區別

sim 顯示數據 類型 打開 替代品 title extent 知識 col 一、什麽是HTML 帶著疑問走到這裏,一句話:HTML(HyperTextMark-upLanguage)即超文本標記語言,是WWW的描述語言。 如果想了解更多請看以下博客:

Maven配置setting.xml值MirrorRepository區別

.so doc 相關 分享 感嘆號 匹配 osi 本地倉庫 緩存 1 Repository(倉庫) 1.1 Maven倉庫主要有2種: remote repository:相當於公共的倉庫,大家都能訪問到,一般可以用URL的形式訪問 local reposito

xml名稱空間xsd檔案

xml 名稱空間 使用名稱空間來避免衝突 <h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Apples</h:td>

在web.xml中classpath和classpath*的區別。//*的區別

那麼在META-INF/spring這個資料夾底下的所有application-context.xml都會被載入到上下文中,這些包括META-INF/spring資料夾底下的 application-context.xml,META-INF/spring的子資料夾的application-context.x

schemaDTD檔案的區別

   Schema是對XML文件結構的定義和描述,其主要的作用是用來約束XML檔案,並驗證XML檔案有效性。DTD的作用是定義XML的合法構建模組,它使用一系列的合法元素來定義文件結構。它們之間的區別有下面幾點:        1、Schema本身也是XML文件,DTD定義

在Eclipse中匯入dtdxsd檔案,使XML自動提示

DTD 型別約束檔案     1. Window->Preferences->XML->XML Catalog->User Specified Entries視窗中,選擇Add 按紐     2.在Add XML Catalog Entry 對話方塊中選擇或輸入以下內容:       

Web.xml的使用區別

web.xml的配置中<context-param>配置作用: 1.啟動一個WEB專案的時候,容器(如:Tomcat)會去讀它的配置檔案web.xml.讀兩個節點: <listene

HAProxyNginx區別

時間 請求 也會 維護 異常 會有 訪問 haproxy 失敗 1)HAProxy對於後端服務器一直在做健康檢測(就算請求沒過來的時候也會做健康檢查):後端機器故障發生在請求還沒到來的時候,haproxy會將這臺故障機切掉,但如果後端機器故障發生在請求到達期間,那麽前端訪問

axis2cxf區別

開源社區 -s 實現 部署 廣泛 asi -a ice 喜歡 1.CXF支持 WS-Addressing,WS-Policy, WS-RM, WS-Security和WS-I Basic Profile。Axis2不支持WS-Policy,但是承諾在下面的版本支持。 2.

C#中outref區別

erro 變量 但是 color 賦值 運行 網上 ann amp 一、ref(參考)與out區別 1、out(只出不進) 將方法中的參數傳遞出去,在方法中將該參數傳遞出去之前需要在該方法起始賦初值;在方法外傳遞的該參數可以不用賦值; 簡單理解就是:將一個東西拋出去之前必須

get( )getline( )區別

clas 輸入緩沖 ont blog 函數 std etl con span get與getline區別不是很大,但一個明顯的區別是get遇到 ‘\n ‘字符後便返回,這是 ‘\n ‘還在緩沖區中,所以下次讀出來的將是 ‘\n ‘,而getline遇到 ‘\n ‘也返

dynamocassandra區別

ffi out thrown ive for enc coord towards ren 雖說cassandra是dynamo的開源版本,但兩者還是有很大區別的。 coordinator的選取: 在dynamo論文中,一般是preference list中N個副本的第一個

cocos2d-x 中XML解析數據存儲

lba false 網上 unsigned failed popu new ccm cfile 一不小心就玩了一周的遊戲了。哎。玩的時候時間過得總是這麽快。。。 於是今天決定看一下之前不怎麽非常熟悉的XML;(之前做遊戲時數據的儲存用到過XML,但這塊是還有一個同事在做

Mysql中key 、primary key 、unique key index區別

條件 那是 database 表空間 可用 where 進行 utf8 擁有 索引被用來快速找出在一個列上用一特定值的行。沒有索引,MySQL不得不首先以第一條記錄開始並然後讀完整個表直到它找出相關的行。 表越大,花費時間越多。如果表對於查詢的列有一個索引,MySQL能快

Hibernate mybatis 區別

精通 targe man 做的 select read 持久層 定義 順序 JAVA面試中問及HIBERNATE與 MYBATIS的對比,在這裏做一下總結 我是一名java開發人員,hibernate以及mybatis都有過學習,在java面試中也被提及問道過,在項