If we add a new shape to an existing diagram, perhaps after a few shape deletions, so that its ID is the highest in the document, and not contiguous to others, we might create something like this in the .scap file:
Code: Select all
<Note ID="34" FontSize="12.0" Position="628.167045,186.799347" Width="91.0">
<Appearance>
<Alignment>Left</Alignment>
</Appearance>
<String>Supernumerary</String>
<ConnectedNoteIDs>6</ConnectedNoteIDs>
</Note>
and the in the PointsToNoteIDs list of the shape which points to it, its ID (34 in this example) will also appear:
Code: Select all
<Note ID="6" FontSize="12.0" Position="505.0,78.0" Width="73.0">
<Appearance>
<Alignment>Left</Alignment>
</Appearance>
<String>composition</String>
<ConnectedNoteIDs>5, 7-8, 10, 34</ConnectedNoteIDs>
<PointsToNoteIDs>7-8, 10, 34</PointsToNoteIDs>
</Note>
So far so good, however if we then delete the new shape, and save the Scapple file,
it turns out that its ID continues to appear in the PointsToNoteIDs list of the other shape, even though that ID:
- no longer corresponds to any actual shape in the diagram and
- has been successfully purged from the ConnectedNodeIDs value.
Code: Select all
<Note ID="6" FontSize="12.0" Position="505.0,78.0" Width="73.0">
<Appearance>
<Alignment>Left</Alignment>
</Appearance>
<String>composition</String>
<ConnectedNoteIDs>5, 7-8, 10</ConnectedNoteIDs>
<PointsToNoteIDs>7-8, 10, 34</PointsToNoteIDs>
</Note>
A minor bug in the sense that it doesn't seem to trip up Scapple itself,
but it did initially trip up a script which parsed the XML, and found:
- a reference to a shape which didn't exist, and
- an ID in the PointsToNoteIDs list which didn't show up in the corresponding ConnectedNoteIDs list.