atomUri

atomUri

[1] RFC 4287 (Atom 1.0) や RFC 5023 (AtomPub) の RELAX NG スキーマ (参考) では、 URL を値とする要素属性データ型atomUri (RFC 4287) または atomURI (RFC 5023) としています。

仕様書

定義

[4] スキーマ上は実は atomURItext として定義されています。ただし、 RFC 4287 には次のような注釈が付されています。

Unconstrained; it's not entirely clear how IRI fit into xsd:anyURI so let's not try to constrain it here

(制約なし: IRIxsd:anyURI にどう合わさるか不透明なため、 ここでは制約しないことにします。)

RFC 5023 にはありません。

[8] 実際に Atom 1.0URL を値とする要素属性を定義する段では、 RFC 3987 を引用して「IRI」や「IRI参照」という用語を用いています。

[5] Atom 1.0IRI 中には空白を含めてはなりません Atom 1.0 3.

[6] そもそも IRI には空白を含めることができないのですが、 既存の XML 実装の中には単純型的なものにも誤って空白を勝手に挿入するものがあるらしく、 それで敢えて Date constructIRI には空白を含められないと明記しているようです。 でも実は Atom 1.0複合型的なものであっても要素間空白を挿入してもいいとはどこにも規定されていないのですけどね。

URL の定義の整合性

[2] atomURI とされたものには Atom 1.0AtomPub要素属性だけではなく、 xml:base 属性も含まれます。

[3] Atom 1.0AtomPubRFC 3987 の定義を採用していますから、 atomURIRFC 3987 IRI参照を表すとすると RFC 2396 に基づく xml:base とは厳密には一致しないことになります。

規定部分では xml:base 属性値には言及されていません。

現実

[10] 実際には、 URIIRI ではなく、 URL と解釈するべきものです。