Naming System defines a specific code system or identifier system, so that it can be noted in a registry for other systems to find and understand an identifier. The Code System resource defines the content of a code system, and also its preferred identifier. The Naming System resource identifies the existence of a code or identifier system, and its possible and preferred identifiers. The key difference between the resources is who creates and manages them – Code System resources are managed by the owner of the code system resource, who can properly define the features and content of the code system.
Naming System resources, on the other hand, are frequently defined by 3rd parties that encounter the code system in use, and need to describe the use, but do not have the authority to define the features and content. Additionally, there may be multiple authoritative Naming System resources for a code system, but there should only be one Code System resource.