Rancore Technologies Pvt Ltd, Mumbai India.
"The URN consists of a hierarchical service identifier or application
identifier, with a sequence of labels separated by periods.The left-most label is
the most significant one and is called 'top-level service
identifier', while names to the right are called 'sub-services' or
For any given service identifier, labels can be removed right-to-left and
the resulting URN is still valid, referring a more generic
service, with the exception of the top-level service identifier
and possibly the first sub-service or sub-application identifier.
Labels cannot be removed beyond a defined basic service, for
example, the label w.x may define a service, but the label w may
only define an assignment authority for assigning subsequent
values and not define a service in its own right. In other words,
if a service identifier 'w.x.y.z' exists, the URNs 'w.x' and
'w.x.y' are also valid service identifiers, but w may not be a
valid service identifier if it merely defines who is responsible"
TODO: PLEASE VALIDATE MY UNDERSTANDING OF THE ABOVE TEXT :)
- Please validate my understanding of the above text in the draft :)
This last para is a little ambiguous.I will only check that atleast
1 sub-service or 1 sub-application is present in the URN declaration.
If not, I throw an exception. I thought of not throwing an exception
and returning whatever was encoded..but the resultant encoding wont
make sense. It would be something like-->
urn:urn-7:3gpp-service OR urn:urn-7:3gpp-application alone with no sub-services
or sub-applications. This is bound to cause an error at the recepient later.
Sub-service and Application identifiers are not maintained by IANA and
are organization/application dependent (Section 8.2). So we cannot gurantee what lies
beyond the first sub-service or sub-application identifier. It should be the responsibility
of the application to make sense of the entire URN holistically. We can only check for the
standardized part as per the ABNF.