A Possible EXPath Pkg Version 2
In 2012 a Packaging System specification was developed by the EXPath project for use with applications written in XML - EXPath Pkg. There is very little about Pkg that is XML specific, for the most part it just defines a container and some metadata.
Implementations of this specification emerged for eXist-db, Saxon, and Marklogic. For the most part it appears that the standard never really caught on, apart from the eXist-db implementation to the best of our knowledge there are no other implementations of Pkg still in-use. The specification itself was both incomplete, and lacking in detail. The resulting implementations, including the one for eXist-db, were therefore unsurprisingly rather unsatisfactory to say the least. They lacked many features, and offered many bugs. Major shortcomings include: a lack of sufficient ability to express dependencies between packages, a lack of dependency resolution, and a lack of suitable public/private repositories of dependencies. There have also been other efforts in the XML space both before and after EXPath Pkg to create a satisfactory packaging system, but likewise these don't seem to have had much uptake. Of course, we must acknowledge that building a single new Packaging System from scratch is no small feat, and by extension writing a complete specification to describe the semantics and mechanics of such a system so that others may create interoperable implementations is a task of herculean proportions.
In this paper we look at what a replacement for the EXPath Pkg specification might look like, and how it could alternatively perhaps be implemented through reuse rather than reinvention.
Adam Retter is the Director of Evolved Binary. He has been a core contributor to the Open Source eXist-db Native XML Database for 18 years, he was also an invited expert to the W3C XQuery Working Group and helped standardise XQuery 1.0, 3.0, and 3.1. Adam founded the EXQuery project, and developed the RESTXQ framework for XQuery. Recently, Evolved Binary have been developing FusionDB, a new multi-model NoSQL database which also supports XML natively.