XML Resolver 3.0.1 released

Volume 5, Issue 12; 04 Jul 2021

I’ve pushed a 3.0.1 release of the XML Resolver.

I’m annoyed with myself that in my eagerness to get the new XML Resolver “out there”, I managed to push a 3.0.0 release about a month ago only to find a couple of bugs within a day or two. (Software development, eh?)

Those bugs have been fixed and I haven’t found any new bugs recently, so I’ve pushed 3.0.1 today to both the GitHub releases page and Maven. Please give it a try and let me know if you find any rough edges!

A lot of the recent work has been motivated by efforts to port the resolver to C# (for reasons). That’s been interesting. The resolver is only a few thousand lines of code, and I don’t have a lot of experience with C#, so I’m porting it by hand. I actually found a couple of bugs this way (and added tests for them!)

We’re probably a few weeks away from any sort of public release of xmlresolvercs. Not only do I have to finish the port and get the tests passing, I have to figure out the whole ecosystem of automated releases of useful C# artifacts. I don’t even know what shape those take yet. (My goal will be to make the releases with Gradle because I’ve got an investment in Gradle infrastructure already, but we’ll see.)

Coming back to the 3.0.1 release, I’ve released two new applications today as well:

  • The SampleApp demonstrates a lot of the features of the new resolver. You can use it to parse, validate, and transform documents with a lot of different switches to see how the resolver behaves.
  • The CacheCtrl application makes it easier to manage the XML Resolver cache, if you’re using it.

I described a lot of the new features in a recent post, so I won’t repeat them all here. There’s (some, hopefully better) documentation at and, if you’re unfamiliar with XML Catalogs but managed to read this much of the post anyway, there’s an annotated version of the XML Catalogs specification as well.

Feedback welcome!