Reject invalid characters in XML strings (Bug#41094).

* lisp/xml.el (xml-escape-string): Search for invalid characters.
(xml-invalid-character): New error symbol.

* test/lisp/xml-tests.el (xml-print-invalid-cdata): New unit test.

* etc/NEWS: Document new behavior.
1 job for master in 90 minutes and 3 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Test
failed #6072
test-all

01:30:03

 
Name Stage Failure
failed
test-all Test The script exceeded the maximum execution time set for the job
  GEN      lisp/eshell/eshell-tests.log
ELC lisp/faces-tests.elc
GEN lisp/faces-tests.log
ELC lisp/ffap-tests.elc
GEN lisp/ffap-tests.log
ELC lisp/filenotify-tests.elc
GEN lisp/filenotify-tests.log
Pulling docker image gitlab/gitlab-runner-helper:x86_64-d0b76032 ...
ERROR: Job failed: execution took longer than 1h30m0s seconds