| Issue 20: | XML merge mishandles missing elements | |
| 1 person starred this issue and may be notified of changes. | Back to list |
When it has determined that the element from side A has no match in side B (or vice-versa), the program will use the current element from A as the missing element, and then output the base-case merge of those two elements. I.e. if they're different, a deletion of side A and an addition of side B. If they're the same, just that element. The effect is that some elements should be simple additions or deletions affecting one side only, but by change the surrogate other side will match it and cause a the add/delete indication to be missing; or sometimes it won't, and the surrogate element will spuriously be emitted too. Fix is in merge.xsl. Basically the "merge" template has a param "other" which defaults to the current element from side A. That template is used in two places: * When merging actual elements (that have the same signature, but may differ); the parameter is populated appropriately by the caller. * When merging an element against a non-existent other, when the parameter will assume the default. In the second case, the parameter should either be populated with a dummy element, or we should just not use "merge" and have a different template which emits a single added or deleted element.
May 8, 2012
Project Member
#1
ejrh00@gmail.com
Status:
Fixed
|