Developing Content-Intensive Applications with XML Documents, Document Transformations and Software Components