properties
properties 数据类型表示 xml for analysis 属性的集合。各属性都由 xml 元素定义,而属性值则为 xml 元素所包含的数据。xml 元素的名称与属性的名称相对应。
各提供程序可以扩展属性集,但提供程序特定的属性名称必须是格式严谨的 xml 标记。
示例:
<propertylist>
<datasourceinfo>
provider=msolap;data source=local;
</datasourceinfo>
<catalog>
foodmart 2000
</catalog>
<format>
multidimensional
</format>
</propertylist>
restrictions
restrictions 数据类型表示在执行 discover 方法的过程中,所要应用的限制的集合。restriction 名称指定被限制的行集列的名称。restriction 值定义列的数据。
各提供程序都可以添加新的架构行集,但要使列可以被限制,其名称必须符合 xml 格式完好性约束。
以下示例将对 mdschema_cubes 架构行集中的列名称进行限制:
<restrictionlist>
<catalog_name>
foodmart 2000
</catalog_name>
...
</restrictionlist>
需要时,可以用多个值对列进行限制。每个值都用 <value> 元素表示。示例:
<restrictionlist>
<literalname>
<value>dbliteral_quote_prefix</value>
<value>dbliteral_quote_suffix</value>
<value>dbliteral_escape_underscore_prefix</value>
<value>dbliteral_escape_underscore_suffix</value>
</literalname>
...
</restrictionlist>
resultset
resultset 数据类型是一种自我说明型的 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 行集架构中,每个特性占一列。该特性处于 "urn:schemas-microsoft-com:xml-sql" 名称空间中。
示例:
<xsd:element name="order_x0020_details" type="string" sql:field="order details" />
对于平面数据,xml for analysis 行集格式的样子如下例所示。列名称(特定于查询)在架构中定义为元素名称。各行由一对 <row> 标记包围起来:
对于层次结构数据(或嵌套行集),如由进行数据挖掘的 ole db 查询返回的数据,xml for analysis 行集格式的样子如下例所示。行的结构没有改变,但数据特定的架构将定义包含嵌套数据的元素子类型。在此例中,嵌套元素是 <node_distribution>.
string
string 类型与标准 xml 字符串数据类型相对应。
unsignedint
unsignedint 数据类型与 xml 无符号整数架构类型相对应。
xml for analysis 行集
discover 方法的 result 参数中返回的信息的结构是根据本节中所详述的行集列布局确定的。
以下行集中所述的所有列都是必需的,并且这些列必须按显示的顺序返回。但是,可以将其它列(不需要这些列的客户端应忽略它们)添加在末尾,对于不适用的信息,某些列可以包含空数据。
以下各节将对各行集进行说明。各节都包含一个表,其中提供有关各列的以下信息。
| 列标题 | 内容 |
| 列名称 | 输出行集中列的名称。 |
| 类型 | 列的数据类型的说明。有关 xml for analysis 支持的数据类型的详细信息,请参见 xml for analysis 中使用的数据类型。 |
| 说明 | 列用途的简要说明。 |
| 限制 | 表示是否可以用列来限制返回的行集(方法是通过包含 discover 方法的 restrictions 参数)。“是”表示将列用作 restrictions 项来按此字段筛选结果。 |
| 是否可以为空 | 表示是否必须返回数据或当列不适用时是否允许空字符串。“是”表示允许为空,并且数据是可选的。“否”则表示数据是必需的。 |
discover_datasources 行集
当使用 requesttype 参数中的 discover_datasources 枚举值调用 discover 方法时,该方法将在 result 参数中返回 discover_datasources 行集。这种请求类型将从应用程序 web 服务器的 url 返回一个已发布数据源的列表(以一种实现特定的方式),使客户端可以选择要连接的数据源。
| 列名称 | 类型 | 说明 | 限制 | 是否可以为空 |
| datasourcename | string | 数据源的名称,如 foodmart 2000。 | 是 | 否 |
| datasourcedescription | string | 数据源的说明,由发布者输入。 | 否 | 是 |
| url | string | 显示为该数据源调用 xml for analysis 方法的位置的唯一路径。 | 是 | 是 |
| datasourceinfo | string | 包含连接到数据源所要求的所有其它信息的字符串。该字符串可以包含提供程序的 initial catalog 属性或其它信息。
示例: |
否 | 是 |
| providername | string | 数据源之后的提供程序的名称。
示例: |
是 | 是 |