Skip to content

Commit b211e4e

Browse files
authored
Merge pull request #24 from ansforge/fix/change-root-prefix
disable additionalProperties
2 parents 8b5bde0 + f40d157 commit b211e4e

25 files changed

+819
-580
lines changed

csv_parser/csv_parser.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ def get_nomenclature(elem):
8383
# Schema name is in name = RC-EDA (or RS-EDA) for instance
8484
MODEL_NAME = params['modelName'] # CreateCase
8585
MODEL_TYPE = MODEL_NAME[0].lower() + MODEL_NAME[1:] # createCase
86+
def isCreateCase():
87+
return MODEL_TYPE == "createCase"
88+
89+
if not filter and isCreateCase():
90+
MODEL_TYPE = "createCaseHealth"
8691
WRAPPER_NAME = f"{MODEL_TYPE}Wrapper" # createCaseWrapper
8792
NB_ROWS = params['rows']
8893
NB_COLS = params['cols']
@@ -338,7 +343,6 @@ def build_example(elem):
338343
'title': MODEL_NAME,
339344
'required': [],
340345
'properties': {},
341-
'additionalProperties': not filter,
342346
'definitions': {}
343347
}
344348

@@ -416,6 +420,7 @@ def add_object_child_definition(parent, child, definitions):
416420
'x-health-only': child['is_health_only'],
417421
'required': [],
418422
'properties': {},
423+
'additionalProperties': False,
419424
'example': parentExamplePath + '/' + child['name'] + ('/0' if is_array(child) else '')
420425
}
421426
if child['Cardinalité'].startswith('1'):

