A namespace should be designed so that its components are consistent, may be used together, and may be updated at the same time.
A target namespace acts as the unique ID for a namespace. Each namespace must have its own target namespace. This makes all schemas easy to reference individually and prevents one namespace from being defined across multiple files.
A target namespace must be an absolute URI. Relative URIs are not allowed. An absolute URI, such as a URL or a URN, is universally identifiable.
Absolute URL example:
http://release.niem.gov/niem/niem-core/4.0/
Relative path URL:
niem/niem-core/4.0/
Relative root URL :
/niem/niem-core/4.0/
Relative protocol URL:
//niem/niem-core/3.2/
For NIEM release namespaces, the target namespace URI typically follows the format:
base / category / name / version /
http://release.niem.gov/niem/domains/immigration/4.0/
-------------base-----------/--cat--/---name----/ver/
The category is included only if there are multiple schemas for that kind of namespace.
Since there is only one Core namespace, the URI for Core omits the category.
More examples:
Namespace | Target namespace URI |
---|---|
Core 3.2 | http://release.niem.gov/niem/niem-core/3.2/ |
Core 4.0 | http://release.niem.gov/niem/niem-core/4.0/ |
Immigration 4.0 domain | http://release.niem.gov/niem/domains/immigration/4.0/ |
USPS 4.0 codes | http://release.niem.gov/niem/codes/usps_states/4.0/ |
User-defined namespaces can follow different conventions for their URIs.
For user-defined namespaces, a different URI base should be chosen - preferably a domain that the user controls.
Replace
http://release.niem.gov/niem/
with a different domain.
A namespace-level definition is required.
Rule | Applicability | Title |
---|---|---|
NDR 9-82 | REF, EXT | Schema has data definition |
NDR 9-83 | REF, EXT | Schema document defines target namespace |
NDR 9-84 | REF, EXT | Target namespace is absolute URI |
NDR 9-85 | REF, EXT | Schema has version |
NDR 10-67 | REF, EXT | Component marked as deprecated is deprecated component |
NDR 10-68 | REF, EXT | Deprecated annotates schema component |
NDR 10-69 | REF, EXT | External import indicator annotates import |
NDR 10-77 | REF, EXT, INS, SET | Use structures consistent with specification |
NDR 11-46 | REF, EXT | Same namespace means same components |
NDR 11-47 | REF, EXT | Different version means different view |
NDR 11-48 | SET | Reference schema document imports reference schema document |
NDR 11-49 | SET | Extension schema document imports reference or extension schema document |
NDR 11-50 | REF, EXT | Structures imported as conformant |
NDR 11-51 | REF, EXT | XML namespace imported as conformant |
NDR 11-52 | SET | Each namespace may have only a single root schema in a schema set |
NDR 11-53 | REF, EXT | Consistently marked namespace imports |
NDR 12-1 | INS | Instance must be schema-valid |
NDR 12-2 | INS | Empty content has no meaning |