Обозначения в XML
Язык сценариев служб Analysis Services (язык ASSL) представляет иерархию объектов в виде набора типов элементов, каждый из которых определяет дочерние элементы, которые они могут содержать.
Чтобы представлять иерархию объектов в языке ASSL используются следующие обозначения XML:
Все объекты и свойства, за исключением стандартных XML-атрибутов, например ‘xml:lang’, представлены, как элементы.
Имена элементов и значения перечисления соответствуют соглашению об именах в стиле языка Pascal, применяемому в платформе Microsoft .NET Framework, без символов подчеркивания.
Регистр всех значений сохраняется. Значения для перечислений также учитывают регистр.
Помимо этого списка соглашений в языке ASSL также соблюдаются определенные соглашения в отношении количества элементов, наследования, пробелов, типов данных и значений по умолчанию.
Примечание |
---|
Дополнительные сведения с описанием каждого элемента, его типа, количества элементов и значения по умолчанию, а также любые существенные дополнительные сведения см. в разделе Элементы XML языка сценариев служб Analysis Services (ASSL). |
Cardinality
Кода элемент имеет количество элементов больше 1, то существует коллекция элементов XML, которая инкапсулирует в себе этот элемент. В имени коллекции используется множественное число имени элементов, которые в ней содержатся. Например, следующий фрагмент XML представляет коллекцию Dimensions внутри элемента Database:
<Database>
…
<Dimensions>
<Dimension>
...
</Dimension>
<Dimension>
...
</Dimension>
</Dimensions>
</Database>
Порядок следования элементов неважен.
Inheritance
Наследование используется при наличии отдельных объектов, имеющих пересекающиеся, однако значительно отличающиеся наборы свойств. Примерами таких пересекающихся, но все же отдельных, объектов являются виртуальные кубы, связанные кубы и обычные кубы. Для указания наследования в пересекающихся, но все же отдельных, объектах в языке ASSL используется стандартный атрибут type из пространства имен экземпляра XML. Например, следующий фрагмент XML показывает, как атрибут type указывает, будет ли элемент Cube наследовать от обычного куба или от виртуального:
<Cubes>
<Cube xsi:type=”RegularCube”>
<Name>Sales</Name>
...
</Cube>
<Cube xsi:type=”VirtualCube”>
<Name>SalesAndInventory</Name>
...
</Cube>
</Cubes>
В целом наследование не применяется, когда у нескольких типов есть свойство с одинаковым именем. Например, многие элементы имеют свойства Name и ID, однако эти свойства не были повышены до абстрактного типа.
Whitespace
Пробелы в значении элемента сохраняются. При этом начальный и замыкающий пробелы всегда отсекаются. Например, текст в следующих элементах одинаковый, но количество пробелов в нем разное, поэтому считается, что у них разные значения:
<Description>My text<Description>
<Description>My text<Description>
Однако следующие элементы отличаются только наличием начального и замыкающего пробелов, поэтому считается, что у них одинаковые значения:
<Description>My text<Description>
<Description> My text <Description>
Типы данных
В языке ASSL используются следующие стандартные типы данных языка XSD:
Int
Целое число в диапазоне от -231 до 231 – 1.Long
Целое число в диапазоне от -263 до 263 – 1.String
Строковое значение, соответствующее следующим глобальным правилам:Управляющие символы удалены.
Начальные и замыкающие пробелы отсечены.
Пробелы внутри текста сохранены.
Свойства Name и ID имеют особые ограничения на допустимые символы в строковых элементах. Дополнительные сведения о свойствах Name и ID см. в разделе Объекты и характеристики объектов.
DateTime
Структура DateTime из платформы .NET Framework. Значение DateTime не может быть NULL. Самая давняя дата, которую поддерживает тип данных DataTime, — 1 января 1601 года, программисты могут использовать ее в форме DateTime.MinValue. Самая давняя поддерживаемая дата указывает, что значение DateTime отсутствует.Boolean
Перечисление только с двумя значениями, например {true, false} или {0, 1}.
Значения по умолчанию
Значения по умолчанию, используемые в языке ASSL, перечислены в следующей таблице.
тип данных xml |
Значение по умолчанию |
---|---|
Boolean |
False |
String |
"" (пустая строка) |
Integer или Long |
0 (ноль) |
Timestamp |
12:00:00 AM, 1/1/0001 (соответствует System.DateTime с 0 тактов в платформе .NET Frameworks) |
Элемент, который имеется в наличии, но является пустым, прерывается, как имеющий значение пустой строки, а не значение по умолчанию.
Унаследованные значения по умолчанию
Некоторые свойства, заданные в объекте, предоставляют применяемые по умолчанию значения для дочерних объектов или объектов-потомков. Например, свойство Cube.StorageMode предоставляет значение, применяемое по умолчанию для свойства Partition.StorageMode. В языке ASSL к унаследованным значениям по умолчанию применяются те же правила, как и в объектах DSO 8.0
Если свойство для дочернего объекта не определено в элементе XML, то по умолчанию в качестве его значения применяется унаследованное значение. Но, если выполняется запрос этого значения с сервера, сервер возвращает неопределенное значение элемента XML.
Возможность определить программным путем, было ли задано свойство дочернего объекта непосредственно на дочернем объекте или унаследовано, отсутствует.
Для некоторых элементов определены значения по умолчанию, которые применяются при отсутствии элемента. Например, в следующем фрагменте XML элементы Dimension эквивалентны, даже несмотря на то, что один элемент Dimension содержит элемент Visible, а другой — нет.
<Dimension>
<Name>Product</Name>
</Dimension>
<Dimension>
<Name>Product</ Name>
<Visible>true</Visible>
</Dimension>
Дополнительные сведения об унаследованных значениях умолчанию см. в разделе Объекты и характеристики объектов.