Tipo de dados Rowset (XMLA)
Define um tipo de dados derivado que representa um elemento root que retorna dados tabulares por uma chamada do método Discover ou Execute.
Namespace urn:schemas-microsoft-com:xml-analysis:rowset
Sintaxe
<root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset">
<!-- The following elements extend Resultset -->
<!-- Optional schema elements -->
<row>...</row>
</root>
Características do tipo de dados
Característica |
Descrição |
---|---|
Tipos de dados base |
|
Tipos de dados derivados |
Nenhum |
Relação do tipo de dados
Relação |
Elemento |
---|---|
Elementos pai |
Nenhum |
Elementos filho |
|
Elementos derivados |
Comentários
XML não permite certos caracteres como elemento e nomes de atributo. Para solucionar essa restrição de nomeação, XMLA (XML for Analysis) aceita codificação como definido por Microsoft SQL Server. Para nomes de colunas que contêm caracteres de nome XML que não são válidos de acordo com a especificação XMl 1.0, XMLA utiliza os valores hexadecimais correspondentes para codificar caracteres Unicode que não são válidos. Os valores hexadecimais são substituídos por _xHHHH_, em que HHHH significa o código UCS-2 hexadecimal de quatro dígitos para o caractere na primeira ordem de bit mais significativa. Por exemplo, XMLA codifica o nome, "Detalhes da Ordem", como Order_x0020_Details, que substitui o caractere de espaço com o código hexadecimal correspondente.
A codificação pode tornar difícil a transformação de XSL (Extensible Style Language). Para aceitar uma busca rápida de nomes de coluna reais e não codificados, adicione o atributo sql:field ao esquema de conjunto de linhas XML para cada coluna, como mostrado no seguinte exemplo:
<xsd:element name="Order_x0020_Details" type="string" sql:field="Order Details" />
Observação |
---|
O atributo sql:field está no namespace "urn:schemas-microsoft-com:xml-sql". |
Expressando um valor nulo
Há dois modos para expressar um valor nulo para uma coluna em uma linha:
Um elemento de coluna ausente indica que a coluna é nula.
O elemento de coluna pode usar o atributo xsi:nil='true' para indicar que tem um valor nulo.
Por exemplo, uma linha tem uma única coluna chamada, Store_Name, e o valor daquela coluna é o NULL. O valor da coluna Store_Name pode ser representado como um elemento de coluna ausente:
<row>
</row>
Ou, o valor da coluna Store_Name pode ser representando utilizando o atributo xsi:nil='true':
<row>
<Store_name xsi:nil='true'/>
</row>
Exemplo
Conjunto de linhas XMLA para dados planos
Para dados planos, os nomes das colunas, específicos para a consulta, são definidos no esquema como os nomes dos elementos. Além disso, um par de marcas <row> encapsula cada linha.
O exemplo seguinte mostra o formato do conjunto de linhas XMLA dados planos.
<return>
<root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:xml-sql">
</xsd:element>
<xsd:complexType name="row">
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element name="CATALOG_NAME" type="xsd:string" sql:field="CATALOG_NAME"></xsd:element>
<xsd:element name="DESCRIPTION" type="xsd:string" sql:field="DESCRIPTION"></xsd:element>
<xsd:element name="ROLES" type="xsd:string" sql:field="ROLES"></xsd:element>
<xsd:element name="DATE_MODIFIED" type="xsd:time" sql:field="DATE_MODIFIED"></xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:schema>
<row>
<CATALOG_NAME>FoodMart 2000</CATALOG_NAME>
<DESCRIPTION></DESCRIPTION>
<ROLES>All Users</ROLES>
<DATE_MODIFIED>3/11/2001 6:49:36 PM</DATE_MODIFIED>
</row>
...
</root>
Conjunto de linhas XMLA para dados hierárquico
Alguns conjuntos de linhas contêm dados hierárquicos (ou conjuntos de linhas aninhados). Conjuntos de linhas retornados por consultas de mining de dados são hierárquicos. Para dados hierárquicos, a estrutura de linhas não é alterada, mas o esquema específico dos dados define um subtipo de elemento que contém os dados aninhados.
O exemplo a seguir mostra o formato do conjunto de dados XMLA para dados hierárquicos. Nesse exemplo, o subtipo de elemento que contém os dados aninhados é <NODE_DISTRIBUTION>.
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<xsd:complexType name="row">
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="NODE_DISTRIBUTION" sql:field="NODE_DISTRIBUTION">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element name="ATTRIBUTE_NAME" type="xsd:string" sql:field="ATTRIBUTE_NAME"></xsd:element>
<xsd:element name="ATTRIBUTE_VALUE" type="xsd:string" sql:field="ATTRIBUTE_VALUE"></xsd:element>
<xsd:element name="SUPPORT" type="xsd:double" sql:field="SUPPORT"></xsd:element>
<xsd:element name="PROBABILITY" type="xsd:double" sql:field="PROBABILITY"></xsd:element>
<xsd:element name="VARIANCE" type="xsd:double" sql:field="VARIANCE"></xsd:element>
<xsd:element name="VALUETYPE" type="xsd:int" sql:field="VALUETYPE"></xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:element name="MODEL_CATALOG" type="xsd:string" sql:field="MODEL_CATALOG"></xsd:element>
<xsd:element name="MODEL_SCHEMA" type="xsd:string" sql:field="MODEL_SCHEMA"></xsd:element>
<xsd:element name="MODEL_NAME" type="xsd:string" sql:field="MODEL_NAME"></xsd:element>
<xsd:element name="ATTRIBUTE_NAME" type="xsd:string" sql:field="ATTRIBUTE_NAME"></xsd:element>
<xsd:element name="NODE_NAME" type="xsd:string" sql:field="NODE_NAME"></xsd:element>
<xsd:element name="NODE_UNIQUE_NAME" type="xsd:string" sql:field="NODE_UNIQUE_NAME"></xsd:element>
<xsd:element name="NODE_TYPE" type="xsd:unsignedInt" sql:field="NODE_TYPE"></xsd:element>
<xsd:element name="NODE_GUID" type="xsd:string" sql:field="NODE_GUID"></xsd:element>
<xsd:element name="NODE_CAPTION" type="xsd:string" sql:field="NODE_CAPTION"></xsd:element>
<xsd:element name="CHILDREN_CARDINALITY" type="xsd:unsignedInt" sql:field="CHILDREN_CARDINALITY"></xsd:element>
<xsd:element name="PARENT_UNIQUE_NAME" type="xsd:string" sql:field="PARENT_UNIQUE_NAME"></xsd:element>
<xsd:element name="NODE_DESCRIPTION" type="xsd:string" sql:field="NODE_DESCRIPTION"></xsd:element>
<xsd:element name="NODE_RULE" type="xsd:string" sql:field="NODE_RULE"></xsd:element>
<xsd:element name="MARGINAL_RULE" type="xsd:string" sql:field="MARGINAL_RULE"></xsd:element>
<xsd:element name="NODE_PROBABILITY" type="xsd:double" sql:field="NODE_PROBABILITY"></xsd:element>
<xsd:element name="MARGINAL_PROBABILITY" type="xsd:double" sql:field="MARGINAL_PROBABILITY"></xsd:element>
<xsd:element name="NODE_SUPPORT" sql:type="xsd:double" sql:field="NODE_SUPPORT"></xsd:element>
<xsd:element name="MSOLAP_MODEL_COLUMN" sql:type="xsd:string" sql:field="MSOLAP_MODEL_COLUMN"></xsd:element>
<xsd:element name="MSOLAP_NODE_SCORE" sql:type="xsd:double" sql:field="MSOLAP_NODE_SCORE"></xsd:element>
<xsd:element name="MSOLAP_NODE_SHORT_CAPTION" sql:type="xsd:string" sql:field="MSOLAP_NODE_SHORT_CAPTION"></xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:schema>
<row>
<MODEL_CATALOG>FoodMart 2000</MODEL_CATALOG>
<MODEL_NAME>customer pattern discovery</MODEL_NAME>
<ATTRIBUTE_NAME>Customers.Name.Member Card</ATTRIBUTE_NAME>
<NODE_NAME>2147483652</NODE_NAME>
<NODE_UNIQUE_NAME>2147483652</NODE_UNIQUE_NAME>
<NODE_TYPE>2</NODE_TYPE>
<NODE_CAPTION>All</NODE_CAPTION>
<CHILDREN_CARDINALITY>8</CHILDREN_CARDINALITY>
<PARENT_UNIQUE_NAME>0</PARENT_UNIQUE_NAME>
<NODE_DESCRIPTION>All</NODE_DESCRIPTION>
<NODE_RULE></NODE_RULE>
<MARGINAL_RULE></MARGINAL_RULE>
<NODE_PROBABILITY>1</NODE_PROBABILITY>
<MARGINAL_PROBABILITY>1</MARGINAL_PROBABILITY>
<NODE_DISTRIBUTION>
<ATTRIBUTE_NAME>Customers.Name.Member Card</ATTRIBUTE_NAME>
<ATTRIBUTE_VALUE>missing</ATTRIBUTE_VALUE>
<SUPPORT>0</SUPPORT>
<PROBABILITY>0</PROBABILITY>
<VARIANCE>0</VARIANCE>
<VALUETYPE>1</VALUETYPE></NODE_DISTRIBUTION>
<NODE_DISTRIBUTION>
<ATTRIBUTE_NAME>Customers.Name.Member Card</ATTRIBUTE_NAME>
<ATTRIBUTE_VALUE>Bronze</ATTRIBUTE_VALUE>
<SUPPORT>3077</SUPPORT>
<PROBABILITY>0.551334886221107</PROBABILITY>
<VARIANCE>0</VARIANCE>
<VALUETYPE>4</VALUETYPE></NODE_DISTRIBUTION>
<NODE_DISTRIBUTION>
<ATTRIBUTE_NAME>Customers.Name.Member Card</ATTRIBUTE_NAME>
<ATTRIBUTE_VALUE>Golden</ATTRIBUTE_VALUE>
<SUPPORT>659</SUPPORT>
<PROBABILITY>0.118079197276474</PROBABILITY>
<VARIANCE>0</VARIANCE>
<VALUETYPE>4</VALUETYPE></NODE_DISTRIBUTION>
<NODE_DISTRIBUTION>
<ATTRIBUTE_NAME>Customers.Name.Member Card</ATTRIBUTE_NAME>
<ATTRIBUTE_VALUE>Normal</ATTRIBUTE_VALUE>
<SUPPORT>1332</SUPPORT>
<PROBABILITY>0.238666905572478</PROBABILITY>
<VARIANCE>0</VARIANCE>
<VALUETYPE>4</VALUETYPE></NODE_DISTRIBUTION>
<NODE_DISTRIBUTION>
<ATTRIBUTE_NAME>Customers.Name.Member Card</ATTRIBUTE_NAME>
<ATTRIBUTE_VALUE>Silver</ATTRIBUTE_VALUE>
<SUPPORT>513</SUPPORT>
<PROBABILITY>9.19190109299409E-02</PROBABILITY>
<VARIANCE>0</VARIANCE>
<VALUETYPE>4</VALUETYPE></NODE_DISTRIBUTION>
<NODE_SUPPORT>5581</NODE_SUPPORT>
<MSOLAP_MODEL_COLUMN>Customers.Name.Member Card</MSOLAP_MODEL_COLUMN>
<MSOLAP_NODE_SCORE>1948.401692055</MSOLAP_NODE_SCORE>
<MSOLAP_NODE_SHORT_CAPTION>All</MSOLAP_NODE_SHORT_CAPTION>
</row>
</root>