在DTD中,为什么被命名空间给出一个网址?(In DTDs, why are namespaces

2019-09-01 02:34发布

显然,下面的命名空间URL xmlns在HMTL和XML页面是没有意义的。 而这一切的时候,我虽然有实际上是在这些地址的命名空间...

当我第一次读/听说过的命名空间,我想象中的有一些大的文件,在包含所有可能的文档的情况下使用的有效“名称”列表中包含的网址。 我是来学习我想象中的错误。

但是,如果URL是完全没用的,究竟是一个命名空间的点? 你怎么知道如果事情属于一个命名空间,如果它实际上并不存在的任何地方? 当我指定一个“命名”我其实我做什么?

这听起来好像是在每一个词的意义完全随心所欲。

Answer 1:

在XML命名空间名称的基本功能是提供一个唯一的标识符,它允许软件或谁需要处理XML文档的人知道在输入中遇到的特定元素是,或不是,他们负责的要素之一处理。 假设你是一个专门的软件设计处理名为“blort”元素,并在用户的显示的区域显示结果。 每当你看到在输入名为“blort”的元素,你必须决定你看到在输入“blort”元素是否是你应该工作在“blort”元素,或具有相同名称的另一个元素,但一不同结构或含义。 如果没有命名空间,你可以不知道肯定。

这个问题是可以解决的,如果:

  • 大家谁发明了一个XML词汇表(和关心避免名称冲突)选择为自己的词汇量的唯一名称。 由于各种历史,技术和格式上的原因,我们叫这个名字了“命名空间名称”。

  • 我们找到了一些方法,使XML元素或属性的完整名称包括命名空间名称。 这就是一些规格要求的“扩展名”:一对由命名空间名和“本地名”的。

现在,您可以在您的设计从任何其他“blort”你可能会发现(!只要看看他们的扩展名)来处理词汇“blort”区分,只要第三个条件被满足:

  • XML词汇的任何两位发明家选择适合自己的词汇相同的命名空间的名称。

通常的方法,以确保任意标识符的唯一性是有某种中央登记处的。 中央登记处,但是,很难建立和维护,以及XML命名空间使用URI作为捎带上最成功的登记管理机关的一种方式:即在互联网的心脏保持域名系统的一个。 只要命名空间名称的发明者只需要按照他们自己的URI空间或控制的部分指定命名空间的名称的基本规则,不同的发明者永远不会选择相同的命名空间名称。

使用URI作为命名空间的名称也有很好的特性,该命名空间的定义者可以在命名空间URI把命名空间的人类和机器可读的文档。 一些专家建议这是很好的做法,但它不是由W3C的需要在XML命名空间的建议,为了保持名称空间处理尽可能简单。 大多数供公众使用的XML词汇表是我熟悉的做他们的名称空间URI提供文件,但不是所有的事。 所以,你找出通过查找它的文件,由责任单位发出属于一个命名空间。 如果他们在空间URI提供它,它很容易; 如果不是,它很难; 在某些情况下,问题可能不会在实践中交代。 生活是艰难的时候。



Answer 2:

该URL(实际上,一个URI)是没有意义的话,那是一个唯一的标识符。 有了它,你并不需要所有可能的命名空间的中央登记处。 只要创建在自己控制的域名的URL,你可以确保你有一个唯一的标识符。 (URI是不仅要在网络上检索资源的方式,他们也是标识符 。)

它被认为是好的做法命名空间标识符是实际的URL与一些现有的文件,如果你把这个URL到Web浏览器。 但它不是强制性的。



文章来源: In DTDs, why are namespaces given as a URL?