Concurrent Edit Conflict Format
DeltaXML Concurrent Edit Conflict Format Description
The DeltaXML Concurrent Edit Conflict format is a representation for any conflicts that are found when three XML documents are synchronized using the concurrent edit rule set. In situations where there are no conflicts, the elements and attributes described here will not appear in the result document.
In this description, the three input documents are base, edit1 and edit2.
Namespace and Prefix
The namespace for Concurrent Edit conflict is
http://www.deltaxml.com/ns/concurrent-edit and the preferred prefix
is dxce: .
Elements and Attributes
This is a list of the elements used by this format:
|
Element name |
Content |
Purpose |
|---|---|---|
|
dxce:attributeConflicts |
One of more elements, each of which has a local-name and namespace
corresponding to an attribute belonging to the parent element. Each of these
child elements will have a |
Details any conflicts between the attributes associated with the parent element |
|
dxce:elementConflict |
Zero or one of each of the elements |
Details any conflicts between elements. |
|
dxce:pcdataConflict |
Zero or one of each of the elements elements |
Details any conflicts between PCDATA items. |
|
dxce:base |
Any content from the base document. |
To record the content of the base document in a situation where a conflict occurs. |
|
dxce:edit1 |
Any content from the edit1 document. |
To record the content of the edit1 document in a situation where a conflict occurs. |
|
dxce:edit2 |
Any content from the edit2 document. |
To record the content of the edit2 document in a situation where a conflict occurs. |
This is a list of the attributes used by this format:
|
Attribute name |
Content |
Purpose |
|---|---|---|
|
dxce:type |
One of the values: three-way-conflict, deleted-edit1-modified-edit2, modified-edit1-deleted-edit2, addition-conflict. |
Details the type of conflict that occurred. |
Description
The elements and attribtues described here occur only when a conflict is
identified when the concurrent edit synchronization rules are applied. The
dxce:type attribute indicates the type of conflict. The meaning of
each of the allowed values for this attribute are shown in the table below. An
'item' may be an attribute, element or PCDATA item.
|
dxce:type value |
Description of the conflict |
|---|---|
|
three-way-conflict |
The content in all three of the input documents is different. All three items will be provided in the result file so that a choice can be made. |
|
deleted-edit1-modified-edit2 |
An item present in the base document was deleted in the edit1 document but was also changed in the edit2 document. The content of the base and the edit2 documents is provided in the result file so a choice can be made. |
|
modified-edit1-deleted-edit2 |
An item present in the base document was deleted in the edit2 document but was also changed in the edit1 document. The content of the base and the edit1 documents is provided in the result file so a choice can be made. |
|
addition-conflict |
An item was added in both edit1 and edit2 but they are different. Both items are provided so a choice can be made. |
Rules for Concurrent Edit Conflict Format
- The content of an element with an attribute
dxce:type="three-way-conflict"will always be:(dxce:base, dxce:edit1, dxce:edit2). - The content of an element with an attribute
dxce:type="deleted-edit1-modified-edit2"will always be:(dxce:base, dxce:edit2). - The content of an element with an attribute
dxce:type="modified-edit1-deleted-edit2"will always be:(dxce:base, dxce:edit1). - The content of an element with an attribute
dxce:type="addition-conflict"will always be:(dxce:edit1, dxce:edit2). - The element
dxce:elementConflictcannot have an attributedxce:type="three-way-conflict"nordxce:type="addition-conflict". - The content of the elements
dxce:base, dxce:edit1anddxce:edit2will always be a single child element (with its content) or PCDATA item.
Examples of Conflicts
Example of Element conflict
|
base document |
edit1 document |
edit2 document |
|---|---|---|
|
<example> |
<example> |
<example> |
And the result for this will be as follows:
|
Concurrent Edit Conflict |
Comments |
|---|---|
|
<example> |
Element <person> has been deleted in edit1 but modified in edit2. |
Examples of Text conflict
|
base document |
edit1 document |
edit2 document |
|---|---|---|
|
<example> |
<example> |
<example> |
And the result for this will be as follows:
|
Concurrent Edit Conflict |
Comments |
|---|---|
|
<example> |
The text in <firstName> has been changed in both edit1 and edit2 documents. |
Examples of Attribute conflict
|
base document |
edit1 document |
edit2 document |
|---|---|---|
|
<example> |
<example> |
<example> |
And the result for this will be as follows:
|
Concurrent Edit Conflict |
Comments |
|---|---|
|
<example> |
The gender attribute is added in edit1 and edit2 documents but has different values. |