lumeohq / xsd-parser-rs

A xsd/wsdl => rust code generator written in rust
Apache License 2.0
96 stars 34 forks source link

Layered parsing/generating pipeline #99

Open victor-soloviev opened 4 years ago

victor-soloviev commented 4 years ago

To effectively resolve the following issues:

and to achieve better decomposition and extensibility, we are implementing a new approach, in which the parsing/generation pipeline deals with four levels of data representation:

Thus, four conversions are occuring in the process:

Levels are well-isolated, meaning that structs from the current level know only about structs from one previous level. During each conversion, only two levels of abstraction are involved. Each level and transformer are customizable, meaning that the processing of vendor-specific elements might be easily implemented.

The main differences between the master branch and the new approach are:

Code generating is well-implemented in master and should change only slightly, while real changes coming to prior stages.

Here is the list of subtasks: