Especificar funciones booleanas en consultas XPath (SQLXML 4.0)
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 más información sobre este esquema de ejemplo, vea Esquema XSD anotado de ejemplo para los ejemplos de XPath (SQLXML 4.0).
A. Especificar la función no booleana
Esta consulta devuelve todos los elementos secundarios <Customer> del nodo de contexto que no tienen los elementos secundarios <Order>:
/child::Customer[not(child::Order)]
El eje child 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, vea Utilizar ADO para ejecutar consultas SQLXML 4.0.
Éste 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 <Customer> del nodo de contexto que no tienen los 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 child 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, vea Utilizar ADO para ejecutar consultas SQLXML 4.0.
Éste 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>