Service Configuration on the Internet
Many services require a mechanism for allowing users to manage their service configuration. For example, a presence server requires presentities (users) to authorize which watchers can see their presence information. A Push-to-talk over Cellular (PoC) service requires users to create and manage groups. Likewise a conference may require users to configure a dial-out or dial-in list of participants, their privileges (who can speak or who can send or receive which media type), and so on. All of these use cases share many commonalities: a user has to perform non-real-time operations on a server to manipulate one or more documents that configure or personalize their instance of the service.
Usually the user creates a configuration document locally in their terminal and then uploads it to a server. Sometimes, the user just needs to make a small change to an existing document, so it is not worth uploading the complete document. Instead, it is desireable to have the capability to update part of the document. In some other cases the user changes their usual terminal and uses a different one, so they may first need to download a fresh copy of the current configuration document, make some changes, and upload it (either complete or a part of it) to the server.
Typically, configuration documents are highly structured. Owing to this, the trend nowadays is to use the Extensible Markup Language (XML) (specified by the World Wide Web Consortium ...