Modeling Namespaces

A namespace should be designed so that its components are consistent, may be used together, and may be updated at the same time.

Unique URI

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.

Absolute URI

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/

URI conventions

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.

URI bases

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.

Definition

A namespace-level definition is required.

References

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