- From: FABLET Youenn <Youenn.Fablet@crf.canon.fr>
- Date: Mon, 25 Nov 2013 10:45:53 +0000
- To: Kevin Braun <kbraun@obj-sys.com>, "public-exi-comments@w3.org" <public-exi-comments@w3.org>
- Message-ID: <ACC41E833067BD4FB8084DEBA2D866BE32C6C0D7@ADELE.crf.canon.fr>
Hi Kevin, Please find below my understanding of the specification. A local value index is "permanently unassigned" means that the index will never be reused for any string indexed for the given local value partition. To be more precise: - Global value indexes can be reassigned during the EXI stream processing. They go from 0 to valuePartitionCapacity-1 and then back to 0 - Local value indexes always go up and are never reused for other strings If we take this example: <root> <A>V</A> <A>S</A> <A>V</A> </root> With a value partition capacity equal to 1, the table will look as follow: 1. First A element is encoded, V is encoded literally and then indexed as (globalID, localID) = (0,0) 2. Second A element is encoded, S is encoded literally and then indexed as (globalID, localID) = (0,1). V is not indexed anymore 3. Third A element is encoded, V is encoded literally and then indexed as (globalID, localID) = (0,2). S is not indexed anymore Please let me know if that clears up things. Regards, Youenn From: Kevin Braun [mailto:kbraun@obj-sys.com] Sent: vendredi 8 novembre 2013 22:48 To: public-exi-comments@w3.org Subject: 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 Monday, 25 November 2013 10:46:32 UTC