We should get rid of the Saxon dependency in the API package. Saxon must be considered a low-level detail and thus should not be a dependency of the high-level API.
It's there, because the ResourceProvider interface inherits from Saxon resource resolver interfaces.
Refactoring: Refactor the chained resolvers in the saxon plugin. They should take a ResourceProvider as argument, but it should not a Saxon resolver. The resource provider can be used to get/resolve the resource. So let's move the Saxon resolver implementations out of the resource provider plugins and have them only once in the chained resolvers. That will also make the plugins much more straight forward.
We should get rid of the Saxon dependency in the API package. Saxon must be considered a low-level detail and thus should not be a dependency of the high-level API.
It's there, because the
ResourceProviderinterface inherits from Saxon resource resolver interfaces.Refactoring: Refactor the chained resolvers in the saxon plugin. They should take a
ResourceProvideras argument, but it should not a Saxon resolver. The resource provider can be used to get/resolve the resource. So let's move the Saxon resolver implementations out of the resource provider plugins and have them only once in the chained resolvers. That will also make the plugins much more straight forward.