[refactor] Code cleanup
[feature] Ability to specify names for json properties that are non-valid xml element names by using json:name="my-name" e.g. <ref json:name="$ref">
Merge branch 'feature/json-name' into develop