1. 程式人生 > 其它 >spring xml檔案頭理解(dto和xsd的區別、xmlns、xmlns:xsi、xsi:schemaLocation)

spring xml檔案頭理解(dto和xsd的區別、xmlns、xmlns:xsi、xsi:schemaLocation)

spring xml檔案頭理解(dto和xsd的區別、xmlns、xmlns:xsi、xsi:schemaLocation)

<beans xmlns="http://www.springframework.org/schema/beans" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
  xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	   http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
	   http://www.springframework.org/schema/aop
	   http://www.springframework.org/schema/aop/spring-aop.xsd
	   http://www.springframework.org/schema/mvc
	   http://www.springframework.org/schema/mvc/spring-mvc.xsd
	   http://www.springframework.org/schema/tx
	   http://www.springframework.org/schema/tx/spring-tx.xsd
	   http://www.springframework.org/schema/task
	   http://www.springframework.org/schema/task/spring-task.xsd">
</beans>
  • xsd和dtd的區別是什麼?

xsd和dtd是xml檔案的兩種型別,兩種型別的xml檔案表達的語義不同,一般來說xsd支援的語義多於dtd。spring解析xml的時候同時支援兩種型別的xml檔案

  • xmlns是什麼意思?xmlns:xsi是什麼意思

xmlns的全稱是xml namespace,對應中文含義是xml檔案名稱空間。只有定義了名稱空間,才可以在xml中使用對應的標籤。其中beans是預設名稱空間,所以只用了xmlns,並沒有標記namespace字首;而xmlns:xsi表示的是使用xsi作為字首的Namespace,需要在文件中進行生命。

  • xsi:schemaLocation

xsi:schemaLocation屬性指的是namespace為http://www.w3.org/2001/XMLSchema-instance裡面的schemaLocation屬性,這裡能夠使用這個標籤的原因是因為我們在一開始就聲明瞭xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"。xsi:schemaLocation定義了xml namespace和對應的XSD(xml schema definition)文件的位置關係。它的值由一個或多個URI引用對組成,兩個URI之間以空白符分隔,第一個URI是定義的XML Namespace的值,第二個URI給出的是schema文件的位置,schema處理器將從這個位置讀取schema文件,schema文件的targetnamespace必須和第一個URI匹配。xsi:schemaLocation一定是兩個成對出現的

  • 補充:xsd的schema檔案作用是什麼?

作用只有一個:規範xml可以使用的標籤範圍

  • spring.schema和spring.handler檔案的作用?

spring.schema定義了名稱空間到xsd的對映關係。spring內部維護了許多版本的xsd檔案,spring可以通過spring.schema的對映關係從本地找到xsd,完成xml標籤規範的校驗,這樣的好處是規避了對網路的依賴
spring.handler定義了xsd檔案到parse解析器的對映關係,解析器是針對xsd檔案唯一存在的,解析器繼承自NamespaceHandlerSupport。namespaceHandlerSupport維護了一個map,key是標籤名稱,value是對應標籤的解析器