Partilhar via


Especificação de Funções de Conversão Explícitas em Consultas XPath (SQLXML 4.0)

Aplica-se a:SQL ServerBanco de Dados SQL do Azure

Os exemplos seguintes mostram como as funções de conversão explícitas são especificadas nas consultas XPath. As consultas XPath nestes exemplos são especificadas contra o esquema de mapeamento contido em SampleSchema1.xml. Para informações sobre este esquema de exemplo, consulte Esquema XSD Anotado de Exemplo para Exemplos XPath (SQLXML 4.0).

Examples

A. Usar a função de conversão explícita number()

A função number() converte um argumento num número.

Assumindo que o valor de ContactID é não numérico, a consulta seguinte converte ContactID num número e compara-o com o valor 4. A consulta devolve então todos <os filhos de elementos Employee> do nó de contexto com o atributo ContactID que tem um valor numérico de 4:

/child::Contact[number(attribute::ContactID)= 4]  

Pode ser especificado um atalho para o eixo do atributo (@) e, como o eixo filho é o predefinido, pode ser omitido da consulta:

/Contact[number(@ContactID) = 4]  

Em termos relacionais, a consulta devolve um colaborador com um ContactID de 4.

Para testar a consulta XPath contra o esquema de mapeamento
  1. Copie o código de esquema de exemplo e cole-o num ficheiro de texto. Guarde o ficheiro como SampleSchema1.xml.

  2. Crie o seguinte modelo (ExplicitConversionA.xml) e guarde-o no diretório onde SampleSchema1.xml foi guardado.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Contact[number(@ContactID)=4]  
      </sql:xpath-query>  
    </ROOT>  
    

    O caminho do diretório especificado para o esquema de mapeamento (SampleSchema1.xml) é relativo ao diretório onde o modelo é guardado. Um caminho absoluto também pode ser especificado, por exemplo:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Crie e use o Script de Teste SQLXML 4.0 (Sqlxml4test.vbs) para executar o modelo.

    Para obter mais informações, consulte Usando o ADO para executar consultas SQLXML 4.0.

O conjunto de resultados para a execução deste modelo é:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>  

B. Use a função de conversão explícita string()

A função string() converte um argumento numa string.

A consulta seguinte converte o ContactID numa cadeia e compara-a com o valor da cadeia "4". A consulta devolve todos <os filhos de elementos Employee> do nó de contexto com um ContactID com um valor de string de "4":

/child::Contact[string(attribute::ContactID)="4"]  

Pode ser especificado um atalho para o eixo do atributo (@) e, como o eixo filho é o predefinido, pode ser omitido da consulta:

/Contact[string(@ContactID)="4"]  

Funcionalmente, esta consulta devolve os mesmos resultados da consulta de exemplo anterior, embora a avaliação seja feita contra um valor de cadeia e não contra o valor numérico (ou seja, o número 4).

Para testar a consulta XPath contra o esquema de mapeamento
  1. Copie o código de esquema de exemplo e cole-o num ficheiro de texto. Guarde o ficheiro como SampleSchema1.xml.

  2. Crie o seguinte modelo (ExplicitConversionB.xml) e guarde-o no diretório onde SampleSchema1.xml foi guardado.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Contact[string(@ContactID)="4"]  
      </sql:xpath-query>  
    </ROOT>  
    

    O caminho do diretório especificado para o esquema de mapeamento (SampleSchema1.xml) é relativo ao diretório onde o modelo é guardado. Um caminho absoluto também pode ser especificado, por exemplo:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Crie e use o Script de Teste SQLXML 4.0 (Sqlxml4test.vbs) para executar o modelo.

    Para obter mais informações, consulte Usando o ADO para executar consultas SQLXML 4.0.

Aqui está o conjunto de resultados da execução do modelo:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>