我剛剛經歷了一個spring事務教程,其中提到了一些可用於聲明式事務管理的元素,它們在tx名稱空間中定義。 tx名稱空間實際上包含什麼。它在哪裏定義,註冊等?爲什麼我需要命名空間?什麼是XML名稱空間,它與Spring事務有什麼關係?
我想知道一般關於命名空間的不僅僅是特定於tx命名空間的命名空間。
我剛剛經歷了一個spring事務教程,其中提到了一些可用於聲明式事務管理的元素,它們在tx名稱空間中定義。 tx名稱空間實際上包含什麼。它在哪裏定義,註冊等?爲什麼我需要命名空間?什麼是XML名稱空間,它與Spring事務有什麼關係?
我想知道一般關於命名空間的不僅僅是特定於tx命名空間的命名空間。
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。
可能的重複[有什麼與XML的命名空間?](http://stackoverflow.com/questions/2237965/what-has-an-namespace-to-do-with-xml) – 2011-01-25 07:24:10