At the moment the two most frustrating problems with using only the built-in XSLT and XPath engine of web browsers, even though we have a lot of custom extensions, is the inability to support additional XPath 2.0 and 3.1 functionality and to have our own extension functions. The same goes for being able to add extension functions to XSLT. Having that capability would allow much tighter integration between the Device Edge Application Platform and the XML world.
It is also very frustrating sometimes to not be able to debug XSLT and connect the ability to step through XSLT with the ability to step through the XML process logic using the built-in debugger we created for XIOS/3.
We have thus written a new very nimble XML parser in JavaScript, a new XPath engine is under development, and we then aim to write our own XSLT implementation in JavaScript. The reason of doing all this work is because of the tight integration that we believe we need and being able to optimize the code as we heavily process and use XML. There will also be C++ versions of the XML, XPath, and XSLT engine available for inclusion in the Software Development Kits (SDK) offered by CloudBackend that allow integration into native applications in Swift (iOS), Java (including Android), and C++ (Windows, Mac, Linux, and IoT) that tap into the data model and XML applications that run inside the browser. We want the same XPath and XSLT to be able to run in the web browser, the cloud, and on mobile apps for cross-device development. This will probably be material for another future paper.