Hi,
Thanks. I found the text for this restriction:
Logical ids (and therefore locations) are case sensitive. Logical Ids are always opaque, and external systems need not and should not attempt to determine their internal structure. A logical id SHALL always be represented in the same way in resource references and URLs. Ids can be up to 64 characters long, and contain any combination of upper and lowercase ASCII letters, numerals, "-" and ".".
But I think this is in conflict with other descriptions of fhir.
Resource.idDefinition: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality: 0..1
Type:
stringSo it is a type of string. And string must match follow regular expression:
[ \r\n\t\S]+
This expression includes underscores.
My problem is that I use an id generation which generates the id as an URL safe Base64 string. (
http://www.faqs.org/rfcs/rfc3548.html). This kind of Base64 allows underscores to replace other non url safe signs.
So I really don't recognize why underscore is forbidden as Resource.id but for URLs this would be safe. Is there a technical reason why forbidding this?
Reagrds,
Marco