Especificar funciones booleanas en consultas XPath (SQLXML 4.0)
Se aplica a: SQL ServerAzure SQL Database
Los ejemplos siguientes muestran cómo se especifican funciones booleanas en consultas XPath. Las consultas XPath de estos ejemplos se especifican en el esquema de asignación que se incluye 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
A Especificar 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 eje secundario es el valor predeterminado. Por lo tanto, la consulta puede especificarse como:
/Customer[not(Order)]
Para probar la consulta XPath en el esquema de asignación
Copie el código de esquema de ejemplo y péguelo en un archivo de texto. Guarde el archivo como SampleSchema1.xml.
Cree la siguiente plantilla (BooleanFunctionsA.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[not(Order)] </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"
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 parcial 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="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 eje secundario es el valor predeterminado. Por lo tanto, la consulta puede especificarse 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 equivale a ésta:
/Customer[Order]
Para probar la consulta XPath en el esquema de asignación
Copie el código de esquema de ejemplo y péguelo en un archivo de texto. Guarde el archivo como SampleSchema1.xml.
Cree la siguiente plantilla (BooleanFunctionsB.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[Order=false()] </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"
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 parcial 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="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />
<Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />
...
</ROOT>