2011-01-25 55 views
2

我剛剛經歷了一個spring事務教程,其中提到了一些可用於聲明式事務管理的元素,它們在tx名稱空間中定義。 tx名稱空間實際上包含什麼。它在哪裏定義,註冊等?爲什麼我需要命名空間?什麼是XML名稱空間,它與Spring事務有什麼關係?

我想知道一般關於命名空間的不僅僅是特定於tx命名空間的命名空間。

+0

可能的重複[有什麼與XML的命名空間?](http://stackoverflow.com/questions/2237965/what-has-an-namespace-to-do-with-xml) – 2011-01-25 07:24:10

回答

8

XML namespace只是一個標記,由於缺少更好的描述,它會標識特定標記或屬性的「版本」。這個想法是爲了防止衝突,例如,如果您使用的XML由多人/程序/標準組織等定義的元素。例如,我編寫的使用xml的程序可能使用命名空間http://www.ttdi.us/xml/myapp。然後,我可以這樣定義<name>標籤,而無需擔心其他地方,有些人可能還在使用<name>爲自己的目的:

<thing xmlns="http://www.ttdi.us/xml/myapp" 
     xmlns:pie="http://somebodyelse.example/delicious/pie"> 
<!-- this defines that we have a "thing" 
    in the namespace "http://www.ttdi.us/xml/myapp" --> 
<!-- also it says that anything with the prefix pie: 
    is from a different namespace. --> 
    <name color="brown" pie:color="crispy">Bob</name> 
    <!-- so this tag has the color "brown" for the attribute in my namespace 
     but "crispy" in somebodyelse's pie namespace. 
     We can use the same tag/attribute names without any trouble. --> 
    <pie:flavor>Blueberry</pie:flavor> 
</thing> 

命名空間不必「註冊」的任何地方;它可以是任何你想要的URI。

簡而言之,如果您製作自己的XML文檔,並且您認爲其他XML可能會嵌入到您的文檔中,反之亦然,值得聲明一個名稱空間。

因此,春季tx命名空間僅僅是一種識別XML配置文檔中「屬於」Spring事務的東西的方法。訪問the URL of the Spring TX namespace會將您引導至各種版本的Spring事務的XML Schemas(規則說明您可以擁有哪些元素,屬性和值)。有關可以使用的配置設置的更多信息,請參見Spring's documentation

相關問題