一些字W在 URL ?XML 文档中用时有特D的含义Q因此必针对这些含义对字符做适当~码以其生效?
字串2
?URL 上执行的查询中,Ҏ(gu)字符被指定ؓ(f) %xxQ其?xx 是字W的十六q制倹{下表列Z(jin)q些Ҏ(gu)字符q描qC(jin)它们的含义。有x多信息,请参?http://www.faqs.org/rfcs/rfc1738.html 中的 RFC1738 规范?
字串9
Ҏ(gu)字符
字串2
|
|
十六q制?/strong> 字串6
|
+
字串8
|
表示I格Q在 URL 中不能用空|(j)?
字串5
|
%2B
字串6
|
/ 字串7 |
分隔目录和子目录? 字串7 |
%
字串7
|
?
字串2
|
分隔实际?URL 和参数? 字串6 |
% 字串4 |
%
字串4
|
指定Ҏ(gu)字符? 字串2 |
%25 字串3 |
#
字串1
|
表示书签? 字串6 |
%23 字串6 |
&
字串3
|
URL 中指定的参数间的分隔W?
字串8
|
%26 字串2 |
字串2
例如Q考察下面的查询:(x)
字串6
SELECT *
字串8
FROM Employees
字串5
WHERE EmployeeID=?
字串6
因ؓ(f) ? 字符?URL 中有Ҏ(gu)含义Q分?URL 和传递的参数Q,所以在 URL 中指定该查询Ӟ该字W被~码?%
字串9
下列 URL 执行该查询。在 URL 中传递该参数倹{?字串5
http://IISServer/nwind?sql=SELECT * FROM Employees WHERE EmployeeID=% 3F FOR
XML AUTO&root=root&EmployeeID=1
字串8
览器将 ? 右侧的所有特D字W(?+ 字符Q都q行转义Q即Q将 ? 右侧?+ 字符转换?%20Q?
字串1
> ?< q类字符是XML 标记字符Q在 XML 中有Ҏ(gu)的含义。当?SQL 查询Q或 XPath 查询Q中指定q些字符Ӟ
必须对它们进行适当的编码(也称为实体编码)(j)。下表列Z(jin)q些Ҏ(gu)字符q描qC(jin)它们的含义。有x多信息,请参?br />
XML 1.0 规范 中的 XML 1.0 规范?字串8
Ҏ(gu)字符 字串4
|
Ҏ(gu)含义
字串3
|
实体~码
字串6
|
>
字串9 字串9
|
开始标记?
字串4
|
>
字串4
|
< 字串6 字串8
|
l束标记?
字串4
|
< 字串4 |
"
字串3
|
引号?
字串8
|
" 字串4 |
'
字串8
|
撇号? 字串3 |
' 字串5 |
&
字串3
|
"&"W? 字串8 |
&
字串9
|
字串5
字串3
例如Q考察下面的查询:(x)
字串9
SELECT TOP 2 *
字串4
FROM [Order Details]
字串3
WHERE UnitPrice < 10
字串9
FOR XML AUTO
字串5
因ؓ(f) < 字符?XML 中有Ҏ(gu)含义Q所以当在某模板Q一?XML 文档Q中指定该查询时Q必d该字W编码ؓ(f) >?br /> 以下是含有该查询的模板Q?
字串9
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
字串5
<sql:query>
字串1
SELECT top 2 *
字串6
FROM [Order Details]
字串2
WHERE UnitPrice < 10
字串3
FOR XML AUTO
字串5
</sql:query>
字串1
</ROOT>
字串7
URL ~码中的实体~码
字串3
有时可能需要同时指?URL ~码与实体编码。例如,可在 URL 中直接指定以下模板(而不是指定文件名Q:(x) 字串9
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
字串9
<sql:query>
字串9
SELECT top 2 *
字串8
FROM [Order Details]
字串1
WHERE UnitPrice < 10
字串9
FOR XML AUTO
字串7
</sql:query>
字串9
</ROOT>
字串1
在此例中Q(?< 标记字符指定的)(j)实体~码 < 内的 & 字符?URL 中有Ҏ(gu)含义Q需要对其进行进一?br /> ~码。必d & 字符~码?%26Q否则在 URL 中将把它视ؓ(f)参数分隔W。该 URL 于是被指定ؓ(f)Q?
字串7
http://IISServer/nwind?template=<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>SELECT TOP 2 * FROM [Order Details] WHERE UnitPrice %26lt; 10 FOR XML AUTO
</sql:query></ROOT>