CellDataAxes 部分之后是 CellData 部分,其中包含每个单元格的属性值。强制的 CellOrdinal 特性表示单元格的序数。对于 n 个单元格,CellOrdinal 的编号为从 0 到 n-1。如果所有单元格属性都为默认值(如果没有指定默认值,则默认值为 NULL),可没有单元格元素。注意,
单元格的坐标轴引用可以根据 CellOrdinal 计算。从概念上说,单元格在数据集中的编号就如同该数据集为 p 维数组一样,其中 p 为坐标轴数。各单元格是按以行为主的顺序安排的。下图是计算单元格序号的公式。 我们将把上述公式应用于下表中显示的结果集。该查询要求在列上有四个值,而在行上有两个州和四个季度的交叉相乘。在以下数据集结果中,显示在框中的数据集结果部分的 CellOrdinal 属性为集 {9, 10, 11, 13, 14, 15, 17, 18, 19}。这是因为单元格是以行为主的顺序排列的,其开始位置为左上角单元格的零 CellOrdinal。 接着,我们将把上述公式应用于单元格 {CA, Q3, Store Cost}。坐标轴 k=0 具有 Uk=4 个成员,而坐标轴 k=1 具有 Uk=8 个元组。P 为查询中的坐标轴总数,在这里等于 2。S0 为 i=0 到 1 的初始和。对于 i=0,{Store Cost} 在坐标轴 0 上的元组序数为 1。对于 i = 1,{CA, Q3} 的元组序数为 2。 对于 i=0,Ei = 1,所以,对于 i = 0,和为 1 * 1 = 1,而对于 i=1,和为 2(元组序数)* 4(Ei 的值,按 1 * 4 计算),或 8,这样,和为 1 + 8 = 9,为该单元格的序数。 上述数据集的完整 XML 输出显示在附录 D中。 CommandCommand 数据类型是一种 XML 文档类型。在本版本的 XML for Analysis 规范中,Command 数据类型仅由
在以后版本的规范中,Command 数据类型的 XML 文档将超出本文档中定义的单个 < XML for Analysis 规范要求多维提供程序支持 mdXML 语言。mdXML 语言将以 MDX 为基础;目前 mdXML 仅由 除了 mdXML 以后的增强版本外,MDX 语言本身是可扩展的,这样,提供程序可以对该语言进行扩展,以支持其它在基本语言集中没有提供的功能。有关 mdXML 的详细信息,请参见 MDX 和 mdXML 间的关系一节。 PropertiesProperties 数据类型表示 XML for Analysis 属性的集合。各属性都由 XML 元素定义,而属性值则为 XML 元素所包含的数据。XML 元素的名称与属性的名称相对应。 各提供程序可以扩展属性集,但提供程序特定的属性名称必须是格式严谨的 XML 标记。 示例:
RestrictionsRestrictions 数据类型表示在执行 Discover 方法的过程中,所要应用的限制的集合。Restriction 名称指定被限制的行集列的名称。Restriction 值定义列的数据。 各提供程序都可以添加新的架构行集,但要使列可以被限制,其名称必须符合 XML 格式完好性约束。 以下示例将对 MDSCHEMA_CUBES 架构行集中的列名称进行限制:
需要时,可以用多个值对列进行限制。每个值都用
ResultsetResultset 数据类型是一种自我说明型的 XML 结果集。它将包含的数据类型是由 XML for Analysis Format 属性表示的。 在默认情况下,XML 架构是与结果集一起返回的。可以使用 Content 属性来改变这种情况,如 XML for Analysis 属性中所述。 Rowset在行集中嵌入的 XML 架构定义 Rowset 返回数据类型的具体结构。XML for Analysis 行集的一般结构类似于通过 FOR XML RAW 子句获取的 Microsoft? SQL Server? 2000 行集的格式,但它是以元素为中心的,而不是以特性为中心,并且允许使用层次结构数据。 XML 不允许将特定的字符当作元素和特性的名称。XML for Analysis 支持按 SQL Server 2000 中的定义进行编码来解决这一 XML 约束。对于包含无效 XML 名称字符(根据 XML 1.0 规范)的列名称,将使用相应的十六进制值对无效的 Unicode 字符进行编码。这些值转义表示为 _xHHHH_,其中 HHHH 表示字符的四位十六进制 UCS-2 代码,高位在前。例如,名称“Order Details”的编码为 Order_x0020_Details,其中的空格字符被相应的十六进制代码替代。 编码会使可扩展样式语言 (XSL) 转换变得困难。为了支持对实际上未进行编码的列名称进行快速查找,可以将 sql:field 特性添加到 XML 行集架构中,每个特性占一列。该特性处于 " 示例:
对于平面数据,XML for Analysis 行集格式的样子如下例所示。列名称(特定于查询)在架构中定义为元素名称。各行由一对 <row> 标记包围起来: 对于层次结构数据(或嵌套行集),如由进行数据挖掘的 OLE DB 查询返回的数据,XML for Analysis 行集格式的样子如下例所示。行的结构没有改变,但数据特定的架构将定义包含嵌套数据的元素子类型。在此例中,嵌套元素是 StringString 类型与标准 XML 字符串数据类型相对应。 UnsignedIntUnsignedInt 数据类型与 XML 无符号整数架构类型相对应。 XML for Analysis 行集Discover 方法的 Result 参数中返回的信息的结构是根据本节中所详述的行集列布局确定的。 以下行集中所述的所有列都是必需的,并且这些列必须按显示的顺序返回。但是,可以将其它列(不需要这些列的客户端应忽略它们)添加在末尾,对于不适用的信息,某些列可以包含空数据。 以下各节将对各行集进行说明。各节都包含一个表,其中提供有关各列的以下信息。
DISCOVER_DATASOURCES 行集当使用 RequestType 参数中的 DISCOVER_DATASOURCES 枚举值调用 Discover 方法时,该方法将在 Result 参数中返回 DISCOVER_DATASOURCES 行集。这种请求类型将从应用程序 Web 服务器的 URL 返回一个已发布数据源的列表(以一种实现特定的方式),使客户端可以选择要连接的数据源。
提供程序支持的每个类型在 ProviderType 数组中都有对应的元素。例如,支持 TDP、MDP 和 DMP 的提供程序将生成以下数组:
DISCOVER_PROPERTIES 行集当使用 RequestType 参数中的 DISCOVER_PROPERTIES 枚举值调用 Discover 方法时,该方法将在 Result 参数中返回 DISCOVER_PROPERTIES 行集。这种请求类型将返回有关 XML for Analysis 提供程序支持的标准属性和提供程序特定属性的信息。提供程序不支持的属性不列在返回结果集中。
|









