ASN.1 is not really a difficult problem, and it has the advantage of being
an international standard which has been through all sorts of battles about
interoperability, including canonical encoding by the Distinguished Encoding
Rules. Methinks the problems of canonical text encoding may be more complex
than they seem so far. That's often the case when trying to adapt human uasges,
which have evolved over ages in different cultures, to conform to simple rules.
We have found that our ASN.1 compiler makes it a cinch to deal with X.509
certificates, X.400 addresses and all that good stuff. We used it on a project
which had lots of ASN.1 and programmers who had never previously dealt with
ASN.1. They were up and running in no time, and, at integration time, the
pieces fitted together very smoothly! For the user interface, we wrote some
simple routines to convert Distinguished Names to and from User-Friendly
Notation,
Charlie Gardiner