AlternateContent Round-Trip Behavior
<AlternateContent>
maintains multiple representations for the same content. Consider an extreme case. Using the example above, let's suppose one edited the label using PML 2007. As PML 2007 wouldn't understand future representations, there is no possibility that it could keep PML 2009's markup consistent with the edit performed. Considering a simple case, let's suppose one deleted the label in its entirety. PML 2007 would only know how to delete the corresponding textbox, and would not know how to update the corresponding <cntrLblPr>
.
If this textbox contained sensitive information, one might consider this a security leak. The user's belief is that the information in the textbox was deleted, yet it persists in an alternate representation.
To solve this problem, all <AlternateContent>
choices are discarded when an edit is performed at the location the <AlternateContent>
is placed. It is the consuming client's responsibility to replace the discarded <AlternateContent>
with a new representation.
If an edit to the label occurred in PML 2007, the PML 2009 version is discarded.
If an edit occurs in PML 2009, since PML 2009 understands both PML 2007 and PML 2009 schemas, it is possible for PML 2009 to write an updated encompassing an update to both choices.