XML (extensible Markup Language) used for developing future web applications. It is designed to bring a great amount of flexibility and pass around arbitrary data. In web applications, it transports data through the feeds and API calls. XML can be used to frequently configure files for web frameworks.
Pros:
1. Flexible data presentation: Stored data transported through XML can be changed at any time without affecting the presentation of data. XML uses a markup language like HTML for data presentation, once data is updated in the XML, it is reflected in the HTML without making any change to the HTML GUI.
2. Portable: XML is a programming language independent and platform independent thus, it supports any technological changes and is used in any device. It is compatible with Java.
3. Simplify data sharing: Due to its platform independent nature, XML can simplify data sharing between various systems. No need for conversion of data between different systems.
4. Extendable: It allows you to create your own tags or use the tags created by other users. XML uses human-readable language with the attributes you need making it easy to understand.
5. Support Unicode: Unicode is an international encoding standard used with different languages and scripts. Each letter, digit, or symbol is assigned a unique numeric value which can be applied across all platforms and programs. This makes it easy for XML to transmit information written in any human language.
6. Self-documenting formats: XML data formats describe its structure, field names, and the specific values for each data stored. It also represents the common data structures like lists, trees, and records.
7. Usage: XML is heavily used for document storage and processing formats and it supports both online and offline data storage.
8. DTD and Schema validation: XML allows validation of data using DTD and Schema techniques to ensure the data is free from syntax errors. The schema enforces particular structure and form in the XML document.
9. Efficient algorithms: It uses strict syntax and parsing requirements in order to make simple, efficient, and consistent parsing algorithms.
10. Easy to maintain: It is easy to maintain the forward and backward compatibility despite changes in the DTD (Document Type Definition) or the schema.
Cons:
1. Readability index: XML documents are less readable when compared to other text-based data transmission formats.
2. Namespace issues: XML namespaces are difficult to use and cannot be correctly implemented in an XML parser.
3. Data redundancy: Compared to other text-based data transmission formats like JSON, XML syntax is verbose and redundant.
4. Storage cost: The redundancy of data leads to higher storage and transportation cost especially when dealing with large volumes of data. It also affects the efficiency of data.
5. Large file size: The verbose nature of the data structure leads to the creation of a very large XML file size. This large data size can be an issue for some application unless you employ data compression algorithms.
6. No arrays: XML doesn’t support arrays thus, you can’t represent multiple data items of the same type using a single name.
7. Limited hierarchical representation: There is a limited hierarchical model of representation compared to an object-oriented graph.
8. Concrete and non-canonical: XML is very concrete and can introduce strong coupling between the actual representation and processing of the program.
9. Application bridges: No browsers which can read XML and all XML documents are converted to HTML for deployment or representation.
10. Demanding: XML is more demanding and precise compared to HTML. There are too many constraints making it difficult to construct a file.