Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x:description/attribute(xquery-version) #497

Merged
merged 1,109 commits into from
Jun 21, 2019
Merged

Conversation

AirQuick
Copy link
Member

@AirQuick AirQuick commented Jan 2, 2019

This pull request derives from #496. So needs to be handled after that.


x:description has @xslt-version but it doesn't have a facility to specify the XQuery version.

This pull request provides it: x:description/@xquery-version

I didn't name it @query-version (without x of the first letter), because @xslt-version isn't @stylesheet-version.

Commits

  • fba935a defines @xquery-version in the schema.

    • I verified manually that oXygen picks it up with the annotation.
    • The type of the attribute (text) is based on XQueryX schema (<xsd:element name="version" type="xsd:string"/>).
  • 39038b3 annotates @xslt-version in the schema.

    • The annotation highlights the difference from @xquery-version.
    • I verified manually that oXygen picks up the annotation.
  • c984615 generates the version declaration when compiling XSpec for XQuery.

  • c79b7cb verifies that @xquery-version is actually declared in the compiled module.

  • 1b60e1e enables test/*.xspec to be run on XQuery 3.1.
    Saxon 9.6 doesn't support 3.1. 9.7 supports 3.1 only when -qversion:3.1 is specified. 9.8 and 9.9 support 3.1 by default but reject -qversion. build.xml and generate.xsl work together to find the best route in the matrix:

    • Saxon-HE 9.9: Travis, AppVeyor

    • Saxon-HE 9.8: Travis, AppVeyor

    • Saxon-EE 9.7:

      $ ./run-xspec-tests-ant.sh -silent
      ...
      xquery.supports.3-1.default=false
      xquery.supports.3-1.qversion=true
      ...
      Testing xquery-version_3.1.xspec [q]
      passed: 1 / pending: 0 / failed: 0 / total: 1
    • Saxon-EE 9.6:

      $ ./run-xspec-tests-ant.sh -silent
      ...
      xquery.supports.3-1.default=false
      ...
      xquery.supports.3-1.qversion=false
      Skipping xquery-version_3.1.xspec: Requires XQuery 3.1 processor

# Conflicts:
#	test/win-bats/collection.xml
#	test/xspec.bats
# Conflicts:
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/xspec-rule.xspec
#	test/win-bats/collection.xml
#	test/xspec-node-selection.xspec
#	test/xspec.bats
…-59-2_xquery

# Conflicts:
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/xspec-rule.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…-151

# Conflicts:
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/xspec-rule.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…d-like

# Conflicts:
#	.travis.yml
#	appveyor.yml
#	src/compiler/generate-common-tests.xsl
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	src/schemas/xspec.rnc
#	test/end-to-end/cases/expected/query/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/end-to-end/cases/xspec-focus-1.xspec
#	test/end-to-end/cases/xspec-function.xspec
#	test/end-to-end/cases/xspec-import.xspec
#	test/end-to-end/cases/xspec-pending.xspec
#	test/end-to-end/cases/xspec-three-dots.xspec
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/unit-expect-xsl.xspec
#	test/win-bats/collection.xml
#	test/xspec-308.xspec
#	test/xspec-59_use-case-1.xspec
#	test/xspec-59_use-case-2.xspec
#	test/xspec-node-selection.xspec
#	test/xspec-variable.xspec
#	test/xspec.bats
# Conflicts:
#	.travis.yml
#	appveyor.yml
#	src/compiler/generate-common-tests.xsl
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/unit-expect-xsl.xspec
#	test/win-bats/collection.xml
#	test/xspec-308.xspec
#	test/xspec-59_use-case-1.xspec
#	test/xspec-59_use-case-2.xspec
#	test/xspec-node-selection.xspec
#	test/xspec-variable.xspec
#	test/xspec.bats
…erwise

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
# Conflicts:
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…-output-escaping

# Conflicts:
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…-folding-img-src

# Conflicts:
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…sult-prefixes

# Conflicts:
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…lize

# Conflicts:
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…ormat-xslt

# Conflicts:
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…erialize

# Conflicts:
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…359-367

# Conflicts:
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…-flags

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…diff

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…ort-value

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…355-357-358-360-361

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…sequence

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…-151

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…nt-family

# Conflicts:
#	src/compiler/generate-query-utils.xql
#	src/compiler/generate-tests-utils.xsl
#	src/compiler/generate-xspec-tests.xsl
#	test/end-to-end/cases/expected/stylesheet/xspec-rule-result.html
#	test/end-to-end/cases/expected/stylesheet/xspec-three-dots-result.html
#	test/end-to-end/cases/expected/xspec-rule-junit-norm.xml
#	test/end-to-end/cases/expected/xspec-three-dots-junit-norm.xml
#	test/generate-tests-utils.xspec
#	test/generate-x-utils.xspec
#	test/generate-xspec-tests.xspec
#	test/win-bats/collection.xml
#	test/xspec.bats
…e-type

# Conflicts:
#	test/xspec-result-naming-collision.xspec
@AirQuick AirQuick added this to the v1.4.0 milestone Apr 30, 2019
@AirQuick AirQuick requested a review from galtm June 18, 2019 20:22
@AirQuick
Copy link
Member Author

@galtm
This PR adds an attribute to the schema, So I thought this should be reviewed by someone.
The immediate reason for introducing this new attribute is #498 (ce552c6 in particular where testing #355 requires XPath 3.1).

</xsl:when>
</xsl:choose>
</xsl:variable>

<xsl:variable as="xs:string?" name="skip">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume you are intentionally reusing the variable name on lines 76 and 100. Just mentioning it in case your preferred style is to make variable names unique and the reuse was inadvertent.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the variable is reused here. Probably in order to simplify the diff.

Copy link
Member

@galtm galtm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look good. Thanks for the detailed description of the pull request, including results in different Saxon versions. FYI, I don't use Ant much, so my review of those files was shallow.

attribute query { xsd:anyURI }?,

## XQuery version which will be declared in the compiled main module.
attribute xquery-version { text }?,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your description explained why you named this xquery-version instead of query-version. I think it makes perfect sense to name it xquery-version because it's the version of the language, not the version of the query file being tested.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review. I'm merging this pr.

…sion

# Conflicts:
#	src/compiler/generate-query-tests.xsl
#	src/schemas/xspec.rnc
#	test/win-bats/collection.xml
#	test/xspec.bats
@AirQuick AirQuick merged commit 69eff64 into xspec:master Jun 21, 2019
@AirQuick AirQuick deleted the xquery-version branch June 21, 2019 05:30
@AirQuick
Copy link
Member Author

@cirulls
Merged this new feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants