* 関数 [CODE(XPathf)@en[unparsed-entity-uri]] (XSLT)

[1]
[[XSLT 1]] の [[XPath]] [[関数]]
[DFN[[CODE(XPath)@en[[CODE(XPathf)[unparsed-entity-uri]] ([VAR[[[文字列]]]])]]]]
は、[[引数]]として与えられた[[名前]]を持つ[[非解析対象実体]]の
[[URI]] を返します。

[2] 仕様書:
- [[XSLT 1]]
--<IW:XSLT1:"#function-unparsed-entity-uri">

** 返し値

[2]
[[引数]]で指定された[[名前]]と一致する[[非解析対象実体]]が[[文脈節点]]と同じ[[文書]]で定義されていれば、
その [[URI]] が返されます。そのような[[非解析対象実体]]がなければ、
[[空文字列]]が返されます。

[3]
[[URI]] は、[[公開識別子]]から求める方法が実装されていれば
(例: [[XML型録]])、それによって得られた値になります。
それが実装されていない場合や値が得られない場合は、
[[システム識別子]]から求めます。

返される [[URI]] は、[[絶対URI]] です。

[4]
正しい [[XML]] [[文書]]の[[システム識別子]]に由来する [[URI]]
であれば、[[素片識別子]]が含まれることはありません。
[[文書]]が [[XML]] [[実体]]以外から作られた場合や、
[[型録]]を使っている場合は、[[素片識別子]]が含まれ得ますが、
そのまま返して良いのかはわかりません。

;; 現在の定義では [Q@en[[[URI]]]] に[[素片識別子]]も含まれますが、
[[XSLT 1]] が参照している [[RFC 2396]] の定義では[[素片識別子]]は
[[URI]] の一部ではありませんでした。

[[#comment]]

** 実装

[4]
[[文脈節点]]の[[文書]]がどのような方法で得られたかによっては、
[[外部解析対象実体]]の情報が既に失われていて、 [[XSLT]]
処理の段階では既にアクセスできないことがよくあります。

特に[[妥当性]]を[[検証]]しない実装では、
[[外部部分集合実体]]や[[外部引数実体]]や、
[[内部部分集合]]でも読まれていない[[実体宣言]]で[[宣言]]されている[[外部解析対象実体]]の情報を得ることができません。

[[#comment]]

** メモ

[[#comment]]

* メモ
