在编写新的XML标记时,它们是否需要位于命名空间中?

时间:2009-01-12 10:10:52

标签: xml namespaces

我不确定有效/正确的XML是否需要名称空间。我可以在XML文档中添加任意标记而无需为它们定义/声明命名空间吗?

我认为命名空间是一个好主意,可能是最好的做法,但我只是想知道它们是否是强制性的。

3 个答案:

答案 0 :(得分:3)

命名空间不是必需的,但在将来的某个时候,您会很高兴使用它们。

答案 1 :(得分:2)

  

我是否可以在XML文档中添加任意标记而无需为它们定义/声明命名空间?

这取决于“有效/正确的XML”的含义。对于格式良好而言无关紧要,无论是否在命名空间中的任何属性都是可接受的。

另一方面,“有效性”与模式有特定的含义。是否允许向现有元素添加属性取决于所讨论文档的模式定义。这可以是XML Schema,或DOCTYPE,或其他类似RELAX-NG。如果您的文档没有声明的架构,那么“有效性”的概念没有任何意义,您可以继续使用您喜欢的属性。

例如,对于普通doctype的XHTML文档,根本不添加任何属性是无效的。但是,如果需要,您可以使用自己的扩展从XHTML中提取自己的doctype。例如,这就是“XHTML plus MathML plus SVG”doctype的功能。这使用命名空间来区分从每种语言中获取的部分;如果你要混合不同规格的概念,通常是一个好主意。

正如Hank所说,你不需要,但是它不会花费任何东西来抛出一些xmlns属性,它为混合/嵌入文档奠定了坚实的基础。

答案 2 :(得分:1)

XML中的命名空间并不严格,但如前所述,它们允许您使代码更有条理,在编程语言中排序为命名空间。 如果您需要更具体的信息,可以阅读this W3C Recommendation,其中解释了名称空间良好和名称空间有效文档的含义。