• No results found

Scenario 24: Toevoegen van een nieuw element rondom een opmerking

In document Comment Mapping (pagina 180-185)

ID

SC24

Omschrijving

Toevoegen van een nieuw element rondom een opmerking Origineel XML <div id="02">

<p id="01">Lorem ipsum dolor sit amet</p> </div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():6 /div[1 and @id="02"]/p[1 and @id="01"]/text():11

Huidig XML <div id="02">

<p id="01">Lorem <b id="03">ipsum</b> dolor sit amet</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/b[1 and @id="03"]/text():0

/div[1 and @id="02"]/p[1 and @id="01"]/b[1 and @id="03"]/text():5

Diff DeltaXML Output <div deltaxml:deltaV2="A!=B" id="02"> <p deltaxml:deltaV2="A!=B" id="01">Lorem <deltaxml:textGroup deltaxml:deltaV2="A">

<deltaxml:text deltaxml:deltaV2="A">ipsum</deltaxml:text> </deltaxml:textGroup>

<b deltaxml:deltaV2="B" id="03">ipsum</b> dolor sit amet</p>

</div>

Algoritme Pseudo code Pointer startPointer; Pointer endPointer;

if (!startPointer.Equals(startPointer.position) && !endPointer.Equals(endPointer.position)) { FindElementAndUpdate(startPointer.elementId); }

Fallbacks -

Toelichting

Zodra een nieuw element wordt toegevoegd om een

opmerking heen, zal dit nieuwe element moeten worden toegevoegd aan de XPath van de pointers.

FindElementAndUpdate() staat onder alle toelichtingen/opmerkingen beschreven.

Scenario 25: Verwijderen van een element rondom een opmerking (tekst blijft

bestaan)

ID

SC25

Omschrijving

Verwijderen van een element rondom een opmerking (tekst blijft bestaan) Origineel XML <div id="02">

<p id="01">Lorem ipsum dolor sit amet</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():6 /div[1 and @id="02"]/p[1 and @id="01"]/text():11

Huidig XML <div id="02">

Lorem ipsum dolor sit amet

</div>

Pointers /div[1 and @id="02"]/text():6 /div[1 and @id="02"]/text():11

Diff DeltaXML

Output

<div deltaxml:deltaV2="A!=B" id="02">

<p deltaxml:deltaV2="A" id="01">Lorem ipsum dolor sit amet</p> <deltaxml:textGroup deltaxml:deltaV2="B">

<deltaxml:text deltaxml:deltaV2="B"> Lorem ipsum dolor sit amet </deltaxml:text> </deltaxml:textGroup> </div> Algoritme Pseudo code Pointer startPointer; Pointer endPointer;

if (!startPointer.Equals(startPointer.position) && !endPointer.Equals(endPointer.position)) { FindElementAndUpdate(startPointer.elementId); }

Fallbacks Zodra de originele ophangpunten niet meer bestaan voor een opmerking, zal de opmerking op de dichtstbijzijnde parent worden gezet. Tevens vind een collapse plaats.

Toelichting

FindElementAndUpdate() staat onder alle

toelichtingen/opmerkingen beschreven.

Scenario 26: Splitsen van een opmerking

ID

SC26

Omschrijving

Splitsen van een opmerking Origineel XML <div id="02">

<p id="01">Lorem ipsum dolor sit amet</p> </div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():6 /div[1 and @id="02"]/p[1 and @id="01"]/text():11

Huidig XML <div id="02">

<p id="01">Lorem ips</p>

<p id="03">um dolor sit amet</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():6 /div[1 and @id="02"]/p[2 and @id="03"]/text():2

Diff DeltaXML

Output

<div deltaxml:deltaV2="A!=B" deltaxml:key="02"> <p deltaxml:deltaV2="A!=B" deltaxml:key="01">Lorem <deltaxml:textGroup deltaxml:deltaV2="A!=B"> <deltaxml:text deltaxml:deltaV2="A">ipsum dolor sit amet</deltaxml:text>

<deltaxml:text deltaxml:deltaV2="B">ips</deltaxml:text> </deltaxml:textGroup>

</p>

<p deltaxml:deltaV2="B" deltaxml:key="03">um dolor sit amet</p> </div>

Algoritme Pseudo code Het 'um' stuk is niet mogelijk om te mappen met diff, alleen binnen de editor.

Gedrag zoals bij SC11.

Fallbacks -

Toelichting

Zodra er een deel van de opmerking gesplitst wordt, zal

dit in de diff worden gezien als een verwijdering van een deel van de opmerking. Het gesplitste stuk met een ander id is daardoor in een diff niet terug te vinden.

Scenario 27: Startpunt verdwijnt

ID

SC27

Omschrijving

Startpunt verdwijnt

Origineel XML <div id="02">

<p id="01">Lorem ipsum dolor sit amet</p> <p id="03">Some other text</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():18 /div[1 and @id="02"]/p[2 and @id="03"]/text():4

Huidig XML <div id="02">

<p id="03">Some other text</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="03"]/text():0 /div[1 and @id="02"]/p[1 and @id="03"]/text():4

Diff DeltaXML

Output

<div deltaxml:deltaV2="A!=B" deltaxml:key="02">

<p deltaxml:deltaV2="A" deltaxml:key="01">Lorem ipsum dolor sit amet</p>

<p deltaxml:deltaV2="A=B" deltaxml:key="03">Some other text</p> </div> Algoritme Pseudo code Pointer startPointer; Pointer endPointer; enum changedTextXPath { START, END};

if (changedTextXPath == START) { startPointer.XPath = endPointer.XPath; startPointer.textPos = 0; }

Fallbacks -

Toelichting

Zodra het startpunt van een opmerking verdwijnt zal de startpointer naar een niet bestand pad leiden. Hierop moet de waarde van de startpointer gewijzigd worden naar de start van het resterende deel van de opmerking.

Scenario 28: Eindpunt verdwijnt

ID

SC27

Omschrijving

Eindpunt verdwijnt

Origineel XML <div id="02">

<p id="01">Lorem ipsum dolor sit amet</p> <p id="03">Some other text</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():18 /div[1 and @id="02"]/p[2 and @id="03"]/text():4

Huidig XML <div id="02">

<p id="01">Lorem ipsum dolor sit amet</p>

</div>

Pointers /div[1 and @id="02"]/p[1 and @id="01"]/text():18 /div[1 and @id="02"]/p[1 and @id="01"]/text():26

Diff DeltaXML

Output

<div deltaxml:deltaV2="A!=B" deltaxml:key="02">

<p deltaxml:deltaV2="A=B" deltaxml:key="01">Lorem ipsum dolor sit amet</p>

<p deltaxml:deltaV2="A" deltaxml:key="03">Some other text</p> </div>

Algoritme Pseudo code Pointer startPointer; Pointer endPointer; enum changedTextXPath { START, END};

if (changedTextXPath == END) { endPointer.XPath = startPointer.XPath; endPointer.textPos = startPointer.XPath.text().length; }

Fallbacks -

Toelichting

Zodra het eindpunt van een opmerking verdwijnt zal de

endpointer naar een niet bestand pad leiden. Hierop moet de waarde van de endpointer gewijzigd worden naar het einde van het resterende deel van de opmerking.

Testrapport

In document Comment Mapping (pagina 180-185)