csv_parser/json_schema2xsd/src/main/resources/EMSI.schema.json

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "http://json-schema.org/draft-07/schema#",
33
"$id": "classpath:/json-schema/schema#",
44
"x-id": "EMSI.schema.json#",
5-
"version": "24.01.11",
5+
"version": "24.01.12",
66
"example": "example.json#",
77
"type": "object",
88
"title": "emsi",
@@ -14,7 +14,6 @@
1414
"$ref": "#/definitions/emsi"
1515
}
1616
},
17-
"additionalProperties": true,
1817
"definitions": {
1918
"emsi": {
2019
"type": "object",
@@ -45,6 +44,7 @@
4544
}
4645
}
4746
},
47+
"additionalProperties": false,
4848
"example": "example.json#/emsi"
4949
},
5050
"context": {
@@ -170,6 +170,7 @@
170170
]
171171
}
172172
},
173+
"additionalProperties": false,
173174
"example": "example.json#/emsi/CONTEXT"
174175
},
175176
"event": {
@@ -348,6 +349,7 @@
348349
"description": "Optionnel"
349350
}
350351
},
352+
"additionalProperties": false,
351353
"example": "example.json#/emsi/EVENT"
352354
},
353355
"mission": {
@@ -663,6 +665,7 @@
663665
]
664666
}
665667
},
668+
"additionalProperties": false,
666669
"example": "example.json#/emsi/MISSION/0"
667670
},
668671
"resource": {
@@ -815,6 +818,7 @@
815818
}
816819
}
817820
},
821+
"additionalProperties": false,
818822
"example": "example.json#/emsi/RESOURCE/0"
819823
},
820824
"link": {
@@ -847,6 +851,7 @@
847851
]
848852
}
849853
},
854+
"additionalProperties": false,
850855
"example": "example.json#/emsi/CONTEXT/LINK/0"
851856
},
852857
"origin": {
@@ -881,6 +886,7 @@
881886
"description": "Optionnel\n\nA constituer par le r\u00e9dacteur pour \u00eatre intelligible (exemple [structure].[nom])"
882887
}
883888
},
889+
"additionalProperties": false,
884890
"example": "example.json#/emsi/CONTEXT/ORIGIN"
885891
},
886892
"externalInfo": {
@@ -924,6 +930,7 @@
924930
]
925931
}
926932
},
933+
"additionalProperties": false,
927934
"example": "example.json#/emsi/CONTEXT/EXTERNAL_INFO/0"
928935
},
929936
"etype": {
@@ -1230,6 +1237,7 @@
12301237
]
12311238
}
12321239
},
1240+
"additionalProperties": false,
12331241
"example": "example.json#/emsi/EVENT/ETYPE"
12341242
},
12351243
"reference": {
@@ -1263,6 +1271,7 @@
12631271
}
12641272
}
12651273
},
1274+
"additionalProperties": false,
12661275
"example": "example.json#/emsi/EVENT/REFERENCE/0"
12671276
},
12681277
"casualties": {
@@ -1341,6 +1350,7 @@
13411350
"description": "Optionnel"
13421351
}
13431352
},
1353+
"additionalProperties": false,
13441354
"example": "example.json#/emsi/EVENT/CASUALTIES/0"
13451355
},
13461356
"evac": {
@@ -1377,6 +1387,7 @@
13771387
"description": "Optionnel"
13781388
}
13791389
},
1390+
"additionalProperties": false,
13801391
"example": "example.json#/emsi/EVENT/EVAC/0"
13811392
},
13821393
"egeo": {
@@ -1562,6 +1573,7 @@
15621573
"$ref": "#/definitions/position"
15631574
}
15641575
},
1576+
"additionalProperties": false,
15651577
"example": "example.json#/emsi/EVENT/EGEO/0"
15661578
},
15671579
"position": {
@@ -1632,6 +1644,7 @@
16321644
}
16331645
}
16341646
},
1647+
"additionalProperties": false,
16351648
"example": "example.json#/emsi/EVENT/EGEO/0/POSITION"
16361649
},
16371650
"coord": {
@@ -1669,6 +1682,7 @@
16691682
"description": "Optionnel. Dans le cas o\u00f9 aucun LOC_ID n'est transf\u00e9r\u00e9, permet de localiser le lieu d'intervention souhait\u00e9\nderni\u00e8re coordonn\u00e9e z connue de la ressource\nbetween \u2212180 and +180"
16701683
}
16711684
},
1685+
"additionalProperties": false,
16721686
"example": "example.json#/emsi/EVENT/EGEO/0/POSITION/COORD/0"
16731687
},
16741688
"rtype": {
@@ -2320,6 +2334,7 @@
23202334
}
23212335
}
23222336
},
2337+
"additionalProperties": false,
23232338
"example": "example.json#/emsi/RESOURCE/0/RTYPE"
23242339
},
23252340
"rgeo": {
@@ -2379,6 +2394,7 @@
23792394
}
23802395
}
23812396
},
2397+
"additionalProperties": false,
23822398
"example": "example.json#/emsi/RESOURCE/0/RGEO/0"
23832399
},
23842400
"contact": {
@@ -2418,6 +2434,7 @@
24182434
"description": "1. RFGI du moyen NEXSIS (si RFGI disponible)\n2. Num\u00e9ro de t\u00e9l\u00e9phone"
24192435
}
24202436
},
2437+
"additionalProperties": false,
24212438
"example": "example.json#/emsi/RESOURCE/0/CONTACTS/0"
24222439
}
24232440
}

