|
|
||||
|
7.3.6 字符转义
一般而言,XPointer不会单独出现,其经常出现的位置是URI、XML文件中,这些上下文对一些特殊字符提出了转义要求,因此必须对XPointer中出现的相应字符进行转义。
XPointer可以用于XLink的属性xlink:href定位资源片段,xlink:href属性值必须是URI,而一些字符不能直接出现在URI中,因此必须对这些字符进行转义。 URI中不允许出现的字符包括所有非ASCII字符和IETF RFC 2396排除的字符,但是其中的"#"、"%"和方括弧可以直接出现在URI中,这是由IETF RFC 2732定义。所有不允许的字符按照如下顺序进行转义。
例如:
转义为:
注意:虽然IETF RFC 2732允许方括弧直接出现,但是为了兼容那些未实现该标准的程序,方括弧最好转义出现。
由于XPointer是出现在XML文件中,必须按照XML的要求对相应的字符进行转义。包括"<"、"&"和XML规范规定的其他特殊字符,"<"和"&"转义后分别为"<"和"&",其他特殊字符的转义可以参考XML规范中的规定。例如:
转义为:
XPointer本身对一些字符提出了转义要求。为了保证正确识别和计算,XPointer的各个部分(XPointer的一个部分是指一个完整的XPointer(…),多个XPointer(…)连接起来形成一个完整形式的XPointer)要求括弧匹配,因此必须对不匹配的括弧进行转义,即使在字符串常量中的括弧也必须进行转义。转义的方法是在前面加上一个"^",如果表达式中出现"^",则在前再加一个"^",即用"^("代替"(",用"^)"代替")",用"^^"代替"^"。 注意:转义只是针对不匹配的括弧,而不是对所有括弧。 |