forked from NIEM/MPD-Spec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodel-package-description-3.0.1.txt
3329 lines (2100 loc) · 223 KB
/
model-package-description-3.0.1.txt
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
National Information Exchange Model -- Model Package Description Specification
Version 3.0.1
April 27, 2015
NIEM Technical Architecture Committee (NTAC)
URI
http://reference.niem.gov/niem/specification/model-package-description/3.0.1/
Contents
The table of contents is omitted from this edition.
Abstract
This document specifies normative rules and non-normative guidance for building Model Package Descriptions (MPDs) that conform to the National Information Exchange Model (NIEM) version 3.0.
Status
This document is the normative specification for NIEM [model package descriptions] (MPDs). It supersedes both [NIEM MPD Specification 1.0] and [NIEM MPD Specification 1.1], as well as [IEPD] guidance previously published in [Requirements for a NIEM IEPD 2.1].
This specification focuses on the rules for MPDs in general, and for [information exchange package documentation] (IEPD) MPDs specifically. Relevant NIEM specifications will address the rules for other [MPD classes] in the future.
At some time in the future NTAC will design, test, and publish a set of Schematron rules that correspond to constraint rules in this this MPD Specification.
The MPD Specification represents the collaborative work of the NIEM Technical Architecture Committee (NTAC), the NIEM Business Architecture Committee (NBAC), and their predecessors. It is a product of the NIEM Program Management Office (PMO).
Email comments on this specification to [email protected].
1. Introduction
This specification assumes familiarity with the National Information Exchange Model (NIEM), its basic concepts, architecture, processes, design rules, and general conformance rules. For novices to NIEM, the recommended reading list includes:
* [NIEM Introduction]
* [NIEM Conformance 3.0]
* [NIEM Conformance Targets Attribute Specification 3.0]
* [NIEM Naming and Design Rules 3.0]
* [NIEM High-Level Version Architecture 3.0]
* [NIEM High-Level Tool Architecture 1.1]
* [NIEM Implementation Guide]
Even those already knowledgeable of NIEM should be familiar with [NIEM Conformance 3.0], [NIEM Naming and Design Rules 3.0], [NIEM Conformance Targets Attribute Specification 3.0], and [NIEM High-Level Version Architecture 3.0].
The NIEM documents listed above are available at http://reference.niem.gov/niem/. See [NIEM Implementation Guide] for the NIEM implementation guidelines Web page.
[NIEM MPD Specification 3.0] uses and is a peer to the NIEM Naming and Design Rules [NIEM Naming and Design Rules 3.0].
1.1. Background
Many fundamental concepts, processes, and products in the NIEM generally involve aggregating electronic files into logical sets that serve a specific purpose. Examples of such sets include, but are not necessarily limited to, a NIEM release, domain update, [information exchange package documentation] (IEPD), and Enterprise Information Exchange Model (EIEM). Each of these is an example of a NIEM [model package description] (MPD).
An [MPD] is a normative specification for XML [data components] in the format of the World Wide Web Consortium (W3C) XML Schema Definition Language [W3C XML Schema Part 2 Datatypes], [W3C XML Schema Part 1 Structures]. [MPD] schema documents either (1) define the semantics and structure for NIEM reusable [data components], or (2) define implementable NIEM exchange instance XML documents in W3C Extensible Markup Language (XML) [W3C XML 1.0].
An [MPD] is ready to publish and use when it conforms to NIEM specifications, and has been properly packaged with the schemas, documentation, and supplemental files needed to implement or reuse it. [MPD] content design, development, and assembly may be difficult and time-consuming, especially if done manually. Developers will often prefer to build and modify an MPD with the help of software tools, which can significantly reduce the complexity of designing, constructing, changing, and managing MPDs. In order to reduce ambiguity and to facilitate interoperable and effective tool support, this baseline specification imposes some degree of consistency on the terminology, syntax, semantics, and composition of MPDs.
1.2. Purpose
This document is a normative specification for NIEM MPDs in general, and NIEM [information exchange package documentation] (IEPD) specifically. The rules and guidance herein are designed to encourage and facilitate NIEM use and tools by balancing consistency, simplicity, and flexibility. Consistency and simplicity make MPDs easy to design correctly, build rapidly, and find easily (for reuse or adaptation). Consistency also facilitates tool support. Flexibility enables more latitude to design and tailor MPDs for complex data exchange requirements. As such, this document does not necessarily prescribe mandates or rules for all possible situations or organizational needs. If an organization desires to impose additional requirements or constraints on its MPDs beyond those specified in this document (for example, mandate that an [IEPD] contain a normative set of business requirements or a domain model), then it is free to do so, as long as no conflicts exist with this [NIEM MPD Specification 3.0] or the [NIEM Naming and Design Rules 3.0].
This document defines terminology; identifies required and optional (but common) artifacts; defines metadata; specifies normative constraints, schemes, syntax, and processes as rules; provides non-normative guidance; and as needed, refers to other related NIEM specifications for more detail.
1.3. Scope
This specification applies to all NIEM [model package descriptions] (MPD). Currently, NIEM MPDs include the following:
* [information exchange package documentation] (IEPD) -- Defines a NIEM data exchange, and is the primary focus of this specification.
* Release -- Includes a major, minor, or micro release of the NIEM model, or a core supplement applicable to one or more releases. See [NIEM High-Level Version Architecture 3.0].
* Domain update -- Allows a NIEM domain to change or add to the content of its own domain schema document in a published release. See [NIEM Domain Update Specification 1.0].
* Enterprise Information Exchange Model (EIEM) -- A model derived from a NIEM release on which one or more IEPDs can be based. See the NIEM concept paper [NIEM Business Information Exchange Components 1.0]. A normative specification for this concept does not yet exist.
This document is the baseline specification for all MPDs, and in particular, it focuses on the normative rules for IEPDs. In the future, detailed rules that apply to other MPDs (listed above) will be published in other NIEM specifications. Also, in the future, other types of MPDs may be added to this list.
NIEM is a data layer for an information architecture. Files in an [MPD] generally define XML Schema types and declare XML elements and attributes to use in payloads for information exchanges. While an [MPD] may also contain files from layers beyond the data layer, this specification is not intended to define details of other architectural layers. Such files are generally present only to provide additional context, understanding, or assistance for implementing the exchange of payloads.
This specification defines several incremental stages of conformance to support iterative [MPD] development, with conformance testing possible at each step instead of delayed to the end. Tool vendors should be able to build, adapt, and integrate software tools to assist in [MPD] development and assembly, from raw parts to finished product.
An MPD developer is not required to revise an MPD that existed before this specification becomes effective. However, he is always encouraged to consider revising an MPD to meet this specification, especially when making other significant changes.
1.3.1. Information Exchange Package Documentation
This specification defines rules and practices for constructing and packaging conformant [MPDs], and in particular, [information exchange package documentation] (IEPDs). To the NIEM program, the [IEPD] is considered the point of interoperability. This specification provides a standard version numbering scheme Section 5.2.3, MPD Version Numbering Scheme (c:mpdVersionID), below. However, it does not provide guidance for managing or processing [IEPD] versions or their associated [IEPs]. Creation and management of [IEPDs] is the responsibility of stakeholders and developers. As such, [IEPDs] have their own versioning processes, and are managed independently of the NIEM core and domains. NIEM PMO defines [IEPD] conformance, but [IEPD] development and management fall outside its scope. Nonetheless, in the near term, the PMO intends to develop guidance (through the NTAC) for managing [IEPDs], versioning [IEPDs], and processing their associated [IEPs].
An [IEPD] defines one or more data exchanges, each occurring in the form of an [information exchange package] (IEP). This specification supports a variety of data exchange use cases, in which the [IEP] may be:
* An XML document with a NIEM-defined XML document element.
* An XML document with a NIEM-defined payload element wrapped inside a non-NIEM envelope element (for example, SOAP, [Logical Entity Exchange Specification] (LEXS), Trusted Data Format (TDF), or an OGC Web Service document element).
* Multiple NIEM-defined payloads packaged together in a single document.
* A non-NIEM format defined with no NIEM content at all (for example, a data exchange specified by a GML application schema).
* A non-NIEM format in which optional NIEM elements do not occur (for example, optional hospital information, provided as a NIEM element).
1.4. Audience
The following groups should review and be familiar with this specification:
* NIEM [MPD] developers, reviewers, and individuals or groups responsible for approving MPDs.
* NIEM [IEPD] developers, reviewers, and implementers.
* NIEM-aware tool developers.
2. Basic Concepts and Terminology
The section defines and discusses baseline terms and concepts that will be used throughout this document. Presentation in this section is sequenced for understanding. Each subsection builds upon previous ones. The section concludes with a more detailed discussion of MPDs and more specifically, IEPDs.
2.1. Key Words for Requirement Levels
Within normative content rules and definitions, the key words MUST, MUST NOT, SHALL, SHALL NOT, SHOULD, SHOULD NOT, MAY, RECOMMENDED, REQUIRED, and OPTIONAL in this document are to be interpreted as described in [RFC 2119 Key Words].
2.2. Character Case Sensitivity
This specification imposes many constraints on the syntax for identifiers, names, labels, strings, etc. In all cases, unless otherwise explicitly noted, syntax is case sensitive. In particular, XML files in appendices that define particular artifacts, transformations, and examples are case sensitive.
Also, note that as a general principle, lower case characters are used whenever such will not conflict with the [NIEM Naming and Design Rules 3.0].
2.3. Artifacts
MPDs are generally composed of files and file sets grouped for a particular purpose. Each file is referred to as an [artifact], and each logical set of such files is called an [artifact set].
[Definition: artifact]
A single file with a defined purpose.
[Definition: artifact set]
A collection of artifacts logically grouped for a defined purpose.
An [MPD] is itself an [artifact set], the purpose for which is to define and document the intended use of the [MPD]. While the key [MPD] artifacts are its [XML schema document] artifacts, there are also other kinds of [MPD] artifacts. These may include (but are not limited to) HTML, XSLT, text, or graphic files used for human-readable documentation. An [MPD] may also have artifacts intended to help assist in or accelerate the use and implementation of the [MPD]. For example, these may be XML, UML, or binary files that are inputs to or outputs from software tools used to build, generate, or edit the [MPD] or its schema document artifacts. Appendix C, Common MPD Artifacts, below, contains a listing of mandatory and common optional artifacts for the five types of MPDs. Common types of artifacts are described in more detail in subsequent sections. Section 7.1, Artifact Sets, below, discusses the different methods for grouping [MPD] artifacts into sets.
2.4. Schema Document and Namespace Correspondence in NIEM
To simplify automatic schema processing and reduce the potential for confusion and error, [NIEM Naming and Design Rules 3.0] principles state that each NIEM-conformant namespace SHOULD be defined by exactly one reference or extension schema document. To support this concept, the [NIEM Naming and Design Rules 3.0] disallows the use of xs:include, and mandates the use of the xs:schema/@targetNamespace attribute in NIEM-conformant schema documents.
So, (1) each NIEM namespace is defined by a single NIEM-conformant schema document, and (2) each NIEM-conformant schema document declares a target namespace. NIEM does not permit schema documents without target namespaces, unless they are from sources outside of NIEM (e.g., an [external schema document]).
2.5. Namespaces Used in this Specification
The following namespaces are referenced and used in this specification:
Figure 2-1: Namespaces Used
c http://reference.niem.gov/niem/resource/mpd/catalog/3.0/
er urn:oasis:names:tc:entity:xmlns:xml:catalog
nc http://release.niem.gov/niem/niem-core/3.0/
structures http://release.niem.gov/niem/structures/3.0/
xs http://www.w3.org/2001/XMLSchema
2.6. Harmonization
A key NIEM concept important to [harmonization] and used throughout this specification is [data component].
[Definition: data component]
An XML Schema type or attribute group definition; or an XML Schema element or attribute declaration.
[Harmonization] is a process that NIEM governance committees and domain stewards iteratively apply to NIEM content (specifically, its semantics, structure, and relationships) during the preparation of a NIEM major or minor release. On a more restricted scale a domain steward harmonizes his/her own content (schema documents) in preparation for a domain update [MPD]. Multiple domain stewards may collaborate in a coordinated domain update. In this case, to the extent possible, harmonization may be applied across the content of all the collaborating domains. Harmonization results in model change and evolution with the intent of removing semantic duplication and overlap while improving representational quality and usability.
[Definition: harmonization]
The process of reviewing a data model's existing data definitions and declarations; reviewing how it structures and represents data; integrating new [data components]; and refactoring [data components] as necessary to remove (or reduce to the maximum extent feasible) semantic duplication and/or overlap among all data structures and definitions resulting in quality improvements to representation and usability.
2.7. XML Validation
A discussion of XML validation requires an understanding of basic XML terminology. The following definitions are necessary.
[Definition: XML document]
A document in XML format.
(as defined by [W3C XML 1.0], section 2, "Documents")
[Definition: schema component]
The generic term for the building blocks that comprise the abstract data model of a schema.
(as defined by [W3C XML Schema Part 1 Structures], section 2.2, "XML Schema Abstract Data Model")
[Definition: XML Schema]
A set of schema components.
(as defined by [W3C XML Schema Part 1 Structures], section 2.2, "XML Schema Abstract Data Model")
[Definition: XML schema validation]
The process of checking an [XML document] to confirm that it is both well-formed (as defined by [W3C XML 1.0], section 2.1, "Well-Formed XML Documents") and valid (as defined by [W3C XML Schema Part 1 Structures], section 2.3, "Constraints and Validation Rules"), in that it follows the structure defined by an associated [XML Schema]. A well-formed document follows the syntactic rules of XML, which are the same for all XML documents.
[Definition: XML schema document]
A physical (file) representation of part or all of an [XML Schema]. One or more XML schema documents are used to assemble [schema components] into an [XML Schema].
[Definition: XML schema assembly]
A process that uses [XML schema documents] to identify the constituent [schema components] for an [XML Schema], and correctly sequences and structures these components to construct a single entity, the [XML Schema].
In other words, an [XML Schema] is the result of [XML schema assembly], i.e., processing a set of one or more [XML schema documents] into a single entity. That entity is most commonly an electronic image in the memory of a computer.
This specification often refers to the process of [XML schema validation], that is, validation of an instance XML document to confirm it adheres to the structure defined by a particular [XML Schema]. Generally, this should occur periodically during and after design time to ensure the conformance and quality of an information exchange definition (i.e., [XML schema documents]) and associated instance XML documents. However, local architecture or policy may dictate the need to validate more often, and in some cases may even require runtime validation. To be clear, NIEM conformance does not require that instance documents be validated at runtime.
XML schema document sets that define a NIEM information exchange must be authoritative. Application developers may use other schemas (e.g., constraint or Schematron schema documents) for various purposes, but for the purposes of determining NIEM conformance, the authoritative reference schema documents (NIEM releases) are relevant. This does not mean that XML validation must be performed on all instance XML documents as they are served or consumed; only that the instance XML documents validate if and when XML validation is performed. Therefore, even when validation is not performed, instance XML documents must be valid against the XML schema that is assembled from XML schema document sets that specify these instance XML documents.
2.8. Reference Schema Documents
[Definition: reference schema document]
As defined by [NIEM Naming and Design Rules 3.0]:
An [XML schema document] that is intended to provide the authoritative definitions of broadly reusable [schema components]. It is a [conformance target] of [NIEM Naming and Design Rules 3.0]. A reference schema document MUST conform to all rules of [NIEM Naming and Design Rules 3.0] that apply to this conformance target. An [instance XML document] with a [conformance target identifier] of http://reference.niem.gov/niem/specification/naming-and-design-rules/3.0/#ReferenceSchemaDocument MUST be a conformant reference schema document.
A NIEM [reference schema document] is an [XML schema document] that is intended to be the authoritative definition of business semantics for components within its target namespace. The NIEM core schema documents, NIEM domain schema documents, and NIEM domain update schema documents are all [reference schema documents]. A reference schema document meets all of the following criteria:
* It is a NIEM conformant schema document.
* It is explicitly designated as a reference schema document by its own conformance targets attribute. This can be declared by an [MPD catalog document] or by a tool-specific mechanism outside the schema document.
* It provides the broadest, most fundamental definitions of [data components] in its namespace.
* It provides the authoritative definition of business semantics for [data components] in its namespace.
* It is intended to serve as a basis for components in [IEPD] schema documents, including [schema document subsets], [constraint schema document sets], and [extension schema documents].
[Definition: reference schema document set]
A set of related [reference schema documents], such as a NIEM release.
The [NIEM Naming and Design Rules 3.0] conformance rules for reference schema documents are generally stricter than those for other classes of NIEM-conformant schema documents. For example, [reference schema documents] are not allowed to employ particular XML Schema model groups such as xs:choice or xs:any that other schema documents may contain.
NIEM reference schemas are very uniform in their structure. As they are the primary definitions for [data components], they do not need to restrict other data definitions, and so they are not allowed to use XML Schema's complex type restriction mechanisms.
2.9. Rules
Rules define specific constraints on artifacts or on the interpretation of artifacts. The classes of artifacts are identified by [conformance targets] that are enumerated by this document in Section 3, Conformance Targets, below. Rules are normative.
[Rule <section>-<number>] (<applicability>)
An enforceable rule for NIEM.
Each rule has a classification, which is either Constraint or Interpretation. These terms are defined below:
[Definition: constraint rule]
A rule that sets a requirement on an artifact with respect to its conformance to a [conformance target].
[Definition: interpretation rule]
A rule that sets the methodology, pattern, or procedure for understanding or using some aspect of an instance of a conformance target.
Each rule may apply to one or more [conformance targets]. Each rule lists its applicable [conformance target(s)] encoded per Table Table 3-1, Rule Applicability Codes, below. The conformance targets for this specification are detailed in Section 3, Conformance Targets, below.
Rules are numbered according to the section in which they appear and the order in which they appear within that section. For example, Rule 4-1 is the first rule in Section 4.
3. Conformance Targets
This section introduces [conformance targets], a concept fundamental to understanding the normative rules defined in this specification. This section also defines and explains [conformance targets] used in this specification.
There are several purposes for defining conformance targets in NIEM specifications. A [conformance target] establishes and identifies a class of artifact associated with a set of rules. Based on these rules, tools and operations may be developed to process or use these artifacts consistently.
Conformance targets also satisfy a need to ensure developers do not conform to NIEM in name only. Once committed to using NIEM, developers and organizations need well-defined conformance targets and rules to know exactly how to conform. Funding agencies require conformance targets that correspond to interoperability goals. An agency that is funding development of a set of systems will need to ensure it funds the development of NIEM-conformant IEPDs that support the exchange of NIEM-conformant IEPs. Tools and system developers need conformance targets that identify real world requirements corresponding to their use cases and tool capabilities. Many of these tools have not yet been developed. Therefore, this specification attempts to cover a broad range of general use cases.
3.1. Conformance Target Terminology
[NIEM Conformance Targets Attribute Specification 3.0] defines two terms used normatively and often within this specification.
[Definition: conformance target]
As defined by [NIEM Conformance Targets Attribute Specification 3.0]:
A class of artifact, such as an interface, protocol, document, platform, process or service, that is the subject of conformance clauses and normative statements. There may be several conformance targets defined within a specification, and these targets may be diverse so as to reflect different aspects of a specification. For example, a protocol message and a protocol engine may be different conformance targets.
[Definition: conformance target identifier]
As defined by [NIEM Conformance Targets Attribute Specification 3.0]:
An internationalized resource identifier [RFC 3987 IRI] that uniquely identifies a conformance target.
It will also be useful to define [MPD class].
[Definition: MPD class]
A [conformance target identifier] to which a given [MPD] claims to conform. The [MPD class] of an [MPD] is established by Rule 5-9, MPD Class Determined by Conformance Target Identifier in c:mpdClassURIList.
3.2. MPD Conformance Targets
This specification establishes two primary [MPD] [conformance targets]: [model package description] and [information exchange package documentation].
An [MPD] may be constructed manually, but it is far more efficient to generate an MPD entirely or in part using NIEM-aware software tools. The existence of a [model package description] [conformance target] has several advantages:
* Facilitates the existence of many incremental states from start to finish that are checkpoints for well-formedness.
* Enables multiple paths to completion; no single pre-determined sequence of rule applications is required.
* Provides tool developers with the flexibility to construct an [MPD] incrementally in many different sequences.
* Avoids a need to build a complete [MPD] before automated correctness checks can be applied (since well-formedness can be checked at many stages of development).
* Facilitates the interoperability and use of multiple tools that can export/import a [model package description].
* A [model package description] is a basis for consistency across all [MPD] classes.
Because an MPD is always a directory tree, for the purpose of transporting, up/downloading, and archiving for long term storage, an MPD is packaged as a [ZIP file].
[Definition: ZIP file]
As defined by [PKZIP], which states that it defines:
... a cross-platform, interoperable file storage and transfer format ... used to aggregate, compress, and encrypt files into a single interoperable container.
3.2.1. The Model Package Description Conformance Target
The concept of [model package description] provides a common framework for classes of NIEM file sets, each with a specific purpose. A NIEM release is a harmonized [reference schema document] set that defines and declares all content for a single (major, minor, or micro) version of NIEM (See [NIEM High-Level Version Architecture 3.0]). A core supplement is a special type of release. It is a [reference schema document] set of additive changes that append data components to the core of a NIEM release without modifying the original niem-core schema document. A domain update is a [reference schema document] set that represents changes to one or more domains in a NIEM release. An Enterprise Information Exchange Model (EIEM) is a [XML schema document] set that may contain one or more [subset schema documents], [extension schema documents], and [external schema documents] that are employed to construct IEPDs.
All MPDs share several commonalities; each MPD:
* Is a set of [artifacts], whose principal content is [XML schema documents] (XSD), the purpose for which is to define and declare reusable [data components] for information exchanges or to define the exchanges themselves.
* Requires a self-documenting mpd-catalog.xml artifact containing metadata and a listing of its key artifacts. This artifact establishes identification metadata, [conformance targets], purpose, general content, lineage, and other metadata.
* Requires the following metadata:
* Uniform Resource Identifier (URI) (See Section 5.2.4.1, MPD URI Scheme (c:mpdURI), below)
* Name (See Section 5.2.1, MPD Name Syntax (c:mpdName), below)
* Version number (See Section 5.2.3, MPD Version Numbering Scheme (c:mpdVersionID), below)
* The [conformance target identifier] http://reference.niem.gov/niem/specification/model-package-description/3.0/#MPD (See Section 5.2.2, MPD Class (c:mpdClassURIList), below)
* Contains a copy of (not just URLs or references to) all schema documents needed to validate any [instance XML document] class it defines.
* May contain optional alternate representations in addition to XML Schema (e.g., generic diagram, UML/XMI, database format, spreadsheet, etc.).
* May contain miscellaneous other documentation or file artifacts for assisting with usage or implementation.
[Definition: model package description]
A [model package description] is a set of [artifacts] (possibly in a [ZIP file]) that:
* includes a set of logically cohesive W3C XML Schema documents and other supporting files that represent one or more reusable or implementable XML information models, and
* has an [MPD class] of http://reference.niem.gov/niem/specification/model-package-description/3.0/#MPD, and
* adheres to all the rules within this specification for the [model package description] [conformance target].
This term may be abbreviated "MPD". Rules specifying this conformance target use the applicability code "WF-MPD".
The schemas and other files within a [model package description] are built on other specifications, including:
* [NIEM Naming and Design Rules 3.0]
* [NIEM Conformance Targets Attribute Specification 3.0]
* [NIEM Conformance 3.0]
The following rule applies to all MPDs:
Rule 3-1. MPD Conformance Target Identifier
[Rule 3-1] (WF-MPD)
An [MPD] MUST have an [MPD class] of http://reference.niem.gov/niem/specification/model-package-description/3.0/#MPD.
A [model package description] satisfies the need for a set of [artifacts] (or a [ZIP file]) with an [MPD catalog document] that validates to the MPD catalog schema, and contains no broken links to local artifacts it references. This definition enables a developer to build an [MPD] by iteratively adding artifacts and expanding the MPD catalog to reference them.
Most rules in this [MPD] specification are applicable to a [model package description] [conformance target]. Rules for this conformance target are less concerned with the correct use of NIEM and completeness, and more concerned with proper format, proper structure (e.g., link integrity), and correct use of artifacts. Adherence to these rules can produce an [IEPD] that is well-formed (WF-MPD), but that does not necessarily satisfy all general and specific requirements for an [IEPD]. The following rule ensures that a complete [IEPD] adheres to all applicable NIEM conformance rules.
3.2.2. IEPD Conformance Target
[Definition: information exchange package documentation]
An [information exchange package documentation] is a [model package description] that:
* has an [MPD class] of http://reference.niem.gov/niem/specification/model-package-description/3.0/#IEPD, and
* conforms to all the rules in this specification for the conformance target [information exchange package documentation] (i.e., applicability code "IEPD").
This term may be abbreviated "IEPD". Rules specifying this conformance target use the applicability code "IEPD".
Because it is an [MPD], an IEPD must also conform to all WF-MPD rules.
An [IEPD] has one or more c:IEPConformanceTarget elements within its [MPD catalog document], each defining a class of [information exchange packages] (IEP), in which each [IEP] is an [instance XML document].
[Definition: instance XML document]
An [instance XML document] is an [XML document] that is valid against an [XML Schema]. An [instance XML document] is said to be an instance of the schema to which it validates.
An IEPD also defines one or more data exchanges, one per [conformance target]. Each data exchange occurs at runtime in the form of an [instance XML document], which is an [IEP] that conforms to the rules defined in the c:IEPConformanceTarget element.
An [IEPD] contains a NIEM-conformant XML schema document set that may include portions of a NIEM core schema document (and supplements), portions of NIEM Domain schema documents (and updates), and enterprise-specific or IEPD-specific [extension schema documents]. The [XML schema documents] contained in an [IEPD] work together to define one or more classes of [instance XML documents] that consistently encapsulate data for meaningful information exchanges. Any [instance XML document] that is valid for the [XML schema document] set and that satisfies the conditions of the [IEP conformance target] is a member of that [IEP conformance target] class (or IEP Class).
[XML schema documents] in an [IEPD] conform to the [NIEM Naming and Design Rules 3.0] and may use or extend data component definitions drawn from NIEM. An [IEPD] may also incorporate and use XML schema documents from other standards that do not conform to NIEM. (See [NIEM Naming and Design Rules 3.0] for details.) An [IEPD] consists of a set of artifacts (XML schema documents, documentation, sample instance XML documents, etc.) that together define and describe one or more implementable data exchanges. An [IEPD] should contain all materials necessary to:
* Understand information exchange context, content, semantics, and structure.
* Create and validate XML documents defined by the [IEPD], and used for information exchanges.
* Identify the lineage of the [IEPD] itself and optionally its artifacts.
(The terms [information exchange package] (IEP) and [information exchange package documentation] (IEPD) first appeared in [FEA Data Reference Model 1.0] and [GJXDM IEPD Guidelines 1.1], respectively.)
The following rule specifies an [IEPD] as a [conformance target]:
Rule 3-2. MPD with MPD class of IEPD is an IEPD
[Rule 3-2] (MPD)
A [model package description] with an [MPD class] of http://reference.niem.gov/niem/specification/model-package-description/3.0/#IEPD MUST be an [information exchange package documentation].
The following rule is applicable to all IEPDs:
Rule 3-3. IEPD Conformance Target Identifier
[Rule 3-3] (IEPD)
An [IEPD] MUST have the [conformance target identifier] http://reference.niem.gov/niem/specification/model-package-description/3.0/#IEPD as a value of its c:mpdClassURIList attribute.
How to declare validity constraints for one or more IEP classes within an [IEPD] will be covered in more depth in Section 5.6, Defining Information Exchange Packages, below.
Note that NIEM conformance does not require that an IEP be native XML on the transmission medium. A NIEM-conformant IEP may be encrypted, compressed (e.g., using [PKZIP], [EXI Format 1.0], etc.), or wrapped within an envelope mechanism, as long as its original native XML form can be retrieved by the receiver.
Common to [IEPD] MPDs:
* Requires a readme artifact.
* Its [XML schema document] set defines data exchanges ([information exchange packages] or IEPs).
* Can contain subset, extension, external, or constraint schema documents.
* Must declare at least one or more [IEP conformance targets].
* Contains sample instance XML documents that validate to XML schema document set.
3.2.3. IEP Conformance Targets
In NIEM, an information exchange instance is an [information exchange package] (IEP). An IEP is also a [conformance target] and in that connotation is defined as follows:
[Definition: information exchange package]
An XML [instance XML document] that conforms to the conformance target defined by a c:IEPConformanceTarget element in the [MPD catalog document] of a [model package description].
This term may be abbreviated "IEP". Rules specifying this conformance target use the applicability code "IEP".
The definition of an [information exchange package] conformance target does not ensure that an [IEP] uses NIEM-defined elements for its information content. That is the function of the [full NIEM IEP] [conformance target], defined as follows:
[Definition: full NIEM information exchange package]
An [information exchange package] that satisfies all the validity constraints for its class as defined by a [model package description], and that has an XML document element that is declared in either a NIEM reference or extension schema document.
This term may be abbreviated "full NIEM IEP". Rules specifying this conformance target use the applicability code "FN-IEP".
3.2.4. Artifact Conformance Targets
Conformance targets that correspond to artifacts internal to an [MPD] include:
* [schema document subset] (rule applicability code: Schema-subset)
* [MPD catalog document] (rule applicability code: MPD-catalog)
* [XML catalog document] (rule applicability code: XML-catalog)
3.3. Rule Applicability Codes for Conformance Targets
The table below lists the codes that represent standard [conformance targets] used in this specification and that appear in the applicability attribute for each rule.
Table 3-1: Rule Applicability Codes
Conformance Target|Rule Applicability Code
[model package description]|WF-MPD
[information exchange package documentation]|IEPD
[information exchange package]|IEP
[full NIEM IEP]|FN-IEP
[schema document subset]|Schema-subset
[MPD catalog document]|MPD-catalog
[XML catalog document]|XML-catalog
4. MPD XML Schema Document Artifacts
[XML schema document] artifacts are the essential content of MPDs because they normatively define and declare [data components]. The purpose of an [MPD] is determined by the [XML schema document] or document set(s) it contains; furthermore, each [ XML schema document] may have a different purpose. The [NIEM Naming and Design Rules 3.0] addresses some schema documents as [conformance targets] including reference schema documents, extension schema documents, and schema document sets. Each conformance target may adhere to a different (though possibly overlapping) set of conformance rules. Consult the [NIEM Naming and Design Rules 3.0] for these rules. NIEM also employs a special technique that relies on [constraint schema document sets] (See Section 4.5, Constraint Schema Document Sets, below).
The following subsections define each type of NIEM schema document and document set, and identify the types of MPDs that contain them.
4.1. Reference Schema Documents
This section generally applies to NIEM releases and their associated core supplements, and domain updates. Though not common, it is also valid to use a [reference schema document] or document set within an [IEPD]. The [reference schema document] and [reference schema document set] were defined earlier in Section 2.8, Reference Schema Documents, above.
A NIEM [reference schema document] is intended to be the authoritative definition schema document for a NIEM target namespace. All NIEM releases, associated core supplements, and domain updates are standalone sets of namespaced reference schema documents. NIEM content governance bodies have reviewed and attempted to harmonize each set to the extent possible by refactoring as needed. This means that most (not necessarily all) types and properties are semantically unique (i.e., multiple versions of semantically identical types or properties do not exist within a set).
As authoritative definitions, NIEM reference schema document sets satisfy more rigorous documentation requirements. The [NIEM Naming and Design Rules 3.0] requires that each type definition, and element and attribute declaration in a reference schema document contain an xs:annotation element that defines its semantic meaning.
Typically reference schema documents contain [data components] with the most relaxed cardinality (zero to unbounded). However, this is not an absolute requirement. If necessary, cardinality in reference schema documents may be constrained to model reality. For example, in NIEM 3.0 a nc:Location2DGeospatialCoordinateType contains both a nc:GeographicCoordinateLatitude element and a nc:GeographicCoordinateLongitude element. Each of these elements has cardinality minOccurs="1" and maxOccurs="1". Any other cardinality for these elements has no meaning. On the other hand, one might claim that NIEM should constrain nc:PersonType to a single occurrence of the element nc:PersonBirthDate. Every person has one and only one birth date. Unfortunately, also in reality, criminal persons often present multiple identities with multiple birth dates; and so the capability to represent such is an important data requirement for NIEM.
4.2. Subset Document Schemas
4.2.1. Basic Subset Concepts
A NIEM schema document subset is a set of XML schema documents that constitutes a reduced set of components derived from a NIEM reference schema document or document set associated with a given numbered release or domain update.
[Definition: schema document subset]
An XML schema document set based on a reference schema document set intended to ensure that any [instance XML document] valid to the schema document subset is also valid to the reference schema document set.
The primary purpose for a schema document subset is to reduce and constrain the scope and size of a full NIEM reference schema document set for use within an [IEPD]. A schema document subset is derived from a reference schema document set (such as a NIEM release) by applying subset operations (See Section 4.2.2, Constructing a Schema Document Subset, below). Also, note that employing a subset of a reference schema document set within an [IEPD] is optional; it is completely valid to reuse NIEM reference schema documents as-is within IEPDs.
The fundamental rule for a valid NIEM schema document subset is formally stated follows:
Rule 4-1. Fundamental NIEM Subset Rule
[Rule 4-1] (Schema-subset)
A schema document subset ($SUBSET) for a given reference schema document set ($REFERENCE) MUST be defined such that for all instance XML documents ($XML), where $XML is valid to $SUBSET, $XML is valid to $REFERENCE.
A [schema document subset] is composed of [XML schema documents]. A [schema document subset] can essentially be a [reference schema document set] (i.e., a NIEM release) that has been modified by applying subset operations to support business requirements represented in an [IEPD]. A subset derived from a reference schema document set may differ from that reference such that its content has been reduced and/or constrained.
[Definition: subset schema document]
An XML schema document that meets all of the following criteria:
* It is built from a reference schema document set where one or more reference schema documents have been substituted by corresponding subset schema documents.
* It is built from a reference schema document by applying subset operations to the XML schema statements in a reference schema document.
* It is explicitly designated as a subset schema document. This is accomplished by declaration in the relevant MPD catalog or by a tool-specific mechanism outside the subset schema document.
* It has a target namespace previously defined by a reference schema document. That is, it does not provide original definitions and declarations for schema components, but instead provides an alternate schema representation of components that are defined by a reference schema document.
* It does not alter the business semantics of components in its namespace. The reference schema document defines these business semantics.
* It is intended to express the limited vocabulary necessary for an [IEPD] and to support XML Schema validation for an [IEPD].
4.2.2. Constructing a Schema Document Subset
This section is non-normative. Use the subset operations in this section with caution.
NIEM subset operations are essentially reduction operations that remove or constrain portions of a reference schema document set, thereby building a profile of the set. They do not expand the scope (i.e., relax constraints) or change the semantics of reference schema document set content.
Because NIEM adopts an optional and over-inclusive data representation strategy, most elements in a NIEM reference schema have zero to unbounded cardinality. So, elements with cardinality minOccurs="0" are optional and may be omitted from a subset schema document if not needed for business reasons. It is also valid to constrain element cardinality within a subset schema document, as long as doing so does not break the subset relationship with the reference schema document set. For example, a reference schema document element with cardinality (minOccurs="0", maxOccurs="unbounded") may be constrained to (0,1) or (1,1) in a subset schema document. However, if a reference schema document element's cardinality is (1,unbounded), it may not be constrained to (0,1) since this breaks the subset relationship. The interval (0,1) is not contained within, and instead, overlaps the interval (1,unbounded).
The following list describes valid subset operations that are considered non-normative and informative only. In most cases, they can be applied to a schema document set and result in a corresponding [schema document subset]. However, it is possible to apply them in combinations that will break the subset relationship, or even result in invalid schemas. Apply these operations carefully and thoughtfully!
1. Remove an XML comment.
2. Remove an xs:annotation and its children xs:documentation and xs:appinfo.
3. Increase the value of an xs:element/@minOccurs as long as it remains less than or equal to its corresponding @maxOccurs value).
4. Decrease the value of an xs:element/@maxOccurs as long as it remains greater than or equal to its corresponding @minOccurs value.
5. Remove an xs:element if its @minOccurs="0".
6. Remove an xs:complexType or xs:simpleType if not supporting an xs:element or xs:attribute declaration, or another xs:complexType or xs:simpleType definition.
7. Remove an xs:attribute with @use="optional" from an xs:complexType.
8. Change an xs:attribute/@use="optional" to @use="prohibited".
9. Change an xs:attribute/@use="optional" to @use="required".
10. Remove an xs:element declaration if it is not supporting an element use.
11. Remove an xs:enumeration from an xs:simpleType as long as it is not the only remaining xs:enumeration.
12. Remove an element with representation term AugmentationPoint if it is not being used for element substitution.
13. Add or apply a constraining facet to an xs:simpleType.
14. Remove an xs:import and its associated schema document if the schema document is not used within the document set.
15. Change a concrete xs:element declaration to @abstract="true".
16. Change an xs:element/@nillable="true" to @nillable="false".
17. Substitute an xs:element/@substitutionGroup member for its associated substitution group head.
18. Substitute a composition of xs:element/@substitutionGroup members for their associated substitution head (subject to cardinality and unique particle attribution (UPA) constraints [W3C XML Schema Part 1 Structures], section "Schema Component Constraint: Unique Particle Attribution"). The composition is an ordered sequence of the @substitutionGroup member elements. Each substitute element may bound its cardinality such that the total cardinality sum is within the bounds of the @substitutionGroup head cardinality. Order and cardinality of the replacement sequence must conform to XML Schema UPA constraints.
19. Replace a wildcard (subject to cardinality, UPA, and namespace constraints) with a composition, i.e., an ordered sequence of elements. Each element may further bound cardinality within the bounds of the wildcard. Order and cardinality of replacement sequence must conform to XML Schema UPA constraints. The namespace of each element must conform with namespace constraints specified by the wildcard (if any).
4.3. Extension Schema Documents
[Definition: extension schema document]
As defined by [NIEM Naming and Design Rules 3.0]:
An [XML schema document] that is intended to provide definitions of [schema components] that are intended for reuse within a more narrow scope than those defined by a [reference schema document]. It is a [conformance target] of [NIEM Naming and Design Rules 3.0]. An extension schema document MUST conform to all rules of [NIEM Naming and Design Rules 3.0] that apply to this conformance target. An XML document with a [conformance target identifier] of http://reference.niem.gov/niem/specification/naming-and-design-rules/3.0/#ExtensionSchemaDocument MUST be an extension schema document.
In general, an [extension schema document] contains components that use or are derived from the components in reference schema documents. It is intended to express additional vocabulary above and beyond the vocabulary available from reference schema documents.
A developer who determines that NIEM is missing elements required for a given information exchange has several options for providing the missing elements. Using rules and techniques defined in the [NIEM Naming and Design Rules 3.0]:
* Extend an existing NIEM [data component] (if possible).
* Augment an existing NIEM data type (through NIEM Type Augmentation).
* Build a new NIEM-conformant data component.
* Employ NIEM adapter types for components from an external standard that does not conform to NIEM.
A NIEM extension schema document may contain [data components] built from any of the options above. Employment of extension schema documents in an [IEPD] is entirely optional.
Multiple extension schema documents are allowed in a single [IEPD]. Developers will likely want to reuse many of their extension schema documents in other IEPDs. Therefore, the best practice for extension is to group all [data components] designed to be reused into one extension schema document or document set, and group IEPD-specific [data components] into another. Then the reusable extension components can be more easily redeployed in other IEPDs as needed.
Extension schema documents generally contain new [data component] declarations that may (though not necessarily) be derived from or reference existing NIEM [data components]. This being the case, reference schema documents do not exist for new [data components] found within extension schema documents. Therefore, extension schema documents must satisfy the more rigorous documentation requirements of reference schema documents. Per the [NIEM Naming and Design Rules 3.0], the definition or declaration of each new [data component] in an extension schema document must include an xs:annotation element that provides its semantics and NIEM-specific relationships.
4.4. External Schema Documents
[Definition: external schema document]
As defined by [NIEM Naming and Design Rules 3.0]:
Any [XML schema document] that is not one of:
* a [reference schema document],
* an [extension schema document], or
* an [XML schema document] that has the structures namespace as its target namespace.
All [MPD] classes may contain external schema documents that do not conform to NIEM. Data components declared and defined in external schema documents require NIEM external adapter types to identify the fact they do not conform to NIEM.
[Definition: external adapter type]
As defined by [NIEM Naming and Design Rules 3.0]:
A NIEM-conformant type that adapts external components for use within NIEM. An external adapter type creates a new class of object that embodies a single concept composed of external components. External adapter types are defined in NIEM-conformant schemas.
Refer to the [NIEM Naming and Design Rules 3.0] for details about external schema documents, external adapter types, and the rules defining their use.
4.5. Constraint Schema Document Sets
[Definition: constraint schema document set]
A set of related constraint schema documents that work together; for example, a constraint schema document set could be built by adding constraints to a schema document subset.
A [constraint schema document set] is an [XML schema document] set that is used to express business rules for a class of [instance XML documents]; it is not intended to provide definitions for the semantics of the individual components it contains. Instead, a constraint schema document set uses the XML Schema Definition Language to add constraints to components defined or declared by other schema documents, usually a [schema document subset]; but they can be applied to [extension schema documents] as well.
A [constraint schema document set] validates additional constraints imposed on an [instance XML document] only after it is known to be NIEM-conformant (i.e., has been validated with a [reference schema document set], or [schema document subset], and applicable [extension schema documents]).
To use a [constraint schema document set] to tighten constraints on an IEP, a two-pass validation technique is employed. In the first pass, an IEP is validated against the schema document subset and extension schema documents. This pass ensures that IEP semantics and structure conform to the NIEM model and [NIEM Naming and Design Rules 3.0]. In the second pass, an IEP is checked against a constraint schema document set, which may contain constrained versions of the [subset schema documents] and [extension schema documents]. This pass ensures that the IEP also satisfies the additional constraints (i.e., business rules that the first pass was unable to validate). A constraint schema document set need not validate constraints that are applied by other schema documents.
Constraint schema document sets are generally useful when it is necessary to impose restrictions that are more complex than cardinality. If only cardinality restrictions are needed, then it is easier and more efficient to set these directly in the subset schema documents and avoid the use of a constraint schema document set. Otherwise, a constraint schema document set may be necessary.
Use of a constraint schema document set is one option for tightening constraints on NIEM IEPs beyond what NIEM itself provides. This particular technique uses the XML Schema Definition Language [W3C XML Schema Part 2 Datatypes], [W3C XML Schema Part 1 Structures]. NIEM also allows other methods that do not use XML Schema. For example, the use of [ISO Schematron] is the preferred method for applying business rules. However, other constraint or business rule methods are also acceptable. That said, at this time there are no normative rules for how these business rule techniques should be employed in NIEM IEPDs. Therefore, if other techniques are used, it is a developer responsibility to incorporate appropriate artifacts and clear documentation.
Note that one disadvantage to use of constraint schema document sets is that they do not provide clear visibility or explanation of the constraints they enforce; nor do they provide clear validation failure messages. On the other hand, a standard business rule language such as [ISO Schematron] provides facilities for better understanding of the business rules, their intent, and error handling of failures.
A common practice for creating an [IEPD] constraint schema document set is to start with a valid NIEM schema document subset and modify it to further restrict the class of instance XML documents (IEPs) that will validate with this constraint schema set. However, an extension schema document can also be used to derive a constraint schema document. Using this technique, the namespace of that schema document would reuse the target namespace of the schema document from which it is derived.
There is no restriction on the number of constraint schema document sets (and validation passes) that an [IEPD] can employ. As in other advanced situations, developers must clearly document their intentions for and use of multiple constraint schema document sets.
In general, constraint schema documents in a [constraint schema document set] have far fewer requirements than other classes of NIEM schema documents. Since they work in tandem with NIEM normative schema documents, these schema documents are allowed to use the XML Schema Definition language in any way necessary to express business rules. This means that to constrain instance XML documents, these schema document can employ XML Schema constructs that are not allowed in NIEM conformant schema documents.
5. MPD Documentation Artifacts
XML schema documents (and the schemas that result from them) are the essence of a NIEM [MPD]. However, a variety of documentation files may be incorporated into a NIEM [MPD]. One particular documentation file is required in every MPD: mpd-catalog.xml, the MPD catalog document. This file contains basic metadata, relationship and lineage data, [conformance target] specifications, and validation information.
A [readme artifact] (formerly known as a master document) is mandatory for IEPDs. IEPDs are often built by different developers, and may be registered into a repository for reuse by many other users, developers, and implementers; therefore, a minimal form of documentation is absolutely necessary. An [IEPD] readme file is the primary source and starting point for human readable documentation, and should reference (and describe) any other separate documentation artifacts. This requirement ensures that baseline documentation is consistently rooted in a clearly visible artifact within each [MPD].
The following subsections address these documentation artifacts and the concepts, metadata, and content each supports.
5.1. NIEM MPD Catalog
[Definition: MPD catalog document]
An [instance XML document] that:
* conforms to all the rules in this specification for the conformance target [MPD catalog document] (i.e., applicability code "MPD-catalog"), and
* contains metadata describing:
* MPD unique identification
* [Conformance targets]
* Basic characteristics and properties
* Key artifacts and directory structure
* Relationships to other MPDs and their artifacts
This term may be abbreviated "MPD-catalog". Rules specifying this conformance target use the applicability code "MPD-catalog".
Each [MPD class] may have somewhat different catalog requirements. The catalog metadata are formally defined by the XML Schema document in Appendix A, MPD Catalog XML Schema Document, below. MPD catalog metadata are designed to be the minimal needed to facilitate human understanding, tool support, and machine processing. The metadata can support a number of [MPD] uses and functions including (but not limited to):
* Identification of key artifacts
* Generation of a hyperlinked content display using XSLT
* Browsing and understanding of artifacts and their content
* Automatic registration into a registry/repository
* Search, discovery, retrieval of MPDs (through metadata and relationships)
* Reuse of MPDs and their artifacts
* Tracing and analysis of MPD lineage
* General conformance and validation of the [MPD] itself
* Definition, identification, and validation of IEP conformance targets
Rule 5-1. MPD Has an mpd-catalog.xml in its Root Directory
[Rule 5-1] (WF-MPD)
Within its [root directory], an [MPD] MUST contain an [MPD catalog document] artifact with name mpd-catalog.xml.
Rule 5-2. MPD Catalog Document Valid to mpd-catalog-3.0.xsd
[Rule 5-2] (MPD-catalog)
An [MPD catalog document] MUST be valid to mpd-catalog-3.0.xsd Appendix A, MPD Catalog XML Schema Document.
This rule requires validation with mpd-catalog-3.0.xsd, which also imports a NIEM schema subset. So, validation of the [MPD catalog document] must be done in the context of the catalog schema document, its associated NIEM subset, and mpd-catalog.xml. This does not require the [MPD] to contain copies of the catalog schema document or the schema subset (since these are standard for all MPDs). However, a validation tool must have access to all three XML documents.
The XML schema documents required to validate an [MPD catalog document] are available in the [NIEM MPD Toolkit]. Note that validators often require references to schemas and their imports. This may be done through a command line instruction or by adding a schemaLocation attribute to xs:import statements.
5.1.1. MPD Catalog as a Table of Contents
One function of the MPD catalog is to serve as a table of contents that identifies, locates, and classifies key artifacts and artifact sets. For that purpose, Appendix A, MPD Catalog XML Schema Document, below, provides a number of classifier elements for most common artifacts and artifact sets in MPDs. For other less common or generic artifacts two general classifiers exist: c:Documentation and c:ApplicationInfo. These elements loosely correspond to the meaning of the XML Schema xs:annotation child elements, xs:documentation and xs:appinfo. General visual, audio, and textual explanatory documentation should be classified as c:Documentation, while tool-specific artifacts (such as imports, exports, executables, etc.) should be classified as c:ApplicationInfo.
The classifier elements are designed to identify, categorize, and describe any artifacts and artifact sets (including its [path name], dependencies, and lineage). Employing XSLT, mpd-catalog.xml can be transformed into an index.html artifact that displays a hyperlinked MPD table of contents and metadata summary in a browser.
In general, only an [IEPD] would contain c:Documentation and c:ApplicationInfo artifacts. So, for an [IEPD], a best practice is to use the readme artifact (i.e., the [readme artifact] required in the [MPD root directory]) to reference c:Documentation and c:ApplicationInfo artifacts whether or not they have been classified in the MPD catalog.
An IEPD's MPD catalog is not required to record all its artifacts. The [IEPD] author decides which artifacts (both files and sets) are important enough to explicitly include in the MPD catalog. The author may choose to classify all, some, or none in the catalog.
The MPD catalog provides a supplement or an alternative to organizing [MPD] artifacts and sets with a standard file directory. An author can use it to identify, classify, and describe particular artifacts or sets, instead of having to do so with only file names and directory structure. An author can also employ the guidance in Appendix E, Guidance for IEPD Directories (non-normative), below.
5.1.2. Extending an MPD Catalog
An MPD catalog may be extended to accommodate new or additional metadata, artifact classifiers, or validity constraints that are not already defined in Appendix A, MPD Catalog XML Schema Document, below.
To extend the MPD catalog, an [MPD] author must provide both an XML catalog extension document (XML) and one or more MPD extension schema documents (XSD). The XML catalog extension identifies that one or more MPD catalog extensions are present, and resolves their namespaces to local URIs. The MPD catalog extension is a schema that defines and declares the new [data components] for metadata, classifiers, and/or constraints. Both general [NIEM Conformance 3.0] and specific [NIEM Naming and Design Rules 3.0] conformance rules apply to these components. The XML catalog extension document must reside in the [MPD root directory]. The MPD extension schema documents may bear any file name and reside anywhere in the [MPD]. This is because the XML catalog is expected to [resolve] all local URIs. MPD processing tools are expected to look for and recognize the XML catalog (that identifies MPD catalog extensions exist) by its file name.
The following rules specify the requirements for an MPD catalog extension XML catalog document:
Rule 5-3. MPD Catalog Extension XML Catalog Document in Root Directory
[Rule 5-3] (MPD-catalog)
An MPD catalog extension XML catalog document MUST reside in the same relative directory as the mpd-catalog.xml artifact (normally in the [MPD root directory])
Rule 5-4. MPD Catalog Extension XML Catalog Document Name Is mpd-catalog-extension-xml-catalog.xml
[Rule 5-4] (MPD-catalog)
An MPD catalog extension XML catalog document MUST bear the file name (and type) mpd-catalog-extension-xml-catalog.xml.
Rule 5-5. MPD Catalog Extension XML Catalog Document Resolves Namespaces to URIs
[Rule 5-5] (MPD-catalog)
An MPD catalog extension XML catalog document MUST [resolve] all MPD catalog schema extension document namespaces to the correct corresponding local URIs in the MPD.
So, when a processor identifies a file named mpd-catalog-extension-xml-catalog.xml in the [MPD root directory], it can assume that it contains references to one or more MPD catalog extension schema documents that adhere to the following rules:
Rule 5-6. MPD Catalog Extension Schema Document Conforms to NDR Extension Rules
[Rule 5-6] (MPD-catalog)
An MPD catalog extension schema document MUST conform to the [NIEM Naming and Design Rules 3.0] extension schema conformance target rules.
Rule 5-7. MPD Catalog Schema and Its Extensions Conform to NDR Schema Set Rules
[Rule 5-7] (MPD-catalog)
Within an MPD, the schema set formed by mpd-catalog-3.0.xsd and all MPD catalog extension schema documents MUST conform to the [NIEM Naming and Design Rules 3.0] schema set conformance target rules.
Whether extending an MPD catalog with new metadata elements, artifact classifier elements, or validity constraint elements, Appendix A, MPD Catalog XML Schema Document, below, provides an abstract element as a substitution group head in each case. The user simply derives a new type (through extension or restriction), or reuses an existing type, then declares a new element (of that type), and identifies it with the appropriate substitution group. Whenever possible, the user should reuse types, elements, and attributes that are already defined/declared within the Appendix A, MPD Catalog XML Schema Document, below.
If an MPD catalog schema document extension uses NIEM [data components] that are not already contained in the NIEM core subset provided with [NIEM MPD Toolkit], then the additional components must be additive. In other words:
Rule 5-8. MPD Schema Document Extension Support Schemas Are Supersets of Spec Subsets
[Rule 5-8] (MPD-catalog)
Subset schema documents provided to support an MPD schema document extension MUST be a superset of the subset schema documents provided with this specification to support the MPD catalog schema document.
5.2. Metadata Concepts
The MPD catalog also contains both required and optional metadata for the [MPD] and its artifacts and artifact sets. The following subsections specify the syntax, formats, and semantics for that metadata.
5.2.1. MPD Name Syntax (c:mpdName)
An MPD's official name is the value of the c:mpdName attribute owned by the c:MPD element in the MPD's catalog document. This value is constrained by the regular expression pattern on c:mpdName within the MPD catalog schema Appendix A, MPD Catalog XML Schema Document, below:
[A-Za-z]([-_ ]?[A-Za-z0-9]+)*
The regular expression above indicates that an MPD name:
* Begins with an alpha character (upper or lower case).
* Ends with an alphanumeric character (upper or lower case).
* May contain alphanumeric characters.
* May contain single spaces, single dashes, and single underscores as separators.
[IEPD] author's often reuse the official [MPD] name in metadata within the file name. Note that c:mpdName is of xs:token type and allows single spaces and upper case alpha characters. That said, be sure to consider differences in operating system or file system treatment of spaces and character case within file and directory names. (See Rule 7-5, IEPD ZIP file Name Syntax.
c:mpdName is not the same thing as the name of the file containing the MPD, described in Section 7.2, IEPD File Name Syntax, below.
5.2.2. MPD Class (c:mpdClassURIList)
An [MPD class] is a [conformance target identifier] to which the given [MPD] claims to conform. The MPD catalog c:mpdClassURIList attribute declares a list of [conformance target identifiers], identifying the [conformance targets] to which the MPD claims to conform. The following rule establishes the [class] of an [MPD]:
Rule 5-9. MPD Class Determined by Conformance Target Identifier in c:mpdClassURIList
[Rule 5-9] (WF-MPD)
An MPD MUST have an [MPD class] of a [conformance target identifier] if and only if that [conformance target identifier] appears in the c:mpdClassURIList attribute within its [MPD catalog document].
It should be clear that an [MPD] that is an [IEPD] should have a value for its c:mpdClassURIList attribute that contains both [conformance target identifiers] above. In the future, additional conformance target identifiers will be assigned by other appropriate NIEM specifications that specialize MPDs (for example, releases, domain updates, etc.).
The c:mpdClassURIList attribute is an XML list type that may declare that an MPD conforms to multiple conformance targets. An MPD developer can establish a new MPD [conformance target] identifier in addition to those provided by this and other NIEM specifications. The identifier represents the new conformance target which should be associated with one or more rules or constraints to which an MPD must conform if it is assigned that identifier.
An [IEPD] authoring organization might use another classification system for its IEPDs. For example, the organization ABC might establish the [conformance target identifier] http://example.org/niem-iepd/1.0/#abc-org to indicate its IEPDs also conform to its own stricter set of [IEPD] conformance rules. Thus, an MPD catalog document for its published IEPDs would contain the c:mpdClassURIList component shown in Figure 5-1, MPD catalog c:mpdClassURIList attribute for organization ABC., below, indicating conformance to three [conformance targets].
Figure 5-1: MPD catalog c:mpdClassURIList attribute for organization ABC.
c:mpdClassURIList=
"http://reference.niem.gov/niem/specification/model-package-description/3.0/#MPD
http://reference.niem.gov/niem/specification/model-package-description/3.0/#IEPD
http://example.org/niem-iepd/1.0/#abc-org"
5.2.3. MPD Version Numbering Scheme (c:mpdVersionID)
Published MPDs may be periodically revised and updated; therefore, versioning is required to clearly indicate changes have occurred. In order to maintain some consistency while allowing reasonable flexibility to authors, this specification establishes a simple version numbering scheme that is consistent with most common practices. This is the same version numbering scheme that is used for NIEM releases.
An MPD version number is the value of the c:mpdVersionID attribute owned by the c:MPD element within its [MPD catalog document]. A consistent version number syntax is enforced by the MPD catalog schema in Appendix A, MPD Catalog XML Schema Document, below. The syntax rule is as follows:
Rule 5-10. MPD Version Number Syntax
[Rule 5-10] (WF-MPD)
An MPD MUST be assigned a version number that adheres to the regular expression:
version ::= digit+ ('.' digit+)* (status digit+)?
Where:
digit ::= [0-9]
status ::= 'alpha' | 'beta' | 'rc' | 'rev'
The meaning of the status values are as follows:
* alpha indicates early development; changing significantly.
* beta indicates late development; but changing or incomplete.
* rc indicates release candidate; complete but not approved as operational.
* rev indicates very minor revision that does not impact schema validation.
The regular expression notation used above is from [W3C XML 1.0] #sec-notation.
Note that the absence of a status string in the version number indicates that the version has been baselined and published.
The following examples are valid MPD version numbers:
* 1
* 1.2
* 1.3.1.0
* 1.2alpha13
* 199.88.15rev6
There are two implications in Rule 5-10, MPD Version Number Syntax. The first is that in some cases this version scheme implies and confirms a chronology of releases. For example, a given product labeled version 2.3 must have been released before the same product labeled 2.3.1. Therefore, version 2.3.1 is more current than version 2.3.
However, this is a multi-series version scheme, and chronological relationships exist only within a given series. So, for example, nothing can be said about a chronological relationship between versions 2.2.4 and 2.3. This is because version 2.2.4 is in a different series (i.e., 2.2) and could actually have been released after 2.3. Figure 5-2, Example versioning system, below, illustrates a system of versions that uses the numbering scheme of Rule 5-10, MPD Version Number Syntax.
Figure 5-2: Example versioning system
Images are omitted from this edition.
Figure 5-2, Example versioning system, above, illustrates eight different version series. Within this illustration these are the only sequences that have chronological relationships that can be identified through version numbers.
* Series 2 is {2.2, 2.3, 2.4}
* Series 3 is {3.0, 3.1, 3.2}
* Series 2.2 is {2.2, 2.2.1, 2.2.2, 2.2.3, 2.2.4}
* Series 2.3 is {2.3, 2.3.1}
* Series 2.4 is {2.4, 2.4.1}
* Series 3.0 is {3.0, 3.0.1, 3.0.2}
* Series 3.1 is {3.1, 3.1.1}
* Series 3.2 is {3.2, 3.2.1, 3.2.2}
The second implication of Rule 5-10, MPD Version Number Syntax is that pre-releases are easily identified by the strings alpha, beta, and rc. These strings are simple visible indicators of MPD status or stage of development.
This specification places no further restrictions or meaning (implied or otherwise) on a version number. Authors have the option to use integers between dots to indicate degree of compatibility or other relationships between versions as needed. For example, for a given [MPD], the author may declare that if an instance validates to version 4.2.3, then it will also validate to version 4.2. Such a claim is acceptable. However, this specification does not imply any such relationships. Any meaning assigned to version sequence by an authoritative source should be unambiguously documented within the [MPD].
MPD version numbers within a version series do NOT imply compatibility between versions. Compatibility between or among MPD versions MUST be explicitly stated in documentation.
Note that an author who updates an existing [MPD] to a new version may choose the version number based on its previous version number or not, as long as it follows the version number syntax.
Version number syntax applies to MPDs only; there is no requirement to apply this syntax to artifact versioning.
5.2.4. URI Schemes
All MPDs use Uniform Resource Identifiers (URIs) to identify artifacts and other resources. Several kinds of URIs are employed by MPDs to reference other MPDs, MPD artifacts (internally and externally), conformance targets, documents, and other resources. For each type of URI used in an MPD catalog document, this section describes its purpose, options, and syntax based on [RFC 3986 URI].
The following definitions will be useful to understanding MPD rules defined in later subsections that involve various kinds of URIs.
[Definition: path name]
A general form of the name of a file or directory that specifies a unique location in a file system. A path name points to a file system location by following the directory tree hierarchy expressed in a string of characters in which path components, separated by a delimiting character, represent each subdirectory. If a path name terminates in a file name, then it specifies the location of that file.
[Definition: resolve URI]
A function (or action) that takes a URI string of the form xs:anyURI and returns the resource it identifies. If the URI is local (i.e., within an [MPD]) and the resource does not exist, then this function fails. If a URI is remote or of unknown location (e.g., a URN), then this function (or action) may require human assistance to determine if a resource associated with the URI exists (pass) or not (fail).
5.2.4.1. MPD URI Scheme (c:mpdURI)
To facilitate MPD sharing and reuse, the assignment of a URI (Uniform Resource Identifier) to an MPD is essential. This is enforced by the MPD catalog schema document Appendix A, MPD Catalog XML Schema Document, below. It is also important to ensure that an MPD URI is absolute.
Rule 5-11. MPD URI Is Absolute
[Rule 5-11] (WF-MPD)
In an MPD catalog document, the value of a c:mpdURI attribute of type xs:anyURI MUST match the production <absolute-URI> as defined by [RFC 3986 URI], section 4.3, "Absolute URI".
This rule implies that a URI assigned to an [MPD] must be valid. Furthermore, the entity (person or organization) assigning the MPD URI either (1) is the registrant of the domain name or namespace identifier, or (2) has authority from the registrant to assign this URI.
Examples of valid MPD URIs:
* http://example.gov/niem-iepd/prescription-monitoring-info-exchange/3.0/
* http://example.gov/niem-iepd/pmix/3.0/
* http://release.niem.gov/niem/niem-core/3.0/
* http://niem.gov/niem/domains/cyfs/2.1/1
This specification does not mandate that basic MPD catalog metadata be designed into an MPD URI. However, including such can obviously provide convenient visual recognition. That said, an author should ensure any metadata embedded in the URI accurately reflect the MPD catalog metadata (in particular, the values of c:mpdURI, c:mpdName, c:mpdVersionID, and c:mpdClassURIList defined in the MPD catalog document).
5.2.4.2. URI Scheme for MPD Artifacts (c:externalURI)
Artifacts in other MPDs can be referenced from within an [MPD] to identify equivalence (signify reuse, one aspect of lineage). To support this concept, the following MPD URI rules are necessary:
Rule 5-12. MPD URI Supports Fragment
[Rule 5-12] (WF-MPD)
A valid MPD URI MUST support the inclusion of a fragment identifier (as a suffix) [RFC 3986 URI].
This rule ensures that an [MPD] can always uniquely identify and refer to each artifact within another MPD. This MPD specification follows [RFC 3986 URI] which forbids a URI to contain more than a single fragment identifier. To construct an MPD artifact URI, add a fragment (that locally identifies the artifact) to an MPD URI, and therefore, an MPD URI cannot already contain a fragment.
Rule 5-13. MPD URI Has No Fragment
[Rule 5-13] (WF-MPD)
A valid MPD URI MUST NOT contain a fragment identifier [RFC 3986 URI].
Rationale: If a URI for an [MPD] (do NOT confuse this with a URI for an MPD artifact) already contains a fragment identifier, then that URI cannot be employed as an MPD artifact URI, because [RFC 3986 URI] only allows a single fragment identifier.
By the following rule, each file artifact or artifact set is uniquely identified by its [path name] relative to the [MPD root directory].
Rule 5-14. MPD Artifact URI Syntax
[Rule 5-14] (WF-MPD)
Within an [MPD] a URI reference to an artifact in another external MPD (i.e., an MPD artifact URI) is the concatenation of:
* The URI of the [MPD] that contains the artifact.
* A pound-sign character ("#" -- also known as a hashtag character).