xmlstarlet should not touch XML entities like " in edit mode. For example:
$ xmlstarlet --version
1.6.1
compiled against libxml2 2.12.7, linked with 20914
compiled against libxslt 1.1.35, linked with 10135
$ echo "<xyz>abc " 123</xyz>" | xmlstarlet ed --ps
<?xml version="1.0"?>
<xyz>abc " 123</xyz>
It changed the " to ".
I'm trying to use xmlstarlet to perform updates on CLDR XML data and this bug makes it more challenging. https://unicode-org.atlassian.net/browse/CLDR-18546