date date-format


Element Syntax

<date:date-format
   name = qname
   calendar = "gregorian" | qname-but-not-ncname
   lang = language
   first-day-of-week = "sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | string />

date:date-format要素は、日付のフォーマットを宣言する。この宣言されたフォーマットは、date:format-dateとdate:parse-date関数が使うフォーマットパターンの解釈を決定する。

name属性がある場合、date:date-format要素の宣言は名前つき日付フォーマットとなる。そうでない場合、デフォルト日付フォーマットの宣言となる。name属性の値はQNameである。QNameは、[2.4 Qualified Names] of [XSLT]で記述されているように展開される。デフォルト日付フォーマットや名前つき日付フォーマットを一度より多く(たとえインポート手順が異なっても)任意の名前で宣言するとエラーとなる。ただし、(あらゆるデフォルト値を含めた)どの属性に対しても毎回同じ値を宣言する場合だけは例外である。

calendar属性は日付フォーマットを使ったフォーマット文字列を解釈するのに使われるカレンダーを指定する。値はQNameでなければならない。QNameにプレフィックスがない場合、この文書で指定されるカレンダーと同一であり、グレゴリアンでなければならない。もしQNameにプレフィックスがある場合は、QNameは[2.4 Qualified Names] of [XSLT]で記述されているように展開名に展開される。展開名はカレンダーを指定する。この場合、date:format-dateとdate:parse-date関数で使われるフォーマットパターンの解釈はこの文書で指定されない。もしプロセッサがこれらの関数で使われる日付フォーマットの使うカレンダーをサポートしない場合、これらの関数の結果は空の文字列('')となる。

calendar属性が存在しないかgregorianの値が設定されている場合、処理される日付と時間はグレゴリアンのカレンダーを使って、JDK 1.1のGregorianCalendar?クラスによるものと同一の条件で解釈される。もしこの日付フォーマットをdate:format-dateやdate:parse-date関数が使う場合、それらの関数が使うフォーマットパターン文字列は、JDK 1.1のSimpleDateFormat?クラスが指定する記法でフォーマットされなければならない。フォーマットパターン文字列はJDK 1.1のSimple DateFormat?クラスで記述されているように解釈される。

lang属性は日付をフォーマットするときに使われる文字列の言語を指定する。lang属性はxml:lang [XML]と同じ範囲の値をとる。lang属性が指定されないか、プロセッサが指定された言語をサポートしない場合、言語はシステム環境から決定されるべきである。

first-day-in-week属性は、週の最初の日として使用される日を指定する。週の最初の日は、その月の週の数、年の州の数、週の日の数を計算するために使用される。カレンダーがグレゴリアンならば、sunday, monday, tuesday, wednesday, thursday, friday, saturdayのいずれかでなければならない。そうでない場合は、first-day-in-week属性の値は日付フォーマットに使用されるカレンダーに基づいて制限される。

実装

われわれの知っているXSLTプロセッサで、date:date-formatをネイティブサポートしているものはない。

date:date-formatのサードパーティによる実装は今のところ存在しない。