Especificar operadores booleanos en consultas XPath (SQLXML 4.0)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database

El ejemplo siguiente muestra cómo los operadores booleanos se especifican en consultas XPath. La consulta XPath de este ejemplo se especifica en el esquema de asignación que se incluye en SampleSchema1.xml. Para obtener información sobre este esquema de ejemplo, vea Esquema XSD anotado de ejemplo para ejemplos de XPath (SQLXML 4.0).

Ejemplos

A. Especificar el operador booleano OR

Esta consulta XPath devuelve los elementos secundarios del nodo de contexto con el valor del atributo <Customer> CustomerID de 13 o 31:

/child::Customer[attribute::CustomerID="13" or attribute::CustomerID="31"]  

Se puede especificar un acceso directo al eje de atributos (@) y, dado que el eje secundario es el predeterminado, se puede omitir:

/Customer[@CustomerID="13" or @CustomerID="31"]  

En el predicado , es el eje y es la prueba de nodo (TRUE si CustomerID es un nodo, porque el nodo es el nodo principal para el attribute CustomerID eje <attribute> <attribute> de atributos). El predicado filtra los <Customer> elementos y devuelve solo los que cumplen la condición especificada en el predicado.

Para probar las consultas 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 siguiente plantilla (BooleanOperatorsA.xml) y guárdela en el directorio donde esté guardado el archivo SampleSchema1.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Customer[@CustomerID="13" or @CustomerID="31"]  
      </sql:xpath-query>  
    </ROOT>  
    

    La ruta de acceso al 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, vea Usar ADO para ejecutar consultas SQLXML 4.0.

Éste es el conjunto de resultados de 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="31" SalesPersonID="286" TerritoryID="7" AccountNumber="31" CustomerType="S" Orders="Ord-51803 Ord-69427">  
    <Order SalesOrderID="Ord-51803" SalesPersonID="286" OrderDate="2003-08-01T00:00:00" DueDate="2003-08-13T00:00:00" ShipDate="2003-08-08T00:00:00">  
      <OrderDetail ProductID="Prod-718" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
      <OrderDetail ProductID="Prod-838" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
    <Order SalesOrderID="Ord-69427" SalesPersonID="286" OrderDate="2004-05-01T00:00:00" DueDate="2004-05-13T00:00:00" ShipDate="2004-05-08T00:00:00">  
      <OrderDetail ProductID="Prod-835" UnitPrice="440.1742" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
  </Customer>  
</ROOT>