Summary
XSpec 3.0.3 upgrades its connections with related software. Support for testing Schematron schemas now uses SchXslt as the built-in Schematron implementation. XSLT code coverage is compatible with Saxon 12.4 or later.
Common to Languages Under Test
- XSpec is tested with Saxon 12, 11, and 10, while use of Saxon versions earlier than 12.4 is not recommended.
- XSpec no longer supports Saxon 9.
- When comparing XML, you can ignore some or all attributes using three-dot syntax
x:attrs="..."
. - XPath function items stored in global variables are testable using syntax
<x:call function="my-function" call-as="variable">
.
XSLT
- XSLT code coverage feature is compatible with Saxon 12.4. Compatibility note: This upgrade is not backward compatible with earlier Saxon versions. Also, Saxon 12.4 does not report some
xsl:sequence
instructions that are actually hit. - XSpec experimentally supports testing with XSLT 4.0 and XPath 4.0. Set
xslt-version="4.0"
onx:description
, and use an XSLT processor that has support for 4.0 enabled.
XQuery
- XSpec experimentally supports testing with XQuery 4.0 and XPath 4.0. Set
xquery-version="4.0"
onx:description
, and use an XQuery processor that has support for 4.0.
Schematron
- SchXslt 1.9.5 replaces the skeleton implementation because the latter is no longer maintained. Compatibility note: Some XSpec tests might produce different results with SchXslt.
- XSpec scenarios can verify the text of messages or diagnostics. Add expected text inside
x:expect-assert
orx:expect-report
.
Many thanks to all the XSpec contributors who made this release possible! They are listed next to relevant items in non-collapsed sections below; in collapsed sections, @AirQuick and @cmarchand contributed to many items.
Merged Pull Requests
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1788 | oxygen | add library jar files for Oxygen 26.0 | @AirQuick | @galtm |
#1814 | ant | xspec.force.focus=#none | @AirQuick | @galtm |
#1822 | schematron | allow verification of Schematron text | @galtm | @AirQuick |
#1780 | xslt | runtime error if context evaluates to empty sequence | @galtm | @AirQuick |
#1881 | schematron | replace skeleton with SchXslt as built-in Schematron | @galtm | @AirQuick |
#1842 | extend $x:context variable beyond x:expect | @galtm | ||
#1873 | schematron | allow variables in Schematron scenario | @galtm | |
#1838 | support ignoring attributes when comparing | @galtm | ||
#1883 | support 4.0 in tests for XSLT and XQuery | @galtm | ||
#1892 | support calling XPath function defined in variable | @galtm | @AirQuick | |
#1833 | xslt | code coverage for Saxon 12.4+ | @AirQuick | @cmarchand |
#1891 | soft deprecate Saxon 10 through 12.3 | @galtm |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1801 | typo in code comment (XLST) | @galtm | @AirQuick | |
#1776 | xquery | support whitespace in text value templates | @galtm | @AirQuick |
#1789 | schematron | make wrapper define $x:xspec-uri | @galtm | @AirQuick |
#1847 | schema | remove expand-text from x:like content model | @galtm | |
#1876 | pending x:expect should not trigger running SUT | @galtm |
Test
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1778 | schematron | fix typo 'Schematrion' in scenario label | @galtm |
#1792 | test $x:xspec-uri variable more | @galtm | |
#1829 | generate e2e expected results using Saxon 12.3 | @AirQuick | |
#1841 | test $x:context variable more, mainly in x:expect | @galtm | |
#1872 | catalog usage with helper stylesheet | @galtm |
CI Configuration
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1774 | deps | bump XML Calabash from 1.5.6 to 1.5.7 | @AirQuick |
#1783 | deps | bump XMLResolver.org XML Resolver from 5.2.1 to 5.2.2 | @AirQuick |
#1775 | deps-dev | bump prettier from 3.0.2 to 3.0.3 | @dependabot |
#1782 | deps-dev | bump @commitlint/cli from 17.7.1 to 17.7.2 | @dependabot |
#1785 | deps-dev | bump codespell from 2.2.5 to 2.2.6 | @dependabot |
#1777 | deps | bump actions/checkout from 3 to 4 | @dependabot |
#1787 | deps | bump Oxygen components to reflect 26.0 build 2023100905 | @AirQuick |
#1790 | deps-dev | bump @commitlint/cli from 17.7.2 to 17.8.0 | @dependabot |
#1791 | deps-dev | bump @commitlint/config-angular from 17.7.0 to 17.8.0 | @dependabot |
#1797 | deps-dev | bump @commitlint/config-angular from 17.8.0 to 18.1.0 | @dependabot |
#1798 | deps-dev | bump @commitlint/cli from 17.8.0 to 18.1.0 | @dependabot |
#1800 | deps-dev | bump @commitlint/cli from 18.1.0 to 18.2.0 | @dependabot |
#1802 | codespell XLST | @AirQuick | |
#1805 | deps-dev | bump @commitlint/config-angular from 18.1.0 to 18.4.0 | @dependabot |
#1807 | deps-dev | bump @commitlint/cli from 18.2.0 to 18.4.1 | @dependabot |
#1808 | deps-dev | bump prettier from 3.0.3 to 3.1.0 | @dependabot |
#1812 | deps-dev | bump @commitlint/config-angular from 18.4.0 to 18.4.2 | @dependabot |
#1813 | deps-dev | bump @commitlint/cli from 18.4.1 to 18.4.2 | @dependabot |
#1815 | deps-dev | bump @commitlint/config-angular from 18.4.2 to 18.4.3 | @dependabot |
#1816 | deps-dev | bump @commitlint/cli from 18.4.2 to 18.4.3 | @dependabot |
#1817 | deps | bump actions/setup-java from 3 to 4 | @dependabot |
#1818 | deps | bump Saxon from 12.3 to 12.4 | @AirQuick |
#1823 | deps | bump actions/setup-python from 4 to 5 | @dependabot |
#1830 | deps-dev | bump prettier from 3.1.0 to 3.1.1 | @dependabot |
#1846 | deps-dev | bump @commitlint/cli from 18.4.3 to 18.4.4 | @dependabot |
#1845 | deps-dev | bump @commitlint/config-angular from 18.4.3 to 18.4.4 | @dependabot |
#1831 | check .properties style | @AirQuick | |
#1851 | deps-dev | bump prettier from 3.1.1 to 3.2.4 | @dependabot |
#1853 | move code to avoid conflict in schxslt rebase | @galtm | |
#1857 | deps-dev | bump @commitlint/config-angular from 18.4.4 to 18.5.0 | @dependabot |
#1856 | deps-dev | bump @commitlint/cli from 18.4.4 to 18.5.0 | @dependabot |
#1861 | deps | bump XMLResolver.org XML Resolver from 5.2.2 to 5.2.3 | @galtm |
#1859 | deps-dev | bump @commitlint/config-angular from 18.5.0 to 18.6.0 | @dependabot |
#1860 | deps-dev | bump @commitlint/cli from 18.5.0 to 18.6.0 | @dependabot |
#1862 | deps-dev | bump prettier from 3.2.4 to 3.2.5 | @dependabot |
#1837 | deps | bump actions/upload-artifact from 3 to 4 | @dependabot |
#1863 | deps-dev | bump @commitlint/cli from 18.6.0 to 18.6.1 | @dependabot |
#1864 | deps-dev | bump @commitlint/config-angular from 18.6.0 to 18.6.1 | @dependabot |
#1871 | deps-dev | bump commitlint from 18.6.1 to 19.1.0 | @galtm |
#1880 | deps-dev | bump @commitlint/cli from 19.1.0 to 19.2.0 | @dependabot |
#1889 | deps-dev | bump @commitlint/cli from 19.2.0 to 19.2.1 | @dependabot |
#1834 | remove Saxon 9.9 from CI matrix | @AirQuick | |
#1898 | deps-dev | bump bats from 1.10.0 to 1.11.0 | @dependabot |
Documentation
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1794 | schema | inheritance of id from Schematron pattern | @galtm | @AirQuick |
#1827 | add galtm as a maintainer | @AirQuick | @galtm | |
#1824 | namespace demo files for XSLT and XQuery | @galtm | @AirQuick | |
#1865 | schema | schema doc corrections | @galtm | |
#1885 | qualify comment about stylesheet not being testable | @galtm | ||
#1882 | indicate license for XSpec wiki | @galtm | @AirQuick |
Refactoring improvement (no new feature or bug fix)
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1858 | schema | remove expand-text from empty elements | @galtm |
#1895 | simplify "for" expression in test | @galtm | |
#1897 | drop support for Saxon 9.9 | @galtm |
Build and release changes
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1784 | maven | bump pom.xml to 3.0-SNAPSHOT | @galtm |
#1779 | deps | bump maven-javadoc-plugin from 3.5.0 to 3.6.0 | @dependabot |
#1793 | oxygen | add-on v3.0.0 | @AirQuick |
#1803 | deps | bump maven-javadoc-plugin from 3.6.0 to 3.6.2 | @dependabot |
#1820 | deps | bump maven-javadoc-plugin from 3.6.2 to 3.6.3 | @dependabot |
#1839 | deps | bump maven-compiler-plugin from 3.11.0 to 3.12.0 | @dependabot |
#1840 | deps | bump maven-compiler-plugin from 3.12.0 to 3.12.1 | @dependabot |
#1874 | deps | bump maven-gpg-plugin from 3.1.0 to 3.2.0 | @dependabot |
#1875 | deps | bump maven-assembly-plugin from 3.6.0 to 3.7.0 | @dependabot |
#1879 | maven | use BC signer, with maven-gpg-plugin 3.2.0 | @galtm |
#1884 | deps | bump maven-gpg-plugin from 3.2.0 to 3.2.1 | @dependabot |
#1888 | deps | bump maven-assembly-plugin from 3.7.0 to 3.7.1 | @dependabot |
#1887 | deps | bump maven-compiler-plugin from 3.12.1 to 3.13.0 | @dependabot |
#1896 | oxygen | add-on v3.0.1 | @galtm |
#1899 | oxygen | add-on v3.0.2 | @galtm |
#1903 | deps | bump maven-gpg-plugin from 3.2.1 to 3.2.3 | @dependabot |
#1904 | release v3.0.3 | @galtm | |
#1910 | maven | use 3.0.3 in pom.xml, not 3.0 | @galtm |