Everything started out great for XML with growing support in the early 2000s, but since 2010 and forward we have seen a massive decline in client-side XML support with known bugs in XSLT in both Firefox and the WebKit project (Chrome, Edge, Safari, Opera); going unfixed. We know, as we have reported issues and provided C++ patches for XSLT bugs in both browser platforms, but to our disappointment seen them linger or be dismissed.
XPath is stuck on version 1.0 in web browsers, and promising efforts to reimplement XPath in JavaScript by Google have been abandoned since many years. Here we have once again stepped in and fixed many bugs and made the Google project run with the latest build technologies. This time we consider taking over management of the open-source project.
We have also seen XML staple technologies like XML Web Services become replaced by REST APIs, and XML as a data transport format being replaced by JSON and GraphQL. It is easy to see no hope for XML in web technologies; while it is still extensively used in enterprise solutions. However, good examples like Frameless XPath 2.0 and XSLT 2.0, and recently the Saxonica port for JavaScript.
This has generally pushed the use of XML to the cloud and the server side, where the latest version of XSLT, XPath, and XQuery can be used. The browser has mostly been used as a dumb rendering engine for HTML and JavaScript generated in the cloud.
With improved JavaScript engines and execution performance, there are finally ways to circumvent the obsolete XML technologies within the browsers. New JavaScript implementations running within the browser sandbox are in many cases more performant than decades-old C++ implementations of the same technologies. There is thus ample opportunity to extend the native built-in web browser XML technologies with new technologies for building rich web applications, forms, XML generating applications, and caching XML data within the browser for local client-side processing. Technologies that can bring XML back to its web glory days and have the potential to outperform the latest React, Angular, jQuery, JSON, and GraphQL technologies.
Employing the browser for client-side processing, rendering, execution of XML logic, and caching of XML data, will enable device edge computing for XML. Edge computing is the decentralization of cloud computing, to have logic and data not in a single place, but available in many places. It promises low latency and new XML-based ways of writing web applications.
This paper will discuss technologies employed by two large projects that together are aimed at super-powering web browsers on smartphones as well as laptops for the use of XML. Both projects aim for general XML use, but in particular for building rich web applications that consume and keep data in sync as XML across the wire as well as within the software application.