Весь текст XML-документа можно грубо разделить на две категории, символьные данные и разметку. К разметке (markup) относится все, что начинается с символа < и заканчивается символом > или начинается с символа & и заканчивается парой символов &;. Символьные данные (character data) — это все, что не является разметкой. Символьные данные можно подразделить еще на две категории: проверенные символьные данные (Parsed Character DATA, PCDATA) и непроверенные символьные данные (unparsed character data). Как следует из названия, данные PCDATA — это данные, проверенные анализатором XML.
В листинге 1.3 показан пример правильно оформленного документа XML [Beverage — напиток, manufacturer — производитель, nutntion_facts servmg_size= "1 can' — содержание питательных веществ в одной бутылке, calories — калории, amount unit="g" — количество в граммах, fat — жиры, sodium — натрий, carb — углеводы, protein — белки — Примеч перев ]:
Листинг 1.3. Правильно оформленный документ XML
<?xml version="1.0" standalone="yes"?>
<beverage>
<name>Вода в бутылках</name>
<manufacturer>
<name>Напитки высшего качества</name>
<url href = "http.//www.extragoodbev com"/>
</manufacturer>
<nutrition_facts serving_size="1 can">
<calories>
<amount unit="g">0</amount>
</calones>
<fat>
<amount umt="g">0</amount>
</fat>
<sodium>
<amount unit="g">0</amount>
</sodium>
<carb>
<amount unit="g">0</amount>
</carb>
<protein>
<amount umt="g">0</amount>
</protein>
</nutntion_facts>
</beverage>
В первую очередь в этом листинге следует отметить, что в объявлении XML присутствует атрибут standalone="yes". Это означает, что в данном документе нет определения DTD. Наличие DTD в документах XML не является обязательным. Фактически приложения, в которых задействованы данные XML, часто не включают DTD в целях повышения эффективности в тех случаях, когда структура документа и возможность его многократного использования не являются важными факторами.