generated from VNG-Realisatie/VNG-R-Respec-Template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
snapshot.html
6134 lines (5970 loc) · 278 KB
/
snapshot.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html><html lang="nl"><head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<meta name="generator" content="ReSpec 34.1.4">
<style>
.issue-label{text-transform:initial}
.warning>p:first-child{margin-top:0}
.warning{padding:.5em;border-left-width:.5em;border-left-style:solid}
span.warning{padding:.1em .5em .15em}
.issue.closed span.issue-number{text-decoration:line-through}
.issue.closed span.issue-number::after{content:" (Closed)";font-size:smaller}
.warning{border-color:#f11;border-width:.2em;border-style:solid;background:#fbe9e9}
.warning-title:before{content:"⚠";font-size:1.3em;float:left;padding-right:.3em;margin-top:-.3em}
li.task-list-item{list-style:none}
input.task-list-item-checkbox{margin:0 .35em .25em -1.6em;vertical-align:middle}
.issue a.respec-gh-label{padding:5px;margin:0 2px 0 2px;font-size:10px;text-transform:none;text-decoration:none;font-weight:700;border-radius:4px;position:relative;bottom:2px;border:none;display:inline-block}
</style>
<style>
dfn{cursor:pointer}
.dfn-panel{position:absolute;z-index:35;min-width:300px;max-width:500px;padding:.5em .75em;margin-top:.6em;font-family:"Helvetica Neue",sans-serif;font-size:small;background:#fff;color:#000;box-shadow:0 1em 3em -.4em rgba(0,0,0,.3),0 0 1px 1px rgba(0,0,0,.05);border-radius:2px}
.dfn-panel:not(.docked)>.caret{position:absolute;top:-9px}
.dfn-panel:not(.docked)>.caret::after,.dfn-panel:not(.docked)>.caret::before{content:"";position:absolute;border:10px solid transparent;border-top:0;border-bottom:10px solid #fff;top:0}
.dfn-panel:not(.docked)>.caret::before{border-bottom:9px solid #a2a9b1}
.dfn-panel *{margin:0}
.dfn-panel b{display:block;color:#000;margin-top:.25em}
.dfn-panel ul a[href]{color:#333}
.dfn-panel>div{display:flex}
.dfn-panel a.self-link{font-weight:700;margin-right:auto}
.dfn-panel .marker{padding:.1em;margin-left:.5em;border-radius:.2em;text-align:center;white-space:nowrap;font-size:90%;color:#040b1c}
.dfn-panel .marker.dfn-exported{background:#d1edfd;box-shadow:0 0 0 .125em #1ca5f940}
.dfn-panel .marker.idl-block{background:#8ccbf2;box-shadow:0 0 0 .125em #0670b161}
.dfn-panel a:not(:hover){text-decoration:none!important;border-bottom:none!important}
.dfn-panel a[href]:hover{border-bottom-width:1px}
.dfn-panel ul{padding:0}
.dfn-panel li{margin-left:1em}
.dfn-panel.docked{position:fixed;left:.5em;top:unset;bottom:2em;margin:0 auto;max-width:calc(100vw - .75em * 2 - .5em - .2em * 2);max-height:30vh;overflow:auto}
</style>
<script>document.title = respecConfig.title</script>
<title>MBG - Metamodel BerichtstructuurGegevens</title>
<title>Default</title>
<link rel="shortcut icon" type="image/x-icon" href="https://vng-realisatie.github.io/VNG-R-Respec-Organization-configurations/media/logo-VNG-Realisatie.ico">
<link rel="stylesheet" href="./css/inline-code.css">
<link rel="stylesheet" href="./css/blockqoute.css">
<link rel="stylesheet" href="./css/table.css">
<link rel="stylesheet" href="./css/transformatie-rdf.css">
<link rel="stylesheet" href="./css/dfn-box.css">
<style id="respec-mainstyle">
@keyframes pop{
0%{transform:scale(1,1)}
25%{transform:scale(1.25,1.25);opacity:.75}
100%{transform:scale(1,1)}
}
:is(h1,h2,h3,h4,h5,h6,a) abbr{border:none}
dfn{font-weight:700}
a.internalDFN{color:inherit;border-bottom:1px solid #99c;text-decoration:none}
a.externalDFN{color:inherit;border-bottom:1px dotted #ccc;text-decoration:none}
a.bibref{text-decoration:none}
.respec-offending-element:target{animation:pop .25s ease-in-out 0s 1}
.respec-offending-element,a[href].respec-offending-element{text-decoration:red wavy underline}
@supports not (text-decoration:red wavy underline){
.respec-offending-element:not(pre){display:inline-block}
.respec-offending-element{background:url(data:image/gif;base64,R0lGODdhBAADAPEAANv///8AAP///wAAACwAAAAABAADAEACBZQjmIAFADs=) bottom repeat-x}
}
#references :target{background:#eaf3ff;animation:pop .4s ease-in-out 0s 1}
cite .bibref{font-style:normal}
a[href].orcid{padding-left:4px;padding-right:4px}
a[href].orcid>svg{margin-bottom:-2px}
.toc a,.tof a{text-decoration:none}
a .figno,a .secno{color:#000}
ol.tof,ul.tof{list-style:none outside none}
.caption{margin-top:.5em;font-style:italic}
table.simple{border-spacing:0;border-collapse:collapse;border-bottom:3px solid #005a9c}
.simple th{background:#005a9c;color:#fff;padding:3px 5px;text-align:left}
.simple th a{color:#fff;padding:3px 5px;text-align:left}
.simple th[scope=row]{background:inherit;color:inherit;border-top:1px solid #ddd}
.simple td{padding:3px 10px;border-top:1px solid #ddd}
.simple tr:nth-child(even){background:#f0f6ff}
.section dd>p:first-child{margin-top:0}
.section dd>p:last-child{margin-bottom:0}
.section dd{margin-bottom:1em}
.section dl.attrs dd,.section dl.eldef dd{margin-bottom:0}
#issue-summary>ul{column-count:2}
#issue-summary li{list-style:none;display:inline-block}
details.respec-tests-details{margin-left:1em;display:inline-block;vertical-align:top}
details.respec-tests-details>*{padding-right:2em}
details.respec-tests-details[open]{z-index:999999;position:absolute;border:thin solid #cad3e2;border-radius:.3em;background-color:#fff;padding-bottom:.5em}
details.respec-tests-details[open]>summary{border-bottom:thin solid #cad3e2;padding-left:1em;margin-bottom:1em;line-height:2em}
details.respec-tests-details>ul{width:100%;margin-top:-.3em}
details.respec-tests-details>li{padding-left:1em}
.self-link:hover{opacity:1;text-decoration:none;background-color:transparent}
aside.example .marker>a.self-link{color:inherit}
.header-wrapper{display:flex;align-items:baseline;position:relative;left:-.5em}
:is(h2,h3,h4,h5,h6):not(#toch2)+a.self-link{color:inherit;order:-1;position:relative;left:-.7em;font-size:1rem;opacity:.5}
:is(h2,h3,h4,h5,h6)+a.self-link::before{content:"§";text-decoration:none;color:var(--heading-text)}
:is(h2,h3)+a.self-link{top:-.2em}
:is(h4,h5,h6)+a.self-link::before{color:#000}
@media (max-width:767px){
dd{margin-left:0}
}
@media print{
.removeOnSave{display:none}
}
</style>
<style id="respec-nlgov">
img.license{float:left;padding-right:5px}
</style>
<style>
ul.index{columns:30ch;column-gap:1.5em}
ul.index li{list-style:inherit}
ul.index li span{color:inherit;cursor:pointer;white-space:normal}
#index-defined-here ul.index li{font-size:.9rem}
ul.index code{color:inherit}
#index-defined-here .print-only{display:none}
@media print{
#index-defined-here .print-only{display:initial}
}
</style>
<meta name="description" content="Metamodel voor het beschrijven van Berichtgegevens (MBG), versie 1.0.">
<style>
.sidelabel {
position: fixed;
-webkit-transform-origin: top right;
right: 100%;
top: 0;
-webkit-transform: rotate(-90deg);
padding: 4px 50px 4px 10px;
color: white;
white-space: nowrap;
z-index: 1;
background-color: #A569BD;
}
</style>
<script type="text/javascript">
/* Any custom mermaid.js scripts will go here. */
</script>
<style>
/* Any custom mermaid.js scripts will go here. */
}
</style>
<script id="initialUserConfig" type="application/json">{
"nl_organisationName": "VNG Realisatie",
"nl_organisationStylesURL": "https://gitdocumentatie.logius.nl/publicatie/respec/style/",
"nl_organisationPublishURL": "https://vng-realisatie.github.io/publicatie",
"logos": [
{
"src": "https://vng-realisatie.github.io/VNG-R-Respec-Organization-configurations/media/logo-VNG-Realisatie.jpg",
"alt": "VNG-Realisatie",
"id": "VNG-Realisatie",
"height": 77,
"url": "https://www.vng.nl"
}
],
"postProcess": [
null
],
"pubDomain": "cim",
"latestVersion": [
"nl_organisationPublishURL",
"pubDomain",
"/",
"shortName"
],
"thisVersion": [
"nl_organisationPublishURL",
"pubDomain",
"/",
"shortName",
"/",
"publishVersion"
],
"prevVersion": [
"nl_organisationPublishURL",
"pubDomain",
"/",
"shortName",
"/",
"previousPublishVersion"
],
"useLogo": true,
"useLabel": true,
"license": "eupl",
"addSectionLinks": true,
"localizationStrings": {
"nl": {
"cv": "Consultatieversie",
"vv": "Versie ter vaststelling",
"ig": "In Gebruik versie",
"io": "In Ontwikkeling versie",
"im": "Informatiemodel",
"hl": "Handleiding",
"st": "Standaard"
}
},
"sotdText": {
"nl": {
"sotd": "Status van dit document",
"cv": "Dit is een door het TO goedgekeurde consultatieversie. Commentaar over dit document kan gestuurd worden naar ",
"vv": "Dit is een definitief concept van de nieuwe versie van dit document. Wijzigingen naar aanleiding van consultaties zijn doorgevoerd.",
"ig": "Dit document is 'In Gebruik'.",
"io": "Dit document is nog 'In Ontwikkeling'."
}
},
"labelColor": {
"ig": "#A569BD",
"io": "#DC7633"
},
"licenses": {
"cc0": {
"name": "Creative Commons 0 Public Domain Dedication",
"short": "CC0",
"url": "https://creativecommons.org/publicdomain/zero/1.0/",
"image": "https://gitdocumentatie.logius.nl/publicatie/respec/media/logos/cc-zero.svg"
},
"cc-by": {
"name": "Creative Commons Attribution 4.0 International Public License",
"short": "CC-BY",
"url": "https://creativecommons.org/licenses/by/4.0/legalcode",
"image": "https://gitdocumentatie.logius.nl/publicatie/respec/media/logos/cc-by.svg"
},
"cc-by-nd": {
"name": "Creative Commons Naamsvermelding-GeenAfgeleideWerken 4.0 Internationaal",
"short": "CC-BY-ND",
"url": "https://creativecommons.org/licenses/by-nd/4.0/legalcode.nl",
"image": "https://gitdocumentatie.logius.nl/publicatie/respec/media/logos/cc-by-nd.svg"
},
"eupl": {
"name": "EUROPEAN UNION PUBLIC LICENCE v. 1.2",
"short": "EUPL",
"url": "https://eupl.eu/",
"image": "https://eupl.eu/eu.png"
}
},
"localBiblio": {
"MIM": {
"href": "https://docs.geostandaarden.nl/mim/def-st-mim-20220217/",
"publisher": "Geonovum",
"title": "MIM - Metamodel Informatie Modellering",
"date": "17 Februari 2022",
"rawDate": "2022",
"id": "mim"
},
"OMG": {
"title": "Object Management Group Unified Modeling Language TM",
"href": "https://www.omg.org/spec/UML/2.5",
"version": "2.5",
"status": "BG-FINAL",
"publisher": "Object Management Group (OMG)",
"id": "omg"
},
"UML": {
"title": "Unified Modeling Language (UML).",
"href": "http://uml.org",
"id": "uml"
}
},
"shortName": "mbg",
"specType": "ST",
"specStatus": "IG",
"publishDate": "2024-05-15",
"publishVersion": "1.0.0",
"previousMaturity": "CV",
"previousPublishDate": "2024-03-04",
"previousPublishVersion": "0.9.0",
"title": "MBG - Metamodel BerichtstructuurGegevens",
"authors": [
{
"name": "Robert Melskens",
"company": "VNG Realisatie",
"companyURL": "https://vng.nl/artikelen/vng-realisatie"
}
],
"editors": [
{
"name": "Robert Melskens",
"company": "VNG Realisatie",
"companyURL": "https://vng.nl/artikelen/vng-realisatie"
},
{
"name": "Johan Boer",
"company": "VNG Realisatie",
"companyURL": "https://vng.nl/artikelen/vng-realisatie"
}
],
"github": "https://github.com/VNG-Realisatie/MBG-Werkomgeving",
"alternateFormats": [
{
"label": "pdf",
"uri": "MBG.pdf"
}
]
}</script>
<link rel="stylesheet" href="https://gitdocumentatie.logius.nl/publicatie/respec/style/base.css"></head>
<body class="h-entry informative toc-inline"><div class="head">
<a class="logo" href="https://www.vng.nl"><img alt="VNG-Realisatie" height="77" id="VNG-Realisatie" src="https://vng-realisatie.github.io/VNG-R-Respec-Organization-configurations/media/logo-VNG-Realisatie.jpg">
</a> <h1 id="title" class="title">MBG - Metamodel BerichtstructuurGegevens</h1>
<h2>
VNG Realisatie Standaard<br>
In Gebruik versie
<time class="dt-published" datetime="2024-05-15">15 mei 2024</time>
</h2>
<dl>
<dt>Deze versie:</dt><dd class="status">
<a class="u-url status" href="https://vng-realisatie.github.io/publicatie/cim/mbg/1.0.0">https://vng-realisatie.github.io/publicatie/cim/mbg/1.0.0</a>
</dd>
<dt>Laatst gepubliceerde versie:</dt><dd>
<a href="https://vng-realisatie.github.io/publicatie/cim/mbg">https://vng-realisatie.github.io/publicatie/cim/mbg</a>
</dd>
<dt>Laatste werkversie:</dt><dd><a href="https://vng-realisatie.github.io/MBG-Werkomgeving/">https://vng-realisatie.github.io/MBG-Werkomgeving/</a></dd>
<dt>Vorige versie:</dt><dd><a href="https://vng-realisatie.github.io/publicatie/cim/mbg/0.9.0">https://vng-realisatie.github.io/publicatie/cim/mbg/0.9.0</a></dd>
<dt>Redacteurs:</dt>
<dd class="editor p-author h-card vcard">
<span class="p-name fn">Robert Melskens</span> (<a class="p-org org h-org" href="https://vng.nl/artikelen/vng-realisatie">VNG Realisatie</a>)
</dd><dd class="editor p-author h-card vcard">
<span class="p-name fn">Johan Boer</span> (<a class="p-org org h-org" href="https://vng.nl/artikelen/vng-realisatie">VNG Realisatie</a>)
</dd>
<dt>Auteur:</dt><dd class="editor p-author h-card vcard">
<span class="p-name fn">Robert Melskens</span> (<a class="p-org org h-org" href="https://vng.nl/artikelen/vng-realisatie">VNG Realisatie</a>)
</dd>
<dt>Doe mee:</dt><dd>
<a href="https://github.com/VNG-Realisatie/MBG-Werkomgeving/">GitHub VNG-Realisatie/MBG-Werkomgeving</a>
</dd><dd>
<a href="https://github.com/VNG-Realisatie/MBG-Werkomgeving/issues/">Dien een melding in</a>
</dd><dd>
<a href="https://github.com/VNG-Realisatie/MBG-Werkomgeving/commits/">Revisiehistorie</a>
</dd><dd>
<a href="https://github.com/VNG-Realisatie/MBG-Werkomgeving/pulls/">Pull requests</a>
</dd>
</dl>
<p>
Dit document is ook beschikbaar in dit niet-normatieve formaat:
<a rel="alternate" href="MBG.pdf">pdf</a>
</p>
<p class="copyright">
Dit document valt onder de volgende licentie:
<a rel="license" href="https://eupl.eu/" class="subfoot"><img class="license" src="https://eupl.eu/eu.png" alt="Logo EUROPEAN UNION PUBLIC LICENCE v. 1.2"><br> EUROPEAN UNION PUBLIC LICENCE v. 1.2</a>
</p>
<hr title="Separator for header">
</div>
<section id="abstract" class="introductory"><h2>Samenvatting</h2><h1>Samenvatting</h1>
<p>Metamodel voor het beschrijven van Berichtgegevens (MBG), versie <strong>1.0</strong>.</p>
<p>Met MBG, het Metamodel voor BerichtstructuurGegevens, wordt een metamodel beschreven waarmee berichten kunnen worden gemodelleerd in de vorm van Berichtstructuurmodellen. Het beschrijft de metaklassen, metastructuur en metagegevens als grondslag voor alle onderdelen van een bericht. Doel hiervan is het vastleggen van de methode van het modelleren van berichten zodat dit op een eenduidige gebeurd en de gemeenschappelijke tooling deze modellen ook kan verwerken. Vooralsnog wordt ingezet op het definiëren van een metamodel voor het beschrijven van OAS specificaties voor REST API’s maar het is tevens bedoeld als basis voor verbetering en doorontwikkeling van dit metamodel.</p>
</section>
<section id="sotd" class="introductory"><h2>Status van dit document</h2><p>Dit document is 'In Gebruik'.</p></section><nav id="toc"><h2 class="introductory" id="inhoudsopgave">Inhoudsopgave</h2><ol class="toc"><li class="tocline"><a class="tocxref" href="#abstract">Samenvatting</a></li><li class="tocline"><a class="tocxref" href="#sotd">Status van dit document</a></li><li class="tocline"><a class="tocxref" href="#ToCoVo"><bdi class="secno">1. </bdi>Colofon en Voorwoord</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#colofon"><bdi class="secno">1.1 </bdi>Colofon</a></li><li class="tocline"><a class="tocxref" href="#voorwoord"><bdi class="secno">1.2 </bdi>Voorwoord</a></li></ol></li><li class="tocline"><a class="tocxref" href="#inleiding"><bdi class="secno">2. </bdi>Inleiding</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#toepassingsgebied"><bdi class="secno">2.1 </bdi>Toepassingsgebied</a></li><li class="tocline"><a class="tocxref" href="#doelgroep"><bdi class="secno">2.2 </bdi>Doelgroep</a></li><li class="tocline"><a class="tocxref" href="#leeswijzer"><bdi class="secno">2.3 </bdi>Leeswijzer</a></li><li class="tocline"><a class="tocxref" href="#gebruikswijzer"><bdi class="secno">2.4 </bdi>Gebruikswijzer</a></li><li class="tocline"><a class="tocxref" href="#wat-is-een-bsm"><bdi class="secno">2.5 </bdi>Wat is een BSM</a></li><li class="tocline"><a class="tocxref" href="#typering-van-modellen-en-scope-van-deze-standaard"><bdi class="secno">2.6 </bdi>Typering van modellen en scope van deze standaard</a></li><li class="tocline"><a class="tocxref" href="#wat-is-het-metamodel-voor-berichtstructuurmodellering"><bdi class="secno">2.7 </bdi>Wat is het metamodel voor Berichtstructuurmodellering</a></li><li class="tocline"><a class="tocxref" href="#uitdrukken-in-uml"><bdi class="secno">2.8 </bdi>Uitdrukken in UML</a></li><li class="tocline"><a class="tocxref" href="#beheer"><bdi class="secno">2.9 </bdi>Beheer</a></li><li class="tocline"><a class="tocxref" href="#normreferenties"><bdi class="secno">2.10 </bdi>Normreferenties</a></li></ol></li><li class="tocline"><a class="tocxref" href="#metamodel-algemeen"><bdi class="secno">3. </bdi>Metamodel Algemeen</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#structuur-metamodel"><bdi class="secno">3.1 </bdi>Structuur metamodel</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#kern"><bdi class="secno">3.1.1 </bdi>Kern</a></li><li class="tocline"><a class="tocxref" href="#groepering"><bdi class="secno">3.1.2 </bdi>Groepering</a></li></ol></li><li class="tocline"><a class="tocxref" href="#objecten"><bdi class="secno">3.2 </bdi>Objecten</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#berichttypes"><bdi class="secno">3.2.1 </bdi>Berichttypes</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#getberichttype"><bdi class="secno">3.2.1.1 </bdi>Getberichttype</a></li><li class="tocline"><a class="tocxref" href="#postberichttype"><bdi class="secno">3.2.1.2 </bdi>Postberichttype</a></li><li class="tocline"><a class="tocxref" href="#putberichttype"><bdi class="secno">3.2.1.3 </bdi>Putberichttype</a></li><li class="tocline"><a class="tocxref" href="#patchberichttype"><bdi class="secno">3.2.1.4 </bdi>Patchberichttype</a></li><li class="tocline"><a class="tocxref" href="#deleteberichttype"><bdi class="secno">3.2.1.5 </bdi>Deleteberichttype</a></li></ol></li><li class="tocline"><a class="tocxref" href="#padtype"><bdi class="secno">3.2.2 </bdi>Padtype</a></li><li class="tocline"><a class="tocxref" href="#interface"><bdi class="secno">3.2.3 </bdi>Interface</a></li></ol></li><li class="tocline"><a class="tocxref" href="#relaties"><bdi class="secno">3.3 </bdi>Relaties</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#generalisatie"><bdi class="secno">3.3.1 </bdi>Generalisatie</a></li><li class="tocline"><a class="tocxref" href="#entiteitrelatie"><bdi class="secno">3.3.2 </bdi>EntiteitRelatie</a></li><li class="tocline"><a class="tocxref" href="#padrelatie"><bdi class="secno">3.3.3 </bdi>PadRelatie</a></li></ol></li><li class="tocline"><a class="tocxref" href="#packages"><bdi class="secno">3.4 </bdi>Packages</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#koppelvlak"><bdi class="secno">3.4.1 </bdi>Koppelvlak</a></li><li class="tocline"><a class="tocxref" href="#domein"><bdi class="secno">3.4.2 </bdi>Domein</a></li><li class="tocline"><a class="tocxref" href="#bericht"><bdi class="secno">3.4.3 </bdi>Bericht</a></li></ol></li><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens"><bdi class="secno">3.5 </bdi>Specificatie metagegevens</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-packages"><bdi class="secno">3.5.1 </bdi>Specificatie metagegevens Packages</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#metagegeven-naam"><bdi class="secno">3.5.1.1 </bdi>Metagegeven: Naam</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-beheerder-email"><bdi class="secno">3.5.1.2 </bdi>Metagegeven: beheerder-email</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-koppelvlak-naam"><bdi class="secno">3.5.1.3 </bdi>Metagegeven: Koppelvlak-naam</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-project_url"><bdi class="secno">3.5.1.4 </bdi>Metagegeven: project_url</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-release"><bdi class="secno">3.5.1.5 </bdi>Metagegeven: release</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-version"><bdi class="secno">3.5.1.6 </bdi>Metagegeven: Version</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-serialisatie"><bdi class="secno">3.5.1.7 </bdi>Metagegeven: Serialisatie</a></li></ol></li><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-modelelementen"><bdi class="secno">3.5.2 </bdi>Specificatie metagegevens modelelementen</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#metagegeven-naam-0"><bdi class="secno">3.5.2.1 </bdi>Metagegeven: Naam</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-berichtcode"><bdi class="secno">3.5.2.2 </bdi>Metagegeven: berichtcode</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-tag"><bdi class="secno">3.5.2.3 </bdi>Metagegeven: tag</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-servicename"><bdi class="secno">3.5.2.4 </bdi>Metagegeven: servicename</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-custom_path_facet"><bdi class="secno">3.5.2.5 </bdi>Metagegeven: custom_path_facet</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-positie"><bdi class="secno">3.5.2.6 </bdi>Metagegeven: Positie</a></li></ol></li><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-modelelement-bindingen"><bdi class="secno">3.5.3 </bdi>Specificatie metagegevens modelelement bindingen</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#metagegeven-heeft-padrelatie"><bdi class="secno">3.5.3.1 </bdi>Metagegeven: heeft padrelatie</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-heeft-entiteitrelatie"><bdi class="secno">3.5.3.2 </bdi>Metagegeven: heeft entiteitrelatie</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-verwijst-naar-supertype"><bdi class="secno">3.5.3.3 </bdi>Metagegeven: verwijst naar supertype</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#toegestane-waarden-voor-bepaalde-metagegevens"><bdi class="secno">3.6 </bdi>Toegestane waarden voor (bepaalde) metagegevens</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#waardebereik-metagegevens"><bdi class="secno">3.6.1 </bdi>Waardebereik metagegevens</a></li><li class="tocline"><a class="tocxref" href="#defaultwaarden-voor-metagegevens-modelelementen"><bdi class="secno">3.6.2 </bdi>Defaultwaarden voor metagegevens modelelementen</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#metamodel-in-uml"><bdi class="secno">4. </bdi>Metamodel in UML</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#structuur-metamodel-in-uml"><bdi class="secno">4.1 </bdi>Structuur metamodel in UML</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#kern-0"><bdi class="secno">4.1.1 </bdi>Kern</a></li><li class="tocline"><a class="tocxref" href="#groepering-0"><bdi class="secno">4.1.2 </bdi>Groepering</a></li></ol></li><li class="tocline"><a class="tocxref" href="#nadere-specificatie-metagegevens-in-uml"><bdi class="secno">4.2 </bdi>Nadere specificatie metagegevens in UML</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#modellering-metagegevens-voor-objecten-en-attributen-in-uml"><bdi class="secno">4.2.1 </bdi>Modellering metagegevens voor objecten en attributen in UML</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-voor-berichttype"><bdi class="secno">4.2.1.1 </bdi>Specificatie voor «Berichttype»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-getberichttype"><bdi class="secno">4.2.1.2 </bdi>Specificatie voor «Getberichttype»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-padtype"><bdi class="secno">4.2.1.3 </bdi>Specificatie voor «Padtype»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-interface"><bdi class="secno">4.2.1.4 </bdi>Specificatie voor «Interface»</a></li></ol></li><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-voor-relaties"><bdi class="secno">4.2.2 </bdi>Specificatie metagegevens voor relaties</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-voor-entiteitrelatie"><bdi class="secno">4.2.2.1 </bdi>Specificatie voor «EntiteitRelatie»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-padrelatie"><bdi class="secno">4.2.2.2 </bdi>Specificatie voor «PadRelatie»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-generalisatie-tussen-berichttypes-en-interfaces"><bdi class="secno">4.2.2.3 </bdi>Specificatie voor «Generalisatie» tussen berichttypes en interfaces</a></li></ol></li><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-voor-packages"><bdi class="secno">4.2.3 </bdi>Specificatie metagegevens voor packages</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-voor-koppelvlak"><bdi class="secno">4.2.3.1 </bdi>Specificatie voor «Koppelvlak»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-domein"><bdi class="secno">4.2.3.2 </bdi>Specificatie voor «Domein»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-bericht"><bdi class="secno">4.2.3.3 </bdi>Specificatie voor «Bericht»</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#uml-tooling"><bdi class="secno">4.3 </bdi>UML Tooling</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#mbg-toolbox"><bdi class="secno">4.3.1 </bdi>MBG-toolbox</a></li><li class="tocline"><a class="tocxref" href="#extensie-op-mbg-toolbox"><bdi class="secno">4.3.2 </bdi>Extensie op MBG-toolbox</a></li><li class="tocline"><a class="tocxref" href="#imvertor"><bdi class="secno">4.3.3 </bdi>Imvertor</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#afspraken-regels"><bdi class="secno">5. </bdi>Afspraken & Regels</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#afspraken-rondom-naamgeving-en-definities"><bdi class="secno">5.1 </bdi>Afspraken rondom naamgeving en definities</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#uniciteit-van-namen-van-modelelementen"><bdi class="secno">5.1.1 </bdi>Uniciteit van namen van modelelementen</a></li><li class="tocline"><a class="tocxref" href="#uniekheid-van-waarden-van-tagged-values"><bdi class="secno">5.1.2 </bdi>Uniekheid van waarden van tagged values</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#bijlagen"><bdi class="secno">6. </bdi>Bijlagen</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#diagrammen"><bdi class="secno">6.1 </bdi>Diagrammen</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#overzicht-toegepaste-uml-metaclasses"><bdi class="secno">6.1.1 </bdi>Overzicht toegepaste UML metaclasses</a></li><li class="tocline"><a class="tocxref" href="#modelelementen-en-metagegevens-als-diagram"><bdi class="secno">6.1.2 </bdi>Modelelementen en metagegevens als diagram</a></li></ol></li><li class="tocline"><a class="tocxref" href="#metamodel-uitwisselingsgegevensmodel-mug"><bdi class="secno">6.2 </bdi>Metamodel UitwisselingsGegevensmodel (MUG)</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#mapping-mim-op-mug-stereotypes"><bdi class="secno">6.2.1 </bdi>Mapping MIM op MUG stereotypes</a></li><li class="tocline"><a class="tocxref" href="#metagegevens"><bdi class="secno">6.2.2 </bdi>Metagegevens</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#metagegevens-voor-basismodel"><bdi class="secno">6.2.2.1 </bdi>Metagegevens voor «Basismodel»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-complex-datatype"><bdi class="secno">6.2.2.2 </bdi>Metagegevens voor «Complex datatype»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-data-element"><bdi class="secno">6.2.2.3 </bdi>Metagegevens voor «Data element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-domein"><bdi class="secno">6.2.2.4 </bdi>Metagegevens voor «Domein»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-element"><bdi class="secno">6.2.2.5 </bdi>Metagegevens voor «Element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-entiteittype"><bdi class="secno">6.2.2.6 </bdi>Metagegevens voor «Entiteittype»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-enum"><bdi class="secno">6.2.2.7 </bdi>Metagegevens voor «Enum»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-enumeration"><bdi class="secno">6.2.2.8 </bdi>Metagegevens voor «Enumeration»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-extern"><bdi class="secno">6.2.2.9 </bdi>Metagegevens voor «Extern»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-externe-koppeling"><bdi class="secno">6.2.2.10 </bdi>Metagegevens voor «Externe koppeling»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-gegevensgroep"><bdi class="secno">6.2.2.11 </bdi>Metagegevens voor «Gegevensgroep»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-groep"><bdi class="secno">6.2.2.12 </bdi>Metagegevens voor «Groep»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-intern"><bdi class="secno">6.2.2.13 </bdi>Metagegevens voor «Intern»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-primitief-datatype"><bdi class="secno">6.2.2.14 </bdi>Metagegevens voor «Primitief datatype»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-relatie"><bdi class="secno">6.2.2.15 </bdi>Metagegevens voor «Relatie»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-relatie-entiteit"><bdi class="secno">6.2.2.16 </bdi>Metagegevens voor «Relatie-entiteit»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-tabel-element"><bdi class="secno">6.2.2.17 </bdi>Metagegevens voor «Tabel Element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-tabel-entiteit"><bdi class="secno">6.2.2.18 </bdi>Metagegevens voor «Tabel-entiteit»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-union"><bdi class="secno">6.2.2.19 </bdi>Metagegevens voor «Union»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-union-element"><bdi class="secno">6.2.2.20 </bdi>Metagegevens voor «Union element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-view"><bdi class="secno">6.2.2.21 </bdi>Metagegevens voor «View»</a></li></ol></li><li class="tocline"><a class="tocxref" href="#mug-toolbox"><bdi class="secno">6.2.3 </bdi>MUG-toolbox</a></li></ol></li><li class="tocline"><a class="tocxref" href="#specifieke-mbg-metagegevens-voor-imvertor"><bdi class="secno">6.3 </bdi>Specifieke MBG metagegevens voor Imvertor</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-0"><bdi class="secno">6.3.1 </bdi>Specificatie metagegevens</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#metagegeven-supplier-name"><bdi class="secno">6.3.1.1 </bdi>Metagegeven: Supplier-name</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-supplier-project"><bdi class="secno">6.3.1.2 </bdi>Metagegeven: Supplier-project</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-supplier-release"><bdi class="secno">6.3.1.3 </bdi>Metagegeven: Supplier-release</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-is-afgeleid"><bdi class="secno">6.3.1.4 </bdi>Metagegeven: Is afgeleid</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-toelichting-opnemen-vanaf"><bdi class="secno">6.3.1.5 </bdi>Metagegeven: toelichting opnemen vanaf</a></li></ol></li><li class="tocline"><a class="tocxref" href="#nadere-specificatie-metagegevens-in-uml-0"><bdi class="secno">6.3.2 </bdi>Nadere specificatie metagegevens in UML</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-voor-berichttype-0"><bdi class="secno">6.3.2.1 </bdi>Specificatie voor «Berichttype»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-padtype-0"><bdi class="secno">6.3.2.2 </bdi>Specificatie voor «Padtype»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-entiteitrelatie-0"><bdi class="secno">6.3.2.3 </bdi>Specificatie voor « EntiteitRelatie »</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-padrelatie-0"><bdi class="secno">6.3.2.4 </bdi>Specificatie voor «PadRelatie»</a></li><li class="tocline"><a class="tocxref" href="#specificatie-voor-koppelvlak-0"><bdi class="secno">6.3.2.5 </bdi>Specificatie voor «Koppelvlak»</a></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#specifieke-mug-metagegevens-voor-imvertor"><bdi class="secno">6.4 </bdi>Specifieke MUG metagegevens voor Imvertor</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#specificatie-metagegevens-1"><bdi class="secno">6.4.1 </bdi>Specificatie metagegevens</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#imvertor-0"><bdi class="secno">6.4.1.1 </bdi>Imvertor</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-supplier-name-0"><bdi class="secno">6.4.1.2 </bdi>Metagegeven: Supplier-name</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-supplier-project-0"><bdi class="secno">6.4.1.3 </bdi>Metagegeven: Supplier-project</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-supplier-release-0"><bdi class="secno">6.4.1.4 </bdi>Metagegeven: Supplier-release</a></li><li class="tocline"><a class="tocxref" href="#metagegeven-is-afgeleid-0"><bdi class="secno">6.4.1.5 </bdi>Metagegeven: Is afgeleid</a></li><li class="tocline"><a class="tocxref" href="#ref-release"><bdi class="secno">6.4.1.6 </bdi>Ref-release</a></li><li class="tocline"><a class="tocxref" href="#ref-version"><bdi class="secno">6.4.1.7 </bdi>Ref-version</a></li><li class="tocline"><a class="tocxref" href="#supplier-package-name"><bdi class="secno">6.4.1.8 </bdi>Supplier-package-name</a></li></ol></li><li class="tocline"><a class="tocxref" href="#metagegevens-0"><bdi class="secno">6.4.2 </bdi>Metagegevens</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#metagegevens-voor-basismodel-0"><bdi class="secno">6.4.2.1 </bdi>Metagegevens voor «Basismodel»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-complex-datatype-0"><bdi class="secno">6.4.2.2 </bdi>Metagegevens voor «Complex datatype»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-data-element-0"><bdi class="secno">6.4.2.3 </bdi>Metagegevens voor «Data element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-element-0"><bdi class="secno">6.4.2.4 </bdi>Metagegevens voor «Element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-entiteittype-0"><bdi class="secno">6.4.2.5 </bdi>Metagegevens voor «Entiteittype»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-enumeration-0"><bdi class="secno">6.4.2.6 </bdi>Metagegevens voor «Enumeration»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-enum-0"><bdi class="secno">6.4.2.7 </bdi>Metagegevens voor «Enum»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-extern-0"><bdi class="secno">6.4.2.8 </bdi>Metagegevens voor «Extern»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-gegevensgroep-0"><bdi class="secno">6.4.2.9 </bdi>Metagegevens voor «Gegevensgroep»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-groep-0"><bdi class="secno">6.4.2.10 </bdi>Metagegevens voor «Groep»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-intern-0"><bdi class="secno">6.4.2.11 </bdi>Metagegevens voor «Intern»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-primitief-datatype-0"><bdi class="secno">6.4.2.12 </bdi>Metagegevens voor «Primitief datatype»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-relatie-0"><bdi class="secno">6.4.2.13 </bdi>Metagegevens voor «Relatie»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-relatie-entiteit-0"><bdi class="secno">6.4.2.14 </bdi>Metagegevens voor «Relatie-entiteit»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-tabel-element-0"><bdi class="secno">6.4.2.15 </bdi>Metagegevens voor «Tabel Element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-tabel-entiteit-0"><bdi class="secno">6.4.2.16 </bdi>Metagegevens voor «Tabel-entiteit»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-union-0"><bdi class="secno">6.4.2.17 </bdi>Metagegevens voor «Union»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-union-element-0"><bdi class="secno">6.4.2.18 </bdi>Metagegevens voor «Union element»</a></li><li class="tocline"><a class="tocxref" href="#metagegevens-voor-view-0"><bdi class="secno">6.4.2.19 </bdi>Metagegevens voor «View»</a></li></ol></li></ol></li></ol></li><li class="tocline"><a class="tocxref" href="#tof"><bdi class="secno">7. </bdi>Lijst met figuren</a></li><li class="tocline"><a class="tocxref" href="#index"><bdi class="secno">A. </bdi>Index</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#index-defined-here"><bdi class="secno">A.1 </bdi>Begrippen gedefinieerd door deze specificatie</a></li><li class="tocline"><a class="tocxref" href="#index-defined-elsewhere"><bdi class="secno">A.2 </bdi>Begrippen gedefinieerd door verwijzing</a></li></ol></li><li class="tocline"><a class="tocxref" href="#references"><bdi class="secno">B. </bdi>Referenties</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#informatieve-referenties"><bdi class="secno">B.1 </bdi>Informatieve referenties</a></li></ol></li></ol></nav>
<section id="ToCoVo"><div class="header-wrapper"><h2 id="x1-colofon-en-voorwoord"><bdi class="secno">1. </bdi>Colofon en Voorwoord</h2><a class="self-link" href="#ToCoVo" aria-label="Permalink for Section 1."></a></div>
<section id="colofon"><div class="header-wrapper"><h3 id="x1-1-colofon"><bdi class="secno">1.1 </bdi>Colofon</h3><a class="self-link" href="#colofon" aria-label="Permalink for Section 1.1"></a></div>
<p>Aan de totstandkoming van deze versie van dit metamodel hebben de volgende inhoudelijke experts op het gebied van informatiemodellering meegewerkt:</p>
<table class="simple">
<thead>
<tr>
<th>Naam</th>
<th>Organisatie</th>
<th>Rol en achtergrond</th>
</tr>
</thead>
<tbody><tr>
<td>Robert Melskens</td>
<td>VNG</td>
<td>Imvertor Gebruikersgroep. Imvertor ontwikkelaar.<br>MIM expertgroep.</td>
</tr>
<tr>
<td>Johan Boer</td>
<td>VNG</td>
<td>MIM expertgroep. Adviseur standaarden.</td>
</tr>
</tbody></table>
</section><section id="voorwoord"><div class="header-wrapper"><h3 id="x1-2-voorwoord"><bdi class="secno">1.2 </bdi>Voorwoord</h3><a class="self-link" href="#voorwoord" aria-label="Permalink for Section 1.2"></a></div>
<p>Bij de VNG en Kennisnet worden de Conceptuele InformatieModellen (CIM) die op basis van het MIM worden vervaardigd
en die een beeld geven van de informatiebehoefte binnen een domein op conceptueel niveau omgezet naar Uitwisselings
Gegevensmodellen (UGM). Een UGM is een vertaling van een CIM naar een technische structuur. Een UGM biedt echter
onvoldoende informatie voor het genereren van berichtspecificaties (in yaml of xml) en daarom wordt een Bericht
Structuur Model (BSM) vervaardigd waarbinnen het UGM gebruikt wordt om de inhoud van de berichten te definiëren.</p>
<p>Teneinde het gebruik van BSM’s ook buiten de VNG en Kennisnet mogelijk te maken is besloten de structuur van de BSM’s
formeel te beschrijven. Onderliggend document is daarvan het resultaat. Het dient als basis voor verbeteringen en
uitbreidingen waaraan binnen de Imvertor Gebruikersgroep gewerkt zal worden.</p>
</section></section>
<section id="inleiding"><div class="header-wrapper"><h2 id="x2-inleiding"><bdi class="secno">2. </bdi>Inleiding</h2><a class="self-link" href="#inleiding" aria-label="Permalink for Section 2."></a></div>
<p>Het onderliggende document bevat het Metamodel voor BerichtstructuurGegevens (MBG), voor het beschrijven van Berichtstructuurmodellen.
VNG Realisatie heeft er voor gekozen dit metamodel als een extensie op het MUG (Metamodel UitwisselingsGegevens) te definiëren. In theorie is het ook mogelijk om het MBG als een extensie op het MIM te definiëren. In beide gevallen vormen ze tezamen de basis voor een Bericht Structuur Model (BSM). Het metamodel beschrijft de modellering zoals toegepast bij VNG Realisatie en Kennisnet bij het modelleren van API-specificaties. Het dient als basis voor de doorontwikkeling daarvan binnen de Imvertor community zodat het ook voor andere organisaties en op mogelijke andersoortige specificaties toepasbaar wordt. Het model bevat duidelijke afspraken over het vastleggen van berichtgegevensspecificaties.</p>
<p>Dit document is opgesteld met kennis aanwezig bij VNG Realisatie.</p>
<section id="toepassingsgebied"><div class="header-wrapper"><h3 id="x2-1-toepassingsgebied"><bdi class="secno">2.1 </bdi>Toepassingsgebied</h3><a class="self-link" href="#toepassingsgebied" aria-label="Permalink for Section 2.1"></a></div>
<p>Het metamodel biedt de modelleringstaal waarmee het bericht-technische deel van een BSM gemaakt, gelezen en begrepen kan worden. Het doel hiervan is:
* de leesbaarheid en eenduidigheid van BSM’s te vergroten;
* een basis te leggen voor het aanbrengen van verbeteringen en uitbreidingen van dit metamodel en de gerelateerde BSM’s;
* tooling te kunnen (door)ontwikkelen en (her)gebruiken voor resp. door alle partijen die kiezen voor dit metamodel;
* en in het verlengde hiervan, om op een meer geautomatiseerde werkwijze sneller en beter voorspelbaar uitwisselingsstandaarden op te kunnen stellen.</p>
<p>Voor BSM’s die op basis van dit metamodel zijn beschreven geldt:
* ze zijn eenduidig te interpreteren en goed te vergelijken;
* er kan documentatie mee worden opgesteld of gegenereerd welke geschikt is voor publicatie;
* er kunnen specificaties mee worden gegenereerd die direct geschikt zijn om bijv. als OAS voor een API-standaard in te zetten.</p>
</section><section id="doelgroep"><div class="header-wrapper"><h3 id="x2-2-doelgroep"><bdi class="secno">2.2 </bdi>Doelgroep</h3><a class="self-link" href="#doelgroep" aria-label="Permalink for Section 2.2"></a></div>
<p>Dit document is primair bestemd voor berichtontwerpers die BSM’s maken, mensen die model-driven verder werken op basis van informatiemodellen
die zijn vervaardigd op basis van [<cite><a class="bibref" data-link-type="biblio" href="#bib-mim" title="MIM - Metamodel Informatie Modellering">MIM</a></cite>]. Kennis van informatiemodelleringen middels [<cite><a class="bibref" data-link-type="biblio" href="#bib-uml" title="Unified Modeling Language (UML).">UML</a></cite>] is een vereiste. Dit metamodel richt zich in
het bijzonder op de informatievoorziening binnen het overheidsdomein, al is het ook in bredere context inzetbaar.</p>
<p>Daarnaast is dit document ook bruikbaar voor ontwikkelaars van tooling die de, op basis van de met dit metamodel vervaardigde, BSM’s als input nemen.</p>
</section><section id="leeswijzer"><div class="header-wrapper"><h3 id="x2-3-leeswijzer"><bdi class="secno">2.3 </bdi>Leeswijzer</h3><a class="self-link" href="#leeswijzer" aria-label="Permalink for Section 2.3"></a></div>
<p>Het metamodel beschrijven we in 3 hoofdstukken en enkele bijlages.</p>
<p>Lees de <a href="#inleiding">Inleiding</a> verder voor inzicht in wat we onder een BSM en onder een metamodel verstaan, hoe deze modellen zich verhouden tot UML en de vier lagen metamodel architectuur van de Object Management Group [<cite><a class="bibref" data-link-type="biblio" href="#bib-omg" title="Object Management Group Unified Modeling Language TM">OMG</a></cite>], </p>
<p>Het hoofdstuk <a href="#metamodel-algemeen">Metamodel Algemeen</a> bevat de beschrijving van alle bouwstenen c.q. de modelelementen van het MBG metamodel, in de vorm van definities en specificaties. De betekenis en toelichting van de modelelementen van het metamodel vormt het materiaal waarmee een uitputtende modelspecificatie kan worden opgesteld. </p>
<p>Het hoofdstuk <a href="#metamodel-in-uml">Metamodel in UML</a> beschrijft hoe de implementatie van het MBG in [<cite><a class="bibref" data-link-type="biblio" href="#bib-uml" title="Unified Modeling Language (UML).">UML</a></cite>] er uit ziet. In dit hoofdstuk wordt beschreven hoe het MBG metamodel zich verhoudt tot het UML metamodel, welke uitbreidingen c.q. verbijzonderingen van het UML metamodel zijn aangebracht.</p>
<p>Het hoofdstuk <a href="#afspraken-regels">Afspraken & Regels</a> gaat in op een aantal afspraken en regels die van toepassing zijn op een BSM.
In de bijlage <a href="#diagrammen">Diagrammen</a> vind je een aantal diagrammen die betrekking hebben op het MBG metamodel. Bijlage <a href="#metamodel-uitwisselingsgegevensmodel-mug">Metamodel UitwisselingsGegevens (MUG)</a> beschrijft het MUG metamodel, een metamodel dat nagenoeg 1 op 1 te mappen is op het MIM en alleen qua naamgeving van de modelelementen en qua metagegevens afwijkt van het MIM metamodel. Om die reden hebben we dit niet in een apart document beschreven. Tenslotte vind je in de bijlagen <a href="#specifieke-mbg-metagegevens-voor-imvertor">Specifieke MBG metagegevens voor Imvertor</a> en <a href="#specifieke-mug-metagegevens-voor-imvertor">Specifieke MUG metagegevens voor Imvertor</a> nog de specifiek voor Imvertor gedefinieerde metagegevens.</p>
</section><section id="gebruikswijzer"><div class="header-wrapper"><h3 id="x2-4-gebruikswijzer"><bdi class="secno">2.4 </bdi>Gebruikswijzer</h3><a class="self-link" href="#gebruikswijzer" aria-label="Permalink for Section 2.4"></a></div>
<p>Met de bouwstenen oftewel de modelelementen die in dit metamodel beschreven zijn is het bericht-technische deel van een BSM te maken. Om zo'n BSM te maken volstaat het veelal om het hoofdstuk <a href="#metamodel-algemeen">Metamodel Algemeen</a> en bijlage <a href="#specifieke-mbg-metagegevens-voor-imvertor">Specifieke MBG metagegevens voor Imvertor</a> door te nemen. Voor het maken van een UGM kun je terugvallen op de bijlagen <a href="#metamodel-uitwisselingsgegevensmodel-mug">Metamodel UitwisselingsGegevens (MUG)</a> en <a href="#specifieke-mug-metagegevens-voor-imvertor">Specifieke MUG metagegevens voor Imvertor</a>.</p>
<p>De andere hoofdstukken kan je behandelen als naslagwerk, voor als er tijdens het modelleren vragen ontstaan. Neem vervolgens je favoriete modelleertool en ga aan de slag. Voor Enterprise Architect zijn er hulpmiddelen gemaakt waarmee de modelelementen aangemaakt kunnen worden door erop te klikken en bijvoorbeeld naar een diagram te slepen. Ook kan je daarmee valideren of je model correct het MBG volgt (wat automatisch gaat als je de hulpmiddelen gebruikt). Tot slot is het mogelijk om naar BSM’s te kijken van organisaties die al een op het MBG gebaseerd BSM hebben gepubliceerd.</p>
</section><section id="wat-is-een-bsm"><div class="header-wrapper"><h3 id="x2-5-wat-is-een-bsm"><bdi class="secno">2.5 </bdi>Wat is een BSM</h3><a class="self-link" href="#wat-is-een-bsm" aria-label="Permalink for Section 2.5"></a></div>
<p>Een BSM is een gegevensmodel waarin alle componenten van een bericht worden gemodelleerd, de bericht-technische objecten maar ook objecten die gaan over de inhoud van een domein. Het gaat dus om informatie over datgene wat uitgewisseld wordt maar ook om hoe het wordt uitgewisseld. De scope van een BSM is dus breder dan dat van het Metamodel voor Berichtgegevens (MBG).</p>
<p>In een BSM worden zoals gezegd ook objecten gemodelleerd die gaan over de inhoud van een domein. Van alle objecten wordt vastgelegd welke kenmerken/eigenschappen deze hebben, of deze kenmerken/eigenschappen in het beschouwde domein verplicht of optioneel zijn, hoe de objecten aan elkaar gerelateerd zijn, enzovoorts. Voor de vastlegging van deze objecten, kenmerken en eigenschappen wordt geen gebruik gemaakt van het MBG metamodel maar van het MUG metamodel. Wel is er in het MBG metamodel voorzien in een relatie met het MUG metamodel.
</p>
</section><section id="typering-van-modellen-en-scope-van-deze-standaard"><div class="header-wrapper"><h3 id="x2-6-typering-van-modellen-en-scope-van-deze-standaard"><bdi class="secno">2.6 </bdi>Typering van modellen en scope van deze standaard</h3><a class="self-link" href="#typering-van-modellen-en-scope-van-deze-standaard" aria-label="Permalink for Section 2.6"></a></div>
<p>Bij het modelleren van een domein zijn er een aantal beschouwingsniveaus, variërend van een zo getrouw mogelijke beschrijving van de betekenis en bedoeling van de woorden en termen die mensen gebruiken als ze het ergens over hebben tot een specificatie van de wijze van registratie en uitwisseling van data. In het [<cite><a class="bibref" data-link-type="biblio" href="#bib-mim" title="MIM - Metamodel Informatie Modellering">MIM</a></cite>] vind je een uitgebreide beschrijving van deze niveau’s.</p>
<p>Een BSM is een extensie op het logisch informatie- of gegevensmodel (niveau 3) en bevind zich ook op niveau 3. Het modelleert de bericht-technische componenten benodigd voor de uitwisseling van de met het logisch informatie- of gegevensmodel gedefinieerde informatie en koppelt deze daaraan. Waar de objecten, kenmerken en eigenschappen in een logisch informatie- of gegevensmodel techniek onafhankelijk zijn geldt dat voor de componenten in een BSM slechts deels. De componenten in een BSM kunnen nog op allerlei manieren geserialiseerd worden maar tegelijkertijd wordt er bij de modellering van de bericht-technische componenten al voorgesorteerd op de wijze waarop de specificatie zal worden gegenereerd, bijv. OAS. De bericht-technische componenten hebben dus elk een tegenhanger in de specificaties. Het component ‘Padtype’ bijvoorbeeld is specifiek in het leven geroepen voor het definiëren van een OAS specificatie. En hoewel niet uitgesloten mag worden dat dit component ook bij andersoortige specificaties een rol heeft of gaat krijgen, had het bij het modelleren van StUF berichten nooit een functie. Ook de enumeratie voor de naam van de ‘EntiteitRelatie’ hangt natuurlijk erg sterk samen met REST API’s.</p>
<p>Een BSM kan, zoals hierboven reeds geschetst, geserialiseerd worden in verschillende soorten technische datamodellen en schema's (zoals XML, JSON of specifieke invullingen hiervan). Deze serialisaties zijn wat we in MBG niveau 4 noemen. De focus van het MBG ligt niet op dit niveau 4 en valt dan ook buiten scope. Wel staat het MBG een model-gedreven werkwijze voor waarbij de modellen van niveau 4 gegenereerd kunnen worden vanuit niveau 3.
De aangegeven niveaus zijn vooral bedoeld om de scope van MBG duidelijk aan geven, te weten niveau 3.</p>
</section><section id="wat-is-het-metamodel-voor-berichtstructuurmodellering"><div class="header-wrapper"><h3 id="x2-7-wat-is-het-metamodel-voor-berichtstructuurmodellering"><bdi class="secno">2.7 </bdi>Wat is het metamodel voor Berichtstructuurmodellering</h3><a class="self-link" href="#wat-is-het-metamodel-voor-berichtstructuurmodellering" aria-label="Permalink for Section 2.7"></a></div>
<p>Een metamodel is een model van een model. Het definieert een verzameling van modelleerconstructies in de vorm van bouwstenen, oftewel modelelementen zoals een Berichttype, Entiteitrelatie en Padtype, met bijbehorende betekenis en met bijbehorende afspraken omtrent hoe deze toe te passen. Hiermee kan vervolgens een informatiemodel of in dit geval specifiek een BSM gemaakt worden. Het metamodel is daarmee de modelleertaal waarin een informatiemodel is uitgedrukt. Deze metataal beschrijft als het ware de grammatica en de syntax van de modelleertaal. </p>
<p>Vaak zie je dat het metamodel niet expliciet beschreven is en dat het metamodel een onderdeel van de domeinkennis is geworden. Bij domein overstijgende harmonisatie wordt het dan moeilijk om modellen met elkaar te vergelijken en op basis daarvan gegevens uit te wisselen.
Bij een BSM is dat aspect echter van minder belang. Belangrijker is dat er duidelijkheid is over de betekenis van de modelelementen en de toepassing daarvan zodat het definiëren van een BSM eenvoudiger wordt en deze ook eenvoudiger door andere organisaties kan worden toegepast. Het is ook een voorwaarde voor de doorontwikkeling van dit metamodel, bijv. voor andere berichtspecificatietalen.</p>
<p>Met de in een metamodel opgenomen set van modelleerconstructies worden informatiemodellen gemaakt. Door het schrijven van modelleertalen (zoals [<cite><a class="bibref" data-link-type="biblio" href="#bib-uml" title="Unified Modeling Language (UML).">UML</a></cite>]) in een metataal (zoals MOF) wordt gegarandeerd dat alle toepassingen van die talen op een standaard manier zijn opgebouwd en daardoor alom te begrijpen zijn. De metataal beschrijft als het ware de grammatica van de modelleertaal. Het metamodel in dit document is uitgewerkt voor modellering met UML.</p>
</section><section id="uitdrukken-in-uml"><div class="header-wrapper"><h3 id="x2-8-uitdrukken-in-uml"><bdi class="secno">2.8 </bdi>Uitdrukken in UML</h3><a class="self-link" href="#uitdrukken-in-uml" aria-label="Permalink for Section 2.8"></a></div>
<p>Zowel het metamodel als informatiemodellen zoals het BSM kunnen worden uitgedrukt in [<cite><a class="bibref" data-link-type="biblio" href="#bib-uml" title="Unified Modeling Language (UML).">UML</a></cite>]. Aangezien het belangrijk is dat de lezer begrijpt wat we onder een informatiemodel en een metamodel verstaan verwijzen we naar paragraaf 1.8 van het [<cite><a class="bibref" data-link-type="biblio" href="#bib-mim" title="MIM - Metamodel Informatie Modellering">MIM</a></cite>]. Daarin worden de modellen tevens in de juiste context geplaatst aan de hand van de vier lagen metamodel architectuur van de Object Management Group [<cite><a class="bibref" data-link-type="biblio" href="#bib-omg" title="Object Management Group Unified Modeling Language TM">OMG</a></cite>]. </p>
<p>Verwar de daarin besproken vier lagen metamodel architectuur overigens niet met de in paragraaf 1.6 geschetste typering van modellen. Die typering van 4 lagen wijkt fundamenteel af van de in het [<cite><a class="bibref" data-link-type="biblio" href="#bib-mim" title="MIM - Metamodel Informatie Modellering">MIM</a></cite>] beschreven typering van 4 lagen (M0 t/m M3). De in paragraaf 1.6 geschetste lagen zijn geen instantie van de daarboven gelegen laag waar dat in het OMG model wel het geval is.</p>
<p>Het onderliggende Metamodel BerichtstructuurGegevens (MBG) is een voorbeeld van een model op de M2 laag. Een BSM is een instantie van het MBG en bevindt zich dan ook op de M1 laag.</p>
</section><section id="beheer"><div class="header-wrapper"><h3 id="x2-9-beheer"><bdi class="secno">2.9 </bdi>Beheer</h3><a class="self-link" href="#beheer" aria-label="Permalink for Section 2.9"></a></div>
<p>Het beheer van dit metamodel vindt plaats door ….</p>
</section><section id="normreferenties"><div class="header-wrapper"><h3 id="x2-10-normreferenties"><bdi class="secno">2.10 </bdi>Normreferenties</h3><a class="self-link" href="#normreferenties" aria-label="Permalink for Section 2.10"></a></div>
<table class="simple">
<thead>
<tr>
<th><strong>#</strong></th>
<th><strong>Naam</strong></th>
<th><strong>Referentie</strong></th>
</tr>
</thead>
<tbody><tr>
<td>1.</td>
<td>Unified Modeling Language (UML)</td>
<td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-uml" title="Unified Modeling Language (UML).">UML</a></cite>]</td>
</tr>
<tr>
<td>2.</td>
<td>OMG Unified Modeling Language TM versie 2.5</td>
<td>[<cite><a class="bibref" data-link-type="biblio" href="#bib-omg" title="Object Management Group Unified Modeling Language TM">OMG</a></cite>]</td>
</tr>
</tbody></table>
<div class="note" role="note" id="issue-container-generatedID"><div role="heading" class="note-title marker" id="h-note" aria-level="4"><span>Noot</span><span class="issue-label">: Versienummer normreferenties</span></div><aside class="">
De versies van de genoemde referenties zijn bewust niet opgenomen, zodat het mogelijk is om gebruik te maken van nieuwere versies van deze referenties. Wanneer er nieuwe versies uitkomen van de genoemde normreferenties dan wordt er gecheckt of MBG hier nog mee in lijn is. Wanneer dit niet zo is, dan wordt er aan gewerkt om dit weer met elkaar in lijn te brengen, zodat MBG 'upward compatible' is en blijft.
</aside></div></section></section>
<section id="metamodel-algemeen"><div class="header-wrapper"><h2 id="x3-metamodel-algemeen"><bdi class="secno">3. </bdi>Metamodel Algemeen</h2><a class="self-link" href="#metamodel-algemeen" aria-label="Permalink for Section 3."></a></div>
<p>Dit hoofdstuk beschrijft het metamodel in diagramvorm en in tekst.</p>
<p>Het metamodel beschrijft de modelelementen die worden gebruikt bij het maken van een BSM. Voorbeelden van modelelementen zijn:
Berichttype, Entiteitrelatie en Padtype, maar denk ook datatypen of aan metagegevens. In de paragrafen hierna worden alle
modelelementen beschreven en toegelicht.</p>
<ul>
<li> De eerste paragraaf bevat diagrammen, die kort een overzicht geven van de modelelementen die op metamodel niveau worden
onderkend, alsmede hun onderlinge verhouding</li>
<li> De paragrafen erna bevatten de beschrijvingen in tekst van de modelelementen die op metamodel niveau worden onderkend.
Wanneer u liever de beschrijvingen eerst leest, kunt u ook met deze paragraaf starten. Dit begint bij 2.2.</li>
<li> Paragraaf 2.5 bevat de metagegevens die worden bijgehouden over de modelelementen in een informatiemodel. Het MBG metamodel
geeft aan welke metagegevens er zijn.</li>
</ul>
<p><strong>Uitgangspunten voor het metamodel</strong></p>
<ul>
<li> Elk modelelement heeft een naam en een eigen MBG metaclass, waaraan je het modelelement overal kan herkennen.</li>
<li> De modelelementen worden eerst uitgelegd zonder een specifieke specificatietaal te gebruiken. Dit is zodat we hierna kunnen
aangeven hoe je het modelelement uitdrukt per specifieke specificatietaal, te weten in UML of in W3C-specificatietechnieken.</li>
<li> Een toolonafhankelijke beschrijving van het metamodel. Verder is er, omdat VNG Realisatie, Kadaster en Geonovum en veel
andere organisaties Sparx EA gebruiken, aanvullend aangegeven hoe het metamodel in Enterprise Architect toegepast wordt. Hierdoor
borgen we deze relatie.
In een aparte bijlage zijn metagegevens beschreven die alleen op Imvertor van toepassing zijn.</li>
<li> Uniforme toepassing van het metamodel in BSM’s. Anders gezegd, uitbreiden mag, afwijken niet, maak voor hetzelfde doel geen
alternatieve constructies.</li>
</ul>
<p><em>Toelichting metaclass</em>
Alle modelelementen zijn een metaklasse in het metamodel. Hiermee wordt aangegeven dat het niet een klasse betreft in een
informatiemodel, zoals de klasse Getfractie, maar dat het om de classificatie gaat dat de Getfractie een Getberichttype is,
oftewel dat de klasse Getfractie van de metaklasse Getberichttype is. Vandaar de term metaclass.</p>
<p>De metaklassen worden ook gebruikt om aan te geven hoe deze zich verhouden tot de metaklassen van UML en W3C, in de volgende
hoofdstukken.</p>
<p>Bij het maken van een BSM modelleer je in feite gewoon met de modelelementen, en geef je aan dat een ‘Getfractie’ een
Getberichttype is en ‘/fracties’ een Padtype.</p>
<p>Hierna volgen eerst diagrammen met de modelelementen, als overzicht. In de paragrafen erna wordt de betekenis van elk van deze
modelelementen beschreven, met een definitie en een toelichting en een voorbeeld. Tot slot volgt een paragraaf met metadata die
bijgehouden wordt, of kan worden, bij een modelelement.</p>
<section id="structuur-metamodel"><div class="header-wrapper"><h3 id="x3-1-structuur-metamodel"><bdi class="secno">3.1 </bdi>Structuur metamodel</h3><a class="self-link" href="#structuur-metamodel" aria-label="Permalink for Section 3.1"></a></div>
<p>Deze paragraaf bevat een overzicht van het Metamodel voor BerichtGegevens, kortweg MBG, en geeft alle modelelementen weer. De
beschrijving van de modelelementen staat in de volgende paragraaf.</p>
<p>De modelelementen zijn verdeeld over een tweetal diagrammen, die elk een eigen view op een deel van het metamodel tonen. Elk
view toont een aantal van de modelelementen, inclusief hun onderlinge samenhang.</p>
<p>Alle views samen vormen het metamodel als geheel:
* <a href="#kern">KERN</a>, met de belangrijkste modelelementen in onderlinge samenhang;
* <a href="#groepering">GROEPERING</a> modelelementen. </p>
<p>Elk modelelement heeft een MBG metaclass met een naam. Hieraan is elk modelelement te herkennen in alle diagrammen en in de tekst
en in elke specificatietaal die een uitdrukking is van dit metamodel.</p>
<p>Bij de modelelementen zijn in deze diagrammen geen beschrijvende kenmerken opgenomen, de metagegevens zoals naam, definitie
enzovoorts. In de diagrammen in de bijlage zijn deze wel opgenomen.
</p>
<section id="kern"><div class="header-wrapper"><h4 id="x3-1-1-kern"><bdi class="secno">3.1.1 </bdi>Kern</h4><a class="self-link" href="#kern" aria-label="Permalink for Section 3.1.1"></a></div>
<p>View 1: De kern van een BSM. Deze bestaat uit de volgende modelelementen:</p>
<table class="simple">
<thead>
<tr>
<th><strong>MBG metaclass</strong></th>
</tr>
</thead>
<tbody><tr>
<td>Getberichttype</td>
</tr>
<tr>
<td>Postberichttype</td>
</tr>
<tr>
<td>Putberichttype</td>
</tr>
<tr>
<td>Patchberichttype</td>
</tr>
<tr>
<td>Deleteberichttype</td>
</tr>
<tr>
<td>Padtype</td>
</tr>
<tr>
<td>Entiteitrelatie</td>
</tr>
<tr>
<td>Padrelatie</td>
</tr>
<tr>
<td>Generalisatie</td>
</tr>
<tr>
<td>Interface</td>
</tr>
</tbody></table>
<p>De betekenis van deze modelelementen en de beschrijvingen ervan staat in <a href="#objecten">Objecten</a> en <a href="#relaties">Relaties</a>.</p>
<p>In diagramvorm:</p>
<figure id="MBGKernzonderdetails">
<img src="media/MBG Kern zonder details.jpg" alt="">
<figcaption><a class="self-link" href="#MBGKernzonderdetails">Figuur <bdi class="figno">1</bdi></a> <span class="fig-title">Diagram: Kern - Modelelementen zonder Metagegevens</span></figcaption>
</figure>
<p>De verbindingen tussen de modelelementen geven aan welke combinaties kunnen voorkomen op metamodelniveau, oftewel welke
modelelementen in een informatiemodel met elkaar gecombineerd kunnen worden. Bijvoorbeeld:</p>
<ul>
<li> Een Patchberichttype kan verbonden worden met een Padrelatie en deze Padrelatie kan weer verbonden worden met een Padtype.
Dit geeft aan dat een Padrelatie een modelelement is dat een Patchberichttype met een Padtype verbindt. Een Patchberichttype
kan dus niet rechtstreeks verbonden worden met een Padtype.</li>
<li> Een Deleteberichttype kan via een generalisatie verbonden worden met een Interface.</li>
</ul>
</section><section id="groepering"><div class="header-wrapper"><h4 id="x3-1-2-groepering"><bdi class="secno">3.1.2 </bdi>Groepering</h4><a class="self-link" href="#groepering" aria-label="Permalink for Section 3.1.2"></a></div>
<p>View 2: Groepering. Deze bestaat uit de volgende modelelementen:</p>
<table class="simple">
<thead>
<tr>
<th><strong>MBG metaclass</strong></th>
</tr>
</thead>
<tbody><tr>
<td>Koppelvlak</td>
</tr>
<tr>
<td>Domein</td>
</tr>
<tr>
<td>Bericht</td>
</tr>
</tbody></table>
<p>De betekenis van deze modelelementen en de beschrijvingen ervan staan in <a href="#packages">Packages</a>.</p>
<p>In diagramvorm:</p>
<figure id="MBGPackageszonderdetails1">
<img src="media/MBG Packages zonder details 1.jpg" alt="">
<figcaption><a class="self-link" href="#MBGPackageszonderdetails1">Figuur <bdi class="figno">2</bdi></a> <span class="fig-title">Diagram: Groepering</span></figcaption>
</figure>
</section></section><section id="objecten"><div class="header-wrapper"><h3 id="x3-2-objecten"><bdi class="secno">3.2 </bdi>Objecten</h3><a class="self-link" href="#objecten" aria-label="Permalink for Section 3.2"></a></div>
<p>Diagram: <a href="#kern">Kern</a></p>
<section id="berichttypes"><div class="header-wrapper"><h4 id="x3-2-1-berichttypes"><bdi class="secno">3.2.1 </bdi>Berichttypes</h4><a class="self-link" href="#berichttypes" aria-label="Permalink for Section 3.2.1"></a></div>
<p>Het MBG metamodel kent een aantal berichttypes. Al deze berichttypes zijn afgeleid van de superclass Berichttype en overerven
dus de metagegevens van die superclass. De class Berichttype is abstract en zal daarom zelf nooit in een BSM voorkomen. Alle
berichten moeten één en niet meer dan éen relatie van het type ‘Padrelatie’ en mogen één en niet meer dan éen relatie van het
type ‘Generalisatie’ hebben.</p>
<p>Elk hieronder toegelicht Berichttype is een abstractie van de werkelijkheid, nl. de berichtspecificatie. In die werkelijkheid
heeft de keuze voor een berichttype gevolgen voor de wijze waarop dit bericht in de specificatie moet worden gedefinieerd. Die
gevolgen hebben slechts ten dele invloed op de wijze waarop het bericht gemodelleerd moet worden in een BSM. Hieronder wordt
per bericht aangegeven wat die gevolgen zijn.</p>
<section id="getberichttype"><div class="header-wrapper"><h5 id="x3-2-1-1-getberichttype"><bdi class="secno">3.2.1.1 </bdi>Getberichttype</h5><a class="self-link" href="#getberichttype" aria-label="Permalink for Section 3.2.1.1"></a></div>
<aside class="definition">
<dfn data-lt="getberichttype|Getberichttype" id="dfn-getberichttype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Getberichttype</dfn>De typering van het berichttype waarmee resources kunnen worden opgehaald.
</aside>
<p><em>Toelichting:</em></p>
<p>Classes van dit type hebben verplicht 2 relaties van het type EntiteitRelatie hebben, één relatie met de naam 'request' en
één met de naam 'response'. Alleen bij de eerste is het toegestaan een leeg Entiteittype aan de EntiteitRelatie te koppelen.</p>
</section><section id="postberichttype"><div class="header-wrapper"><h5 id="x3-2-1-2-postberichttype"><bdi class="secno">3.2.1.2 </bdi>Postberichttype</h5><a class="self-link" href="#postberichttype" aria-label="Permalink for Section 3.2.1.2"></a></div>
<aside class="definition">
<dfn data-lt="postberichttype|Postberichttype" id="dfn-postberichttype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Postberichttype</dfn>De typering van het berichttype waarmee resources kunnen worden aangemaakt.
</aside>
<p><em>Toelichting:</em> </p>
<p>Classes van dit type hebben verplicht 2 relaties van het type EntiteitRelatie, één relatie met de naam ‘requestbody’ en één met
de naam 'response'. Een Entiteittype dat m.b.v. de eerste verbonden wordt met het Postberichttype bevat altijd minimaal 1 property.
Een Entiteittype dat m.b.v. de tweede verbonden wordt met het Postberichttype mag leeg blijven.</p>
</section><section id="putberichttype"><div class="header-wrapper"><h5 id="x3-2-1-3-putberichttype"><bdi class="secno">3.2.1.3 </bdi>Putberichttype</h5><a class="self-link" href="#putberichttype" aria-label="Permalink for Section 3.2.1.3"></a></div>
<aside class="definition">
<dfn data-lt="putberichttype|Putberichttype" id="dfn-putberichttype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Putberichttype</dfn>De typering van het berichttype waarmee bestaande resources kunnen worden vervangen of
nieuwe kunnen worden aangemaakt.
</aside>
<p><em>Toelichting:</em> </p>
<p>Classes van dit type hebben verplicht 2 relaties van het type EntiteitRelatie, één met de naam ‘requestbody’ en één met de naam
'response'. Een Entiteittype dat m.b.v. de eerste verbonden wordt met het Postberichttype bevat altijd minimaal 1 property. Een
Entiteittype dat m.b.v. de tweede verbonden wordt met het Postberichttype mag leeg blijven.</p>
</section><section id="patchberichttype"><div class="header-wrapper"><h5 id="x3-2-1-4-patchberichttype"><bdi class="secno">3.2.1.4 </bdi>Patchberichttype</h5><a class="self-link" href="#patchberichttype" aria-label="Permalink for Section 3.2.1.4"></a></div>
<aside class="definition">
<dfn data-lt="patchberichttype|Patchberichttype" id="dfn-patchberichttype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Patchberichttype</dfn>De typering van het berichttype waarmee properties van resources kunnen worden aangepast.
</aside>
<p><em>Toelichting:</em></p>
<p>Classes van dit type hebben verplicht 2 relaties van het type EntiteitRelatie, één met de naam ‘requestbody’ en één met de naam
'response'. Een Entiteittype dat m.b.v. de eerste verbonden wordt met het Postberichttype bevat altijd minimaal 1 property. Een
Entiteittype dat m.b.v. de tweede verbonden wordt met het Postberichttype mag leeg blijven.</p>
</section><section id="deleteberichttype"><div class="header-wrapper"><h5 id="x3-2-1-5-deleteberichttype"><bdi class="secno">3.2.1.5 </bdi>Deleteberichttype</h5><a class="self-link" href="#deleteberichttype" aria-label="Permalink for Section 3.2.1.5"></a></div>
<aside class="definition">
<dfn data-lt="deleteberichttype|Deleteberichttype" id="dfn-deleteberichttype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Deleteberichttype</dfn>De typering van het berichttype waarmee resources kunnen worden verwijderd.
</aside>
<p><em>Toelichting:</em></p>
<p>Classes van dit type hebben verplicht 2 relaties van het type EntiteitRelatie, één relatie met de naam 'request' en één met de naam
'response'. Alleen bij de tweede is het toegestaan een leeg Entiteittype aan de EntiteitRelatie te koppelen.</p>
</section></section><section id="padtype"><div class="header-wrapper"><h4 id="x3-2-2-padtype"><bdi class="secno">3.2.2 </bdi>Padtype</h4><a class="self-link" href="#padtype" aria-label="Permalink for Section 3.2.2"></a></div>
<aside class="definition">
<dfn data-lt="padtype|Padtype" id="dfn-padtype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Padtype</dfn>Het Padtype definieert een relatief path naar een individueel endpoint.
</aside>
<p><em>Toelichting:</em></p>
<p>Tezamen met een Server Object url (het deel van de url dat definieert waar de API wordt gehost) vormt het path een uniek adres. De
naam van een Padtype start altijd met een slash (/) en mag templates bevatten. Dit zijn strings voorafgegaan door een slash (/),
startend met een open accolade ({) en eindigend met een sluit accolade (}). Binnen een model mogen niet meerdere Padtypes voorkomen
met dezelfde naam. Meerdere berichten mogen gebruik maken van hetzelfde Padtype zolang deze maar niet van hetzelfde Berichttype zijn.</p>
<p>Classes van dit type hebben 1 verplichte relatie van het type 'Padrelatie'.</p>
</section><section id="interface"><div class="header-wrapper"><h4 id="x3-2-3-interface"><bdi class="secno">3.2.3 </bdi>Interface</h4><a class="self-link" href="#interface" aria-label="Permalink for Section 3.2.3"></a></div>
<aside class="definition">
<dfn data-lt="interface|Interface" id="dfn-interface" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Interface</dfn>Een Interface definieert een berichttype op een hoger abstractie niveau.
</aside>
<p><em>Toelichting:</em></p>
<p>Een interface definieert eigenschappen (metagegevens, attribuutsoorten en/of relaties) die een groep van berichttypes gemeen hebben.
Een interface kan d.m.v. een generalisatie relatie gekoppeld worden aan een specifiek berichttype waarmee deze de eigenschappen van die
interface overerft.</p>
</section></section><section id="relaties"><div class="header-wrapper"><h3 id="x3-3-relaties"><bdi class="secno">3.3 </bdi>Relaties</h3><a class="self-link" href="#relaties" aria-label="Permalink for Section 3.3"></a></div>
<p>Verbanden met betekenis, die gelegd zijn tussen modelelementen van het type Berichttype naar het type Entiteittype of van het type
Berichttype naar het type Padtype.</p>
<p>Diagram: <a href="#kern">Kern</a></p>
<section id="generalisatie"><div class="header-wrapper"><h4 id="x3-3-1-generalisatie"><bdi class="secno">3.3.1 </bdi>Generalisatie</h4><a class="self-link" href="#generalisatie" aria-label="Permalink for Section 3.3.1"></a></div>
<aside class="definition">
<dfn data-lt="generalisatie|Generalisatie tussen Berichttype en Interface" id="dfn-generalisatie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Generalisatie tussen Berichttype en Interface</dfn>De typering van het hiërarchische verband tussen een meer
generiek en een meer specifiek modelelement van hetzelfde soort, waarbij het meer specifieke modelelement eigenschappen van het meer
generieke modelelement overerft. Dit verband is alleen gedefinieerd voor generalisaties tussen Berichttypes en Interfaces.
</aside>
<p><em>Toelichting:</em></p>
<p>De generalisatie relatie geeft aan dat bepaalde eigenschappen van een interface (metagegevens) ook gelden voor de gerelateerde berichttypen.
</p>
</section><section id="entiteitrelatie"><div class="header-wrapper"><h4 id="x3-3-2-entiteitrelatie"><bdi class="secno">3.3.2 </bdi>EntiteitRelatie</h4><a class="self-link" href="#entiteitrelatie" aria-label="Permalink for Section 3.3.2"></a></div>
<aside class="definition">
<dfn data-lt="entiteitrelatie|EntiteitRelatie" id="dfn-entiteitrelatie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">EntiteitRelatie</dfn>Modelelement waarmee verschillende relaties tussen de berichtdefinitie en de resource waar
het bericht betrekking op heeft kunnen worden gemodelleerd.
</aside>
<p><em>Toelichting:</em></p>
<p>Berichttypes danken hun bestaan aan een specifieke resource, de resource waarop de methode, die de berichttype vertegenwoordigd, moet worden
uitgevoerd. Het modelleren van de relatie tussen het Berichttype en het Entiteittype dat de resource vertegenwoordigd gebeurd met de metaklasse
EntiteitRelatie. Een Berichttype kan, afhankelijk van het type, 1 of 2 EntiteitRelaties hebben. Een EntiteitRelatie kan maar met 1 Berichttype
en 1 Entiteittype verbonden zijn maar een Entiteittype kan wel meerdere EntiteitRelaties hebben. De naam van deze relatie kan alleen ‘request’,
‘requestbody’ of ‘response’ zijn.</p>
</section><section id="padrelatie"><div class="header-wrapper"><h4 id="x3-3-3-padrelatie"><bdi class="secno">3.3.3 </bdi>PadRelatie</h4><a class="self-link" href="#padrelatie" aria-label="Permalink for Section 3.3.3"></a></div>
<aside class="definition">
<dfn data-lt="padrelatie|PadRelatie" id="dfn-padrelatie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">PadRelatie</dfn>Modelelement waarmee de relatie tussen de berichtdefinitie en het Padtype dat het bericht identificeert
kan worden gemodelleerd.
</aside>
<p><em>Toelichting:</em></p>
<p>Elk Berichttype moet aan een relatief path worden gekoppeld. Het modelleren van de relatie tussen een Berichttype en het PadType gebeurd m.b.v. de
metaklasse PadRelatie. Elk berichttype kan maar aan 1 PadType worden gekoppeld maar meerdere Berichttypes kunnen wel hetzelfde PadType hebben. Deze
relatie heeft altijd de naam ‘pad’.</p>
</section></section><section id="packages"><div class="header-wrapper"><h3 id="x3-4-packages"><bdi class="secno">3.4 </bdi>Packages</h3><a class="self-link" href="#packages" aria-label="Permalink for Section 3.4"></a></div>
<aside class="definition">
<dfn data-lt="package|Package" id="dfn-package" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Package</dfn>Een package is een benoemde en begrensde verzameling/groepering van modelelementen.
</aside>
<p>Diagram: <a href="#groepering">Groepering</a></p>
<p>Het MBG metamodel kent een aantal packages. Al deze packages zijn afgeleid van de superclass Package. De class Package is abstract en zal daarom zelf
nooit in een BSM voorkomen.</p>
<p>De verschillende modelelementen van het type package zijn:</p>
<ul>
<li> Koppelvlak</li>
<li> Domein</li>
<li> Bericht</li>
</ul>
<p>In een Koppelvlak package komen Bericht packes voor en kunnen Domein packages opgenomen worden.</p>
<p>In een Bericht package mogen de volgende MBG-elementen worden opgenomen:</p>
<ul>
<li> Getberichttype</li>
<li> Postberichttype</li>
<li> Putberichttype</li>
<li> Patchberichttype</li>
<li> Deleteberichttype</li>
<li> Padtype</li>
</ul>
<p>en alle modelelementen van het Metamodel Uitwisselings Gegevens (MUG).</p>
<p>In een Domein package mogen alleen modelelementen van het Metamodel Uitwisselings Gegevens (MUG) worden opgenomen.</p>
<p>In beide gevallen is de volgorde daarbij niet van belang.</p>
<p>De drie package-typen worden hieronder uitgelegd.</p>
<section id="koppelvlak"><div class="header-wrapper"><h4 id="x3-4-1-koppelvlak"><bdi class="secno">3.4.1 </bdi>Koppelvlak</h4><a class="self-link" href="#koppelvlak" aria-label="Permalink for Section 3.4.1"></a></div>
<aside class="definition">
<dfn data-lt="koppelvlak|Koppelvlak" id="dfn-koppelvlak" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Koppelvlak</dfn>De groepering van alle modelelementen waaruit het Koppelvlak is opgebouwd. Het Koppelvlak als geheel.
</aside>
<p><em>Toelichting:</em>
Het Koppelvlak is een package, te weten het hoofdpackage van het koppelvlak, waaronder alle subpackages die een koppelvlak beschrijven, zoals
Domein en Bericht, vallen. Het koppelvlak wordt verder beschreven met metadata, zoals de serialisatie waarin het koppelvlak moet worden uitgedrukt
(‘json’ of ‘hal+json’) en de naam van het koppelvlak.
</p>
</section><section id="domein"><div class="header-wrapper"><h4 id="x3-4-2-domein"><bdi class="secno">3.4.2 </bdi>Domein</h4><a class="self-link" href="#domein" aria-label="Permalink for Section 3.4.2"></a></div>
<p>Een koppelvlak kan optioneel een aantal Domein packages hebben als subpackage, waarbij aangegeven wordt dat deze de modellering van de gegevens
van het domein bevatten.</p>
<aside class="definition">
<dfn data-lt="domein|Domein" id="dfn-domein" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Domein</dfn>Een groepering van constructies die een semantisch samenhangend gedeelte van een koppelvlak beschrijven welke met de in het koppelvlak beschreven
berichten kunnen worden uitgewisseld.
</aside>
<p><em>Toelichting:</em>
Een Domein package bevat die modelelementen die met het koppelvlak uitgewisseld worden, zoals het Entiteittype ‘Persoon’ en het Entiteittype ‘Adres’
en impliciet ook relaties als ‘gehuwdMet’. In ieder geval alleen modelelementen uit het Metamodel Uitwisselings Gegevens (MUG). Deze modelelementen
kunnen 1 op 1 overgenomen zijn van een Uitwisselingsgegevensmodel (UGM) maar kunnen ook bewerkingen daarvan zijn.</p>
</section><section id="bericht"><div class="header-wrapper"><h4 id="x3-4-3-bericht"><bdi class="secno">3.4.3 </bdi>Bericht</h4><a class="self-link" href="#bericht" aria-label="Permalink for Section 3.4.3"></a></div>
<p>Een koppelvlak bevat een of meer Bericht packages als subpackage.</p>
<aside class="definition">
<dfn data-lt="bericht|Bericht" id="dfn-bericht" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Bericht</dfn>Een groepering van constructies die de modelelementen van een of meerdere gerelateerde berichten clustert.
</aside>
<p><em>Toelichting:</em>
Berichten worden doorgaans geclusterd op basis van een in een UGM gemodelleerd Entiteittype. Alle berichten die dezelfde Entiteittype als top level delen
kunnen bij elkaar in één Bericht package worden geplaatst. Met ‘dezelfde Entiteittype’ bedoelen we hier niet ‘dezelfde instantie van een entiteittype klasse’.
In een bericht mogen dus meerdere entiteittype klassen van dezelfde Entiteittype worden opgenomen zolang de naam maar uniek blijft binnen het koppelvlak.</p>
<p>Een Bericht package bevat i.i.g. de voor de berichten benodigde modelelementen van een set van gerelateerde berichten maar kan ook alle modelelementen bevatten
die in een ‘Domein’ package mogen worden opgenomen.</p>
</section></section><section id="specificatie-metagegevens"><div class="header-wrapper"><h3 id="x3-5-specificatie-metagegevens"><bdi class="secno">3.5 </bdi>Specificatie metagegevens</h3><a class="self-link" href="#specificatie-metagegevens" aria-label="Permalink for Section 3.5"></a></div>
<p>Bij de modelelementen in een koppelvlak kunnen metagegevens, zoals 'naam' of 'berichtcode' van een modelelement, worden bijgehouden. Dit zijn geen eigenschappen
van een object en worden daarom niet als bijvoorbeeld een EntiteitRelatie van een Berichttype gemodelleerd.</p>
<p>In de volgende paragrafen worden de metagegevens in tekst beschreven. Bij elk metagegeven is de definitie opgenomen, een toelichting en de toepassing ervan bij
modelelementen en soms een voorbeeld.</p>
<section id="specificatie-metagegevens-packages"><div class="header-wrapper"><h4 id="x3-5-1-specificatie-metagegevens-packages"><bdi class="secno">3.5.1 </bdi>Specificatie metagegevens Packages</h4><a class="self-link" href="#specificatie-metagegevens-packages" aria-label="Permalink for Section 3.5.1"></a></div>
<p>We onderkennen een aantal specifieke metagegevens op het niveau van de packages. Deze staan beschreven in deze paragaaf.</p>
<section id="metagegeven-naam"><div class="header-wrapper"><h5 id="x3-5-1-1-metagegeven-naam"><bdi class="secno">3.5.1.1 </bdi>Metagegeven: Naam</h5><a class="self-link" href="#metagegeven-naam" aria-label="Permalink for Section 3.5.1.1"></a></div>
<aside class="definition">
<dfn data-lt="naam-packages|Naam (Packages)" id="dfn-naam-packages" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Naam (Packages)</dfn>Korte identificatie van een koppelvlak of beschrijving van een package als definitie van diens functie of inhoud.
</aside>
<p><em>Toelichting:</em>
Korte identificerende naam van een Koppelvlak package of definitie van een Domein of Bericht package zodat duidelijk is waartoe het dient en/of wat
voor inhoud het heeft of kan worden opgenomen.</p>
<p><em>Bijvoorbeeld:</em> Enumeraties.</p>
<p><em>Toepassing:</em> Alle packages (verplicht)</p>
</section><section id="metagegeven-beheerder-email"><div class="header-wrapper"><h5 id="x3-5-1-2-metagegeven-beheerder-email"><bdi class="secno">3.5.1.2 </bdi>Metagegeven: beheerder-email</h5><a class="self-link" href="#metagegeven-beheerder-email" aria-label="Permalink for Section 3.5.1.2"></a></div>
<aside class="definition">
<dfn data-lt="beheerder-email" id="dfn-beheerder-email" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">beheerder-email</dfn>Het e-Mail adres van de persoon of organisatie die het koppelvlak beheert.
</aside>
<p><em>Toelichting:</em></p>
<p>Het e-Mailadres dat in de berichtenspecificatie en/of de documentatie daarvan kan worden opgenomen zodat voor de gebruikers van de specificatie duidelijk
is hoe ze middels e-Mail contact op kunnen nemen met de beherende persoon of organisatie.</p>
<p><em>Toepassing:</em> Koppelvlak (optioneel)
</p>
</section><section id="metagegeven-koppelvlak-naam"><div class="header-wrapper"><h5 id="x3-5-1-3-metagegeven-koppelvlak-naam"><bdi class="secno">3.5.1.3 </bdi>Metagegeven: Koppelvlak-naam</h5><a class="self-link" href="#metagegeven-koppelvlak-naam" aria-label="Permalink for Section 3.5.1.3"></a></div>
<aside class="definition">
<dfn data-lt="koppelvlak-naam|Koppelvlak-naam" id="dfn-koppelvlak-naam" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Koppelvlak-naam</dfn>Volledige naam van een koppelvlak.
</aside>
<p><em>Toelichting:</em>
Bedoelt om kernachtig de functie/domein van het koppelvlak dat gemodelleerd wordt aan te geven.</p>
<p><em>Bijvoorbeeld:</em> ‘Open Raads- en StatenInformatie’ of ‘Regels bij activiteiten’.</p>
<p><em>Toepassing:</em> Koppelvlak (verplicht)</p>
</section><section id="metagegeven-project_url"><div class="header-wrapper"><h5 id="x3-5-1-4-metagegeven-project_url"><bdi class="secno">3.5.1.4 </bdi>Metagegeven: project_url</h5><a class="self-link" href="#metagegeven-project_url" aria-label="Permalink for Section 3.5.1.4"></a></div>
<aside class="definition">
<dfn data-lt="project-url|project_url" id="dfn-project-url" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">project_url</dfn>Url van de bij het koppelvlak horende project repository.
</aside>
<p><em>Toelichting:</em>
De url van de repository waarin de al dan niet met het koppelvlakmodel te genereren of gegenereerde specificatie en documentatie wordt opgeslagen.
Dit kan bijv. een GitHub repository zijn maar ook een GitLab of andersoortige repository.</p>
<p><em>Bijvoorbeeld:</em> <a href="https://github.com/VNG-Realisatie/ODS-Open-Raadsinformatie">https://github.com/VNG-Realisatie/ODS-Open-Raadsinformatie</a> </p>
<p><em>Toepassing:</em> Koppelvlak (optioneel)</p>
</section><section id="metagegeven-release"><div class="header-wrapper"><h5 id="x3-5-1-5-metagegeven-release"><bdi class="secno">3.5.1.5 </bdi>Metagegeven: release</h5><a class="self-link" href="#metagegeven-release" aria-label="Permalink for Section 3.5.1.5"></a></div>
<aside class="definition">
<dfn data-lt="release" id="dfn-release" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">release</dfn>Datum waarop begonnen is met het realiseren van de betreffende versie van het koppelvlak.
</aside>
<p><em>Toelichting:</em>
De datum wordt uitgedrukt in het volgende formaat ‘jjjjmmdd’.</p>
<p><em>Bijvoorbeeld:</em> 20230404</p>
<p><em>Toepassing:</em> Koppelvlak (verplicht)
</p>
</section><section id="metagegeven-version"><div class="header-wrapper"><h5 id="x3-5-1-6-metagegeven-version"><bdi class="secno">3.5.1.6 </bdi>Metagegeven: Version</h5><a class="self-link" href="#metagegeven-version" aria-label="Permalink for Section 3.5.1.6"></a></div>
<aside class="definition">
<dfn data-lt="version|Version" id="dfn-version" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Version</dfn>Het versienummer waaronder het koppelvlak zal worden gepubliceerd.
</aside>
<p><em>Toelichting:</em>
Het versienummer wordt uitgedrukt in het volgende formaat ‘x.x.x’.</p>
<p><em>Bijvoorbeeld:</em> 1.2.0</p>
<p><em>Toepassing:</em> Koppelvlak (verplicht)
</p>
</section><section id="metagegeven-serialisatie"><div class="header-wrapper"><h5 id="x3-5-1-7-metagegeven-serialisatie"><bdi class="secno">3.5.1.7 </bdi>Metagegeven: Serialisatie</h5><a class="self-link" href="#metagegeven-serialisatie" aria-label="Permalink for Section 3.5.1.7"></a></div>
<aside class="definition">
<dfn data-lt="serialisatie|Serialisatie" id="dfn-serialisatie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Serialisatie</dfn>Definieert de vorm waarnaar het koppelvlak geserialiseerd moet worden.
</aside>
<p><em>Toelichting:</em>
BSM’s op basis van het MBG worden opgesteld teneinde omgezet te worden naar een technische specificatie. De vorm waarin de technische specificatie wordt
uitgedrukt is de serialisatie. Voor REST OAS API’s gaat het om de serialisatietypes, ‘json’ en ‘hal+json’. In principe zijn ook andere serialisaties
mogelijk zoals ‘xml’. Dit metagegeven definieert de gewenste serialisatievorm.</p>
<p><em>Toepassing:</em> Koppelvlak (optioneel)</p>
</section></section><section id="specificatie-metagegevens-modelelementen"><div class="header-wrapper"><h4 id="x3-5-2-specificatie-metagegevens-modelelementen"><bdi class="secno">3.5.2 </bdi>Specificatie metagegevens modelelementen</h4><a class="self-link" href="#specificatie-metagegevens-modelelementen" aria-label="Permalink for Section 3.5.2"></a></div>
<p>De specifieke metagegevens op het niveau van de modelelementen waarmee een BSM wordt samengesteld staan beschreven in deze paragaaf.</p>
<p>Zo is er de naam van het modelelement, bijvoorbeeld het Getberichttype met als naam ‘Getagendapunt’ en een bijbehorende berichtcode, bijvoorbeeld Gr01.</p>
<p>Welke metagegevens verplicht zijn per modelelement en welke niet staat beschreven in het diagram in Metagegevens per modelelement. Dit diagram is een onderdeel
van deze specificatie.</p>
<p>Elk modelelement kent een eigen set van metagegevens, die bepaalde aspecten van het modelelement specificeren. Metagegevens kunnen dus verplicht of optioneel
zijn. Zo is een berichtcode altijd verplicht voor de berichttype modelelementen.</p>
<section id="metagegeven-naam-0"><div class="header-wrapper"><h5 id="x3-5-2-1-metagegeven-naam"><bdi class="secno">3.5.2.1 </bdi>Metagegeven: Naam</h5><a class="self-link" href="#metagegeven-naam-0" aria-label="Permalink for Section 3.5.2.1"></a></div>
<aside class="definition">
<dfn data-lt="naam-modelelementen|Naam (Modelelementen)" id="dfn-naam-modelelementen" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Naam (Modelelementen)</dfn>De naam van een modelelement.
</aside>
<p><em>Toelichting:</em>
Een korte beschrijving die het modelelement benoemt. In de berichttype modelelementen en ‘Interface’ heeft dit metagegeven alleen een functie bij het kunnen
interpreteren van het model. De in de modelelementen ‘EntiteitRelatie’ en ‘Padtype’ gedefinieerde waardes voor dit metagegeven ‘Naam’ komen terug in de
berichtspecificatie’.
Bij de modelelementen ‘EntiteitRelatie’ en ‘PadRelatie’ wordt de naam gekozen uit een beperkte set van waarden. In het geval van de laatste heeft het zelfs
altijd slechts 1 mogelijke waarde, te weten ‘pad’.</p>
<p>Binnen een BSM mogen niet meerdere Berichttype, Padtype, Domein en Bericht modelelementen met dezelfde naam voorkomen.</p>
<p><em>Bijvoorbeeld:</em> ‘/stemmingen/{stemmingsidentificatie}’ is de naam van het modelelement ‘Padtype’ en ‘Getactiviteit’ is de naam van het modelelement ‘Getberichttype’.</p>
<p><em>Toepassing:</em> alle modelelementen behalve Generalisatie (verplicht).</p>
</section><section id="metagegeven-berichtcode"><div class="header-wrapper"><h5 id="x3-5-2-2-metagegeven-berichtcode"><bdi class="secno">3.5.2.2 </bdi>Metagegeven: berichtcode</h5><a class="self-link" href="#metagegeven-berichtcode" aria-label="Permalink for Section 3.5.2.2"></a></div>
<aside class="definition">
<dfn data-lt="berichtcode" id="dfn-berichtcode" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">berichtcode</dfn>Code ter typering van een bericht.
</aside>
<p><em>Toelichting:</em>
De code bestaat uit een limitatieve lijst van waarden en typeert een bericht. Aan de hand van deze code worden door Imvertor aan properties/kenmerken toegekend aan een
bericht in een berichtspecificatie standaard.</p>
<p><em>Toepassing:</em> Alle van Berichttype afgeleide modelelementen (verplicht).</p>
</section><section id="metagegeven-tag"><div class="header-wrapper"><h5 id="x3-5-2-3-metagegeven-tag"><bdi class="secno">3.5.2.3 </bdi>Metagegeven: tag</h5><a class="self-link" href="#metagegeven-tag" aria-label="Permalink for Section 3.5.2.3"></a></div>
<aside class="definition">
<dfn data-lt="tag" id="dfn-tag" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">tag</dfn>Naam waarmee een aantal berichten kan worden gegroepeerd.
</aside>
<p><em>Toelichting:</em>
Dit metagegeven heeft een ordenende functie. De wijze van ordenen is niet voorgeschreven maar over het algemeen krijgen berichten die een (deel van een pad) met elkaar gemeen
hebben dezelfde waarde voor dit metagegeven.</p>
<p><em>Toepassing:</em> Alle van Berichttype afgeleide modelelementen (optioneel).</p>
</section><section id="metagegeven-servicename"><div class="header-wrapper"><h5 id="x3-5-2-4-metagegeven-servicename"><bdi class="secno">3.5.2.4 </bdi>Metagegeven: servicename</h5><a class="self-link" href="#metagegeven-servicename" aria-label="Permalink for Section 3.5.2.4"></a></div>
<aside class="definition">
<dfn data-lt="servicename" id="dfn-servicename" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">servicename</dfn>OperationId van een OAS3 service.
</aside>
<p><em>Toelichting:</em>
Unieke identificatie van een operation in een OAS berichtspecificatie. Een operation is een combinatie van een path en een HTTP method. Binnen een OAS berichtspecificatie is
het niet toegestaan om een path en een HTTP method meerdere keren met elkaar te combineren.</p>
<p><em>Bijvoorbeeld:</em> ‘getUserById’.</p>
<p><em>Toepassing:</em> Alle van Berichttype afgeleide modelelementen (verplicht).</p>
</section><section id="metagegeven-custom_path_facet"><div class="header-wrapper"><h5 id="x3-5-2-5-metagegeven-custom_path_facet"><bdi class="secno">3.5.2.5 </bdi>Metagegeven: custom_path_facet</h5><a class="self-link" href="#metagegeven-custom_path_facet" aria-label="Permalink for Section 3.5.2.5"></a></div>
<aside class="definition">
<dfn data-lt="custom-path-facet|custom_path_facet" id="dfn-custom-path-facet" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">custom_path_facet</dfn>Niet af te leiden deel van het path.
</aside>
<p><em>Toelichting:</em>
Het deel van het path dat niet uit het berichtenmodel kan worden afgeleid.
Om het path toch te kunnen verifiëren tegen het model wordt daar eerst de custom_path_facet uit verwijderd. Deze tv mag ‘/’ (slashes) bevatten maar niet aan het begin en eind.</p>
<p><em>Bijvoorbeeld:</em> ‘actuelestatus’ en ‘nawgegevens’ in ‘/zaken/{id}/actuelestatus’ resp. ‘/ingeschrevennatuurlijkpersonen/{burgerservicenummer}/nawgegevens’.</p>
<p><em>Toepassing:</em> Padtype (optioneel).</p>
</section><section id="metagegeven-positie"><div class="header-wrapper"><h5 id="x3-5-2-6-metagegeven-positie"><bdi class="secno">3.5.2.6 </bdi>Metagegeven: Positie</h5><a class="self-link" href="#metagegeven-positie" aria-label="Permalink for Section 3.5.2.6"></a></div>
<aside class="definition">
<dfn data-lt="positie|Positie" id="dfn-positie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">Positie</dfn>Positie die een construct inneemt t.o.v. constructs op hetzelfde niveau.
</aside>
<p><em>Toelichting:</em>
De positie van de construct binnen producten waarin deze opeenvolging een rol speelt. Dit metagegeven had in het verleden een functie maar is inmiddels obsolete.</p>
<p><em>Toepassing:</em> Entiteitrelatie (optioneel).
</p>
</section></section><section id="specificatie-metagegevens-modelelement-bindingen"><div class="header-wrapper"><h4 id="x3-5-3-specificatie-metagegevens-modelelement-bindingen"><bdi class="secno">3.5.3 </bdi>Specificatie metagegevens modelelement bindingen</h4><a class="self-link" href="#specificatie-metagegevens-modelelement-bindingen" aria-label="Permalink for Section 3.5.3"></a></div>
<p>Bindingen geven aan hoe modelelementen met elkaar verbonden kunnen en mogen worden.</p>
<p>Voorbeeld: de binding tussen een Berichttype en een Padtype, om aan te geven dat een Berichttype aan een pad moet worden gekoppeld. Een voorbeeld van wat niet
mag is de verbinding van een Padtype aan een EntiteitRelatie.</p>
<p>Deze metagegevens zijn alleen nodig voor de binding van modelelementen aan elkaar en zijn vrijwel altijd een onderdeel van een modelleertaal (waarmee een BSM
gemaakt kan worden).</p>
<p>De bindingen zijn ook in diagram vorm te lezen aan het begin van dit hoofdstuk, in Diagrammen van modelelementen.</p>
<section id="metagegeven-heeft-padrelatie"><div class="header-wrapper"><h5 id="x3-5-3-1-metagegeven-heeft-padrelatie"><bdi class="secno">3.5.3.1 </bdi>Metagegeven: heeft padrelatie</h5><a class="self-link" href="#metagegeven-heeft-padrelatie" aria-label="Permalink for Section 3.5.3.1"></a></div>
<p>Verkorte schrijfwijze: PadRelatie</p>
<aside class="definition">
<dfn data-lt="heeft-padrelatie|heeft padrelatie" id="dfn-heeft-padrelatie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">heeft padrelatie</dfn>De binding van een Berichttype aan een Padtype middels een Padrelatie.
</aside>
<p><em>Toelichting:</em>
Een Berichttype heeft een relatie naar een Padtype.</p>
<p><em>Toepassing:</em> Alle Berichttype modelelementen en Padtype.</p>
</section><section id="metagegeven-heeft-entiteitrelatie"><div class="header-wrapper"><h5 id="x3-5-3-2-metagegeven-heeft-entiteitrelatie"><bdi class="secno">3.5.3.2 </bdi>Metagegeven: heeft entiteitrelatie</h5><a class="self-link" href="#metagegeven-heeft-entiteitrelatie" aria-label="Permalink for Section 3.5.3.2"></a></div>
<p>Verkorte schrijfwijze: EntiteitRelatie</p>
<aside class="definition">
<dfn data-lt="heeft-entiteitrelatie|heeft entiteitrelatie" id="dfn-heeft-entiteitrelatie" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">heeft entiteitrelatie</dfn>De binding van een Berichttype aan een Entiteittype uit het MUG middels een EntiteitRelatie.
</aside>
<p><em>Toelichting:</em>
Een Berichttype heeft een relatie naar een Entiteittype, de top level entiteit.</p>
<p><em>Toepassing:</em> Alle Entiteittype modelelementen uit het MUG en alle Berichttype modelelementen.
</p>
</section><section id="metagegeven-verwijst-naar-supertype"><div class="header-wrapper"><h5 id="x3-5-3-3-metagegeven-verwijst-naar-supertype"><bdi class="secno">3.5.3.3 </bdi>Metagegeven: verwijst naar supertype</h5><a class="self-link" href="#metagegeven-verwijst-naar-supertype" aria-label="Permalink for Section 3.5.3.3"></a></div>
<p>Verkorte schrijfwijze: supertype</p>
<aside class="definition">
<dfn data-lt="verwijst-naar-supertype|verwijst naar supertype" id="dfn-verwijst-naar-supertype" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn">verwijst naar supertype</dfn>De binding van een supertype aan een subtype middels een generalisatie.
</aside>
<p><em>Toelichting:</em>
Een subtype verwijst met een generalisatie naar een supertype en subtype verwijst met een generalisatie naar een supertype.</p>
<p><em>Toepassing:</em> Alle Berichttype en Interface modelelementen.</p>
</section></section></section><section id="toegestane-waarden-voor-bepaalde-metagegevens"><div class="header-wrapper"><h3 id="x3-6-toegestane-waarden-voor-bepaalde-metagegevens"><bdi class="secno">3.6 </bdi>Toegestane waarden voor (bepaalde) metagegevens</h3><a class="self-link" href="#toegestane-waarden-voor-bepaalde-metagegevens" aria-label="Permalink for Section 3.6"></a></div>
<section id="waardebereik-metagegevens"><div class="header-wrapper"><h4 id="x3-6-1-waardebereik-metagegevens"><bdi class="secno">3.6.1 </bdi>Waardebereik metagegevens</h4><a class="self-link" href="#waardebereik-metagegevens" aria-label="Permalink for Section 3.6.1"></a></div>
<p>Een aantal metagegevens hebben als datatype CharacterString. Aanvullend geldt:
* Voor datums dat deze het volgende patroon volgen: jjjjmmdd</p>
<p>Voor de volgende metagegevens geldt een specifiek waardebereik.</p>
<table class="simple">
<thead>
<tr>
<th><strong>Metagegeven</strong></th>
<th><strong>Waardenbereik</strong></th>
</tr>
</thead>
<tbody><tr>
<td>berichtcode</td>
<td>Gr01, Gr02, Gc01, Po01, Pu01, Pa01, De01</td>
</tr>
<tr>
<td>Grouping</td>
<td>resource, collection</td>
</tr>
<tr>
<td>Naam (bij EntiteitRelatie)</td>
<td>resource, request, requestbody</td>
</tr>
<tr>
<td>Naam (bij PadRelatie)</td>
<td>Pad</td>
</tr>
<tr>
<td>Is afgeleid (bij Koppelvlak)</td>
<td>Ja, Nee</td>
</tr>
<tr>
<td>Is afgeleid (bij andere elementen)</td>
<td>Ja, Nee, Zie package</td>
</tr>
<tr>
<td>Serialisatie</td>
<td>json, hal+json</td>
</tr>
<tr>
<td>Supplier-project</td>
<td>UGM</td>