summaryrefslogtreecommitdiff
path: root/src/main/resources/cristal-function-lib.xql
blob: 3c6b6b33429e79d383e4137fd48d38df4b96b2d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
declare function cristal:getOutcomeFromView($coll as xs:string, $view as node()) as xs:string
{ 
    let $schemaName := $view/@SchemaName
    let $schemaVersion := $view/@SchemaVersion
    let $eventId := $view/@Last
    return fn:string-join(($coll,'/','Outcome.',$schemaName,'.',$schemaVersion,'.',$eventId),'') 
};

declare function cristal:getCollByType($typeName as xs:string) as xs:string*
{
    for $prop in //Property[@name="CfCName"]
    let $itemColl := util:collection-name($prop)
    let $prodType := collection($itemColl)/Property[@name="Type"]
    where $prop eq $typeName and $prodType eq "Product"
    return $itemColl
};

declare function cristal:getCollByName($name as xs:string) as xs:string*
{
    for $prop in //Property[@name="CfCName"]
    let $itemColl := util:collection-name($prop)
    let $prodType := collection($itemColl)/Property[@name="Type"]
    where $prop eq $typeName and $prodType eq "Product"
    return $itemColl
};

declare function cristal:getOutcomeFromEvent($coll as xs:string, $event as node()) as xs:string
{ 
    let $schemaName := $event/@SchemaName
    let $schemaVersion := $event/@SchemaVersion
    let $eventId := $event/@ID
    return fn:string-join(($coll,'/','Outcome.',$schemaName,'.',$schemaVersion,'.',$eventId),'') 
};