属性表达式xmlns =“”声明“no namespace”-namespace。
例如:
...
<html xmlns="http://www.w3c.org/xhtml">
<table><!--table of hotels-->
...
<td>
<description xmlns="">
<name>Las Vegas</name>
<city>Phoenix, Arizona</city>
</description>
</td>
...
</table>
</html>
在这个例子中,我只是使用它来注释一些不属于任何命名空间的元素的数据。
这对我来说很有意义,因为我不必查找或创建适当的命名空间。也许有时你不想在没有重用它的情况下计算出一个模式,而且无论如何只有很少的数据可以用它来注释。
如果上面的文档只是架构设计之前的第一个草图并且xmlns =“”元素仅用于评论数据以供将来更改,那么也是有意义的。
通常的做法是什么?它几乎没用过吗?
答案 0 :(得分:1)
澄清:您的文档是xhtml
文档,并将其设置为默认命名空间(xmlns="http://www.w3c.org/xhtml
)xmlns=""
属性的作用是说此默认值不再适用,并且它出现的元素及其子元素不应理解为xhtml
,而应理解为没有默认命名空间的原始xml。
是的,这种语法在需要取消默认命名空间的地方被广泛使用(虽然可以说,首先不设置默认命名空间并在名称上使用前缀将它们绑定到命名空间是稍微好一点的形式)。
至于你是否应该首先使用“无命名空间”:这取决于你。对于任何非平凡的文档类型,建议使用命名空间,因为它们可以在将来的某个时候将该文档类型中的元素与来自其他文档类型的元素混合,并从组合中理解。基本上,如果你不使用命名空间,那么你可能会因为其他人使用<name>
对某人或某个变量或者众神知道什么而使用<name>
来解决这个问题。
如果没有名称空间,您必须认真考虑总是编写类似<TRAVEL_AGENT_DATA_HOTEL_name>
的内容来避免这种危险。能够只写<hotel:name>
,并将hotel:
前缀绑定到旅行社文档的命名空间真的是一个巨大的改进。
创建XML命名空间是因为它们需要。您将使用它们,因为您将需要使用它们。