Imp
[using it]
Interface Manipulation Package v4.0 (2008-06-25) a-projector ©copyright Author

Name: naming logical-structure elements and attributes
Names are either simple words, composed-words (i.e. words hyphenated with the character ``-'') or contextual-words i.e. words related to a context (also called name-space) and represented by a construct of the form context:sub-context:word using the character ``:''.
E.g.: imp:lang , border-size
Letters may belong to international alphabets and are case sensitive.
Here, (i) digits are not used and (ii) capital letters (unless necessary e.g. person name) are avoided. Capital letter inside a name is considered as an hyphenation (e.g. HelloWorld is understood as Hello-world); (iii) connection-chars (``-'', ``:'') are never doubled.
Relation with standard strings
Names are strings but all strings are not names.
Relation with software names
Software names uses capital letter inside a name for hyphenation and ``.'' for composition, translation is thus one-to-one. E.g.: aFieldExample yields a-field-example E.g.: class.methodName yields class:method-name
Relation with path-names.
This specification constraints URL path-name of the form $folder-name/$file-name to use valid names or composed names (no blank, no exotic characters).
The separator (e.g. ``/'' in Unix systems) corresponds to the context connector ``:'').
The file extension is represented outside the path-name.
Relation with standard XML names
XML names and attributes have a more general (but less rigorous) syntax, which is depreciated in this context. Names which do NOT comply to this restrained syntax are rejected because the underlying structure is not valid.