With nodes I meant database "nodes". E.g. a database == collection == collection node and a document == document node.
Ok, thanks. In our terminology, database nodes may be of any of the six node types (document, element, text, attribute, comment, proc.-instr.). But I got your point. -- We would be even more flexible if we allowed properties for all database nodes. On the other hand, the necessity for efficient data structures would arise soon after, because it would then be possible to set millions of millions of node properties. So it surely makes sense if we first focus on the document nodes in a database.
Regarding keys in maps, I would've like to be able to have QNames as map keys but sadly this is not allowed.
QNames are actually allowed in XQuery maps:
let $key := xs:QName('x') let $map := map { $key: 'value' } return $map($key)
Do you refer to other types of maps (maybe maps in Java)?
C.