ASSL XML 規則

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services スクリプト言語 (ASSL) はオブジェクトの階層を要素の型のセットとして表し、それぞれが含むことのできる子要素を定義します。

ASSL では、次の XML 規則を使用してオブジェクトの階層を表します。

  • 'xml:lang' などの標準 XML 属性を除き、すべてのオブジェクトとプロパティが要素として表されます。

  • 要素名と列挙値はどちらも、アンダースコアを使用しない、Pascal 文字種の Microsoft .NET Framework 名前付け規則に従います。

  • すべての値の大文字と小文字の区別が保持されます。 列挙の値も大文字と小文字が区別されます。

これらの規則の他にも、Analysis Services はカーディナリティ、継承、空白文字、データ型、既定値などに関する一定の規則に従います。

カーディナリティ

要素に 1 より大きいカーディナリティがある場合は、この要素をカプセル化する XML 要素のコレクションがあります。 コレクションの名前は、コレクションに含まれている要素の複数形を使用します。 たとえば、次の XML フラグメントは、Database 要素内の Dimensions コレクションを表します。

<Database>

...

<Dimensions>

<Dimension>

...

</Dimension>

<Dimension>

...

</Dimension>

</Dimensions>

</Database>

``

要素の順序は重要ではありません。

継承

継承は、重複しているが大幅に異なるプロパティのセットを持つ、明確に区別されるオブジェクトがある場合に使用されます。 このように重複しているが明確に区別されるオブジェクトの例として、仮想キューブ、リンク キューブ、および標準キューブがあります。 重複するが個別のオブジェクトの場合、Analysis Services は XML インスタンス名前空間の標準 属性を使用して継承を示します。 たとえば、次の XML フラグメントは、Cube 要素が通常のキューブから継承されるか、仮想キューブから継承されるかを type 属性が識別する方法を示しています。

<Cubes>

<Cube xsi:type="RegularCube">

<Name>Sales</Name>

...

</Cube>

<Cube xsi:type="VirtualCube">

<Name>SalesAndInventory</Name>

...

</Cube>

</Cubes>

``

継承は通常、複数の型に同じ名前のプロパティがある場合は使用されません。 たとえば、 Name プロパティと ID プロパティは多くの要素に表示されますが、これらのプロパティは抽象型に昇格されていません。

空白

要素値内の空白文字が保持されます。 ただし、先頭と末尾の空白文字は常に切り捨てられます。 たとえば、次の要素には同じテキストがありますが、そのテキスト内の空白文字の数が異なるので、別の値として扱われます。

<Description>My text<Description>

<Description>My text<Description>

``

しかし、次の要素は先頭と末尾の空白文字のみが異なるので、同じ値として扱われます。

<Description>My text<Description>

<Description> My text <Description>

``

データ型

Analysis Services では、次のように XML スキーマ定義言語 (XSD) の標準的なデータ型を使用します。

Int
-231 ~ 231 - 1 の範囲内の整数値。

Long
-263 ~ 263 - 1 の範囲の整数値。

String
次のグローバル ルールに従う文字列値。

  • 制御文字は除去されます。

  • 先頭と末尾の空白文字は切り捨てられます。

  • 内部の空白文字は保持されます。

Name プロパティと ID プロパティには、文字列要素の有効な文字に関する特別な制限があります。 名前ID の規則の詳細については、「ASSL オブジェクトとオブジェクトの特性」を参照してください。

DateTime
.NET Frameworkからの DateTime 構造体。 DateTime 値を NULL にすることはできません。 DataTime データ型でサポートされる最も低い日付は 1601 年 1 月 1 日です。これは、プログラマが DateTime.MinValue として使用できます。 サポートされている最も低い日付は、 DateTime 値が見つからないことを示します。

Boolean
{true, false} や {0, 1} のように値が 2 つだけの列挙。

既定値

Analysis Services で使用される既定値を次の表に示します。

XML データ型 既定値
Boolean False
String "" (空の文字列)
Integer または Long 0 (ゼロ)
Timestamp 午前 12:00:00、1/1/0001 (ティック数が 0 の .NET Frameworks System.DateTime に対応)

要素が存在するが空の場合は、既定値ではなく NULL 文字列の値を含んでいるとして解釈されます。

継承された既定値

オブジェクトに指定されているプロパティには、子または子孫オブジェクトの同じプロパティに既定値を提供するものがあります。 たとえば、 Cube.StorageModePartition.StorageMode の既定値を提供します。 Analysis Services で継承された既定値に適用されるルールは、次のとおりです。

  • 子オブジェクトのプロパティが XML で NULL の場合、その値の既定値は継承された値になります。 ただし、サーバーから値をクエリする場合は、XML 要素の NULL 値が返されます。

  • 子オブジェクトのプロパティが子オブジェクトで直接設定されたか、または継承されたかをプログラムで判断することはできません。

一部の要素には、要素が欠落しているときに適用される既定値が定義されています。 たとえば、次の XML フラグメントの Dimension 要素は、1 つの Dimension 要素に Visible 要素が含まれていても、もう一方の Dimension 要素には含まれていない場合でも同等です。

<Dimension>

<Name>Product</Name>

</Dimension>

<Dimension>

<Name>Product</ Name>

<Visible>true</Visible>

</Dimension>

継承された既定値の詳細については、「 ASSL オブジェクトとオブジェクトの特性」を参照してください。