Changeset 3179


Ignore:
Timestamp:
07/22/13 15:37:40 (11 years ago)
Author:
andmor
Message:

Enabled BaseX WRITEBACK option via XQuery

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cats/SCHEMAcat/trunk/urn.org.basex.rest/rest/query.dpml

    r3166 r3179  
    1818                                                <rest:query>
    1919                                                        <rest:text>
    20                                                                         <xsl:variable name="current-node" select="."/>
    21                                                                         <!-- turn the namespaces in scope of the root element into 'declare namespace' statements -->
    22                                                                         <xsl:for-each
    23                                                                                 select="in-scope-prefixes($current-node)[not(.=('xml','xs','xsi','fn','local'))]">
    24                                                                                 <xsl:variable name="prefix" select="current()"/>
    25                                                                                 <xsl:choose>
    26                                                                                         <xsl:when test="$prefix=''">
    27                                                                                                 <xsl:text>declare default element namespace "</xsl:text>
    28                                                                                                 <xsl:value-of
    29                                                                                                         select="namespace-uri-for-prefix($prefix,$current-node)"/>
    30                                                                                                 <xsl:text>";</xsl:text>
    31                                                                                         </xsl:when>
    32                                                                                         <xsl:otherwise>
    33                                                                                                 <xsl:text>declare namespace </xsl:text>
    34                                                                                                 <xsl:value-of select="$prefix"/>
    35                                                                                                 <xsl:text> = "</xsl:text>
    36                                                                                                 <xsl:value-of
    37                                                                                                         select="namespace-uri-for-prefix($prefix,$current-node)"/>
    38                                                                                                 <xsl:text>";</xsl:text>
    39                                                                                         </xsl:otherwise>
    40                                                                                 </xsl:choose>
    41                                                                         </xsl:for-each>
     20                                                                <xsl:variable name="current-node" select="."/>
     21                                                                <!-- turn the namespaces in scope of the root element into 'declare namespace' statements -->
     22                                                                <xsl:for-each
     23                                                                        select="in-scope-prefixes($current-node)[not(.=('xml','xs','xsi','fn','local'))]">
     24                                                                        <xsl:variable name="prefix" select="current()"/>
     25                                                                        <xsl:choose>
     26                                                                                <xsl:when test="$prefix=''">
     27                                                                                        <xsl:text>declare default element namespace "</xsl:text>
     28                                                                                        <xsl:value-of
     29                                                                                                select="namespace-uri-for-prefix($prefix,$current-node)"/>
     30                                                                                        <xsl:text>";</xsl:text>
     31                                                                                </xsl:when>
     32                                                                                <xsl:otherwise>
     33                                                                                        <xsl:text>declare namespace </xsl:text>
     34                                                                                        <xsl:value-of select="$prefix"/>
     35                                                                                        <xsl:text> = "</xsl:text>
     36                                                                                        <xsl:value-of
     37                                                                                                select="namespace-uri-for-prefix($prefix,$current-node)"/>
     38                                                                                        <xsl:text>";</xsl:text>
     39                                                                                </xsl:otherwise>
     40                                                                        </xsl:choose>
     41                                                                </xsl:for-each>
    4242                                                                <!-- turn any additional arguments into variables -->
    4343                                                                <xsl:for-each
     
    4848                                                                        <xsl:text> external;</xsl:text>
    4949                                                                </xsl:for-each>
     50                                                                <!-- Enable BaseX 'writeback' functionality for every query -->
     51                                                                <xsl:text>declare option db:writeback "true";</xsl:text>
    5052                                                                <xsl:apply-templates mode="copy" select="./node()"/>
    5153                                                        </rest:text>
     
    5456                                                                select="$vararg/arguments/*[not(name()=('operator','query','sloot-operator'))]">
    5557                                                                <xsl:if test="$debug">
    56                                                                         <xsl:message>DBG: variable name[<xsl:value-of select="name()"
    57                                                                                         />][doc('<xsl:value-of select="string(.)"
    58                                                                                 />')]</xsl:message>
     58                                                                        <xsl:message>DBG: variable name[<xsl:value-of select="name()"/>][doc('<xsl:value-of select="string(.)"/>')]</xsl:message>
    5959                                                                </xsl:if>
    6060                                                                <rest:variable name="{name()}" value="{unparsed-text(string(.))}"/>
Note: See TracChangeset for help on using the changeset viewer.