A method of downloading software components from a remote source to a software application for providing updates or additions to the functionality of the application via which a document is opened by a user for editing, the method comprising the steps of: attaching an Extensible Markup Language XML schema to the document, wherein the XML schema defines permissible data content, permissible data types and permissible data structures for the document, annotating particular portions of the document with XML structure associated with the permissible data content, the permissible data types, and permissible data structures for the particular portions of the document as defined by the schema, associating with XML elements making up the XML structure a plurality of software components, in the following referred to as solution, needed to provide a functionality to the application, identifying and assembling the solution at a location remote from the document, enabling the application to request the solution to obtain the functionality provided by the plurality of software components upon initiation of editing the document within an XML element associated with the solution, including attaching a solution property storing a solution ID to the document for pointing to the solution, and attaching a solution location including a uniform resource locator URL for the solution to the document for enabling the application to locate the solution at the remote location, downloading the plurality of software components from the location remote from the document to the application for provision of the functionality. attaching an Extensible Markup Language XML schema to the document, wherein the XML schema defines permissible data content, permissible data types and permissible data structures for the document, annotating particular portions of the document with XML structure associated with the permissible data content, the permissible data types, and permissible data structures for the particular portions of the document as defined by the schema, associating with XML elements making up the XML structure a plurality of software components, in the following referred to as solution, needed to provide a functionality to the application, identifying and assembling the solution at a location remote from the document, enabling the application to request the solution to obtain the functionality provided by the plurality of software components upon initiation of editing the document within an XML element associated with the solution, including attaching a solution property storing a solution ID to the document for pointing to the solution, and attaching a solution location including a uniform resource locator URL for the solution to the document for enabling the application to locate the solution at the remote location, attaching a solution property storing a solution ID to the document for pointing to the solution, and attaching a solution location including a uniform resource locator URL for the solution to the document for enabling the application to locate the solution at the remote location, downloading the plurality of software components from the location remote from the document to the application for provision of the functionality.