csv_parser/json_schema2xsd/src/main/resources/RC-EDA.schema.json

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "http://json-schema.org/draft-07/schema#",
33
"$id": "classpath:/json-schema/schema#",
44
"x-id": "RC-EDA.schema.json#",
5-
"version": "24.01.11",
5+
"version": "24.01.12",
66
"example": "example.json#",
77
"type": "object",
88
"title": "createCase",
@@ -14,7 +14,6 @@
1414
"$ref": "#/definitions/createCase"
1515
}
1616
},
17-
"additionalProperties": false,
1817
"definitions": {
1918
"createCase": {
2019
"type": "object",
@@ -90,6 +89,7 @@
9089
"description": "Texte libre permettant de donner des informations suppl\u00e9mentaires concernant l'affaire"
9190
}
9291
},
92+
"additionalProperties": false,
9393
"example": "example.json#/createCase"
9494
},
9595
"qualification": {
@@ -120,6 +120,7 @@
120120
"$ref": "#/definitions/victims"
121121
}
122122
},
123+
"additionalProperties": false,
123124
"example": "example.json#/createCase/qualification"
124125
},
125126
"location": {
@@ -434,6 +435,7 @@
434435
"description": "Champ libre pour compl\u00e9ter les informations de localisation"
435436
}
436437
},
438+
"additionalProperties": false,
437439
"example": "example.json#/createCase/location"
438440
},
439441
"alert": {
@@ -512,6 +514,7 @@
512514
}
513515
}
514516
},
517+
"additionalProperties": false,
515518
"example": "example.json#/createCase/initialAlert"
516519
},
517520
"additionalInformation": {
@@ -525,6 +528,7 @@
525528
"$ref": "#/definitions/customMap"
526529
}
527530
},
531+
"additionalProperties": false,
528532
"example": "example.json#/createCase/additionalInformation"
529533
},
530534
"nomenclature": {
@@ -562,6 +566,7 @@
562566
"description": "Permet de compl\u00e9menter en commentaire libre l'attribut permettant de qualifier l'\u00e9v\u00e9nement."
563567
}
564568
},
569+
"additionalProperties": false,
565570
"example": "example.json#/createCase/qualification/whatsHappen"
566571
},
567572
"victims": {
@@ -609,6 +614,7 @@
609614
"description": "Permet de compl\u00e9menter en commentaire libre la(les) victime(s)"
610615
}
611616
},
617+
"additionalProperties": false,
612618
"example": "example.json#/createCase/qualification/victims"
613619
},
614620
"detailedAddress": {
@@ -640,6 +646,7 @@
640646
"$ref": "#/definitions/wayName"
641647
}
642648
},
649+
"additionalProperties": false,
643650
"example": "example.json#/createCase/location/detailedAddress"
644651
},
645652
"city": {
@@ -675,6 +682,7 @@
675682
"description": "Informations compl\u00e9mentaires permettant de pr\u00e9ciser le quartier, lieu-dit, ancienne commune, \u2026 ou autre information aidant \u00e0 pr\u00e9ciser l'adresse et notamment g\u00e9rer les cas de communes fusionn\u00e9es pour le syst\u00e8me \u00e9metteur\nNB : dans tous les cas, la localisation GPS de la commune doit \u00eatre fournie afin d'\u00e9viter une trop forte ambigu\u00eft\u00e9"
676683
}
677684
},
685+
"additionalProperties": false,
678686
"example": "example.json#/createCase/location/city"
679687
},
680688
"access": {
@@ -760,6 +768,7 @@
760768
"description": "Num\u00e9ro de t\u00e9l\u00e9phone permettant d'acc\u00e9der au lieu de l'intervention, par exemple : t\u00e9l\u00e9phone du secr\u00e9tariat, t\u00e9l\u00e9phone du service administratif ou se trouve le patient/victime."
761769
}
762770
},
771+
"additionalProperties": false,
763772
"example": "example.json#/createCase/location/access"
764773
},
765774
"geometry": {
@@ -793,6 +802,7 @@
793802
"description": "Objet gml (\u00e9quivalent xml du geojson). Le langage GML permet de d\u00e9crire une forme dans un syst\u00e8me de projection donn\u00e9. \nDans le cas d'une alerte donn\u00e9e sur une zone g\u00e9ographique non pr\u00e9cise (par exemple une section d'autoroute ou une zone sur un chemin de randonn\u00e9e), une indication sur la zone de recherche peut \u00eatre fournie.\nEn XML, un objet gml est encapsul\u00e9 dans une balise <sketch xmlns:gml='http://www.opengis.net/gml' version='1.0' > </sketch>\nEn JSON, les balises sont reprises depuis le mod\u00e8le gml\nVoir http://www.opengis.net/gml pour le format de l'objet sketch"
794803
}
795804
},
805+
"additionalProperties": false,
796806
"example": "example.json#/createCase/location/geometry"
797807
},
798808
"externalInfo": {
@@ -843,6 +853,7 @@
843853
"description": "Identifiant unique dans le type. Exemple : UUID d'un ega"
844854
}
845855
},
856+
"additionalProperties": false,
846857
"example": "example.json#/createCase/location/externalInfo/0"
847858
},
848859
"wayName": {
@@ -877,6 +888,7 @@
877888
"example": "example.json#/createCase/location/detailedAddress/wayName/name"
878889
}
879890
},
891+
"additionalProperties": false,
880892
"example": "example.json#/createCase/location/detailedAddress/wayName"
881893
},
882894
"point": {
@@ -900,6 +912,7 @@
900912
"description": "Indique le type de coordonn\u00e9es utilis\u00e9. Actuellement, la seule valeur valide est \u00abEPSG-4326\u00bb, indiquant l'utilisation de WGS-84. Si ce champ n'est pas renseign\u00e9, on consid\u00e8re que la valeur par d\u00e9faut est \u00ab\u00bb."
901913
}
902914
},
915+
"additionalProperties": false,
903916
"example": "example.json#/createCase/location/geometry/point"
904917
},
905918
"coord": {
@@ -969,6 +982,7 @@
969982
]
970983
}
971984
},
985+
"additionalProperties": false,
972986
"example": "example.json#/createCase/location/geometry/point/coord"
973987
},
974988
"caller": {
@@ -1263,6 +1277,7 @@
12631277
"$ref": "#/definitions/detailedName"
12641278
}
12651279
},
1280+
"additionalProperties": false,
12661281
"example": "example.json#/createCase/initialAlert/caller"
12671282
},
12681283
"contactSource": {
@@ -1311,6 +1326,7 @@
13111326
"description": "Valeur de l'URI utilis\u00e9e par la source"
13121327
}
13131328
},
1329+
"additionalProperties": false,
13141330
"example": "example.json#/createCase/initialAlert/alertSource"
13151331
},
13161332
"callTaker": {
@@ -1359,6 +1375,7 @@
13591375
"description": "Identifiant unique de l'op\u00e9rateur ayant trait\u00e9 l'alerte (peut \u00eatre un identifiant technique, un num\u00e9ro de carte CPS etc)"
13601376
}
13611377
},
1378+
"additionalProperties": false,
13621379
"example": "example.json#/createCase/initialAlert/callTaker"
13631380
},
13641381
"attachment": {
@@ -1419,6 +1436,7 @@
14191436
"description": "Hash de la ressource pour confirmer la r\u00e9ception de la bonne ressource\nLa ressource est hash\u00e9e avec le protocole SHA-256"
14201437
}
14211438
},
1439+
"additionalProperties": false,
14221440
"example": "example.json#/createCase/initialAlert/attachment/0"
14231441
},
14241442
"contact": {
@@ -1458,6 +1476,7 @@
14581476
"description": "Valeur de l'URI utilis\u00e9e pour contacter le partenaire"
14591477
}
14601478
},
1479+
"additionalProperties": false,
14611480
"example": "example.json#/createCase/initialAlert/caller/callerContact"
14621481
},
14631482
"detailedName": {
@@ -1494,6 +1513,7 @@
14941513
"description": "Pr\u00e9nom du r\u00e9qu\u00e9rant.\nPar convention les pr\u00e9noms compos\u00e9s doivent pr\u00e9f\u00e9rablement \u00eatre s\u00e9par\u00e9s par le caract\u00e8re \"-\""
14951514
}
14961515
},
1516+
"additionalProperties": false,
14971517
"example": "example.json#/createCase/initialAlert/caller/detailedName"
14981518
},
14991519
"customMap": {
@@ -1539,6 +1559,7 @@
15391559
"description": "Informations compl\u00e9mentaires sur le contexte / utilisation de ce matching additionnel"
15401560
}
15411561
},
1562+
"additionalProperties": false,
15421563
"example": "example.json#/createCase/additionalInformation/customMap"
15431564
}
15441565
}

0 commit comments

Comments
 (0)