URI格式与XML的关系
扫描二维码
随时随地手机看文章
表示指定的 URI,要使用涵盖全部必要信息的绝对 URI、绝对 URL 以及相对 URL。相对 URL,是指从浏览器中基本 URI 处指定的 URL,形如 /image/logo.gif。URI格式由URI协议名(例如http、ftp、mailto、file),一个冒号,和协议对应的内容所构成。特定的协议定义了协议内容的语法和语义,而所有的协议都必须遵循一定的URI文法通用规则,亦即为某些专门目的保留部分特殊字符。URI文法同时也就各种原因对协议内容加以其他的限制,例如,保证各种分层协议之间的协同性。百分号编码也为URI提供附加信息。URL的格式由下列三部分组成:,第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址。具体URI的格式如下:[协议名]://[用户名]:[密码]@[服务器地址]:[服务器端口号]/[路径]?[查询字符串]#[片段ID]。
登录信息(用户名:密码)指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项。
服务器地址使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似 hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址 名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。
服务器端口号指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。
带层次的文件路径指定服务器上的文件路径来定位特指的资源。这与 UNIX 系统的文件目录结构相似。
查询字符串针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。此项可选。
片段标识符使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置)。但在 RFC 中并没有明确规定其使用方法。该项也为可选项。
XML拥有一个叫命名空间的,一个可包含元素集和属性名称的抽象域的概念。命名空间的名称(一个必须遵守通用URI文法的字符串)用于标识一个XML命名空间。但是,命名空间的名称一般不被认为是一个URI,因为URI规范定义了字符串的“URI性”是根据其目的而不是其词法组成决定的。一个命名空间名称同时也并不一定暗示任何URI协议的语义;例如,一个以”http:”开头的命名空间名称很可能与HTTP协议没有任何关系。XML专家们就这一问题在XML开发电子邮件列表上进行了深入的辩论;一部分人认为命名空间名称可以是URI,由于包含一个具体命名空间的名称集可以被看作是一个被标识的资源,也由于“XML中的命名空间”规范的一个版本指出过命名空间名称“是”一个URI引用。但是,集体共识似乎指出一个命名空间名称只是一个凑巧看起来像URI的字符串,仅此而已。早先,命名空间名称是可以匹配任何非空URI引用的语法的,但后来的一个对于“XML命名空间建议”的订正废弃了相对URI引用的使用。一个独立的、针对XML 1.1的命名空间的规范允许使用IRI引用作为命名空间名称的基准,而不仅是URI引用。为了消除XML新人中产生的对于URI(尤其是HTTP URL)的使用的困惑,一个被称为RDDL(资源目录描述语言)的描述语言被建立了,虽然RDDL的规范并没有正式地位,也并没有获得任何相关组织(例如W3C)的检查和支持。一个RDDL文档可以提供关于一个特定命名空间和使用它的XML文档的,机器与人类都能读懂的信息。XML文档的作者鼓励使用RDDL文档,这样一旦文档中的命名空间名称被索引,(系统)就会取得一个RDDL文档。这样,许多开发者对于让命名空间名称指向网络可达资源的需求就能得到满足。