semantic-crosswalk-editor

Reused Free Open Source Software (FOSS) Modules - Standing on Shoulders of Giants

Software Design and Architecture

Software Design

Summary

To be able to create such a helpful application within 9 months we did not reinvent the wheel, but instead stood upon the shoulders of the following giants:

  1. We decided to embrace Microsoft’s open-source editor Visual Studio Code (VSCode) and its innovative open editor architecture based on its Language Server Protocol (LSP). With LSP it is possible to capsulate domain-specific business logic in a server part and to be able to share and reuse it by other editors, who split their specific needs in the client part. For instance, the HTML/CSS functionality from VSCode is now shared by Eclipse IDE, eta. The LSP vision is that in the future language providers may provide their own server extensions as part of their standard.
  2. Our specific XML related functionality was in particular derived from the already existing preview of the open-source “Visual Studio Code for XML” extension governed by Red Hat & Eclipse.
  3. Sophisticated analysis of XML syntax schema was only possible by extending the open-source Multi-Schema Validator (MSV) library, which we extended to not only be used for validation but extract domain logic from the grammar. The library’s differentiator is its capability of encapsulating the complexity of DTD, W3C Schema and RelaxNG grammars by a single internal abstract representation. One API to rule them all!
  4. The extension of the existing extractor for EU e-Invoice syntax binding. A library that generated our sample XML syntax-binding and all required data for validation, completion, etc. from the office tables of the EN16931-3 EU CEN standard

It should be mentioned that understanding these giants often comes along with reading their source code - like reading a (huge) book - to understand their behaviour.