There was a conflicts, provides and replaces field - as I understand
the policy for replacing a package only conflicts and replaces are
needed for a smooth upgrade. Is this correct ?
Yes, Provides are only really needed in two cases: when you have a virtual
package provided by multiple packages which need to conflict with each
other, and when you have a package which was a dependency of other packages
and need to declare that your new package provides the same interface.
So, the Provides: is most likely not needed, but it also shouldn't hurt
unless lib-saxon-java and libsaxon-java are *not* functionally equivalent.