XML基礎知識--Spring配置

XML的特殊字符 

XML中共有5個特殊的字符,分別是:&<>“’。如果配置文件中的注入值包括這些特殊字符,就需要進行特別處理。有兩種解決方法:其一,採用本例中的<![CDATA[ ]]>特殊標籤,將包含特殊字符的字符串封裝起來;其二,使用XML轉義序列表示這些特殊的字符,這5個特殊字符所對應XML轉義序列在表4-2中說明: 

 

Spring在進行XML配置時,如果屬性值包含了一個XML的特殊符號,因此我們特意在屬性值外添加了一個<![CDATA[ ]]>的XML特殊處理標籤,<![CDATA[ ]]>的作用是讓XML解析器將標籤中的字符串當作普通的文本對待,以防止某些字符串對XML格式造成破壞。來看一個例子: 

Xml代碼  
<bean id="car" class="com.baobaotao.attr.Car">  
    <property name="maxSpeed">  
        <value>200</value>  
    </property>  
    <property name="brand">
        <value><![CDATA[紅旗&CA72]]></value>  
    </property>  
</bean>  

如果使用XML轉義序列,我們可以使用以下的配置替換代碼清單4-10中的配置: 

Xml代碼  
<property name="brand"><value>紅旗&amp;CA72</value></property> 

 

Schema命名空間的聲明 

對於基於XML的配置,Spring 1.0的配置文件採用DTD格式,Spring 2.0以後使用Schema的格式,後者讓不同類型的配置擁有了自己的命名空間,使配置文件更具擴展性。此外,Spring基於Schema配置方案爲許多領域的問題提供了簡化的配置方法,配置工作因此得到了大幅簡化。 

採取基於Schema配置格式,文件頭的聲明會複雜一些,先看一個簡單的示例: 

 

要了解文件頭中聲明的內容,需要學習一點XML Schema的知識,Schema在文檔根節點中通過xmlns對文檔中的命名空間進行聲明。我們在上面的代碼中定義了3個命名空間: 

① 默認命名空間:它沒有空間名,用於Spring Bean的定義; 
②  xsi命名空間:這個命名空間用於爲每個文檔中命名空間指定相應的Schema樣式文件,是標準組織定義的標準命名空間; 
③  aop命名空間:這個命名空間是Spring配置AOP的命名空間,是用戶自定義的命名空間。 

命名空間的定義分爲兩個步驟:第一步指定命名空間的名稱,第二步指定命名空間的Schema文檔樣式文件的位置,用空格或回車換行進行分隔。 

在第一步中,需要指定命名空間的縮略名和全名,請看下面配置所定義的命名空間: 

Xml代碼  
xmlns:aop="http://www.springframework.org/schema/aop"  

aop爲命名空間的別名,一般使用簡潔易記的名稱,文檔後面的元素可通過命名空間別名加以區分,如<aop:config/>等。而http://www.springframework.org/schema/aop爲空間的全限定名,習慣上用文檔發佈機構的官方網站和相關網站目錄作爲全限定名。這種命名方式既可以標識文檔所屬的機構,又可以很好地避免重名的問題。但從XML Schema語法來說,別名和全限定名都可以任意命名。 


如果命名空間的別名爲空,則表示該命名空間爲文檔默認命名空間,文檔中無命名空間前綴的元素都屬於默認命名空間,如<beans/>、<bean/>等都屬於①處定義的默認命名空間。 
在第二步中,爲每個命名空間指定了對應的Schema文檔格式定義文件,定義的語法是: 

 

命名空間使用全限定名,每個組織機構在發佈Schema文件後,都會爲該Schema文件提供一個引用的URL地址,一般使用這個URL地址指定命名空間對應的Schema文件。命名空間名稱和對應的Schema文件地址之間使用空格或回車分隔,不同的命名空間之間也使用這種分隔方法。 

指定命名空間的Schema文件地址有兩個用途:XML解析器可以獲取Schema文件並對文檔進行格式合法性驗證;在開發環境下,IDE可以引用Schema文件對文檔編輯提供誘導功能。 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章