Hi Folks, [Definition] Bedevil: to cause great and continual trouble. In Eric Raymond’s book [1] he writes: Consider also Postel's Prescription: “Be liberal in what you accept, and conservative in what you send”. Postel was speaking of network service programs, but the underlying idea is more general. Well-designed programs cooperate with other programs by making
as much sense as they can from ill-formed inputs; they either fail noisily or pass strictly clean and correct data to the next program in the chain. However, heed this warning:
McIlroy urges us to design for generosity rather than compensating for inadequate standards with permissive implementations. Otherwise, as he rightly points out, it's all too easy to end up in tag soup. -------------------------------------- What does it mean to create a generous specification? Does Postel’s Prescription apply to XML Schema design? Suppose I create an XML Schema for, say, books. What would a
generous book XML Schema look like? Postel’s Prescription says that my applications should accept/process XML inputs that are
kind of lousy, but my applications should only send out XML documents that are
perfect. Can you give an example of a kind of lousy book XML document that my applications should accept/process and a
perfect book XML document that my applications should send out? /Roger [1] Fabulous book: The Art of Unix Programming. It’s available (for free) online at
http://www.catb.org/esr/writings/taoup/html/ [2] This Wikipedia article defines “tag soup”:
https://en.wikipedia.org/wiki/Tag_soup |