ASSL XML 規則

適用対象:SQL Server Analysis Services Azure Analysis Services 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>

``

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

継承

継承は、重複しているが大幅に異なるプロパティのセットを持つ、明確に区別されるオブジェクトがある場合に使用されます。 このように重複しているが明確に区別されるオブジェクトの例として、仮想キューブ、リンク キューブ、および標準キューブがあります。 重複しているが distinct オブジェクトの場合、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
次のグローバル ルールに従う文字列値。

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

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

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

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

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

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

既定値

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

XML データ型 既定値
Boolean False
String "" (空の文字列)
整数 または 0 (ゼロ)
Timestamp 12:00:00 AM、1/1/0001 (0 ティックのある .NET Framework の DateTime に対応)

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

継承された既定値

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

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

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

一部の要素には、要素が欠落しているときに適用される既定値が定義されています。 たとえば、次の XML フラグメントの dimension 要素は、1つの ディメンション 要素には 可視 要素が含まれていても 、もう一方のディメンション 要素には対応していません。

<Dimension>

<Name>Product</Name>

</Dimension>

<Dimension>

<Name>Product</ Name>

<Visible>true</Visible>

</Dimension>

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