Обозначения в XML языка ASSL

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Язык 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>

``

Порядок следования элементов не важен.

Наследование

Наследование используется при наличии отдельных объектов, имеющих пересекающиеся, однако значительно отличающиеся наборы свойств. Примерами таких пересекающихся, но все же отдельных объектов являются виртуальные кубы, связанные кубы и обычные кубы. Для перекрывающихся, но уникальных объектов службы Analysis Services используют атрибут стандартного типа из пространства имен экземпляра XML для указания наследования. Например, в следующем фрагменте 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 используются следующие типы данных языка XSD стандартной схемы XML.

Int
Целочисленное значение в диапазоне от –231 до 231 –1.

Long
Целочисленное значение в диапазоне от –263 до 263–1.

String
Строковое значение, соответствующее следующим глобальным правилам.

  • Управляющие символы удалены.

  • Начальные и замыкающие пробелы отсечены.

  • Пробелы внутри текста сохранены.

Свойства name и ID имеют особые ограничения на допустимые символы в строковых элементах. Дополнительные сведения о соглашениях об именах и идентификаторах см. в разделе Объекты и характеристики объектов ASSL.

DateTime
Структура DateTime из платформа .NET Framework. Значение DateTime не может иметь значение NULL. Самая низкая дата, поддерживаемая типом данных DataTime , — 1 января 1601 г., которая доступна программистам как DateTime.MinValue. Самая низкая поддерживаемая дата указывает на отсутствие значения DateTime .

Boolean
Перечисление только с двумя значениями, например {true, false} или {0, 1}.

Значения по умолчанию

В службах Analysis Services используются значения по умолчанию, перечисленные в следующей таблице.

Тип данных XML Значение по умолчанию
Boolean Неверно
String "" (пустая строка)
Целое число или long 0 (ноль)
Timestamp 12:00:00, 01.01.0001 (соответствует .NET Frameworks System.DateTime с 0 тактов)

Элемент, который имеется в наличии, но является пустым, интерпретируется как имеющий значение пустой строки, а не значение по умолчанию.

Унаследованные значения по умолчанию

Некоторые свойства, заданные в объекте, предоставляют применяемые по умолчанию значения для дочерних объектов или объектов-потомков. Например, Cube.StorageMode предоставляет значение по умолчанию для Partition.StorageMode. В службах Analysis Services к унаследованным значениям по умолчанию применяются следующие правила.

  • Если свойство для дочернего объекта не определено в элементе XML, то по умолчанию в качестве его значения применяется унаследованное значение. Но если выполняется запрос этого значения с сервера, то сервер возвращает неопределенное значение элемента XML.

  • Возможность определить программным путем, было ли задано свойство дочернего объекта непосредственно на дочернем объекте или унаследовано, отсутствует.

Для некоторых элементов определены значения по умолчанию, которые применяются при отсутствии элемента. Например, элементы Dimension в следующем фрагменте XML эквивалентны, хотя один элемент Dimension содержит элемент Visible , а другой — нет.

<Dimension>

<Name>Product</Name>

</Dimension>

<Dimension>

<Name>Product</ Name>

<Visible>true</Visible>

</Dimension>

Дополнительные сведения о наследуемых значениях по умолчанию см. в разделе Объекты и характеристики объектов ASSL.