我刚刚浏览了一个 spring 事务教程,其中提到有一些元素可用于声明式事务管理,它们是在 tx 命名空间中定义的。tx 命名空间实际上包含什么。它在哪里定义,注册等?为什么我需要命名空间?
我想大致了解命名空间,而不仅仅是特定于 tx 命名空间。
我刚刚浏览了一个 spring 事务教程,其中提到有一些元素可用于声明式事务管理,它们是在 tx 命名空间中定义的。tx 命名空间实际上包含什么。它在哪里定义,注册等?为什么我需要命名空间?
我想大致了解命名空间,而不仅仅是特定于 tx 命名空间。
XML 命名空间只是一个标记,由于缺乏更好的描述,它标识了特定标记或属性的“版本” 。这个想法是为了防止冲突,例如,如果您将 XML 与由多个人/程序/标准机构/等定义的元素一起使用。例如,我编写的使用 xml 的程序可能会使用 namespace 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 的一部分可能会嵌入到您的文档中,或者反之亦然,那么声明命名空间是值得的。
因此,springtx
命名空间只是一种识别 XML 配置文档中“属于”Spring 事务的事物的方法。访问Spring TX 命名空间的 URL 将引导您访问各种版本的 Spring Transactions 的 XML 模式(关于您可以拥有哪些元素、属性和值的规则)。有关可以使用哪些配置设置的更多信息,请参见 Spring 文档。