MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

10.14.4.2 MySQL でサポートされる LDML 構文

このセクションでは、MySQL が認識する LDML 構文について説明します。 これは、http://www.unicode.org/reports/tr35/ で入手できる LDML 仕様で説明されている構文のサブセットであり、詳細についてはこの仕様を参照してください。 MySQL は、サイズの大きい構文のサブセットを認識するので、多くの場合、Unicode 共通ロケールデータリポジトリから照合順序定義をダウンロードして、該当する部分 (<rules> タグと </rules> タグの間の部分) を MySQL Index.xml ファイルに貼り付けることが可能です。 ここで説明するルールは、文字のソートがプライマリレベルのみで行われることを除いて、すべてサポートされます。 セカンダリ以上のソートレベルでの差を指定するルールは認識されますが (たとえば、照合順序の定義に含めることができます)、プライマリレベルでは等式として扱われます。

MySQL Server は、Index.xml ファイルの構文解析中に問題を検出すると、診断を生成します。 セクション10.14.4.3「Index.xml の構文解析中の診断」を参照してください。

文字表現

LDML ルールで名前が付けられた文字は、文字どおりに、または \unnnn 形式で書き込めます。ただし、nnnn は 16 進 Unicode コードポイント値です。 たとえば、Aá は、文字どおりに、または \u0041 および \u00E1 として書き込めます。 16 進数の値内では、A から F までの桁は大/小文字が区別されません。\u00E1\u00e1 は同等です。 UCA 4.0.0 照合順序の場合、16 進表記は、Basic Multilingual Plane の文字にのみ使用でき、0000 から FFFF の BMP 範囲外の文字には使用できません。 UCA 5.2.0 照合順序の場合、16 進表記をすべての文字に使用できます。

Index.xml ファイル自体は、UTF-8 エンコーディングを使用して書き込む必要があります。

構文ルール

LDML には、文字の順序付けを指定するリセットルールとシフトルールがあります。 順序付けは、アンカーポイントを確立するリセットルールから開始し、そのアンカーポイントを基準として文字をソートする方法を示すシフトルールが続く一連のルールとして指定されます。

MySQL 固有の LDML 拡張機能

LDML ルールの拡張により、<collation> 要素では、照合のベースとなる UCA バージョンを示すオプションの version 属性を <collation> タグに含めることができます。 version 属性を省略すると、そのデフォルト値は 4.0.0 になります。 たとえば、次の指定は、UCA 5.2.0 に基づいている照合順序を示します。

<collation id="nnn" name="utf8_xxx_ci" version="5.2.0">
...
</collation>