Changeset 3379
- Timestamp:
- 08/14/13 15:02:02 (11 years ago)
- Location:
- cats/SCHEMAcat/trunk
- Files:
-
- 1 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
cats/SCHEMAcat/trunk/data/schemata/AdelheidTag/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>AdelheidTag</name>4 < version/>5 <s tatus>production</status>6 < tag type="group">Adelheid</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-0012-8</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>AdelheidTag.ebnf</name>12 < type ref="iso-ebnf"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>AdelheidTag</sc:name> 4 <sc:version/> 5 <sc:status>production</sc:status> 6 <sc:tag type="group">Adelheid</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-0012-8</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>AdelheidTag.ebnf</sc:name> 12 <sc:type ref="iso-ebnf"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/CGN/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>CGN</name>4 < version/>5 <s tatus>development</status>6 < tag type="group">Corpus Gesproken Nederlands</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-004A-A</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>CGN.ebnf</name>12 < type ref="iso-ebnf"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>CGN</sc:name> 4 <sc:version/> 5 <sc:status>development</sc:status> 6 <sc:tag type="group">Corpus Gesproken Nederlands</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-004A-A</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>CGN.ebnf</sc:name> 12 <sc:type ref="iso-ebnf"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/TEI-header-2.1.0/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>TEI-header</name>4 < version>2.1.0</version>5 <s tatus>development</status>6 < pid/>7 < tag type="group">TEI 2.1.0</tag>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>header.rng</name>12 < type ref="relaxng"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>TEI-header</sc:name> 4 <sc:version>2.1.0</sc:version> 5 <sc:status>development</sc:status> 6 <sc:pid/> 7 <sc:tag type="group">TEI 2.1.0</sc:tag> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>header.rng</sc:name> 12 <sc:type ref="relaxng"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/adelheid-charstream/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>adelheid-charstream</name>4 < version/>5 <s tatus>production</status>6 < tag type="group">Adelheid</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-000F-1</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>adelheid-charstream.xsd</name>12 < type ref="xsd-1.0"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>adelheid-charstream</sc:name> 4 <sc:version/> 5 <sc:status>production</sc:status> 6 <sc:tag type="group">Adelheid</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-000F-1</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>adelheid-charstream.xsd</sc:name> 12 <sc:type ref="xsd-1.0"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/adelheid-document/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>adelheid-document</name>4 < version/>5 <s tatus>production</status>6 < tag type="group">Adelheid</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-0010-C</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>adelheid-document.xsd</name>12 < type ref="xsd-1.0"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>adelheid-document</sc:name> 4 <sc:version/> 5 <sc:status>production</sc:status> 6 <sc:tag type="group">Adelheid</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-0010-C</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>adelheid-document.xsd</sc:name> 12 <sc:type ref="xsd-1.0"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/adelheid-lexicon/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>adelheid-lexicon</name>4 < version/>5 <s tatus>production</status>6 < tag type="group">Adelheid</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-0011-A</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>adelheid-lexicon.xsd</name>12 < type ref="xsd-1.0"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>adelheid-lexicon</sc:name> 4 <sc:version/> 5 <sc:status>production</sc:status> 6 <sc:tag type="group">Adelheid</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-0011-A</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>adelheid-lexicon.xsd</sc:name> 12 <sc:type ref="xsd-1.0"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/avatech-tier/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>avatech-timeseries</name>4 < version/>5 <s tatus>production</status>6 < tag type="group">AVATecH</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-0014-4</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>avatech-timeseries.xsd</name>12 < type ref="xsd-1.0"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>avatech-timeseries</sc:name> 4 <sc:version/> 5 <sc:status>production</sc:status> 6 <sc:tag type="group">AVATecH</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-0014-4</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>avatech-timeseries.xsd</sc:name> 12 <sc:type ref="xsd-1.0"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/avatech-timeseries/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>avatech-tier</name>4 < version/>5 <s tatus>production</status>6 < tag type="group">AVATecH</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-0013-6</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>avatech-tier.xsd</name>12 < type ref="xsd-1.0"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>avatech-tier</sc:name> 4 <sc:version/> 5 <sc:status>production</sc:status> 6 <sc:tag type="group">AVATecH</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-0013-6</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>avatech-tier.xsd</sc:name> 12 <sc:type ref="xsd-1.0"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/sonar-cgn/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>sonar-cgn</name>4 < version/>5 <s tatus>development</status>6 < tag type="group">SONAR</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-000B-9</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>placeholder.xml</name>12 < type ref="FOLiA-set-def"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>sonar-cgn</sc:name> 4 <sc:version/> 5 <sc:status>development</sc:status> 6 <sc:tag type="group">SONAR</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-000B-9</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>placeholder.xml</sc:name> 12 <sc:type ref="FOLiA-set-def"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/sonar-events/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>sonar-events</name>4 < version/>5 <s tatus>development</status>6 < tag type="group">SONAR</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-000A-B</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>placeholder.xml</name>12 < type ref="FOLiA-set-def"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>sonar-events</sc:name> 4 <sc:version/> 5 <sc:status>development</sc:status> 6 <sc:tag type="group">SONAR</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-000A-B</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>placeholder.xml</sc:name> 12 <sc:type ref="FOLiA-set-def"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/sonar-lemmas/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>sonar-lemmas</name>4 < version/>5 <s tatus>development</status>6 < tag type="group">SONAR</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-000E-3</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>placeholder.xml</name>12 < type ref="FOLiA-set-def"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>sonar-lemmas</sc:name> 4 <sc:version/> 5 <sc:status>development</sc:status> 6 <sc:tag type="group">SONAR</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-000E-3</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>placeholder.xml</sc:name> 12 <sc:type ref="FOLiA-set-def"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/schemata/sonar-ne/index.schemacat
r3005 r3379 1 1 <?xml-model href=""?> 2 <sc hema xmlns="http://www.isocat.org/ns/schemacat">3 < name>sonar-ne</name>4 < version/>5 <s tatus>development</status>6 < tag type="group">SONAR</tag>7 < pid>hdl:1839/00-SCHM-0000-0000-000D-5</pid>8 < owner type="user" ref="u1"/>9 < files>10 < file type="main">11 < name>placeholder.xml</name>12 < type ref="FOLiA-set-def"/>13 </ file>14 </ files>15 </sc hema>2 <sc:schema xmlns:sc="http://www.isocat.org/ns/schemacat"> 3 <sc:name>sonar-ne</sc:name> 4 <sc:version/> 5 <sc:status>development</sc:status> 6 <sc:tag type="group">SONAR</sc:tag> 7 <sc:pid>hdl:1839/00-SCHM-0000-0000-000D-5</sc:pid> 8 <sc:owner type="user" ref="u1"/> 9 <sc:files> 10 <sc:file type="main"> 11 <sc:name>placeholder.xml</sc:name> 12 <sc:type ref="FOLiA-set-def"/> 13 </sc:file> 14 </sc:files> 15 </sc:schema> -
cats/SCHEMAcat/trunk/data/users.schemacat
r3005 r3379 1 < users xmlns="http://www.isocat.org/ns/schemacat">2 < user xml:id="u0">3 < principal>guest</principal>4 < displayName>guest</displayName>5 < role>guest</role>6 </ user>7 < user xml:id="u1">8 < principal>Menzo.Windhouwer_mpi.nl@clarin.eu</principal>9 < displayName>Menzo Windhouwer</displayName>10 < email type="main">menzo.windhouwer@dans.knaw.nl</email>11 < role>admin</role>12 < role>user</role>13 </ user>14 </ users>1 <sc:users xmlns:sc="http://www.isocat.org/ns/schemacat"> 2 <sc:user xml:id="u0"> 3 <sc:principal>guest</sc:principal> 4 <sc:displayName>guest</sc:displayName> 5 <sc:role>guest</sc:role> 6 </sc:user> 7 <sc:user xml:id="u1"> 8 <sc:principal>Menzo.Windhouwer_mpi.nl@clarin.eu</sc:principal> 9 <sc:displayName>Menzo Windhouwer</sc:displayName> 10 <sc:email type="main">menzo.windhouwer@dans.knaw.nl</sc:email> 11 <sc:role>admin</sc:role> 12 <sc:role>user</sc:role> 13 </sc:user> 14 </sc:users> -
cats/SCHEMAcat/trunk/urn.org.basex.rest/rest/query.dpml
r3179 r3379 58 58 <xsl:message>DBG: variable name[<xsl:value-of select="name()"/>][doc('<xsl:value-of select="string(.)"/>')]</xsl:message> 59 59 </xsl:if> 60 <rest:variable name="{name()}" value="{unparsed-text(string(.))}"/> 60 <xsl:variable name="val" select="unparsed-text(string(.))"/> 61 <rest:variable name="{name()}" value="{$val}"> 62 <!-- snif if the value is XML --> 63 <xsl:if test="matches(normalize-space($val),'<.*>')"> 64 <xsl:attribute name="type" select="'element()'"/> 65 </xsl:if> 66 </rest:variable> 61 67 </xsl:for-each> 62 68 </rest:query> … … 144 150 </request> 145 151 </sloot-profile> 152 <!-- httpPost doesn't return the status code, check if we have a BaseX error text --> 153 <if> 154 <cond> 155 <request> 156 <identifier>active:javascript</identifier> 157 <argument name="operand">this:response</argument> 158 <argument name="operator"> 159 <literal type="string"> 160 var str = context.source("arg:operand",java.lang.String); 161 context.createResponseFrom(str.startsWith("Stopped at ")); 162 </literal> 163 </argument> 164 </request> 165 </cond> 166 <then> 167 <throw> 168 <id> 169 <request> 170 <identifier>active:javascript</identifier> 171 <argument name="operand">this:response</argument> 172 <argument name="operator"> 173 <literal type="string"> 174 var str = context.source("arg:operand",java.lang.String); 175 context.createResponseFrom(str.replaceAll("(?s)^.*\\[(.*?)\\].*$","$1")); 176 </literal> 177 </argument> 178 </request> 179 </id> 180 <message> 181 <request> 182 <identifier>active:javascript</identifier> 183 <argument name="operand">this:response</argument> 184 <argument name="operator"> 185 <literal type="string"> 186 var str = context.source("arg:operand",java.lang.String); 187 context.createResponseFrom(str.replaceAll("(?s)^.*\\] ","")); 188 </literal> 189 </argument> 190 </request> 191 </message> 192 </throw> 193 </then> 194 </if> 146 195 <!-- CHECK: do we always expect XML, so no atomic values or lists? --> 147 196 <sloot-debug> -
cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/access/user.dpml
r3208 r3379 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <sequence debug="false"> 3 <!-- resolve the references in arg:arguments --> 4 <request assignment="arguments"> 5 <identifier>active:xslt2</identifier> 6 <argument name="operand">arg:arguments</argument> 7 <argument name="operator"> 8 <literal type="xml"> 9 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 10 version="2.0"> 11 <xsl:template match="@*|node()"> 12 <xsl:copy> 13 <xsl:apply-templates select="@*|node()"/> 14 </xsl:copy> 15 </xsl:template> 16 <!-- skip over sloot-operator, which is this DPML script --> 17 <xsl:template match="sloot-operator" priority="1"/> 18 <xsl:template match="arguments/*"> 19 <xsl:copy> 20 <xsl:apply-templates select="@*"/> 21 <xsl:variable name="val" select="unparsed-text(.)"/> 22 <xsl:message>DBG: <xsl:value-of select="name()"/>[<xsl:value-of select="."/>][<xsl:value-of select="$val"/>]</xsl:message> 23 <xsl:choose> 24 <!-- snif if the value is XML --> 25 <xsl:when test="matches(normalize-space($val),'<.*>')"> 26 <xsl:copy-of select="doc(.)"/> 27 </xsl:when> 28 <xsl:otherwise> 29 <xsl:copy-of select="$val"/> 30 </xsl:otherwise> 31 </xsl:choose> 32 </xsl:copy> 33 </xsl:template> 34 </xsl:stylesheet> 35 </literal> 36 </argument> 37 </request> 38 <request> 39 <verb>SINK</verb> 40 <identifier>res:/debug/org.isocat.schemacat.access.data.user.arguments.xml</identifier> 41 <argument name="primary">arg:arguments</argument> 42 </request> 43 <request> 44 <verb>SINK</verb> 45 <identifier>res:/debug/org.isocat.schemacat.access.data.user.args.xml</identifier> 46 <argument name="primary">this:arguments</argument> 47 </request> 3 48 <sloot-debug> 4 49 <log> 5 50 <level>INFO</level> 6 51 <message> 7 <literal type="string">user accessor verb: %1 for principal: %2</literal>52 <literal type="string">user accessor verb: %1 with arguments: %2</literal> 8 53 </message> 9 54 <param>arg:verb</param> 10 <param> arg:principal</param>55 <param>this:arguments</param> 11 56 <!-- weird!! first call prints principal 2nd call print object id --> 12 57 </log> … … 28 73 <identifier>active:sloot.generateUUID</identifier> 29 74 </request> 30 <!-- compute the query string for creating a new user -->31 <request assignment="new-user-query">32 <identifier>active:xslt2</identifier>33 <argument name="operand">34 <literal type="xml">35 <dummy/>36 </literal>37 </argument>38 <argument name="operator">39 <literal type="xml">40 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"41 version="2.0" xmlns:rest="http://basex.org/rest">42 <xsl:param name="vararg"/>43 <xsl:template match="/">44 <query xmlns:sc="http://www.isocat.org/ns/schemacat">45 <xsl:text>let $new-user := element user { attribute xml:id {$new-user-id}, element principal {$principal}, element displayName {$display-name}</xsl:text>46 <xsl:for-each47 select="$vararg/arguments/*[name() eq 'email']">48 <xsl:text>, element email {'</xsl:text>49 <xsl:value-of select="unparsed-text(string(.))"/>50 <xsl:text>'}</xsl:text>51 </xsl:for-each>52 <!-- trying to use various roles. This reads the right number of roles passed but all their values resolve to53 the first one passed!!!54 If this work same can be used for emails -->55 <xsl:for-each select="$vararg/arguments/*[name() eq 'role']">56 <xsl:text>, element role {'</xsl:text>57 <xsl:value-of select="unparsed-text(string(.))"/>58 <xsl:text>'}</xsl:text>59 </xsl:for-each>60 <xsl:text>} return insert node $new-user into /sc:users </xsl:text>61 </query>62 </xsl:template>63 </xsl:stylesheet>64 </literal>65 </argument>66 <argument name="vararg">arg:arguments</argument>67 </request>68 <sloot-debug>69 <request>70 <verb>SINK</verb>71 <identifier>res:/debug/org.isocat.schemacat.access.data.user.new.query.xml</identifier>72 <argument name="primary">arg:query</argument>73 </request>74 </sloot-debug>75 75 <!-- create the new user by running the query--> 76 <!-- we will only know the principal --> 76 77 <request> 77 78 <identifier>active:org.basex.query</identifier> 78 <argument name="operator">this:new-user-query</argument> 79 <argument name="operator"> 80 <literal type="xml"> 81 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 82 let $old-user := /sc:users/*:user[@xml:id = $new-user-id or *:principal = $principal], 83 $new-user := element sc:user { 84 attribute xml:id {$new-user-id}, 85 element sc:principal {$principal}, 86 element sc:role{'user'} 87 } 88 return 89 if (empty($old-user)) 90 then (insert node $new-user into /sc:users) 91 else (error(xs:QName('sc:uniqueUser'),'There exists already an user with this id or principal!')) 92 </query> 93 </literal> 94 </argument> 95 <argument name="new-user-id">this:new-user-id</argument> 79 96 <argument name="principal">arg:principal</argument> 80 <argument name="display-name">arg:display-name</argument> 81 <argument name="new-user-id">this:new-user-id</argument> 82 </request> 83 <literal assignment="response" type="boolean">true</literal> 97 </request> 84 98 <log> 85 99 <level>INFO</level> 86 100 <message> 87 <literal type="string">Created user for principal: [%1]</literal>101 <literal type="string">Created user[%1] for principal[%2]</literal> 88 102 </message> 103 <param>this:new-user-id</param> 89 104 <param>arg:principal</param> 90 105 </log> 91 </sequence> 92 </then> 93 <!-- This is the future code for the SINK verb to update a user info --> 94 <!--<cond> 106 <request assignment="response"> 107 <identifier>this:new-user-id</identifier> 108 </request> 109 </sequence> 110 </then> 111 <cond> 95 112 <request> 96 113 <identifier>active:sloot.xpath2</identifier> … … 103 120 <then> 104 121 <sequence> 105 <!- \- build the 'roles' element for the user -\->122 <!-- build the 'roles' element for the user --> 106 123 <request assignment="roles"> 107 124 <identifier>active:xslt2</identifier> … … 115 132 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" 116 133 xmlns:rest="http://basex.org/rest"> 134 <xsl:param name="vararg"/> 117 135 <xsl:template match='/'> 118 136 <xsl:for-each select="$vararg/arguments/*[name() eq 'role']"> 119 137 <xsl:text>element role {'</xsl:text> 120 <xsl:value-of select=" {unparsed-text(string(.))}"/>138 <xsl:value-of select="."/> 121 139 <xsl:text>'}</xsl:text> 122 <xsl:if test=' not(last(.))'>,</xsl:if>140 <xsl:if test='position()!=last()'>,</xsl:if> 123 141 </xsl:for-each> 124 142 </xsl:template> … … 126 144 </literal> 127 145 </argument> 128 <argument name="vararg"> arg:arguments</argument>129 </request> 130 <!- \- update the user info -\->146 <argument name="vararg">this:arguments</argument> 147 </request> 148 <!-- update the user info --> 131 149 <request> 132 150 <identifier>active:org.basex.query</identifier> … … 135 153 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 136 154 let $user := 137 element user { attribute xml:id {$ user-id}, element principal138 {$ principal}, element displayName {$display-name}, $roles }139 return replace node /sc:users/sc:user[ @xml:id eq '$user-id'] with $user155 element user { attribute xml:id {$args//id}, element principal 156 {$args//principal}, element displayName {$args//display-name}, $roles } 157 return replace node /sc:users/sc:user[(@xml:id eq '$args//id') or (sc:principal eq '$args//principal')] with $user 140 158 </query> 141 159 </literal> 142 <!-\- replace value of node /sc:users/sc:user[@xml:id eq '$user-id']/sc:$field with '$new-value' -\-> 143 </argument> 144 <argument name="user-id">arg:user-id</argument> 145 <argument name="principal">arg:principal</argument> 146 <argument name="display-name">arg:display-name</argument> 160 <!-- replace value of node /sc:users/sc:user[@xml:id eq '$user-id']/sc:$field with '$new-value' --> 161 </argument> 162 <argument name="args">this:arguments</argument> 147 163 <argument name="roles">this:roles</argument> 148 164 </request> … … 156 172 </log> 157 173 </sequence> 158 </then> -->174 </then> 159 175 <cond> 160 176 <request> … … 167 183 </cond> 168 184 <then> 169 <!-- check if the user exists in the database --> 170 <!-- TODO: do we always search by principal? also support the user/@xml:id pattern 'u[0-9]+', which is unlikely(?) to clash with the principal? --> 171 <request> 172 <identifier>active:org.basex.booleanQuery</identifier> 173 <argument name="operator"> 174 <literal type="xml"> 175 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 176 <b>{exists(//sc:user[sc:principal=$principal])}</b> 177 </query> 178 </literal> 179 </argument> 180 <argument name="principal">arg:principal</argument> 181 </request> 185 <sequence> 186 <!-- check if the user exists in the database --> 187 <request assignment="response"> 188 <identifier>active:org.basex.booleanQuery</identifier> 189 <argument name="operator"> 190 <literal type="xml"> 191 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 192 <b>{exists((//sc:user[@xml:id=$args//id],//sc:user[sc:principal=$args//principal]))}</b> 193 </query> 194 </literal> 195 </argument> 196 <argument name="args">this:arguments</argument> 197 </request> 198 </sequence> 182 199 </then> 183 200 <cond> … … 198 215 <literal type="xml"> 199 216 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 200 <sc:user>{(//sc:user[sc:principal=$principal]/@*,//sc:user[sc:principal=$principal]/*)}</sc:user> 217 <sc:user>{ 218 let $user := exactly-one((//sc:user[@xml:id=$args//id],//sc:user[sc:principal=$args//principal])) 219 return ($user/@*,$user/*) 220 }</sc:user> 201 221 </query> 202 222 </literal> 203 223 </argument> 204 <argument name=" principal">arg:principal</argument>224 <argument name="args">this:arguments</argument> 205 225 </request> 206 226 <!-- pass the document returned by basex trough sloot.xpath2 so … … 242 262 </id> 243 263 <message> 244 <literal type="string">org.isocat.schemacat.data.user: unsupported verb!</literal> 264 <literal type="string">org.isocat.schemacat.data.user: unsupported 265 verb!</literal> 245 266 </message> 246 267 </throw> -
cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/etc/system/Tests.xml
r3097 r3379 5 5 <name>SCHEMAcat - data</name> 6 6 <desc>Access the data stored in SCHEMAcat</desc> 7 <uri>res:/ access/test/testlist.xml</uri>7 <uri>res:/test/testlist.xml</uri> 8 8 </test> 9 9 </tests> -
cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/module.xml
r3208 r3379 27 27 <active> 28 28 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 29 <argument name="principal" />30 <argument name=" user-id" min="0" max="1"/>31 <argument name="display-name" min="0" max="1" 32 <argument name="email" min="0" 29 <argument name="principal" min="0" max="1"/> 30 <argument name="id" min="0" max="1"/> 31 <argument name="display-name" min="0" max="1"/> 32 <argument name="email" min="0"/> 33 33 <!-- AAM: trying to pass an arbritary number of roles (max 2 here). Not working1 -> cannot read the second role. 34 34 Ideally this would be used for 'roles' and 'emails'--> … … 36 36 </active> 37 37 </grammar> 38 <verbs>EXISTS,NEW,SOURCE </verbs>38 <verbs>EXISTS,NEW,SOURCE,SINK</verbs> 39 39 <request> 40 40 <identifier>active:sloot.dpml</identifier> … … 94 94 <regex>res:/test/.*</regex> 95 95 </fileset> 96 <endpoint> 97 <!-- stop any configuration from module under test from polluting address space --> 96 <fileset> 97 <regex>res:/debug/.*</regex> 98 <mutable/> 99 </fileset> 100 <mapper> 101 <config> 102 <endpoint> 103 <grammar> 104 <simple>res:/etc/BaseXConfig.xml</simple> 105 </grammar> 106 <request> 107 <identifier>active:org.isocat.schemacat.admin.config</identifier> 108 </request> 109 </endpoint> 110 </config> 111 <space> 112 <import> 113 <uri>urn:org:isocat:schemacat:admin</uri> 114 </import> 115 </space> 116 </mapper> 117 <!--<endpoint> 118 <!-\- stop any configuration from module under test from polluting address space -\-> 98 119 <prototype>Limiter</prototype> 99 120 <grammar>res:/etc/ 100 121 <regex type="anything"/> 101 122 </grammar> 102 </endpoint> 123 </endpoint>--> 103 124 <import> 104 125 <!-- import the main space which we are testing --> 105 126 <uri>urn:org:isocat:schemacat:access:data</uri> 127 </import> 128 <import> 129 <uri>urn:org:basex:rest</uri> 106 130 </import> 107 131 <import> -
cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/test/testlist.xml
r3005 r3379 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <testlist> 3 4 <!--Add your tests here--> 5 <test> 3 <test name="SOURCE the guest user"> 6 4 <request> 7 <identifier>res:/THIS-WILL-FAIL-TO-RESOLVE-CHANGE-ME</identifier> 5 <verb>SOURCE</verb> 6 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 7 <argument name="principal"> 8 <literal type="string">guest</literal> 9 </argument> 8 10 </request> 9 11 <assert> 10 < exception/>12 <notNull/> 11 13 </assert> 12 14 </test> 13 15 <test name="SOURCE the guest user via u0"> 16 <request> 17 <verb>SOURCE</verb> 18 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 19 <argument name="id"> 20 <literal type="string">u0</literal> 21 </argument> 22 </request> 23 <assert> 24 <notNull/> 25 </assert> 26 </test> 27 <test name="EXISTS the guest user via u0"> 28 <request> 29 <verb>EXISTS</verb> 30 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 31 <argument name="id"> 32 <literal type="string">u0</literal> 33 </argument> 34 </request> 35 <assert> 36 <true/> 37 </assert> 38 </test> 39 <test name="NEW test user"> 40 <setup> 41 <identifier>active:org.basex.query</identifier> 42 <argument name="operator"> 43 <literal type="xml"> 44 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 45 delete nodes /sc:users/sc:user[sc:principal='test'] 46 </query> 47 </literal> 48 </argument> 49 </setup> 50 <request> 51 <verb>NEW</verb> 52 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 53 <argument name="principal"> 54 <literal type="string">test</literal> 55 </argument> 56 </request> 57 <assert> 58 <notNull/> 59 </assert> 60 </test> 61 <test name="EXISTS test user"> 62 <request> 63 <verb>EXISTS</verb> 64 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 65 <argument name="principal"> 66 <literal type="string">test</literal> 67 </argument> 68 </request> 69 <assert> 70 <true/> 71 </assert> 72 </test> 73 <test name="SOURCE test user"> 74 <request> 75 <verb>SOURCE</verb> 76 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 77 <argument name="principal"> 78 <literal type="string">test</literal> 79 </argument> 80 </request> 81 <assert> 82 <notNull/> 83 </assert> 84 </test> 85 <test name="SINK test user"> 86 <request> 87 <verb>SINK</verb> 88 <identifier>active:org.isocat.schemacat.access.data.user</identifier> 89 <argument name="principal"> 90 <literal type="string">test</literal> 91 </argument> 92 <argument name="display-name"> 93 <literal type="string">test cat</literal> 94 </argument > 95 <argument name="role"> 96 <literal type="string">admin</literal> 97 </argument> 98 <argument name="role"> 99 <literal type="string">moderator</literal> 100 </argument> 101 </request> 102 <assert> 103 <notNull/> 104 </assert> 105 <teardown> 106 <identifier>active:org.basex.query</identifier> 107 <argument name="operator"> 108 <literal type="xml"> 109 <query xmlns:sc="http://www.isocat.org/ns/schemacat"> 110 delete nodes /sc:users/sc:user[sc:principal='test'] 111 </query> 112 </literal> 113 </argument> 114 </teardown> 115 </test> 14 116 </testlist>
Note: See TracChangeset
for help on using the changeset viewer.