All Projects → SOM-Research → jsonSchema-to-uml

SOM-Research / jsonSchema-to-uml

Licence: EPL-2.0 license
A tool to generate UML class diagrams from JSON schema documents

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to jsonSchema-to-uml

wapiml
An OpenAPI round-trip tool that leverages model-driven techniques to create, visualize, manage, and generate OpenAPI definitions.
Stars: ✭ 61 (+84.85%)
Mutual labels:  eclipse, uml
uml2solidity
A uml profile and a set of acceleo code generators to model smart contracts in uml and generate solidity code.
Stars: ✭ 35 (+6.06%)
Mutual labels:  eclipse, uml
swagger2puml
Generate Class Diagrams (UML) for Given Swagger Definition
Stars: ✭ 43 (+30.3%)
Mutual labels:  uml, uml-class-diagram
Amateras Modeler
UML and ER-diagram editor for Eclipse
Stars: ✭ 190 (+475.76%)
Mutual labels:  eclipse, uml
json-validator
A json validator in PHP
Stars: ✭ 52 (+57.58%)
Mutual labels:  json-schema
watchdog
IntelliJ & Eclipse plugin for monitoring how Java applications are developed and tested
Stars: ✭ 18 (-45.45%)
Mutual labels:  eclipse
ans-schema
JSON schema definition and supporting example/validation code for The Washington Post's ANS specification
Stars: ✭ 92 (+178.79%)
Mutual labels:  json-schema
bazel-eclipse
This repo holds two IDE projects. One is the Eclipse Feature for developing Bazel projects in Eclipse. The Bazel Eclipse Feature supports importing, building, and testing Java projects that are built using the Bazel build system. The other is the Bazel Java Language Server, which is a build integration for IDEs such as VS Code.
Stars: ✭ 104 (+215.15%)
Mutual labels:  eclipse
express-json-validator-middleware
Express middleware for validating requests against JSON schema
Stars: ✭ 148 (+348.48%)
Mutual labels:  json-schema
sprotty-layout
Client-side automatic layout for the Sprotty diagramming framework
Stars: ✭ 15 (-54.55%)
Mutual labels:  eclipse
sms
🏫 🎓 一个未使用框架的学生信息管理系统 : 项目概述全面,代码注释详细,逻辑结构清晰,非常适合作为初学 Java web 的同学的第一个练手项目啦 ~
Stars: ✭ 91 (+175.76%)
Mutual labels:  eclipse
express-objection-starter
an opinionated, production-ready, isomorphic express/knex/objection starter with centralized configuration
Stars: ✭ 19 (-42.42%)
Mutual labels:  json-schema
helm-schema-gen
So that you don't have to write values.schema.json by hand from scratch for your Helm 3 charts. [CURRENTLY NOT MAINTAINED]
Stars: ✭ 104 (+215.15%)
Mutual labels:  json-schema
api-data
Static JSON data from the API, plus a JSON Schema
Stars: ✭ 88 (+166.67%)
Mutual labels:  json-schema
bl mcu sdk
bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706, BL616/BL618, BL808 and other series of RISC-V based chips in the future.
Stars: ✭ 147 (+345.45%)
Mutual labels:  eclipse
staruml-ruby
Ruby extension for StarUML.
Stars: ✭ 26 (-21.21%)
Mutual labels:  uml
jsonresume-theme-caffeine
Caffeine theme for the JSON Resume project
Stars: ✭ 78 (+136.36%)
Mutual labels:  json-schema
Rockets
REST and websockets C++ library
Stars: ✭ 39 (+18.18%)
Mutual labels:  json-schema
json-schema
Clojure library JSON Schema validation and generation - Draft-07 compatible
Stars: ✭ 52 (+57.58%)
Mutual labels:  json-schema
xumlidot
RUBY UML class diagram generator with XMI and DOT output.
Stars: ✭ 28 (-15.15%)
Mutual labels:  uml

jsonSchema-to-uml

A tool to generate UML models from JSON schema documents.

Requirements

To generate UML models:

  • Eclipse Modeling tools (it can be found here).

To visualize the generated UML models:

  • A UML 2.5 modeling environment in Eclipse such as Papyrus or UMLDesigner (we tested the tool with Papyrus).

Installation

  1. Open Eclipse IDE
  2. Click on Help / Install New Software...
  3. Click on Add... and fill in the form as indicated. The update site is
https://som-research.github.io/jsonSchema-to-uml/update/
  1. Select JSONSchema to UML then click on Next.
  2. Follow the the rest of the steps (license, etc...) and reboot Eclipse.

Using the plugin

  1. Create a Project or use an existing project in your workspace.
  2. Import the JSON Schema documents in your Eclipse project.
  3. To generate a UML model from your documents you can right-click on a JSON file of your project or a folder containing your documents, and select the JSONSchema to UML/Generate Class diagram option.
  4. A UML model corresponding to the input definition will be generated in the folder src-gen of your project.

Visualizing the Class diagram using Papyrus

  1. Install Papyrus if you didn't do it yet (You can find the instructions here).
  2. Open the perspective Papyrus.
  3. Right-click on the generated UML model and select New -> Papyrus Model.
  4. Follow the steps in the wizard to initialize a Class diagram (keep everything as predefined except in the Initialization information step where you should check Class Diagram as the Representation kind).
  5. Drag-and-drop the UML elements from the Model Explrer into the editor.
  6. Align and arrange the layout as you prefer.
  7. Save.

The mapping in a nutshell

The generation process apply this (non exhaustive) list of mappings:

  • Each JSON Schema element is represented by a UML Class
  • Properties in JSON Schema elements represent the properties of a UML Class.
    • If the property is of primitive type it will become an attribute in the UML Class
    • If the property is of type enum, an Enumeration will be created and an attribute in the UML Class will be added
    • If the property is of type object or refers to other element (using $ref), an association is created in the UML Class. The type of the association corresponds to the UML Class element created from the object (or the referred object)
  • Hierarchies are created from allOf, oneOf, anyOf
  • The elements defined in definitions are considered as a library of JSON Schema elements and therefore they generate new UML Classes
  • The folder structure is used to created UML Packages containing the UML Classes coming from the JSON Schema files.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].