SWIM Supporting Material
SWIM-INFO-008 Unique identifiers for concepts
Requirement
Guidance
IETF RFC 3986 is available at https://tools.ietf.org/html/rfc3986. It details the generic syntax for uniform resource identifiers (URIs). The standard gives the following examples of URI schemes:
- ftp://ftp.is.co.za/rfc/rfc1808.txt
- http://www.ietf.org/rfc/rfc2396.txt
- ldap://[2001:db8::7]/c=GB?objectClass?one
- mailto:John.Doe@example.com
- news:comp.infosystems.www.servers.unix
- tel:+1-816-555-1212
- telnet://192.0.2.16:80/
- urn:oasis:names:specification:docbook:dtd:xml:4.1.2
The ATM Information Reference Model uses the urn scheme.
The specification accepts that not all information definitions adopt the IETF RFC 3986 approach. Therefore it permits other ways to ensure a concept is uniquely identifiable. This means the requirement can be satisfied by:
- ensuring the concept can be identified by being unique within its namespace. In effect the identifier becomes the namespace plus the concept name.
- another identifier scheme. This may, for example, be an identifier scheme used in a service.
The specification does not put any requirements on who generates the identifier or how it is generated. However, it is assumed that they are generated by the organisation responsible for creating the information definition.
Verification Support
Completeness
Check that either:
[ ] Each concept has a unique identifier in accordance with IETF RFC 3986.
or
[ ] Each concept can be uniquely identified through some other mechanism e.g. by being uniquely named in a namespace.
Examples
The following examples show how to add explicit identifiers in XML Schema when needed.
Simple example
The example below shows how a simple identifier can be embedded into an XML schema. It makes use of the "id" attribute within the XML schema definition language. It is "simple" in the sense that the identifier has no intrinsic semantics of its own.
A complete example is available at: complete example.
<xs:element name="tobt" id="donlon003">
Advanced example
The example below shows a more advanced identifier. This takes the form of a URN that links to a given resource.
<xs:element name="tobt" id="http://swim.donlon-airport.com/property/tobt">
Status: Living Material