Partilhar via


Especificação de Funções Booleanas em Consultas XPath (SQLXML 4.0)

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

Os exemplos seguintes mostram como as funções booleanas 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. Especificar a função booleana not()

Esta consulta devolve todos os <elementos filho do Cliente> do nó de contexto que não têm <elementos filhos de Ordem> :

/child::Customer[not(child::Order)]  

O eixo filho é o padrão. Portanto, a consulta pode ser especificada como:

/Customer[not(Order)]  

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 (BooleanFunctionsA.xml) e guarde-o no diretório onde SampleSchema1.xml está guardado.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Customer[not(Order)]  
    </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 parcial de resultados da execução do modelo:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />   
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />   
  ...  
</ROOT>  

B. Especifique as funções booleanas true() e false()

Esta consulta devolve todos os <filhos de elementos Cliente> do nó de contexto que não têm <elementos filhos de Ordem> . Em termos relacionais, esta consulta devolve todos os clientes que não fizeram qualquer encomenda.

/child::Customer[child::Order=false()]  

O eixo filho é o padrão. Portanto, a consulta pode ser especificada como:

/Customer[Order=false()]  

Esta consulta é equivalente ao seguinte:

/Customer[not(Order)]  

A consulta seguinte devolve todos os clientes que fizeram pelo menos uma encomenda:

/Customer[Order=true()]  

Esta consulta é equivalente a esta:

/Customer[Order]  

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 (BooleanFunctionsB.xml) e guarde-o no diretório onde SampleSchema1.xml está guardado.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Customer[Order=false()]  
      </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 parcial de resultados da execução do modelo:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />   
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />   
  ...  
</ROOT>