Question on the meaning of "permanently unassigned" in EXI spec 7.3.3

Hi Folks,

In section 7.3.3 of the EXI spec, it reads:

> When /S/ is added to the global value partition and there was already 
> a string /V/ in the global value partition associated with the compact 
> identifier 
> /globalID/<http://www.w3.org/TR/2011/REC-exi-20110310/#key-globalID>, 
> the string /S/ replaces the string /V/ in the global table, and the 
> string /V/ is removed from its associated local value partition by 
> rendering its compact identifier permanently unassigned.

I am not clear on what happens in the case where V is later encountered 
again.  Can you please clarify what is meant by "permanently 
unassigned"?  For example, suppose V has a global id of 0 and a local id 
of 0.  S replaces V and V's compact identifier is "permanently 
unassigned" in the associated local value partition. But, what exactly 
does that mean?  I assume it means that the local id of 0 is never 
reused in that local partition?  Now what does it mean should I need to 
encode V again?  Does "permanently unassigned" also mean either:
     The string V can never be added to that same local partition again, 
but it could be added to some other local partition?
OR
     The string V can never be added to any local partition at all?

I suspect it doesn't mean either of those things, but I'm not sure about 
it.  Perhaps the confusion here lies between these two readings of the 
above clause:
"...and the string /V/ is removed from its associated local value 
partition by permanently mapping V to no compact identifier"
vs.
"...and the string V is removed from its associated local value 
partition by permanently mapping V's compact identifier to no string"

I think the former interpretation is how it actually does read, though I 
suspect the latter interpretation is what was intended.

Thanks in advance,
Kevin

Received on Friday, 8 November 2013 21:48:03 UTC