-
Notifications
You must be signed in to change notification settings - Fork 5
docs: Add section Technical restrictions
#1052
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| ====================== | ||
| Technical restrictions | ||
| ====================== | ||
|
|
||
| There are some technical restrictions throughout the BO4E data models which are important if you want to use it. | ||
| There are several reasons for these but mostly due to compatibility reasons as we want to design the data model | ||
| such that it can be implemented in most programming languages. | ||
|
|
||
| * The data model is generally not object oriented. The reference implementation (BO4E-Python) uses inheritance | ||
| to save some code but the generated JSON schemas do not contain any information about inheritance as it is not | ||
| supported by the official JSON schema structure. As a result, ... | ||
|
|
||
| * ... you can only differentiate BOs and COMs by using the enums `BoTyp` and `ComTyp`. They are not directly | ||
| referenced from the data model but are rolled out to support developers if they need to differentiate the | ||
| types. | ||
| * ... there will be some redundancy in terms of field definitions. | ||
|
|
||
| * In general, BOs won't be referenced by COMs but it's not prohibited. In fact, there are some cases in which a COM | ||
| references a BO. Keep that in mind when designing a package structure e.g. to prevent circular import errors. | ||
| * There are no circular references. This means, when drawing a reference graph of BO4E there will be no loops. | ||
|
|
||
| * As a result, we cannot directly support `n x m`-relationships as they would require a back-reference. | ||
| If you're designing a database structure you have to manually add these relationship tables where needed. | ||
|
|
||
| * We won't use a `Union`-type which is represented in JSON schemas as `anyOf` except for a nullable type. I.e. | ||
| the type can never be a union of two or more types which are not `null`. | ||
|
Comment on lines
+25
to
+26
|
||
Uh oh!
There was an error while loading. Please reload this page.