XML publicId和systemId

原文:http://blog.morebits.org/?p=62



前一阵子经常接触XML,其中看到DOCTYPE元素中有两个属性:publicId和systemId。对其意义不是很理解,今天偶然看到了两篇文档,对二者的含义作了详细的解释,甚好,记录在此:

systemId: 外部资源(多半是DTD)的URI,比如本地文件file:///usr/share/dtd/somefile.dtd或者网络某个地址的文件http://www.w3.org/somefile.dtd;

publicId: systemId已经可以表示任何位置的外部DTD资源了,但是它是直接指向相应的资源,publicId的作用在于其间接性。publicID就相当于一个名字,这个名字代表了一个外部资源。比如,我们规定”W3C HTML 4.01″这个字符串对应”http://www.w3.org/somedir/somefile.dtd”这个资源。那么,publicID=”W3C HTML 4.01″ 和 systemID=”http://www.w3.org/somedir/somefile.dtd”是一样的,二者都引用了http://www.w3.org/somedir/somefile.dtd作为该文档的外部DTD。

总之,二者都是对外部资源的引用,用以知名引用资源的地址,systemID直接引用资源,publicID间接定位外部资源。具体细节,请参见下面两个链接:

Use of XML systemId and publicID

Detail of systemId/publicId and catalog file


你可能感兴趣的:(xml)