我不确定有效/正确的XML是否需要名称空间。我可以在XML文档中添加任意标记而无需为它们定义/声明命名空间吗?
我认为命名空间是一个好主意,可能是最好的做法,但我只是想知道它们是否是强制性的。
答案 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,其中解释了名称空间良好和名称空间有效文档的含义。