Charts

You are given the following description of a software system:

Charts

A user wants to generate charts of different types and formats. The type of charts include bar charts and pie charts. The input data will be in XML or CSV (Comma-Separated Values) formats. There are also many output formats of the charts, including SVG (Scalable Vector Graphics) and jpeg.

As an example, a user may request to create a bar chart in SVG format from their XML data.

For efficiency reasons, a user may request multiple charts and multiple output formats in a single, e.g., a request for both a bar chart and a pie chart of the same data. In this case, it would allow the input data to be loaded only once.

Create a set of C++ classes that can be used to implement this program. This will express the high-level design of the program.