Analysis Services スクリプト言語 (ASSL) は、オブジェクトの階層を要素型のセットとして表し、それぞれに含めることができる子要素を定義します。
オブジェクト階層を表すために、ASSL では次の XML 規則が使用されます。
'xml:lang' などの標準 XML 属性を除き、すべてのオブジェクトとプロパティが要素として表されます。
要素名と列挙値の両方が、アンダースコアのないパスカル大文字と小文字の Microsoft .NET Framework の名前付け規則に従います。
すべての値の大文字と小文字は保持されます。 列挙型の値でも大文字と小文字が区別されます。
Analysis Services は、この規則の一覧に加えて、カーディナリティ、継承、空白、データ型、および既定値に関する特定の規則にも従います。
濃度
要素のカーディナリティが 1 より大きい場合、この要素をカプセル化する XML 要素コレクションがあります。 コレクションの名前は、コレクションに含まれる要素の複数形を使用します。 たとえば、次の XML フラグメントは、Database要素内のDimensions コレクションを表します。
<Database>
...
<Dimensions>
<Dimension>
...
</Dimension>
<Dimension>
...
</Dimension>
</Dimensions>
</Database>
``
要素が表示される順序は重要ではありません。
継承
継承は、重複するがプロパティのセットが大幅に異なる個別のオブジェクトがある場合に使用されます。 このような重複するが個別のオブジェクトの例としては、仮想キューブ、リンクされたキューブ、および通常のキューブがあります。 重複するが個別のオブジェクトの場合、Analysis Services は XML インスタンス名前空間の標準 type 属性を使用して継承を示します。 たとえば、次の XML フラグメントは、 type 属性が、 Cube 要素が通常のキューブまたは仮想キューブから継承されるかどうかを識別する方法を示しています。
<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 プロパティには、文字列要素の有効な文字に関する特別な制限があります。
Nameおよび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 |
いいえ |
String |
"" (空の文字列) |
Integer または Long |
0 (ゼロ) |
Timestamp |
午前 12:00:00、1/1/0001 (ティック数が 0 の .NET Framework System.DateTime に対応) |
存在するが空の要素は、既定値ではなく null 文字列の値を持つものとして解釈されます。
継承された既定値
オブジェクトで指定された一部のプロパティは、子オブジェクトまたは子孫オブジェクトで同じプロパティの既定値を提供します。 たとえば、 Cube.StorageMode は Partition.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 オブジェクトとオブジェクトの特性」を参照してください。