为什么在XSD命名空间中声明Urls(http://ebay.in/data/typee)而不是任意字符串(ebay.in.data.types)?。它是否需要有效的url作为命名空间?
答案 0 :(得分:0)
命名空间规范对此有点矛盾。它说它必须是一个URI(或命名空间1.1中的IRI),但它也说解析器不应该拒绝它不是URI的文档。奇怪的是,虽然它允许使用不是URI的字符串,但它非常渴望使用相对URI(例如'blablabla')弃用。
XML系列中还有其他规范要求命名空间为URI(例如XML规范化)更严格,并且还有一些产品(特别是XOM)强制执行此限制。因此,最好随波逐流,并使用合法的URI作为命名空间。
顺便提一下,规范说URI不是URL。还有其他种类的URI,例如URN。特别是微软非常热衷于使用URN作为名称空间。一个优点是它们看起来不像是对网页的引用,因此人们不会想象解析器会从网络上获取任何内容。