Analysis Services 腳本語言 (ASSL) 會將物件的階層表示為一組元素類型,每個類型都會定義可包含的子專案。
為了代表物件階層,ASSL 會使用下列 XML 慣例:
除了標準 XML 屬性,例如 『xml:lang』 之外,所有對象和屬性都會以元素表示。
元素名稱和列舉值都遵循Pascal大小寫Microsoft不含底線的 .NET Framework 命名慣例。
保留所有值的案例。 列舉的值也會區分大小寫。
除了此慣例清單之外,Analysis Services 也會遵循有關基數、繼承、空格符、數據類型和預設值的特定慣例。
基數
當元素具有大於 1 的基數時,有一個 XML 元素集合會封裝這個專案。 集合的名稱會使用集合中包含的元素複數形式。 例如,下列 XML 片段代表 Dimensions 元素內的 Database 集合:
<Database>
...
<Dimensions>
<Dimension>
...
</Dimension>
<Dimension>
...
</Dimension>
</Dimensions>
</Database>
``
項目出現的順序並不重要。
遺產
當有不同物件具有重疊但明顯不同的屬性集時,就會使用繼承。 這類重疊但相異物件的範例包括虛擬 Cube、連結的 Cube 和一般 Cube。 對於重疊但相異的物件,Analysis Services 會使用 type XML 實例命名空間的標準屬性來表示繼承。 例如,下列 XML 片段顯示 屬性如何 type 識別 Cube 專案是否繼承自一般 Cube 或虛擬 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 屬性對字串元素中有效字元有特殊限制。 如需 和 ID 慣例的其他資訊Name,請參閱 ASSL 對象和物件特性。
DateTime
DateTime.NET Framework 的結構。 值 DateTime 不可以是 NULL。 數據類型支援DataTime的最低日期是 1601 年 1 月 1 日,可供程式設計人員使用。DateTime.MinValue 最低支援的日期表示 DateTime 遺漏值。
Boolean
只有兩個值的列舉,例如 {true、false} 或 {0, 1}。
預設值
Analysis Services 會使用下表所列的預設值。
| XML 資料類型 | 預設值 |
|---|---|
Boolean |
否 |
String |
“” (空字串) |
Integer 或 Long |
0 (零) |
Timestamp |
上午 12:00:00、1/1/0001 (對應至具有 0 個刻度的 .NET Frameworks System.DateTime ) |
存在但空白的專案會解譯為具有 Null 字串的值,而不是預設值。
繼承的預設值
物件上指定的某些屬性會提供子物件或子代物件上相同屬性的預設值。 例如, Cube.StorageMode 提供的 Partition.StorageMode預設值。 Analysis Services 適用於繼承預設值的規則如下:
當 XML 中子物件的 屬性為 null 時,其值會預設為繼承的值。 不過,如果您從伺服器查詢值,伺服器會傳回 XML 元素的 Null 值。
無法以程式設計方式判斷子物件的 屬性是否已直接在子對象上設定或繼承。
某些元素已定義在遺漏專案時套用的預設值。 例如,Dimension即使有一個元素包含 元素,但另Dimension一個DimensionVisible元素則不相等,下列 XML 片段中的元素還是相等的。
<Dimension>
<Name>Product</Name>
</Dimension>
<Dimension>
<Name>Product</ Name>
<Visible>true</Visible>
</Dimension>
如需繼承之預設值的詳細資訊,請參閱 ASSL 物件和物件特性。