lunedì 29 settembre 2014

Exist-DB:Giochiamo con i file

Vogliamo vedere se esite un file?

xquery version "3.0";
file:exists("c:\")


Se invece vogliamo direttamente scrivere l'output ottenuto con eXsistdb

return  file:serialize($contentToSave,concat
                          ("c:\",$referenceId,".xml"),("omit-xml-declaration=yes", "indent=yes"))

giovedì 25 settembre 2014

Exist-DB: Cercare dentro il database per tag

Come fare per cercare dentro il database da una lista di tag contenuta dentro un file xml?

xquery version "3.0";
<files>
{
    for $nodeToExplore in doc('/apps/demo/data/XMLEurovoc.xml')//*[@id='4222']
for $subNode in $nodeToExplore//*
    let $attributeId := string($subNode/@id)
    let $attributeName := string($subNode/@description)
        for $listOfNodeContaining in //classCode[text()=$attributeId]
    return
        <file id="{$listOfNodeContaining}" description="{$attributeName}" >
        {document-uri(root($listOfNodeContaining))}
        </file>
}
</files>

Exist-DB: stampare un attributo

Ebbene, per stampare un attributo a video vi occorre trasformarlo in stringa

xquery version "3.0";
for $test in doc('/apps/demo/data/XMLEurovoc.xml')//*[@id='4222']
return string($test/@description)

Exist-DB: come cercare per un singolo file

Se volete cercare per un singolo file ecco la sintassi:
xquery version "3.0";
doc('/apps/tutorial/prove/Doc151.xml')/*

mercoledì 24 settembre 2014

Exist-DB: come trovare il nome del file dato un tag

Di seguito la query da eseguire su eXide

xquery version "3.0";
for $test in //classCode[text()='2143']
return document-uri(root($test))


In sostanza, faccio una becera richiesta di tutti i tag classCode esistenti nel db, che abbiano il contenuto '2143', e poi mi faccio restituire il path in cui sono contenuti i file