You are not logged in (Login | Register)

The following tables, show by example, how the concurrent edit ruleset operates on XML elements, attributes and text (PCDATA).

The general principles adopted are as follows:

The column headings correspond to the naming conventions in the ruleset and our command-line and online tools.

The dxce namespace prefix is used, without being properly defined, in order to save space; the corresponding namespace URI is: http://www.deltaxml.com/ns/concurrent-edit

Element Rules

base

edit1

edit2

result

Addition in edit1

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>
<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>

Addition in edit2

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>

Addition in both, same content

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>

Addition in both, different content

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
  <c/>
</e>
<e>
  <a/>
  <b/>
  <d/>
</e>
<e>
  <a/>
  <b/>
  <c/>
  <d/>
</e>

Deletion in edit1

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
</e>
<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
</e>

Deletion in edit2

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
</e>
<e>
  <a/>
</e>

Deletion in both

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
</e>
<e>
  <a/>
</e>
<e>
  <a/>
</e>

Change in edit1

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b>
    <b1/>
  </b>
</e>
<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b>
    <b1/>
  </b>
</e>

Change in edit2

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b>
    <b2/>
  </b>
</e>
<e>
  <a/>
  <b>
    <b2/>
  </b>
</e>

Change in both, same content

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b>
    <b3/>
  </b>
</e>
<e>
  <a/>
  <b>
    <b3/>
  </b>
</e>
<e>
  <a/>
  <b>
    <b3/>
  </b>
</e>

Change in both, different content

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b>
    <b1/>
  </b>
</e>
<e>
  <a/>
  <b>
    <b1/>
  </b>
</e>
<e>
  <a/>
  <b>
    <b1/>
    <b2/>
  </b>
</e>

Change in edit1, deletion in edit2

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
  <b>
    <b1/>
  </b>
</e>
<e>
  <a/>
</e>
<e>
  <a/>
  <dxce:elementConflict
      dxce:type="modified-edit1-deleted-edit2">
    <dxce:base>
      <b/>
    </dxce:base>
    <dxce:edit1>
      <b>
        <b1/>
      </b>
    </dxce:edit1>
  </
dxce:elementConflict>
</e>

Change in edit2, deletion in edit1

<e>
  <a/>
  <b/>
</e>
<e>
  <a/>
</e>
<e>
  <a/>
  <b>
    <b2/>
  </b>
</e>
<e>
  <a/>
  <dxce:elementConflict
      dxce:type="deleted-edit1-modified-edit2">
    <dxce:base>
      <b/>
    </dxce:base>
    <dxce:edit2>
      <b>
        <b2/>
      </b>
    </dxce:edit2>
  </dxce:elementConflict>
</e>

PCData Rules

base

edit1

edit2

result

Addition in edit1

<e></e>

<e>1</e>

<e></e>

<e>1</e>

Addition in edit2

<e></e>

<e></e>

<e>2</e>

<e>2</e>

Addition in both, same text

<e></e>

<e>3</e>

<e>3</e>

<e>3</e>

Addition in both, different text

<e></e>

<e>1</e>

<e>2</e>

<e>
  <dxce:pcdataConflict
      dxce:type="addition-conflict">
    <
dxce:edit1>1</dxce:edit1>
    <
dxce:edit2>2</dxce:edit2>
  </dxce:pcdataConflict>
</e>

Deletion in edit1

<e>3</e>

<e></e>

<e>3</e>

<e></e>

Deletion in edit2

<e>3</e>

<e>3</e>

<e></e>

<e></e>

Deletion in both

<e>3</e>

<e></e>

<e></e>

<e></e>

Contents change in edit1

<e>3</e>

<e>1</e>

<e>3</e>

<e>1</e>

Contents change in edit2

<e>3</e>

<e>3</e>

<e>2</e>

<e>2</e>

Contents change in both,
same text

<e>3</e>

<e>4</e>

<e>4</e>

<e>4</e>

Contents change in both,
different text

<e>3</e>

<e>1</e>

<e>2</e>

<e>
  <dxce:pcdataConflict
      dxce:type="three-way-conflict">
    <dxce:base>3</dxce:base>
    <dxce:edit1>1</dxce:edit1>
    <dxce:edit2>2</dxce:edit2>
  </dxce:pcdataConflict>
</e>

Contents change in edit1,
deletion in edit2

<e>3</e>

<e>1</e>

<e></e>

<e>
  <dxce:pcdataConflict
      dxce:type="modified-edit1-deleted-edit2">
    <dxce:base>3</dxce:base>
    <dxce:edit1>1</dxce:edit1>
  </dxce:pcdataConflict>
</e>

Contents change in edit2,
deletion in edit1

<e>3</e>

<e></e>

<e>2</e>

<e>
  <dxce:pcdataConflict
      dxce:type="deleted-edit1-modified-edit2">
    <dxce:base>3</dxce:base>
    <dxce:edit2>2</dxce:edit2>
  </dxce:pcdataConflict>
</e>

Attribute Rules

base

edit1

edit2

result

Attribute addition in edit1

<e/>

<e a="1"/>

<e/>

<e a="1"/>

Attribute addition in edit2

<e/>

<e/>

<e a="1"/>

<e a="2"/>

Addition in both, same values

<e/>

<e a="3"/>

<e a="3"/>

<e a="3"/>

Addition in both, different values

<e/>

<e a="1"/>

<e a="2"/>

<e>
  <dxce:attributeConflicts>
    <a dxce:type="addition-conflict">
      <
dxce:edit1>1</dxce:edit1>
      <
dxce:edit2>2</dxce:edit2>
    </a>
  </dxce:attributeConflicts>
</e>

Attribute deletion in edit1

<e a="3"/>

<e/>

<e a="3"/>

<e/>

Attribute deletion in edit2

<e a="3"/>

<e a="3"/>

<e/>

<e/>

Attribute deletion in both

<e a="3"/>

<e/>

<e/>

<e/>

Value changes in edit1

<e a="3"/>

<e a="1"/>

<e a="3"/>

<e a="1"/>

Value changes in edit2

<e a="3"/>

<e a="3"/>

<e a="2"/>

<e a="2"/>

Value changes in both, same value

<e a="3"/>

<e a="4"/>

<e a="4"/>

<e a="4"/>

Value changes in both, different values

<e a="3"/>

<e a="1"/>

<e a="2"/>

<e>
  <
dxce:attributeConflicts
    <a dxce:type="three-way-conflict">
      <
dxce:base>3</dxce:base>
      <
dxce:edit1>1</dxce:edit1>
      <
dxce:edit2>2</dxce:edit2>
    </a>
  </
dxce:attributeConflicts>
</e>

Value change in edit1, attribute deletion in edit2

<e a="3"/>

<e a="1"/>

<e/>

<e>
  <
dxce:attributeConflicts
    <a dxce:type="modified-edit1-deleted-edit2">
      <
dxce:base>3</dxce:base>
      <
dxce:edit1>1</dxce:edit1>
    </a>
  </
dxce:attributeConflicts>
</e>

Value change in edit2, attribute deletion in edit1

<e a="3"/>

<e/>

<e a="2"/>

<e>
  <
dxce:attributeConflicts
    <a dxce:type="deleted-edit1-modified-edit2">
      <
dxce:base>3</dxce:base>
      <
dxce:edit2>2</dxce:edit2>
    </a>
  </
dxce:attributeConflicts>
</e>