Compartir a través de


Especificación de funciones booleanos en consultas XPath (SQLXML 4.0)

En los ejemplos siguientes se muestra cómo se especifican las funciones booleanas en las consultas XPath. Las consultas XPath de estos ejemplos se especifican en el esquema de asignación contenido en SampleSchema1.xml. Para obtener información sobre este esquema de ejemplo, vea Ejemplo de esquema XSD anotado para ejemplos de XPath (SQLXML 4.0).

Ejemplos

Un. Especificación de la función booleana not()

Esta consulta devuelve todos los <elementos secundarios Customer> del nodo de contexto que no tienen <elementos secundarios Order> :

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

El child eje es el valor predeterminado. Por lo tanto, la consulta se puede especificar como:

/Customer[not(Order)]  

Para probar la consulta XPath en el esquema de asignación

  1. Copie el código de esquema de ejemplo y péguelo en un archivo de texto. Guarde el archivo como SampleSchema1.xml.

  2. Cree la plantilla siguiente (BooleanFunctionsA.xml) y guárdela en el directorio donde se guarda SampleSchema1.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Customer[not(Order)]  
    </sql:xpath-query>  
    </ROOT>  
    

    La ruta de acceso del directorio especificada para el esquema de asignación (SampleSchema1.xml) es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.

    Para obtener más información, consulte Uso de ADO para ejecutar consultas SQLXML 4.0.

Este es el conjunto de resultados parcial de la ejecución de la plantilla:

<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. Especificar las funciones booleanas true() y false()

Esta consulta devuelve todos los elementos <secundarios del elemento Customer> del nodo de contexto que no tienen <elementos secundarios Order> . En términos relacionales, esta consulta devuelve todos los clientes que no han realizado ningún pedido.

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

El child eje es el valor predeterminado. Por lo tanto, la consulta se puede especificar como:

/Customer[Order=false()]  

Esta consulta equivale a lo siguiente:

/Customer[not(Order)]  

La consulta siguiente devuelve todos los clientes que han realizado al menos un pedido:

/Customer[Order=true()]  

Esta consulta es equivalente a esta:

/Customer[Order]  

Para probar la consulta XPath en el esquema de asignación

  1. Copie el código de esquema de ejemplo y péguelo en un archivo de texto. Guarde el archivo como SampleSchema1.xml.

  2. Cree la plantilla siguiente (BooleanFunctionsB.xml) y guárdela en el directorio donde se guarda SampleSchema1.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Customer[Order=false()]  
      </sql:xpath-query>  
    </ROOT>  
    

    La ruta de acceso del directorio especificada para el esquema de asignación (SampleSchema1.xml) es relativa al directorio donde se guarda la plantilla. También puede especificarse una ruta de acceso absoluta como, por ejemplo:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Cree y use el script de prueba SQLXML 4.0 (Sqlxml4test.vbs) para ejecutar la plantilla.

    Para obtener más información, consulte Uso de ADO para ejecutar consultas SQLXML 4.0.

Este es el conjunto de resultados parcial de la ejecución de la plantilla:

<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>