CDATA: (Unparsed Character data): CDATA contains the text which is not parsed further in an XML document. Tags inside the CDATA text are not treated as markup and entities will not be expanded.
Let's take an example for CDATA:
<?xml version="1.0"?> <!DOCTYPE employee SYSTEM "employee.dtd"> <employee> <![CDATA[ <firstname>vimal</firstname> <lastname>jaiswal</lastname> <email>vimal@rookienerd.com</email> ]]> </employee>
In the above CDATA example, CDATA is used just after the element employee to make the data/text unparsed, so it will give the value of employee:
PCDATA: (Parsed Character Data): XML parsers are used to parse all the text in an XML document. PCDATA stands for Parsed Character data. PCDATA is the text that will be parsed by a parser. Tags inside the PCDATA will be treated as markup and entities will be expanded.
In other words you can say that a parsed character data means the XML parser examine the data and ensure that it doesn't content entity if it contains that will be replaced.
Let's take an example:
<?xml version="1.0"?> <!DOCTYPE employee SYSTEM "employee.dtd"> <employee> <firstname>vimal</firstname> <lastname>jaiswal</lastname> <email>vimal@rookienerd.com</email> </employee>
In the above example, the employee element contains 3 more elements 'firstname', 'lastname', and 'email', so it parses further to get the data/text of firstname, lastname and email to give the value of employee as: