Reads an UTF-8 encoded text from standard input and writes to standard output, converting all non-ASCII characters to &#nnn; entities, so that the result is ASCII-encoded.
One example use is to convert ISO-8859-1 to ASCII with &#nnn; entities, by first running asc2xml to convert ISO-8859-1 to UTF-8 and then pipe the result into xml2asc to convert to ASCII with &#nnn; entities for all accented characters.
To test if a file is correct UTF-8, ignore the output and test the exit code, e.g. in Bash:
xml2asc <myfile >/dev/null && echo "OK" || echo "Fail"
Doesn't distinguish mark-up from content, so if the input uses non-ASCII characters in XML element names, they will be output with numerical entities in them, which is not legal in XML.