Элемент Cell (MDDataSet) (XML для аналитики)
Содержит сведения об одной ячейке, содержащейся в родительском элементе CellData.
Синтаксис
<CellData>
<Cell CellOrdinal="unsignedInt">
<!-- Zero or more cell property values -->
<!-- or -->
<Error>...</Error>
</Cell>
</CellData>
Характеристики элемента
Характеристика |
Описание |
---|---|
Тип данных и длина |
Нет |
Значение по умолчанию |
Нет |
Количество элементов |
От 0 до n: необязательный элемент, который может встречаться несколько раз. |
Связи элемента
Атрибуты
Атрибут |
Описание |
---|---|
CellOrdinal |
Обязательный атрибут типа unsignedInt. Порядковый номер ячейки в многомерном наборе данных. |
Замечания
В родительском элементе root за элементом Axes следует элемент CellData, который представляет собой коллекцию элементов Cell, в которых содержатся значения свойств для каждой ячейки, возвращенной в многомерном наборе данных. Элемент Cell содержит атрибут CellOrdinal, который определяет порядковый номер, начиная с нуля, ячейки в многомерном наборе данных, и один элемент для каждого значения свойства ячейки, связанного с ячейкой. Каждое значение свойства ячейки в элементе Cell определяется отдельным XML-элементом. Значение свойства ячейки — это данные, содержащиеся в XML-элементе, а имя свойства ячейки, как оно определено в элементе CellInfo родительского корневого элемента, соответствует имени XML-элемента.
Ниже представлен синтаксис записи значения свойства ячейки.
<CellProperty xsi:type="string">value</CellProperty>
Тип данных для значения свойства ячейки указывается только для свойства ячейки VALUE. Типы данных для других свойств ячейки задаются в определении свойства ячейки, включенного в элемент CellInfo. Элемент значения свойства ячейки можно исключить, если указано значение по умолчанию (когда элемент Default включен в определение свойства ячейки, содержащееся в элементе CellInfo) или если значение по умолчанию не указано и значение свойства ячейки равно NULL.
Ошибки свойств ячейки
Если свойство ячейки не удается вернуть из-за ошибки, которая возникает в экземпляре служб Microsoft SQL Server Службы Analysis Services, например из-за ошибки вычисления, которая не позволяет возвратить значение для указанной ячейки, содержимое свойства рассматриваемой ячейки замещается элементом Error. В следующем примере кода XML описывается ошибка свойства ячейки.
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">
<Error>
<ErrorCode>2148497527</ErrorCode>
<Description>Unknown error</Description>
</Error>
</Value>
</Cell>
Вычисление значения порядкового номера ячейки
Положение ячейки на оси может быть вычислено на основании значения атрибута CellOrdinal. По существу, ячейки в наборе данных нумеруются так, как если бы набор данных представлял собой p-размерный массив, где p — это число осей. Адресация ячеек осуществляется по строкам.
Предположим, в запросе запрашивается четыре меры в столбцах и перекрестное соединение для двух штатов с четырьмя кварталами в строках. В следующем наборе данных свойство CellOrdinal для части результатов по набору данных, показанной полужирным шрифтом, — это набор {9, 10, 11, 13, 14, 15, 17, 18, 19}. Такой набор получается, потому что ячейки нумеруются по строкам, начиная с CellOrdinal, равного 0, для верхней левой ячейки.
Штат |
Квартал |
Продажи единиц товара |
Стоимость хранения |
Продажи магазинов |
Количество продаж |
---|---|---|---|---|---|
Калифорния |
К1 |
16890 |
14431.09 |
36175.2 |
5498 |
К2 |
18052 |
15332.02 |
38396.75 |
5915 |
|
К3 |
18370 |
15672.83 |
39394.05 |
6014 |
|
К4 |
21436 |
18094.5 |
45201.84 |
7015 |
|
Орегон |
К1 |
19287 |
16081.07 |
40170.29 |
6184 |
К2 |
15079 |
12678.96 |
31772.88 |
4799 |
|
К3 |
16940 |
14273.78 |
35880.46 |
5432 |
|
К4 |
16353 |
13738.68 |
34453.44 |
5196 |
|
Вашингтон |
К1 |
30114 |
25240.08 |
63282.86 |
9906 |
К2 |
29479 |
24953.25 |
62496.64 |
9654 |
|
К3 |
30538 |
25958.26 |
64997.38 |
10007 |
|
К4 |
34235 |
29172.72 |
73016.34 |
11217 |
Применяя формулу, показанную на рисунке, получим, что ось при k = 0 содержит Uk = 4 элемента, а ось при k = 1 содержит Uk = 8 кортежей. P = 2 — число осей в запросе. Если принять ячейку {Калифорния, К3, Стоимость хранения} за S0, начальная сумма будет равна i = 0 до 1. При i = 0 порядковый номер кортежа на оси 0 для столбца {Стоимость хранения} равен 1. При i = 1 порядковый номер кортежа для {Калифорния, К3} равен 2.
При i = 0 Ei = 1, поэтому при i = 0 сумма равна 1 * 1 = 1, а при i = 1 сумма равна 2 (порядковый номер кортежа) умножить на 4 (значение Ei вычисляется как 1 * 4) или 8. Сумма 1 + 8 равна 9, это порядковый номер для этой ячейки.
Пример
В следующем примере показана структура элемента Cell, включая значения свойств ячейки VALUE, FORMATTED_VALUE и FORMAT_STRING для каждой ячейки.
<CellData>
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">16890</Value>
<FmtValue>16,890.00</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<Cell CellOrdinal="1">
<Value xsi:type="xsd:int">50</Value>
<FmtValue>50</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<Cell CellOrdinal="2">
<Value xsi:type="xsd:double">36175.2</Value>
<FmtValue>$36,175.20</FmtValue>
<FormatString>Currency</FormatString>
</Cell>
</CellData>
См. также