Chris Hillery has proposed merging lp:~zorba-coders/zorba/xqueryx_fulltext into lp:zorba.
Requested reviews: Zorba Coders (zorba-coders) For more details, see: https://code.launchpad.net/~zorba-coders/zorba/xqueryx_fulltext/+merge/88159 -- https://code.launchpad.net/~zorba-coders/zorba/xqueryx_fulltext/+merge/88159 Your team Zorba Coders is requested to review the proposed merge of lp:~zorba-coders/zorba/xqueryx_fulltext into lp:zorba.
=== modified file 'src/compiler/xqueryx/xqueryx_to_xquery.cpp' --- src/compiler/xqueryx/xqueryx_to_xquery.cpp 2011-09-05 20:08:30 +0000 +++ src/compiler/xqueryx/xqueryx_to_xquery.cpp 2012-01-11 08:06:25 +0000 @@ -53,7 +53,10 @@ if(!inited) { xmlDocPtr doc; - doc = xmlParseDoc((xmlChar*)xqueryx_update_xslt); + std::string xqueryx_full_xslt; + xqueryx_full_xslt += xqueryx3_0_update_xslt; + xqueryx_full_xslt += xqueryx_fulltext_xslt; + doc = xmlParseDoc((xmlChar*)xqueryx_full_xslt.c_str()); xqueryx_xslt = (xsltStylesheet*)xsltParseStylesheetDoc(doc); // xmlFreeDoc(doc); === modified file 'src/compiler/xqueryx/xqueryx_xslt.cpp' --- src/compiler/xqueryx/xqueryx_xslt.cpp 2011-07-07 07:20:10 +0000 +++ src/compiler/xqueryx/xqueryx_xslt.cpp 2012-01-11 08:06:25 +0000 @@ -23,9 +23,11 @@ namespace zorba { -//XQueryX 3.0 (draft 14 june 2011) http://www.w3.org/TR/xqueryx-30/#Stylesheet +//XQueryX 3.0 (draft 13 december 2011) http://www.w3.org/TR/xqueryx-30/#Stylesheet +//XQueryX update 1.0 +//XQueryX full text http://www.w3.org/TR/xpath-full-text-10/#id-xqft-xqueryx -const char xqueryx_update_xslt[] = +const char xqueryx3_0_update_xslt[] = "<?xml version=\"1.0\"?>" "<!-- ================================================================================ -->" "<!-- Changes from Recommendation (edition 1): -->" @@ -75,13 +77,22 @@ "<!-- 2011-05-04 - Updated structure of catch component of try-catch expression -->" "<!-- 2011-05-04 - Updated validationexpr, mode/type alternatives, type is EQName -->" "<!-- 2011-05-31 - Fixed functionItemExpr and functionCallExpr re: unqualified names -->" +"<!-- 2011-07-08 - Added support for concatenation operator || -->" +"<!-- 2011-09-09 - Added support for simple mapping operator ! -->" +"<!-- 2011-09-09 - Added support for sequenceTypeUnion in typeswitch -->" +"<!-- 2011-09-09 - Added support for annotations on inline functions -->" +"<!-- 2011-09-14 - Added support for new group-by syntax -->" +"<!-- 2011-11-21 - Jim changed \"literalFunctionItemExpr\" to \"namedFunctionRef\" -->" +"<!-- 2011-11-21 - Jim changed \"inlineFunctionItemExpr\" to \"inlineFunctionExpr\" -->" "<!-- ================================================================================ -->" "<xsl:stylesheet version=\"1.0\"" " xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"" " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" " xmlns:xqx=\"http://www.w3.org/2005/XQueryX\"" -" xmlns:xqxuf=\"http://www.w3.org/2007/xquery-update-10\">" -"<!-- Note that this stylesheet frequently invokes templates for" +" xmlns:xqxuf=\"http://www.w3.org/2007/xquery-update-10\"" +" xmlns:xqxft=\"http://www.w3.org/2007/xpath-full-text\"" +" >" +" <!-- Note that this stylesheet frequently invokes templates for" " specified elements, even when there are no templates in the" " stylesheet whose match=\"\" attribute identifies those elements." " In such case, the default template's element matching template" @@ -98,14 +109,22 @@ " <xsl:variable name=\"GREATERTHAN\" select=\"'>'\"/>" " <xsl:variable name=\"LPAREN\" select=\"'('\"/>" " <xsl:variable name=\"RPAREN\" select=\"')'\"/>" -" <xsl:variable name=\"NEWLINE\"><xsl:text>" -"</xsl:text></xsl:variable>" +" <xsl:variable name=\"NEWLINE\">" +" <xsl:text>" +" </xsl:text><!--my fix-->" +" </xsl:variable>" " <xsl:variable name=\"COMMA\" select=\"','\"/>" " <xsl:variable name=\"COMMA_SPACE\" select=\"', '\"/>" -" <xsl:variable name=\"COMMA_NEWLINE\"><xsl:text>," -"</xsl:text></xsl:variable>" -" <xsl:variable name=\"QUOTE\"><xsl:text>'</xsl:text></xsl:variable>" -" <xsl:variable name=\"DOUBLEQUOTE\"><xsl:text>\"</xsl:text></xsl:variable>" +" <xsl:variable name=\"COMMA_NEWLINE\">" +" <xsl:text>," +"</xsl:text>" +" </xsl:variable>" +" <xsl:variable name=\"QUOTE\">" +" <xsl:text>'</xsl:text>" +" </xsl:variable>" +" <xsl:variable name=\"DOUBLEQUOTE\">" +" <xsl:text>\"</xsl:text>" +" </xsl:variable>" " <xsl:variable name=\"TO\" select=\"' to '\"/>" " <xsl:variable name=\"LBRACE\" select=\"'{'\"/>" " <xsl:variable name=\"RBRACE\" select=\"'}'\"/>" @@ -121,11 +140,13 @@ " <xsl:variable name=\"AT\" select=\"'@'\"/>" " <xsl:variable name=\"STAR\" select=\"'*'\"/>" " <xsl:variable name=\"QUESTIONMARK\" select=\"'?'\"/>" +" <xsl:variable name=\"EXCLAMATIONMARK\" select=\"'!'\"/>" " <xsl:variable name=\"PERCENT\" select=\"'%'\"/>" " <xsl:variable name=\"ASSIGN\" select=\"':='\"/>" " <xsl:variable name=\"SEPARATOR\" select=\"';'\"/>" " <xsl:variable name=\"PRAGMA_BEGIN\" select=\"'(# '\"/>" " <xsl:variable name=\"PRAGMA_END\" select=\"' #)'\"/>" +" <xsl:variable name=\"CONCATENATE\" select=\"'||'\"/>" " <xsl:template name=\"delimitedList\">" " <xsl:param name=\"delimiter\" />" " <xsl:param name=\"leftEncloser\"/>" @@ -134,12 +155,12 @@ " <xsl:value-of select=\"$leftEncloser\"/>" " <xsl:for-each select=\"*\">" " <xsl:apply-templates select=\".\"/>" -" <xsl:if test=\"not (position()=last())\"> " +" <xsl:if test=\"not (position()=last())\">" " <xsl:value-of select=\"$delimiter\"/>" -" </xsl:if> " +" </xsl:if>" " </xsl:for-each>" " <xsl:value-of select=\"$rightEncloser\"/>" -" </xsl:template> " +" </xsl:template>" " <xsl:template name=\"parenthesizedList\">" " <xsl:param name=\"delimiter\" select=\"$COMMA_SPACE\"/>" " <xsl:call-template name=\"delimitedList\">" @@ -199,8 +220,12 @@ " <xsl:with-param name=\"replacement\">&#x2028;</xsl:with-param>" " </xsl:call-template>" " </xsl:with-param>" -" <xsl:with-param name=\"toBeReplaced\"><xsl:text>\"</xsl:text></xsl:with-param>" -" <xsl:with-param name=\"replacement\"><xsl:text>\"\"</xsl:text></xsl:with-param>" +" <xsl:with-param name=\"toBeReplaced\">" +" <xsl:text>\"</xsl:text>" +" </xsl:with-param>" +" <xsl:with-param name=\"replacement\">" +" <xsl:text>\"\"</xsl:text>" +" </xsl:with-param>" " </xsl:call-template>" " <xsl:value-of select=\"$DOUBLEQUOTE\"/>" " </xsl:template>" @@ -280,7 +305,7 @@ " <xsl:template match=\"xqx:rootExpr\">" " <xsl:value-of select=\"$SLASH\"/>" " </xsl:template>" -"<!-- 2010-06-23 - Added support for partial function application -->" +" <!-- 2010-06-23 - Added support for partial function application -->" " <xsl:template match=\"xqx:argumentPlaceholder\">" " <xsl:value-of select=\"$QUESTIONMARK\"/>" " </xsl:template>" @@ -293,13 +318,13 @@ " rootExpr is a stepExpr, then the parens must be" " omitted. -->" " <xsl:template match=\"xqx:pathExpr/xqx:rootExpr\">" -" <xsl:if test=\"not(following-sibling::xqx:stepExpr)\">" +" <xsl:if test=\"not(following-sibling::xqx:stepExpr or following-sibling::xqx:mapStepExpr)\">" " <xsl:value-of select=\"$LPAREN\"/>" " </xsl:if>" " <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$SLASH\"/>" " <xsl:value-of select=\"$SPACE\"/>" -" <xsl:if test=\"not(following-sibling::xqx:stepExpr)\">" +" <xsl:if test=\"not(following-sibling::xqx:stepExpr or following-sibling::xqx:mapStepExpr)\">" " <xsl:value-of select=\"$RPAREN\"/>" " </xsl:if>" " </xsl:template>" @@ -333,8 +358,8 @@ " <xsl:apply-templates select=\"xqx:argExpr\"/>" " <xsl:value-of select=\"$RBRACE\"/>" " </xsl:template>" -"<!-- Response to Bugzilla bug #2528 -->" -"<!-- Response to Bugzilla bug #12788 -->" +" <!-- Response to Bugzilla bug #2528 -->" +" <!-- Response to Bugzilla bug #12788 -->" " <xsl:template match=\"xqx:functionCallExpr\">" " <xsl:if test=\"(xqx:functionName = 'node' or" " xqx:functionName = 'document-node' or" @@ -355,8 +380,14 @@ " ((not(xqx:functionName/@xqx:prefix) and not(xqx:functionName/@xqx:URI)) or" " xqx:functionName/@xqx:prefix = '' or" " xqx:functionName/@xqx:URI = '')\">" -" <xsl:variable name=\"message\"><xsl:text>Incorrect XQueryX: function calls must not use unqualified \"reserved\" name \"</xsl:text><xsl:value-of select=\"xqx:functionName\"/><xsl:text>\"</xsl:text></xsl:variable>" -" <xsl:message terminate=\"yes\"><xsl:value-of select=\"$message\"/></xsl:message>" +" <xsl:variable name=\"message\">" +" <xsl:text>Incorrect XQueryX: function calls must not use unqualified \"reserved\" name \"</xsl:text>" +" <xsl:value-of select=\"xqx:functionName\"/>" +" <xsl:text>\"</xsl:text>" +" </xsl:variable>" +" <xsl:message terminate=\"yes\">" +" <xsl:value-of select=\"$message\"/>" +" </xsl:message>" " </xsl:if>" " <xsl:apply-templates select=\"xqx:functionName\"/>" " <xsl:choose>" @@ -380,8 +411,12 @@ " <xsl:template match=\"xqx:unaryMinusOp | xqx:unaryPlusOp\">" " <xsl:value-of select=\"$LPAREN\"/>" " <xsl:choose>" -" <xsl:when test=\"self::xqx:unaryPlusOp\"><xsl:value-of select=\"$PLUS\"/></xsl:when>" -" <xsl:when test=\"self::xqx:unaryMinusOp\"><xsl:value-of select=\"$MINUS\"/></xsl:when>" +" <xsl:when test=\"self::xqx:unaryPlusOp\">" +" <xsl:value-of select=\"$PLUS\"/>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:unaryMinusOp\">" +" <xsl:value-of select=\"$MINUS\"/>" +" </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:operand\"/>" " <xsl:value-of select=\"$RPAREN\"/>" @@ -391,27 +426,60 @@ " <xsl:value-of select=\"$LPAREN\"/>" " <xsl:apply-templates select=\"xqx:firstOperand\"/>" " <xsl:choose>" -" <xsl:when test=\"self::xqx:addOp\"><xsl:value-of select=\"$PLUS\"/></xsl:when>" -" <xsl:when test=\"self::xqx:subtractOp\"><xsl:text> </xsl:text><xsl:value-of select=\"$MINUS\"/><xsl:text> </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:multiplyOp\"><xsl:value-of select=\"$STAR\"/></xsl:when>" -" <xsl:when test=\"self::xqx:divOp\"><xsl:text> div </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:idivOp\"><xsl:text> idiv </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:modOp\"><xsl:text> mod </xsl:text></xsl:when>" +" <xsl:when test=\"self::xqx:addOp\">" +" <xsl:value-of select=\"$PLUS\"/>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:subtractOp\">" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$MINUS\"/>" +" <xsl:text> </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:multiplyOp\">" +" <xsl:value-of select=\"$STAR\"/>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:divOp\">" +" <xsl:text> div </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:idivOp\">" +" <xsl:text> idiv </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:modOp\">" +" <xsl:text> mod </xsl:text>" +" </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:secondOperand\"/>" " <xsl:value-of select=\"$RPAREN\"/>" " </xsl:template>" +" <xsl:template match=\"xqx:stringConcatenateOp\">" +" <xsl:value-of select=\"$LPAREN\"/>" +" <xsl:apply-templates select=\"xqx:firstOperand\"/>" +" <xsl:value-of select=\"$CONCATENATE\"/>" +" <xsl:apply-templates select=\"xqx:secondOperand\"/>" +" <xsl:value-of select=\"$RPAREN\"/>" +" </xsl:template>" " <xsl:template match=\"xqx:eqOp | xqx:neOp | xqx:ltOp" " | xqx:gtOp | xqx:leOp | xqx:geOp\">" " <xsl:value-of select=\"$LPAREN\"/>" " <xsl:apply-templates select=\"xqx:firstOperand\"/>" " <xsl:choose>" -" <xsl:when test=\"self::xqx:eqOp\"><xsl:text> eq </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:neOp\"><xsl:text> ne </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:ltOp\"><xsl:text> lt </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:gtOp\"><xsl:text> gt </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:leOp\"><xsl:text> le </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:geOp\"><xsl:text> ge </xsl:text></xsl:when>" +" <xsl:when test=\"self::xqx:eqOp\">" +" <xsl:text> eq </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:neOp\">" +" <xsl:text> ne </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:ltOp\">" +" <xsl:text> lt </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:gtOp\">" +" <xsl:text> gt </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:leOp\">" +" <xsl:text> le </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:geOp\">" +" <xsl:text> ge </xsl:text>" +" </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:secondOperand\"/>" " <xsl:value-of select=\"$RPAREN\"/>" @@ -422,24 +490,36 @@ " <xsl:apply-templates select=\"xqx:firstOperand\"/>" " <xsl:choose>" " <xsl:when test=\"self::xqx:equalOp\">" -" <xsl:text> </xsl:text><xsl:value-of select=\"$EQUAL\"/><xsl:text> </xsl:text>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$EQUAL\"/>" +" <xsl:text> </xsl:text>" " </xsl:when>" " <xsl:when test=\"self::xqx:notEqualOp\">" -" <xsl:text> !</xsl:text><xsl:value-of select=\"$EQUAL\"/><xsl:text> </xsl:text>" +" <xsl:text> !</xsl:text>" +" <xsl:value-of select=\"$EQUAL\"/>" +" <xsl:text> </xsl:text>" " </xsl:when>" " <xsl:when test=\"self::xqx:lessThanOp\">" -" <xsl:text> </xsl:text><xsl:value-of select=\"$LESSTHAN\"/><xsl:text> </xsl:text>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$LESSTHAN\"/>" +" <xsl:text> </xsl:text>" " </xsl:when>" " <xsl:when test=\"self::xqx:greaterThanOp\">" -" <xsl:text> </xsl:text><xsl:value-of select=\"$GREATERTHAN\"/><xsl:text> </xsl:text>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$GREATERTHAN\"/>" +" <xsl:text> </xsl:text>" " </xsl:when>" " <xsl:when test=\"self::xqx:lessThanOrEqualOp\">" -" <xsl:text> </xsl:text><xsl:value-of select=\"$LESSTHAN\"/>" -" <xsl:value-of select=\"$EQUAL\"/><xsl:text> </xsl:text>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$LESSTHAN\"/>" +" <xsl:value-of select=\"$EQUAL\"/>" +" <xsl:text> </xsl:text>" " </xsl:when>" " <xsl:when test=\"self::xqx:greaterThanOrEqualOp\">" -" <xsl:text> </xsl:text><xsl:value-of select=\"$GREATERTHAN\"/>" -" <xsl:value-of select=\"$EQUAL\"/><xsl:text> </xsl:text>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$GREATERTHAN\"/>" +" <xsl:value-of select=\"$EQUAL\"/>" +" <xsl:text> </xsl:text>" " </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:secondOperand\"/>" @@ -449,13 +529,21 @@ " <xsl:value-of select=\"$LPAREN\"/>" " <xsl:apply-templates select=\"xqx:firstOperand\"/>" " <xsl:choose>" -" <xsl:when test=\"self::xqx:isOp\"><xsl:text> is </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:nodeBeforeOp\"><xsl:text> </xsl:text>" -" <xsl:value-of select=\"$LESSTHAN\"/><xsl:value-of select=\"$LESSTHAN\"/>" -" <xsl:text> </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:nodeAfterOp\"><xsl:text> </xsl:text>" -" <xsl:value-of select=\"$GREATERTHAN\"/><xsl:value-of select=\"$GREATERTHAN\"/>" -" <xsl:text> </xsl:text></xsl:when>" +" <xsl:when test=\"self::xqx:isOp\">" +" <xsl:text> is </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:nodeBeforeOp\">" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$LESSTHAN\"/>" +" <xsl:value-of select=\"$LESSTHAN\"/>" +" <xsl:text> </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:nodeAfterOp\">" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"$GREATERTHAN\"/>" +" <xsl:value-of select=\"$GREATERTHAN\"/>" +" <xsl:text> </xsl:text>" +" </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:secondOperand\"/>" " <xsl:value-of select=\"$RPAREN\"/>" @@ -464,8 +552,12 @@ " <xsl:value-of select=\"$LPAREN\"/>" " <xsl:apply-templates select=\"xqx:firstOperand\"/>" " <xsl:choose>" -" <xsl:when test=\"self::xqx:andOp\"><xsl:text> and </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:orOp\"><xsl:text> or </xsl:text></xsl:when>" +" <xsl:when test=\"self::xqx:andOp\">" +" <xsl:text> and </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:orOp\">" +" <xsl:text> or </xsl:text>" +" </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:secondOperand\"/>" " <xsl:value-of select=\"$RPAREN\"/>" @@ -474,9 +566,15 @@ " <xsl:value-of select=\"$LPAREN\"/>" " <xsl:apply-templates select=\"xqx:firstOperand\"/>" " <xsl:choose>" -" <xsl:when test=\"self::xqx:unionOp\"><xsl:text> union </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:intersectOp\"><xsl:text> intersect </xsl:text></xsl:when>" -" <xsl:when test=\"self::xqx:exceptOp\"><xsl:text> except </xsl:text></xsl:when>" +" <xsl:when test=\"self::xqx:unionOp\">" +" <xsl:text> union </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:intersectOp\">" +" <xsl:text> intersect </xsl:text>" +" </xsl:when>" +" <xsl:when test=\"self::xqx:exceptOp\">" +" <xsl:text> except </xsl:text>" +" </xsl:when>" " </xsl:choose>" " <xsl:apply-templates select=\"xqx:secondOperand\"/>" " <xsl:value-of select=\"$RPAREN\"/>" @@ -520,7 +618,9 @@ " <xsl:apply-templates/>" " </xsl:template>" " <xsl:template match=\"xqx:letExpr\">" +" <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$ASSIGN\"/>" +" <xsl:value-of select=\"$SPACE\"/>" " <xsl:apply-templates/>" " </xsl:template>" " <xsl:template match=\"xqx:windowClause\">" @@ -609,6 +709,16 @@ " <xsl:value-of select=\"$DOLLAR\"/>" " <xsl:apply-templates/>" " </xsl:template>" +" <!-- 2011-09-14/JM - added the ability to initialize a grouping variable, opt set type -->" +" <xsl:template match=\"xqx:groupVarInitialize\">" +" <xsl:if test=\"xqx:typeDeclaration\">" +" <xsl:apply-templates select=\"xqx:typeDeclaration\"/>" +" </xsl:if>" +" <xsl:value-of select=\"$SPACE\"/>" +" <xsl:value-of select=\"$ASSIGN\"/>" +" <xsl:value-of select=\"$SPACE\"/>" +" <xsl:apply-templates select=\"xqx:varValue\"/>" +" </xsl:template>" " <xsl:template match=\"xqx:collation\">" " <xsl:text> collation </xsl:text>" " <xsl:call-template name=\"quote\">" @@ -650,7 +760,7 @@ " <xsl:apply-templates select=\"*\"/>" " <xsl:value-of select=\"$NEWLINE\"/>" " </xsl:template>" -"<!-- Surrounding FLWOR expressions with parentheses completes the set -->" +" <!-- Surrounding FLWOR expressions with parentheses completes the set -->" " <xsl:template match=\"xqx:flworExpr\">" " <xsl:value-of select=\"$NEWLINE\"/>" " <xsl:value-of select=\"$LPAREN\"/>" @@ -758,10 +868,11 @@ " <xsl:apply-templates select=\"xqx:switchExprDefaultClause\"/>" " <xsl:value-of select=\"$RPAREN\"/>" " </xsl:template>" +" <!-- 2011-09-09/JM - augmented sequenceType with sequenceTypeUnion -->" " <xsl:template match=\"xqx:typeswitchExprCaseClause\">" " <xsl:text> case </xsl:text>" " <xsl:apply-templates select=\"xqx:variableBinding\"/>" -" <xsl:apply-templates select=\"xqx:sequenceType\"/>" +" <xsl:apply-templates select=\"xqx:sequenceType | xqx:sequenceTypeUnion\"/>" " <xsl:text> return </xsl:text>" " <xsl:apply-templates select=\"xqx:resultExpr\"/>" " </xsl:template>" @@ -898,7 +1009,7 @@ " <xsl:template match=\"xqx:Wildcard[not(*)]\">" " <xsl:value-of select=\"$STAR\"/>" " </xsl:template>" -"<!-- select=\"xqx:EQname\" fixed to be select=\"xqx\"QName\"; bug 12674 -->" +" <!-- select=\"xqx:EQname\" fixed to be select=\"xqx\"QName\"; bug 12674 -->" " <xsl:template name=\"simpleWildcard\" match=\"xqx:simpleWildcard\">" " <xsl:apply-templates select=\"xqx:star\"/>" " <xsl:apply-templates select=\"xqx:QName\"/>" @@ -927,7 +1038,7 @@ " <xsl:apply-templates select=\"*\"/>" " <xsl:value-of select=\"$RPAREN\"/>" " </xsl:template>" -"<!-- // THIS IS WRONG!! A nameText is a QName *OR* a Wildcard!!! -->" +" <!-- // THIS IS WRONG!! A nameText is a QName *OR* a Wildcard!!! -->" " <xsl:template match=\"xqx:nameTest\">" " <xsl:call-template name=\"renderEQName\"/>" " </xsl:template>" @@ -991,19 +1102,28 @@ " <xsl:text> ) </xsl:text>" " </xsl:template>" " <!-- rewrote test expression per Bugzilla Bug #2523 -->" +" <!-- 2011-09-09/JM - Added mapStepExpr -->" " <xsl:template match=\"xqx:stepExpr\">" -" <xsl:if test=\"preceding-sibling::xqx:stepExpr\">" +" <xsl:if test=\"preceding-sibling::xqx:stepExpr or preceding-sibling::xqx:mapStepExpr\">" " <xsl:value-of select=\"$SLASH\"/>" " </xsl:if>" " <xsl:apply-templates select=\"*\"/>" " </xsl:template>" +" <!-- 2011-09-09/JM - Added mapStepExpr -->" +" <xsl:template match=\"xqx:mapStepExpr\">" +" <xsl:if test=\"preceding-sibling::xqx:stepExpr or preceding-sibling::xqx:mapStepExpr\">" +" <xsl:value-of select=\"$EXCLAMATIONMARK\"/>" +" </xsl:if>" +" <xsl:apply-templates select=\"*\"/>" +" </xsl:template>" " <!-- deleted xqx:parenthesizedExpr per Bugzilla Bug #4963 -->" " <xsl:template match=\"xqx:filterExpr\">" " <xsl:apply-templates/>" " </xsl:template>" " <!-- part of higher-order functions -->" " <!-- Response to Bugzilla bug #12788 -->" -" <xsl:template match=\"xqx:literalFunctionItemExpr\">" +" <!-- 2011-11-21 - Jim changed \"literalFunctionItemExpr\" to \"namedFunctionRef\" -->" +" <xsl:template match=\"xqx:namedFunctionRef\">" " <xsl:if test=\"(xqx:functionName = 'node' or" " xqx:functionName = 'document-node' or" " xqx:functionName = 'element' or" @@ -1023,23 +1143,33 @@ " ((not(@xqx:prefix) and not(@xqx:URI)) or" " (@xqx:prefix and @xqx:prefix = '') or" " (@xqx:URI and @xqx:URI = ''))\">" -" <xsl:variable name=\"message\"><xsl:text>Incorrect XQueryX: function calls must not use unqualified \"reserved\" name \"</xsl:text><xsl:value-of select=\"xqx:functionName\"/><xsl:text>\"</xsl:text></xsl:variable>" -" <xsl:message terminate=\"yes\"><xsl:value-of select=\"$message\"/></xsl:message>" +" <xsl:variable name=\"message\">" +" <xsl:text>Incorrect XQueryX: function calls must not use unqualified \"reserved\" name \"</xsl:text>" +" <xsl:value-of select=\"xqx:functionName\"/>" +" <xsl:text>\"</xsl:text>" +" </xsl:variable>" +" <xsl:message terminate=\"yes\">" +" <xsl:value-of select=\"$message\"/>" +" </xsl:message>" " </xsl:if>" " <xsl:apply-templates select=\"xqx:functionName\"/>" " <xsl:text>#</xsl:text>" " <xsl:apply-templates select=\"xqx:integerConstantExpr\"/>" " </xsl:template>" " <!-- part of higher-order functions -->" -" <xsl:template match=\"xqx:inlineFunctionItemExpr\">" +" <!-- 2011-09-09/JM - Added annotations to inline functions -->" +" <!-- 2011-11-21 - Jim changed \"inlineFunctionItemExpr\" to \"inlineFunctionExpr\" -->" +" <xsl:template match=\"xqx:inlineFunctionExpr\">" +" <xsl:apply-templates select=\"xqx:annotation\"/>" " <xsl:text> function </xsl:text>" " <xsl:apply-templates select=\"xqx:paramList\"/>" " <xsl:apply-templates select=\"xqx:typeDeclaration\"/>" " <xsl:apply-templates select=\"xqx:functionBody\"/>" " </xsl:template>" " <!-- rewrote pathExpr template per Bugzilla Bug #2523 -->" +" <!-- 2011-09-09/JM - Added mapStepExpr as an alternative -->" " <xsl:template match=\"xqx:pathExpr\">" -" <xsl:apply-templates select=\"xqx:rootExpr | xqx:stepExpr\"/>" +" <xsl:apply-templates select=\"xqx:rootExpr | xqx:stepExpr | xqx:mapStepExpr\"/>" " </xsl:template>" " <!-- To resolve Bugzilla bug #3446, we now escape NL (#xA) and TAB (#x9)" " characters in attribute values -->" @@ -1061,12 +1191,20 @@ " <xsl:with-param name=\"stringToBeFixed\">" " <xsl:value-of select=\"xqx:attributeValue\"/>" " </xsl:with-param>" -" <xsl:with-param name=\"toBeReplaced\"><xsl:text>{</xsl:text></xsl:with-param>" -" <xsl:with-param name=\"replacement\"><xsl:text>{{</xsl:text></xsl:with-param>" +" <xsl:with-param name=\"toBeReplaced\">" +" <xsl:text>{</xsl:text>" +" </xsl:with-param>" +" <xsl:with-param name=\"replacement\">" +" <xsl:text>{{</xsl:text>" +" </xsl:with-param>" " </xsl:call-template>" " </xsl:with-param>" -" <xsl:with-param name=\"toBeReplaced\"><xsl:text>}</xsl:text></xsl:with-param>" -" <xsl:with-param name=\"replacement\"><xsl:text>}}</xsl:text></xsl:with-param>" +" <xsl:with-param name=\"toBeReplaced\">" +" <xsl:text>}</xsl:text>" +" </xsl:with-param>" +" <xsl:with-param name=\"replacement\">" +" <xsl:text>}}</xsl:text>" +" </xsl:with-param>" " </xsl:call-template>" " </xsl:with-param>" " </xsl:call-template>" @@ -1131,9 +1269,11 @@ " <xsl:for-each select=\"*\">" " <xsl:if test=\"not(self::xqx:elementConstructor)\">" " <xsl:value-of select=\"$LBRACE\"/>" +" <xsl:value-of select=\"$SPACE\"/>" " </xsl:if>" " <xsl:apply-templates select=\".\"/>" " <xsl:if test=\"not(self::xqx:elementConstructor)\">" +" <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$RBRACE\"/>" " </xsl:if>" " </xsl:for-each>" @@ -1161,7 +1301,7 @@ " <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$LBRACE\"/>" " <xsl:value-of select=\"$SPACE\"/>" -" <xsl:apply-templates select=\"xqx:contentExpr\"/> " +" <xsl:apply-templates select=\"xqx:contentExpr\"/>" " <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$RBRACE\"/>" " </xsl:template>" @@ -1174,7 +1314,7 @@ " <xsl:apply-templates select=\"xqx:tagNameExpr\"/>" " <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$LBRACE\"/>" -" <xsl:apply-templates select=\"xqx:valueExpr\"/> " +" <xsl:apply-templates select=\"xqx:valueExpr\"/>" " <xsl:value-of select=\"$SPACE\"/>" " <xsl:value-of select=\"$RBRACE\"/>" " </xsl:template>" @@ -1219,11 +1359,11 @@ " <xsl:apply-templates select=\"*\"/>" " <xsl:value-of select=\"$RBRACE\"/>" " </xsl:template>" -"<!-- Move value braces into computedPIConstructor template from this template, Bugzilla bug #3442 -->" +" <!-- Move value braces into computedPIConstructor template from this template, Bugzilla bug #3442 -->" " <xsl:template match=\"xqx:piValueExpr\">" " <xsl:apply-templates select=\"*\"/>" " </xsl:template>" -"<!-- Move value braces into this template from piValueExpr template, Bugzilla bug #3442 -->" +" <!-- Move value braces into this template from piValueExpr template, Bugzilla bug #3442 -->" " <xsl:template match=\"xqx:computedPIConstructor\">" " <xsl:text> processing-instruction </xsl:text>" " <xsl:value-of select=\"xqx:piTarget\"/>" @@ -1361,6 +1501,16 @@ " <xsl:template match=\"xqx:sequenceType\">" " <xsl:apply-templates select=\"*\"/>" " </xsl:template>" +" <!-- 2011-09-09/JM - added a sequenceTypeUnion type -->" +" <xsl:template match=\"xqx:sequenceTypeUnion\">" +" <xsl:apply-templates select=\"xqx:sequenceType[1]\"/>" +" <xsl:if test=\"count(xqx:sequenceType) > 1\">" +" <xsl:for-each select=\"xqx:sequenceType[position() > 1]\">" +" <xsl:text> | </xsl:text>" +" <xsl:apply-templates select=\".\"/>" +" </xsl:for-each>" +" </xsl:if>" +" </xsl:template>" " <xsl:template match=\"xqx:singleType\">" " <xsl:apply-templates select=\"xqx:atomicType\"/>" " <xsl:if test=\"xqx:optional\">" @@ -1415,7 +1565,7 @@ " </xsl:if>" " </xsl:if>" " </xsl:template>" -"<!-- Part of fix for Bugzilla bug #3520 -->" +" <!-- Part of fix for Bugzilla bug #3520 -->" " <xsl:template match=\"xqx:targetLocation\">" " <xsl:choose>" " <xsl:when test=\"position()=1\"> at </xsl:when>" @@ -1425,7 +1575,7 @@ " <xsl:with-param name=\"item\" select=\".\"/>" " </xsl:call-template>" " </xsl:template>" -"<!-- Modified to fix Bugzilla bug #3520 -->" +" <!-- Modified to fix Bugzilla bug #3520 -->" " <xsl:template match=\"xqx:schemaImport\">" " <xsl:text> import schema </xsl:text>" " <xsl:if test=\"xqx:defaultElementNamespace\">" @@ -1441,7 +1591,7 @@ " </xsl:call-template>" " <xsl:apply-templates select=\"xqx:targetLocation\"/>" " </xsl:template>" -"<!-- Modified to fix Bugzilla bug #3520 -->" +" <!-- Modified to fix Bugzilla bug #3520 -->" " <xsl:template match=\"xqx:moduleImport\">" " <xsl:text> import module </xsl:text>" " <xsl:if test=\"xqx:namespacePrefix\">" @@ -1522,10 +1672,6 @@ " <xsl:message terminate=\"yes\">Incorrect XQueryX: The only top-level element permitted is xqx:module</xsl:message>" " </xsl:template>" " <!-- XQueryX Update -->" -" <!-- Initial creation 2006-08-17: Jim Melton -->" -" <!-- Added revalidationDecl 2006-08-21: Jim Melton -->" -" <!-- Bring up to date with spec 2007-08-07: Jim Melton -->" -" <!-- Surround updating exprs w/parens 2007-09-13: Jim Melton -->" " <!-- revalidationDecl -->" " <xsl:template match=\"xqxuf:revalidationDecl\">" " <xsl:text>declare revalidation </xsl:text>" @@ -1552,10 +1698,10 @@ " <!-- insertInto -->" " <xsl:template match=\"xqxuf:insertInto\">" " <xsl:if test=\"child::node()\">" -" <xsl:text> as </xsl:text>" +" <xsl:text>as </xsl:text>" " </xsl:if>" " <xsl:apply-templates/>" -" <xsl:text> into </xsl:text>" +" <xsl:text>into </xsl:text>" " </xsl:template>" " <!-- insertAsFirst -->" " <xsl:template match=\"xqxuf:insertAsFirst\">" @@ -1567,11 +1713,11 @@ " </xsl:template>" " <!-- insertAfter -->" " <xsl:template match=\"xqxuf:insertAfter\">" -" <xsl:text> after </xsl:text>" +" <xsl:text>after </xsl:text>" " </xsl:template>" " <!-- insertBefore -->" " <xsl:template match=\"xqxuf:insertBefore\">" -" <xsl:text> before </xsl:text>" +" <xsl:text>before </xsl:text>" " </xsl:template>" " <!-- targetExpr -->" " <xsl:template match=\"xqxuf:targetExpr\">" @@ -1665,7 +1811,353 @@ " <xsl:text> external </xsl:text>" " </xsl:if>" " </xsl:template>" -"</xsl:stylesheet>" +; +const char xqueryx_fulltext_xslt[] = +" <!-- Initial creation 2006-08-17: Jim Melton -->" +" <!-- Added ftOptionDecl, ftScoreVariableBinding 2006-08-21: Jim Melton -->" +" <!-- First version believed complete 2006-08-29: Jim Melton -->" +" <!-- Revised to align with 2008-01-24 draft 2008-02-08: Jim Melton -->" +" <!-- Revised position of \"weight\" in grammar 2008-11-12: Jim Melton -->" +" <!-- Various bug fixes 2009-07-14: Michael Dyck -->" +" <!-- ftcontains => \"contains text\", Bug 7247 2009-09-17: Jim Melton -->" +" <!-- with => using, stop words default, Bug 7271 2009-09-17: Jim Melton -->" +" <!-- {} around weight values, around empty" +" selection after pragmas 2010-09-07: Jim Melton -->" +" <!-- ftOptionDecl -->" +" <xsl:template match=\"xqxft:ftOptionDecl\">" +" <xsl:text>declare ft-option </xsl:text>" +" <xsl:apply-templates/>" +" </xsl:template>" +" <!-- ftScoreVariableBinding -->" +" <xsl:template match=\"xqxft:ftScoreVariableBinding\">" +" <xsl:text> score </xsl:text>" +" <xsl:value-of select=\"$DOLLAR\"/>" +" <xsl:if test=\"@xqx:prefix\">" +" <xsl:value-of select=\"@xqx:prefix\"/>" +" <xsl:value-of select=\"$COLON\"/>" +" </xsl:if>" +" <xsl:value-of select=\".\"/>" +" </xsl:template>" +" <!-- ftcontains -->" +" <xsl:template match=\"xqxft:ftContainsExpr\">" +" <xsl:apply-templates select=\"xqxft:ftRangeExpr\"/>" +" <xsl:text> contains text </xsl:text>" +" <xsl:apply-templates select=\"xqxft:ftSelectionExpr\"/>" +" <xsl:apply-templates select=\"xqxft:ftIgnoreOption\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:value\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftRangeExpr\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftLiteralRangeExpr\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftSelectionExpr\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftIgnoreOption\">" +" <xsl:text>without content </xsl:text>" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftSelection\">" +" <xsl:apply-templates select=\"xqxft:ftSelectionSource\"/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" <xsl:text> </xsl:text>" +" <xsl:apply-templates select=\"xqxft:ftPosFilter\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftSelectionSource\">" +" <xsl:apply-templates/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftPosFilter\">" +" <xsl:apply-templates/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <!-- FTProximity alternative: ordered -->" +" <xsl:template match=\"xqxft:ftOrdered\">" +" <xsl:text>ordered </xsl:text>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- FTProximity alternative: window -->" +" <xsl:template match=\"xqxft:ftWindow\">" +" <xsl:text>window </xsl:text>" +" <xsl:apply-templates select=\"xqxft:value\"/>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"xqxft:unit\"/>" +" <xsl:text>s</xsl:text>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- FTProximity alternative: distance -->" +" <xsl:template match=\"xqxft:ftDistance\">" +" <xsl:text>distance </xsl:text>" +" <xsl:apply-templates select=\"xqxft:ftRange\"/>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"xqxft:unit\"/>" +" <xsl:text>s</xsl:text>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- FTProximity alternative: scope -->" +" <xsl:template match=\"xqxft:ftScope\">" +" <xsl:value-of select=\"xqxft:type\"/>" +" <xsl:text> </xsl:text>" +" <xsl:value-of select=\"xqxft:unit\"/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- FTProximity alternative: content -->" +" <xsl:template match=\"xqxft:ftContent\">" +" <xsl:value-of select=\"xqxft:location\"/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:exactlyRange | xqxft:exactlyLiteralRange\">" +" <xsl:text>exactly </xsl:text>" +" <xsl:apply-templates select=\"xqxft:value\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:atLeastRange | xqxft:atLeastLiteralRange\">" +" <xsl:text>at least </xsl:text>" +" <xsl:apply-templates select=\"xqxft:value\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:atMostRange | xqxft:atMostLiteralRange\">" +" <xsl:text>at most </xsl:text>" +" <xsl:apply-templates select=\"xqxft:value\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:fromToRange | xqxft:fromToLiteralRange\">" +" <xsl:text>from </xsl:text>" +" <xsl:apply-templates select=\"xqxft:lower\"/>" +" <xsl:text> to </xsl:text>" +" <xsl:apply-templates select=\"xqxft:upper\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:lower\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:upper\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <!-- ftMatchOption alternative: case -->" +" <xsl:template match=\"xqxft:case\">" +" <xsl:text> using </xsl:text>" +" <xsl:value-of select=\"xqxft:value\"/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- ftMatchOption alternative: diacritics -->" +" <xsl:template match=\"xqxft:diacritics\">" +" <xsl:text> using </xsl:text>" +" <xsl:value-of select=\"xqxft:value\"/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- ftMatchOption alternative: stemming -->" +" <xsl:template match=\"xqxft:stem\">" +" <xsl:text> using </xsl:text>" +" <xsl:value-of select=\"xqxft:value\"/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <!-- ftMatchOption alternative: thesaurus -->" +" <xsl:template match=\"xqxft:thesaurus\">" +" <xsl:text> using </xsl:text>" +" <xsl:choose>" +" <xsl:when test=\"xqxft:noThesauri\">" +" <xsl:text>no thesaurus </xsl:text>" +" </xsl:when>" +" <xsl:otherwise>" +" <xsl:apply-templates/>" +" </xsl:otherwise>" +" </xsl:choose>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:thesauri\">" +" <xsl:text> </xsl:text>" +" <xsl:text>thesaurus </xsl:text>" +" <xsl:choose>" +" <xsl:when test=\"child::*[2]\">" +" <xsl:call-template name=\"parenthesizedList\"/>" +" </xsl:when>" +" <xsl:otherwise>" +" <xsl:apply-templates/>" +" </xsl:otherwise>" +" </xsl:choose>" +" </xsl:template>" +" <xsl:template match=\"xqxft:default\">" +" <xsl:text>default </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:thesaurusID\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:at\">" +" <xsl:text>at \"</xsl:text>" +" <xsl:value-of select=\".\"/>" +" <xsl:text>\" </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:relationship\">" +" <xsl:text>relationship \"</xsl:text>" +" <xsl:value-of select=\".\"/>" +" <xsl:text>\" </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:levels\">" +" <xsl:apply-templates/>" +" <xsl:text> levels </xsl:text>" +" </xsl:template>" +" <!-- ftMatchOption alternative: stopword -->" +" <xsl:template match=\"xqxft:stopword\">" +" <xsl:text>using </xsl:text>" +" <xsl:choose>" +" <xsl:when test=\"xqxft:noStopwords\">" +" <xsl:text>no stop words </xsl:text>" +" </xsl:when>" +" <xsl:otherwise>" +" <xsl:apply-templates/>" +" </xsl:otherwise>" +" </xsl:choose>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:stopwords\">" +" <xsl:text> </xsl:text>" +" <xsl:choose>" +" <xsl:when test=\"xqxft:default\">" +" <xsl:text>stop words default </xsl:text>" +" </xsl:when>" +" <xsl:otherwise>" +" <xsl:text>stop words </xsl:text>" +" <xsl:apply-templates select=\"xqxft:ftStopWords\"/>" +" </xsl:otherwise>" +" </xsl:choose>" +" <xsl:apply-templates select=\"xqxft:ftStopWordsInclExcl\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftStopWords\">" +" <xsl:call-template name=\"ftStopWords_type\"/>" +" </xsl:template>" +" <xsl:template name=\"ftStopWords_type\">" +" <xsl:choose>" +" <xsl:when test=\"xqxft:ref\">" +" <xsl:text>at \"</xsl:text>" +" <xsl:value-of select=\"xqxft:ref\"/>" +" <xsl:text>\" </xsl:text>" +" </xsl:when>" +" <xsl:otherwise>" +" <xsl:apply-templates/>" +" </xsl:otherwise>" +" </xsl:choose>" +" </xsl:template>" +" <xsl:template match=\"xqxft:list\">" +" <xsl:call-template name=\"parenthesizedList\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:FTStopWordsInclExcl\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:union\">" +" <xsl:text>union </xsl:text>" +" <xsl:call-template name=\"ftStopWords_type\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:except\">" +" <xsl:text>except </xsl:text>" +" <xsl:call-template name=\"ftStopWords_type\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:language\">" +" <xsl:text>using language \"</xsl:text>" +" <xsl:apply-templates/>" +" <xsl:text>\"</xsl:text>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:wildcard\">" +" <xsl:text>using </xsl:text>" +" <xsl:apply-templates/>" +" <xsl:value-of select=\"$NEWLINE\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftAnd\">" +" <xsl:apply-templates select=\"xqx:firstOperand\"/>" +" <xsl:text> ftand </xsl:text>" +" <xsl:apply-templates select=\"xqx:secondOperand\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftOr\">" +" <xsl:apply-templates select=\"xqx:firstOperand\"/>" +" <xsl:text> ftor </xsl:text>" +" <xsl:apply-templates select=\"xqx:secondOperand\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftMildNot\">" +" <xsl:apply-templates select=\"xqx:firstOperand\"/>" +" <xsl:text> not in </xsl:text>" +" <xsl:apply-templates select=\"xqx:secondOperand\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftUnaryNot\">" +" <xsl:text>ftnot </xsl:text>" +" <xsl:apply-templates select=\"xqx:operand\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftPrimaryWithOptions\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftPrimary\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:parenthesized\">" +" <xsl:text>( </xsl:text>" +" <xsl:apply-templates/>" +" <xsl:text> ) </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftWords\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftWordsValue\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftWordsLiteral\">" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftWordsExpression\">" +" <xsl:text> { </xsl:text>" +" <xsl:apply-templates/>" +" <xsl:text> } </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftAnyAllOption\">" +" <xsl:value-of select=\".\"/>" +" <xsl:text> </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftTimes\">" +" <xsl:text>occurs </xsl:text>" +" <xsl:apply-templates/>" +" <xsl:text> times </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftExtensionSelection\">" +" <xsl:apply-templates select=\"xqxft:pragma\"/>" +" <xsl:text> { </xsl:text>" +" <xsl:apply-templates select=\"xqxft:ftSelection\"/>" +" <xsl:text> } </xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:pragma\">" +" <xsl:value-of select=\"$PRAGMA_BEGIN\"/>" +" <xsl:apply-templates select=\"xqx:pragmaName\"/>" +" <xsl:value-of select=\"$SPACE\"/>" +" <xsl:value-of select=\"xqx:pragmaContents\"/>" +" <xsl:value-of select=\"$PRAGMA_END\"/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftExtensionOption\">" +" <xsl:text>using option </xsl:text>" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftExtensionName\">" +" <xsl:if test=\"@xqx:prefix\">" +" <xsl:value-of select=\"@xqx:prefix\"/>" +" <xsl:value-of select=\"$COLON\"/>" +" </xsl:if>" +" <xsl:apply-templates/>" +" </xsl:template>" +" <xsl:template match=\"xqxft:ftExtensionValue\">" +" <xsl:text> \"</xsl:text>" +" <xsl:apply-templates/>" +" <xsl:text>\"</xsl:text>" +" </xsl:template>" +" <xsl:template match=\"xqxft:weight\">" +" <xsl:text> weight { </xsl:text>" +" <xsl:apply-templates/>" +" <xsl:text> } </xsl:text>" +" </xsl:template>" +" </xsl:stylesheet>" ""; };//end namespace zorba === modified file 'src/compiler/xqueryx/xqueryx_xslt.h' --- src/compiler/xqueryx/xqueryx_xslt.h 2011-07-05 17:10:30 +0000 +++ src/compiler/xqueryx/xqueryx_xslt.h 2012-01-11 08:06:25 +0000 @@ -19,7 +19,8 @@ namespace zorba { -extern const char xqueryx_update_xslt[]; +extern const char xqueryx3_0_update_xslt[]; +extern const char xqueryx_fulltext_xslt[]; } === modified file 'test/rbkt/Queries/CMakeLists.txt' --- test/rbkt/Queries/CMakeLists.txt 2012-01-11 02:09:29 +0000 +++ test/rbkt/Queries/CMakeLists.txt 2012-01-11 08:06:25 +0000 @@ -168,6 +168,9 @@ SET (SKIP_TEST 1) ENDIF (NEEDS_FULL_TEXT) ENDIF (ZORBA_NO_FULL_TEXT) + IF(TESTNAME MATCHES "w3c_testsuite/TestSources/") + SET (SKIP_TEST 1) + ENDIF(TESTNAME MATCHES "w3c_testsuite/TestSources/") IF(WIN32) #this test fails on Windows because cannot find ourlib.dll #bug 908062 @@ -218,7 +221,7 @@ IF (FOUND_XQTS AND NOT ZORBA_TEST_W3C_TO_SUBMIT_RESULTS) EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQuery/PathExpr/Steps/Steps-leading-lone-slash-8a 3408285) - EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQuery/Functions/QNameFunc/NamespaceURIForPrefixFunc/K2-NamespaceURIForPrefixFunc-2 872732) + #EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQuery/Functions/QNameFunc/NamespaceURIForPrefixFunc/K2-NamespaceURIForPrefixFunc-2 872732) IF(NOT ZORBA_WITH_BIG_INTEGER) # These tests fail due to integer overflow. @@ -230,6 +233,18 @@ IF(ZORBA_TEST_XQUERYX) + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/PathExpr/Steps/Steps-leading-lone-slash-8a 3408285) + + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/Construct/DirectConElem/DirectConElemContent/K2-DirectConElemContent-27 909303) + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/Construct/DirectConElem/DirectConElemWhitespace/K2-DirectConElemWhitespace-25 909303) + + IF(NOT ZORBA_WITH_BIG_INTEGER) + # These tests fail due to integer overflow. + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/Operators/CompExpr/ValComp/NumericComp/NumericGT/K2-NumericGT-1 3323548) + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/Operators/CompExpr/ValComp/NumericComp/NumericGT/K2-NumericGT-2 3323548) + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/Operators/CompExpr/ValComp/NumericComp/NumericLT/K2-NumericLT-1 3323548) + EXPECTED_FAILURE(test/rbkt/w3c_testsuite/XQueryX/Operators/CompExpr/ValComp/NumericComp/NumericLT/K2-NumericLT-2 3323548) + ENDIF(NOT ZORBA_WITH_BIG_INTEGER) #w3c bug EXPECTED_FAILURE (test/rbkt/w3c_testsuite/XQueryX/StaticTyping/STPathExpr/STSteps/STAxes/ST-Axes011 3355019) EXPECTED_FAILURE (test/rbkt/w3c_testsuite/XQueryX/StaticTyping/STPathExpr/STSteps/STAxes/ST-Axes012 3355019) @@ -240,7 +255,7 @@ #this is marked as expected failure because the RQ uses XQTS_1_0_3. In that version the expected result is err:FODC0004 instead of err:FODC0002. #W3C has changed the expected result for this test in the meantime: please see http://www.w3.org/Bugs/Public/show_bug.cgi?id=12542 - EXPECTED_FAILURE (test/rbkt/w3c_testsuite/XQuery/Functions/NodeSeqFunc/SeqCollectionFunc/fn-collection-2 882002) + #EXPECTED_FAILURE (test/rbkt/w3c_testsuite/XQuery/Functions/NodeSeqFunc/SeqCollectionFunc/fn-collection-2 882002) ENDIF (FOUND_XQTS AND NOT ZORBA_TEST_W3C_TO_SUBMIT_RESULTS)
-- Mailing list: https://launchpad.net/~zorba-coders Post to : zorba-coders@lists.launchpad.net Unsubscribe : https://launchpad.net/~zorba-coders More help : https://help.launchpad.net/ListHelp