order_start キーワードに続いて、照合する要素の見出しを、
1 行に 1 つずつ、照合する要素の順序に従って記述します。 照合する要素の見出しは次の形式をとります。 collation_element [ weight [; weight ]] collation_element は文字、文字または照合する要素を意味する大かっこで囲まれた照合記号、特殊記号 UNDEFINED 、省略を表わす (...)
のいずれかになります。 文字は文字自体しか意味しませんが、 照合する記号は、文字マップファイルによって解釈される文字にとってのシンボル名や、 collating-element キーワードによって定義されている複数文字の照合する要素や、 collating-symbol
keyword によって定義される照合記号にもなります。 UNDEFINED という特殊記号は、照合する要素の見出しとしては
明示的には定義されていない文字すべての、照合する位置を決定します。 例えば、文字の中のあるグループに照合シーケンスの書き落しがあったときに、
定義した文字すべてについて照合を行うと、照合記号は order_start キーワード の前に定義されることになるでしょう。 collating-symbol <HIGH> 照合する要素の見出しの中に、次の見出しがあることになります。 UNDEFINED <HIGH> 2 度目も同じように処理されることに注意してください。 つまり、2 度目はすべての文字は文字コードを用いて照合されます。 省略記号を用いた場合、行の前にある文字の文字コードよりも大きく、
後にある文字の文字コードよりも小さい文字コードを持つ文字のリストとして解釈されます。
文字コードは処理形に依存しているので、省略記号を用いると移植性はなくなります。
使われた場合警告が出ますが、 -c オプションが指定されていない場合、出力はされません。 weight オペランドは照合する要素が最初のパスやそれに続くパスで、どのように照合されるかという情報を与えます。 Weight は 2 文字からなる文字列、 特殊記号 IGNORE 、 UNDEFINED 以外の collating_element で定義されているあらゆる形式の照合する要素のいずれかをとります。 weights が記述されていない場合、文字はリストの中の位置によって厳密に照合されます。 weight が 1 つしか書かれていない場合、2 度目のパスではリスト中の対応した位置によって文字をソートします。 同等のクラスは照合する要素の見出しの列で定義されており、最初の weight の位置と同じ文字または記号を持ちます。 例えば、多くのロケールでは文字'A'の変化形は最初のパスですべて照合されます。 これは照合する要素のエントリーでは次のように表されます。 'A' 'A';'A' # first element of equivalence class 'a' 'A';'a' # next element of class 2 文字を 1 文字に照合する要素は order_start キーワードの前に定義されている collating-elements によって特定されます。 例えば、2 文字を 1 文字に照合する要素であるスペイン語の CH は order_start キーワードの直前で次のように定義されています。 collating element <CH> from "CH" これは、照合する要素の見出しの中では <CH> として扱われるでしょう。 1 文字を 2 文字に照合する要素は weight の位置の中の 1 つに 2 文字の文字列を書くことで定義します。
例えば、文字 'X' を "AE" の 2 文字と照合させたい場合は、照合する要素のエントリーは次のようになります。 don't care 文字は特別の記号 IGNORE で定義できます。
例えば、最初の照合パスでダッシュ文字 '-' を無視したいとします。このときの照合する要素のエントリーは次のようになります。 collating-symbol キーワードによって定義された記号は、
与えられた文字がシーケンス中のある位置よりも高いか低いかの照合を示すのに使われます。
例えば、最初のパスで文字コードの値が '0' の文字コードの値よりも小さな文字すべてを他の文字よりも低い優先度で照合し、
2 番目のパスで対応する順番で照合する場合、記号は order_start キーワードの前に定義してください。 collating-symbol <LOW> 照合する要素の最初の 2 つの見出しは次のようになります。 ... <LOW>;... '0' '0';'0' これは範囲を示す省略記号の使い方も表しています。 最初の省略は、'0'よりも小さな値の文字コードセットに含まれるすべての文字として解釈され、
2 番目の省略は対応する順序の最初の照合で定義された範囲のすべての文字を意味します。 |