XQuery
XS intègre de façon transparente une implémentation du langage XQuery. Pour exécuter une requête XQuery, il suffit d'appeler la fonction XQuery: avec la chaîne décrivant la requête désirée. La fonction setXQueryContext: permet de définir le contexte de base pour toutes les requêtes subséquentes.
Exemples
>> setXQueryContext:corpus
>> XQuery:"count(//w)"
706
>> XQuery:"distinct-values(//w/@temps)"
{
présent
part. passé
part. présent
subj. prés.
infinitif
parfait
imparfait
gérondif
plus-que-parfait
subj. imparfait
futur
}
Variables
Les résultats d'une requête XQuery sont bien entendu retournés sous forme de variables XS. Inversément, des variables XS peuvent être passées pour une requête XQuery grâce à la fonction XQuery:constants:.
Exemples
function ExempleXQuery
global corpus
setXQueryContext:corpus
quand = "AD"
// quand = "BC"
return XQuery:
“for $doc in //doc
where contains($doc/head/date/text(), $what)
order by $doc/name
return $doc/head/author”
constants:["what" quand]
>> ExempleXQuery
{
<author>Grégoire de Tours</author>
<author>Ovide</author>
<author>Apulée</author>
<author>Petrone</author>
}
Validation XML
Grâce au système Tiger d'Apple (Mac OS X 10.4), XS bénéficie, outre une implémentation du langage XQuery, la possibilité de valider des documents ou des variables XML avec une DTD ou un schéma XML.
Toutes les erreurs de validation sont signalées lors de l'appel à la fonction setXQueryContext:.