[1] xml:base
属性は、 XML の要素に基底URL
を指定します。
[44] 適当な属性値
xml:base
属性値は、
後述の処理の後にRFC 2396 URI参照として処理されます。
XML基底 3
xml:base
属性値で使うことのできる文字は、
XMLの一般の場合と同じです。 XML基底 3.1
[52] RFC 3986との関係
RFC 3986の新しい構文では、命名権者部に百分率符号化や新しいIP番地のための構文が認められていますが、
RFC 2396やRFC 2732では認められていません。
XML基底仕様を厳密に運用するなら、
RFC 3986のURI参照の一部はxml:base
属性値に使えません。
[53] RFC 3987との関係
RFC 3987もRFC 3986にあわせた新しい構文を採用していますから、
XML基底仕様を厳密に運用するなら、
RFC 3987のIRI参照の一部はxml:base
属性値に使えません。
[2] xml:base
属性の値の定義は
URI 参照と解釈されるもの
ですから、
#
+ 素片識別子をつけても構いません。
(あまり意味は無いですが。)
[75]
実のところ、XML基底仕様書には、
xml:base
属性値がある処理の後 RFC 2396
URI参照として処理される (実装に。) という説明があるだけで、
著者が xml:base
属性にどのような値を指定してよいのか、
どのような値を指定することが期待されているのかがまったく規定されていません。
[84] 属性値は W3C WG Note で定義される LEIRI として解釈されます XML基底 第2版 3.。
[19] XML Base 仕様書としては任意の XML マーク付け言語で利用されることを想定しているのでしょうが、 かといってすべての XML マーク付け言語で利用できると規定しているわけではありません。
[22] かつては Web でも一部で利用・実装されており、 HTML Standard や DOM Standard にも関係する規定がありました。しかしほとんど需要がないにも関わらず実装と仕様を複雑にするものであり、 2015年には削除されています。
[26] RDF/XML では仕様に組み込まれており、 xml:base
に対応する必要があります。
[27] Atom では理論上は xml:base
に対応する必要がありますが、
実際にも使われているのかどうかは明らかではありません (RSS では絶対URL
が使われていました)。
[42] 意味不定の場合
xml:base
属性の動作は未定義です。
XML基底 1[20] >>40
(>>2 の絡みで、厳密にはURI 参照と解釈できない場合
とでもしないといけないと思うのですが...)
[46] XML基底 4
xml:base
属性の基底URIは、
次の順に決定します。[47] システム識別子における基底URIについては、 XMLの仕様書に規定があります。 (XML//URI//基底の項を参照。)
[48] xmlns
系属性については特に例外が規定されていないので、
>>46 の原則通りになりますが、名前空間URIが絶対URI参照でない時にどう処理されるのかはXML系仕様書では定義していません。
XML基底 附属書C (参考)
[49] XML基底仕様書には4 Resolving Relative URIsという章がありますが、 基底URIの決定方法の説明だけで、相対URI参照の解決の方法は何ら規定していないようです。
XML基底仕様からの引用規格にRFC 2396およびRFC 2732がありますし、 本文中でも再三引用されていますから、それらで定義された方法で解決すると解釈するのが自然でしょう。
[50] RFC 3986との関係
RFC 3986の相対参照の解決方法にはRFC 2396のものと違いがあります。 問題となる変更点は2つあります。
xml:base
属性の基底URIがRFC 2396によれば階層的ではなく、相対URIを使えないにも関わらず、
属性値が相対URIの場合はどうなるのでしょうか。
>>40 が適用されるのでしょうか。
(その場合はRFC 3986の動作をしても適合します。)[87] XML基底第1版正誤票 E04 および XML基底第2版勧告では、
RFC 3986 的解釈に従い、同文書参照であっても基底URL に基づき解釈する旨が規定されています。
ただし、 Note として、 RFC 2396 的に文書の URL
に基づく処理器が存在するため、同文書参照を xml:base
属性で使うことは「強く非推奨」とされています。
[51] RFC 3987との関係
>>44 の通り、IRI参照の多くはそのままxml:base
属性値として使うことができますが、
逃避してURI参照にして処理すると定義されていますから、
解決はIRI参照としてではなく、変換後のURI参照として行われます。
[41] XML名前空間を使わない場合
XML名前空間を使わない場合、
名前がxml:base
の属性を使うことができます。
XML基底 3
[3] XML名前空間を使う場合
XML名前空間を使う場合、
名前空間名がhttp://www.w3.org/XML/1998/namespace
(名前空間接頭辞はxml
)
で局所名がbase
の属性を使うことができます。
XML基底 3
[24]
XML基底仕様書にも注記がありますが、
xml:base
属性に DTD
や外部スキーマで初期値が設定されていると、
妥当性を検証しない処理器などで正しい値が得られませんから、好ましくありません。
[11] >>5 ですから、既定値は DTD の内部部分集合で指定するか、 又は直接指定するべきだとされています。 (http://www.w3.org/TR/xmlbase/#matching, http://www.w3.org/2001/06/xmlbase-errata)
[55] XML Schemaによる定義
XML Schemaによる定義 http://www.w3.org/2001/xml.xsd
(執筆時点での最新版は http://www.w3.org/2005/08/xml.xsd)
では、
属性はデータ型xml:base
として宣言されています。
また、属性集合xs:anyURI
に含まれています。xml:specialAttrs
[29] XML情報集合は、 XML 基底仕様書の規定に基づく要素情報項目の
基底URI
特性を定義しています。
>>25 の E02 の通り、一旦情報集合を構築してしまった後は xml:base
属性情報項目と 基底 URI
特性は切り離されてしまいます。
[30] DOM 3 の Node
界面の baseURI
属性は基底 URI を保持しています。
XML 情報集合の 基底 URI
とは異なり、
baseURI
の値は (XML 基底仕様書に基づく) 計算により求めます。
xml:base
属性節と baseURI
は同期しています。
[59]
基底URI
とxml:base
属性では、
基底URI
の方を優先して相対参照の解決に使うべきとされています。
XML情報集合 1
(名無しさん)
[60]
基底URI
とxml:base
属性では、
基底URI
の方を優先して相対参照の解決に使うべきとされています。
XML情報集合 1
(名無しさん)
[61]
基底URI
とxml:base
属性では、
基底URI
の方を優先して相対参照の解決に使うべきとされています。
XML情報集合 1
(名無しさん)
[23]
xmlns
系属性の値も URI 参照
(XML 名前空間 1.1 では IRI参照) で、相対 URI
参照である可能性があります (常識的な仕様とは思えません:))。
(一応今では非推奨になっています。)
しかしこの URI/IRI 参照は単なる識別子で、
解決する必要があるものではありませんから、そのまま扱います。
但しその名前空間 URI/IRI 参照をたどってみる場合には
xml:base
属性の値を使って解決するのも勝手だそうです。
(そういえば XML 基底では IRI 参照の解決の方法は書かれていない。 そのうち改訂されるのか? それとも IRI 参照を解決する時には URI 参照に変換するのか?)
[4] XHTML の使用については XML Base
仕様書は参考で曖昧なことを書いています。
実際のところ W3C の XHTML 1 の DTD
にはxml:base
属性は定義されていませんから、
そのままでは使えません。
XHTML 2.0 WD では明確に使用できると定義されています。
[5] XML Base を使用できると明記していない仕様では、 XML Base 対応 UA と非対応 UA で挙動が異なることになるので無理して使用しない方が良いと思われます。
[12] XML 型録のほとんどの要素型
(名前空間名が
urn:oasis:names:tc:entity:xmlns:xml:catalog
及び
urn:oasis:names:tc:entity:xmlns:tr9401:catalog
の全ての要素型。但し、 rewriteSystem
,
rewriteURI
両要素型を除く。) では
xml:base
属性が使えます。
http://www.oasis-open.org/committees/entity/spec.html#attrib.common
[13] 唯二つ使えない両要素型も、 URI 参照を値に持つ
rewritePrefix
属性を持っているのに
xml:base
属性が無いのは不可解です。
これらの両要素型の rewritePrefix
属性、
仕様書本文中の定義では uri-reference
になっていますし、本文中の説明でも相対 URI
はその場の基底 URI で解決することになっていますが、
DTD では URI 参照ではなく単なる文字列になっています。
(もちろん実際の型は CDATA
ですが、引数実体を使って型が擬似的に示してあります。あと、 DTD でなくても XML Schema も示してありますが、こちらも同じ状況です。)
もしかしたら rewritePrefix
では URI
としては不正な値 (http://foo. とか。)
も認めたかったから文字列型にしたのかもしれません。
でもなんだかなあ。
xml:base
属性 (Atom)[62]
Atom 1.0 や AtomPub や RFC 6721 で定義されているすべての要素には、XML基底で規定された
属性を持って構いません。
RFC 3986 にある基底URI (基底IRI)
として使われます。xml:base
[63]
>>62 RFC 2396を参照するXML基底仕様を参照しながら、
RFC 3986の機能を持つといい、or IRI
とまで書いていますが、いったいどう理解しろというのでしょう。
[81]
HTML では base
要素に href
属性を指定することによって文書の基底URL を指定することができます。
xml:base
属性はこの base
要素を参考に、より汎用的なものとして設計されたようです XML基底 1.。
[82] HTML にはその他に codebase
属性もあり、
それも基底URL を指定するものとして説明されています。
[36]
P3P に基底URI を指定するための base
属性があります。
[83]
HTTP には実体の基底URL を指定するための Content-Base:
欄、
Base:
欄や、基底URLを指定する役割も果たすことになっている
Content-Location:
欄があります。 MIME
にも Content-Base:
欄や Content-Location:
欄があります。
[89] 『ジオどす』 京都通り名住所検索 ジオコーダー - 京都通り名ジオコーダーAPI『ジオどす』 ( 版) http://geodosu.com/rss.xml
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xml:base="http://geodosu.com" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel>
[9] XML 基底を使うとして、
<doc xml:base="http://foo.example/dir1/"> <style type="text/css" xml:base="http://foo.example/dir2/"> @import 'foo.css'; </style> </doc>
の foo.css は dir2 からの相対 URI として解釈されるのかな? (要素の内容だから。)
[10] HTML で
<!-- base = http://foo.example/dir1/ -->
<head>
<base href="http://foo.example/dir2/"/>
<style type="text/css">
@import 'foo.css';
</style>
</head>
は >>9 と同じように解釈されるのかなあ??
[31] XInclude, xml:base, and validation http://norman.walsh.name/2005/04/01/xinclude
XInclude の処理に伴って
xml:base
属性情報項目が追加されると妥当性検証に影響がでかねないという問題
(xml:lang
でも)。
(名無しさん)
[32] 2005 / 04 / 04: .NET developers want inconsistent schema validity on xml:* attributes? http://monkey.workarea.jp/lb/archive/2005/4-04.html
>>31 の問題で予想通り(藁) xml:*
は妥当性検証で無視すればよいという意見が出ていることに対して、
それでは xml:lang
の値を制約したりできなくなるというおはなし。
(名無しさん 2005-04-05 00:21:13 +00:00)
[56]
正準XML (1.0) 仕様によって特定の要素以下を直列化する際には、
xml:base
属性を含め、
xml
名前空間に属する属性がその要素のancestor-or-self
のうちの一番近くにあるものが指定されます。
正準XML 2.4
(名無しさん)
[57] 排他的XML正準化 1.0仕様では >>56 の規定を適用しないことになっています。 (名無しさん)
[58]
XIncludeでは基底URI
との整合性を保持するためにxml:base
属性を追加することがあります。
(名無しさん)
[70]
xml:base in M12N (Shane McCarron 著, 2007-07-13 21:52:09 +09:00
版) http://lists.w3.org/Archives/Public/public-xhtml2/2007Jul/0024.html
(名無しさん)
[73]
XML Base (Second Edition) (2008-03-20 00:21:54 +09:00
版) http://www.w3.org/TR/2008/PER-xmlbase-20080320/
(名無しさん)
[74]
Re: Issues concerning the <base> element and xml:base (Ian Hickson <ian@...> 著, 2008-02-13 01:15:07 +09:00
版) http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13246
[76]
Firefox でも Opera でも、 xml:base
属性の値は
(LEIRI ではなく) HTML5 URL として処理されるようです。
[77] Opera は xlink:href
属性の値を URL
ではなく LEIRI として処理するようですけど、これって多分、
基底URL は無変換で素通しして、最後に URL を使う場面でだけ HTML
か SVG かで処理を分けているんじゃなく、
基底URL の段階で URI 化してるってことですよね。
[78] SMIL 3.0 Metainformation ( 版) http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-metadata.html#edef-meta
[79] Document Structure – SVG Tiny 1.2 ( 版) http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/struct.html#XMLBaseAttribute
[90] XProc: An XML Pipeline Language ( 版) http://www.w3.org/TR/2010/REC-xproc-20100511/#xml-base-attribute
[91] Speech Synthesis Markup Language (SSML) Version 1.1 ( ( 版)) http://www.w3.org/TR/2010/REC-speech-synthesis11-20100907/#S3.1.3
[93] XFrames ( ( 版)) http://www.w3.org/TR/2010/NOTE-xframes-20101216/#s_frames-element
[96] Document Structure – SVG 1.1 (Second Edition) ( ( 版)) http://www.w3.org/TR/2011/REC-SVG11-20110816/struct.html#Core.attrib
[98] Web Applications 1.0 r7267 Narrow the scope of the xml:base ban to HTML elements. If SVG wants to allow them, e.g., that's up to them. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7266&to=7267
[100] IRC logs: freenode / #whatwg / 20130212 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20130212#l-368
[101] XBL 2.0 ( ( 版)) http://dev.w3.org/2006/xbl2/Overview.html#rules-for-shadow-content-generation
[102] XBL 2.0 ( ( 版)) http://dev.w3.org/2006/xbl2/Overview.html#shadow-content-and-xmlbase
[106] Bug 20976 – Define Node.baseURI properly ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=20976#c5
[107] 903372 – Remove support for xml:base ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=903372
[108] Bug 17423 – ER: Add support for xml:base ( ( 版)) https://bugs.webkit.org/show_bug.cgi?id=17423
[109] Tiny Tiny RSS • View topic - xml:base support in atom feed ( ( 版)) http://www.tt-rss.org/forum/viewtopic.php?t=2372
[110] Tiny Tiny RSS • View topic - Problem with Tim Bray's ongoing blog ( ( 版)) http://tt-rss.org/forum/viewtopic.php?f=1&t=2310
[111] XML Binding Language (XBL) 2.0 ( ( 版)) http://www.w3.org/TR/2007/CR-xbl-20070316/#rules
[112] XML Binding Language (XBL) 2.0 ( ( 版)) http://www.w3.org/TR/2007/CR-xbl-20070316/#shadow1
[113] RDF 1.1 XML Syntax ( ( 版)) https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-xml/index.html#h3_section-baseURIs
[114] RFC 7303 - XML Media Types ( ( 版)) http://tools.ietf.org/html/rfc7303#section-6
[8] IRC logs: freenode / #whatwg / 20150130 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20150130#l-417
[14] Proposals/dropxmlattributes - SVG ( 版) https://www.w3.org/Graphics/SVG/WG/wiki/Proposals/dropxmlattributes
[15] Issue 341854 - chromium - Remove vestigal xml:base support - An open-source project to help move the web forward. - Google Project Hosting ( 版) https://code.google.com/p/chromium/issues/detail?id=341854
[16] 903372 – Remove support for xml:base ( 版) https://bugzilla.mozilla.org/show_bug.cgi?id=903372
[17] 20976 – Define base URLs in DOM ( 版) https://www.w3.org/Bugs/Public/show_bug.cgi?id=20976
[18] Remove xml:base dependency · whatwg/html@56f4346 ( 版) https://github.com/whatwg/html/commit/56f4346ec71b2dc138038ce6512b626d6c563e00
[33] XProc 2.0: An XML Pipeline Language () https://www.w3.org/TR/2016/NOTE-xproc20-20160721/#xml-base-attribute
[34] () http://www.niso.org/apps/group_public/download.php/15933/z39_96-2015.pdf
[37] Display objects (e.g. figures, tables, and boxed text) – JATS4R (, ) https://jats4r.org/display-objects-figures-tables-boxed-text-etc/