🏠Activity stream
For a while, on an earlier homepage, I collected together an “activity stream”. It was collated from a variety of sources through a number of complicated processes to show a “recent activity” view.
I’m sort of interested in that kind of thing, so I’ve made an attempt to recreate it here. This is derived from periodically updated feeds, most recently:
- relaxng/jing-trang/issues last updated 12 Oct 2026 at 13:15Z
- docbook/xslTNG/issues last updated 07 Oct 2026 at 11:30Z
- blog.saxonica.com last updated 01 Oct 2026 at 16:21Z
- so.nwalsh.com last updated 25 Sep 2026 at 18:05Z
- photos.nwalsh.com last updated 25 Sep 2026 at 16:46Z
- relaxng/jing-trang #298 created, 12 Oct 2026 at 13:15:01
Allow Jing Validation to work via JAXP service loading
Add missing Java Service Loader service files for
XMLSyntaxSchemaFacoryandCompactSyntaxSchemaFactoryso that Jing can be used via JAXP viajavax.xml.validation.SchemaFactory#newInstance(String).Previously, just placing Jing on the classpath, and calling
SchemaFactory.newInstance("http://relaxng.org/ns/structure/1.0")orSchemaFactory.newInstance("http://www.iana.org/assignments/media-types/application/relax-ng-compact-syntax")was not enough. Previously you would also have to set a system property, or setup ajaxb.propertiesconfig file, see: https://docs.oracle.com/en/java/javase/21/docs/api/java.xml/module-summary.htmlMy use case, was that I wanted to use Jing instead of jxvc with the xml-maven-plugin to validate my RelaxNG. This wasn't possible before, as adding Jing to the classpath did not cause it to be discoverable via JAXP. With this PR, we can now successfully use the following config:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xml-maven-plugin</artifactId> <version>1.2.1</version> <dependencies> <dependency> <groupId>org.relaxng</groupId> <artifactId>jing</artifactId> <version>20241231</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>validate</goal> </goals> </execution> </executions> <configuration> <validationSets> <validationSet> <dir>src/main/relaxng</dir> <systemId>src/main/schema.rng</systemId> <validating>true</validating> <schemaLanguage>http://relaxng.org/ns/structure/1.0</schemaLanguage> </validationSet> </validationSets> </configuration> </plugin>p.s. It would be really helpful for us if we could both get this merged and into a release ASAP. Please let us know if there is anything further we can do to help with that... Thanks :-)
- docbook/xslTNG #684 merged, 7 Oct 2026 at 09:28:38
Test emptiness with empty() and drop explicit child:: axes
- docbook/xslTNG #684 created, 2 Oct 2026 at 17:39:20
Test emptiness with empty() and drop explicit child:: axes
This is a small tidy-up of five lines in
src/main/xslt/modules.Three emptiness tests count every item to answer a question the first item settles.
empty()stops at the first item and says what the test means:- <xsl:if test="count($coords) lt 1 or count($coords) gt 2"> + <xsl:if test="empty($coords) or count($coords) gt 2">The other two are
count($target) = 0inchunk-cleanup.xslandcount(db:methodparam) eq 0inprogramming.xsl. Two explicitchild::steps, inbibliography.xslandlists.xsl, are dropped as well../gradlew testpasses on this branch with 1711 of 1711 tests, the same as onmainat a840909.These were found with xslint, a linter for XSLT. Its fixer made the edits, and I reviewed each one by hand.
- relaxng/jing-trang #297 closed, 1 Oct 2026 at 19:27:35
Release/wip
- relaxng/jing-trang #297 created, 1 Oct 2026 at 19:16:51
Release/wip
- blog.saxonica.com, 1 Oct 2026 at 17:15:00
The future of Intel-based Mac products
When Apple discontinued making computers based on the Intel chipset, in favor of their own Apple silicon chips, it was clear that the days for Intel-based Mac products were numbered.
The previous macOS release, macOS 26, “Tahoe”, was the last version of macOS that could be installed on an Intel Mac and, although macOS 27, “Golden Gate”, can use “Rosetta” to support Intel-based applications, Rosetta will be removed in macOS 28.
It’s already the case that some significant tools, like Homebrew, have discontinued support for Intel-based Macs. And recently, GraalVM followed suit.
This puts our SaxonC product line in something of a bind. Ideally, we’d time any change in platforms or architectures to line up with a full release. But GraalVM’s rather abrupt decision to discontinue support for Intel-based Macs means we either have to avoid upgrading the version of GraalVM that we use (sacrificing potential performance gains and possibly leaving systems vulnerable), or we have to acknowledge that we can no longer distribute SaxonC products (including Python and PHP) for Intel-based Macs.
The current plan is that Saxon 12 will continue to support Intel-based Macs, but that could change if it became necessary to upgrade GraalVM for that release. In some near-term Saxon 13 release, we’ll be upgrading GraalVM and discontinuing support for Intel-based Macs.
Not because we want to, but because there’s no practical way to continue delivering it.
- so.nwalsh.com, 25 Sep 2026 at 18:05:11
- photos.nwalsh.com, 25 Sep 2026 at 16:46:34
Alpacalypse - so.nwalsh.com, 24 Sep 2026 at 17:04:24
- photos.nwalsh.com, 24 Sep 2026 at 16:46:18
Staropramen - so.nwalsh.com, 23 Sep 2026 at 16:54:55
- photos.nwalsh.com, 23 Sep 2026 at 16:47:55
GWR - so.nwalsh.com, 22 Sep 2026 at 10:57:59
- so.nwalsh.com, 20 Sep 2026 at 15:38:49
- photos.nwalsh.com, 20 Sep 2026 at 10:46:05
Enormous - photos.nwalsh.com, 20 Sep 2026 at 09:48:42
Mallard - photos.nwalsh.com, 19 Sep 2026 at 16:34:30
Another test - photos.nwalsh.com, 19 Sep 2026 at 15:10:35
Test image - relaxng/jing-trang #296 created, 15 Sep 2026 at 12:45:26
Invalid attribute value is not named in error message
Hi, when I validate a file, I can a looong error message with the allowed attribute values. But what is missing, what would have been helpful, is the invalid attribute value. This would allow me to find the invalid value and replace it more conveniently.
- relaxng/jing-trang #295 closed, 11 Sep 2026 at 19:22:05
Release/dependabot
And 1282 more items…