Bug in Changes: XML file problems if you use > or < in name

Running SAB 3.5

I am using Changes to change > to ’ and << to “ etc. The < gets turned into < in the appDef file reasonably enough but if the < is in the name of the change (as I had it) then it is included verbatim and thus the changes get all rejected when you reopen Scripture App Builder as the XML is not well formed.

This is what the appDef had: (and no changes appeared in the Scripture App Builder).

<changes type="main"> <change name="<< Open dbl quote"> <find>&lt;&lt;</find> <replace>“</replace> </change> <change name=">> Close dbl quote"> <find>&gt;&gt;</find> <replace>”</replace> </change> <change name="< Open single quote"> <find>&lt;</find> <replace>‘</replace> </change> <change name="> Close single quote"> <find>&gt;</find> <replace>’</replace> </change> <change name="ni nobreak"> <find>ni </find> <replace>ni </replace> </change> <change name="Ni nobreak"> <find>Ni </find> <replace>Ni </replace> </change> </changes>

Yes, sorry, this was a bug in SAB 3.5. It was fixed for SAB 4.0, released last week.

Brilliant. Well done.

BTW, what’s the best way of putting in a no break space in a replacement? I’ve put   in the AppDef file and I’ve tried typing the no break space character on Mac (opt-space). I’m not sure which is best. Just need to build and see whether it works. The reason to do this is to prevent one word ever being alone at the end of a line, given that the vowel sound actually used depends entirely on the next word.

you can use \uxxxx where xxxx is the four character code point.


If this is an Paratext/SFM file, the standard for a no-breaking space is the tilde ~ character.