Lenguaje declarativo XML que proporciona un sistema de consulta para identificar nodos en un documento XML, basado en su tipo, nombre y valores, así como las relaciones entre los nodos. Al ser un lenguaje declarativo especifica que debe encontrarse en un documento y no como encontrarlo, lo que proporciona más flexibilidad para determinar el método más eficiente para localizar una pieza de datos.