As mentioned in the XML background (new window), XML can be used for the presentation, communication, and storage of data. This webpage provides an overview of the XML processing to accomplish this.
The figure below illustrates transforming the contents of files, messages, or data from one format to another. Note that the input and output options are the same. This is meant to illustrate that the transformation can be from some non-XML format to XML, from XML to some non-XML format, from some non-XML format to another non-XML format, or from one XML vocabulary to another XML vocabulary. Nevertheless, since this website emphasizes the use of XML in service-oriented architectures, some XML format or message that uses XML will most likely be on one end fo the transformation or the other. This is why it is called "XML processing."

There are many ways to accomplish the transformation. You could use custom programming, a tool that generates code, or a specialized scripting language. More information on some options can be found in the XML resources under the related content heading below.
The basic process is to acquire the input, transform the input, and then render the output in the desired format.
The next figure places XML processing in the context of Web Services and a service-oriented architecture (SOA) (new window). The large shared box near the top represents a service that provides or consumes SOAP (new window) or REST (new window) messages. Note that to provide a message, the service will need to take in possibly multiple inputs, transform those inputs, and render a message. Conversely, the service will need to take in a message, transform the XML in the message into possibly multiple outputs, and then render those outputs. The latter is shown at the right of the large shaded box.

Adapters are also shown in this figure using the smaller shaded boxes. Each adapter will need to deal with some non-XML format. It will need to use that non-XML format as input and then transform and render it as XML to be used by the service at the top of the figure. Conversely, the adapter will need to take XML as input from the service and then tranform and render it to some non-XML format. More on adapters (new window).
This figure shows the service and adapters as separate entities in the architecture. Of course, the service and the adapters and all the XML processing could be written as one program. It depends on how you structure your architecture.
More on the general topic: XML standards and vocabularies


