Implementing standard specifications have good points:
- Relatively stable
- XML is well suited to a variety of problems
- The associated mindshare means the code is useful
Associated drawback:
- Implementing draft standards means you will have to fix/rewrite it
- Sometime the complexity is just insane (Schemas)
- APIs are not part of the standard (especially in C)
- Multiple specifications may conflict