in this particular case, it might be ok to leave the default (just the trailing colon) for those 3 in the XML... at least for now

to an end user, it's still logically "no default"

if it turns out from testing that null and empty have the same effect, then no problem and even my suggestion here is not necessary

however, in the general case, we need to consider that the difference could be significant. I believe your suggestion of key present (with nothing on the value side) might be the way to indicate empty string, while no key means null (or whatever the default would be, e.g. 0 for numeric values and false for booleans). The question is what a key present with an empty value would mean for non-String types?