Схемы XML требуются для того, чтобы передавать в компьютер структуру типа XML-документа. Рассмотрим следующие два фрагмента XML-кода:
<vehicle name='Harley Davidson' type='motorcycle'>
<wheel name='Front Tire'/>
<wheel name='Rear Tire'/>
<HeadLight name='Front Lamp' />
<kickstand/>
</vehicle>
<vehicle name='Mitsubishi 3000 GT' type='motorcycle'>
<wheel name='Front Right Tire'>
<wheel name='Front Left Tire'>
<wheel name='Rear Right Tire'>
<wheel name='Rear Left Tire'>
<HeadLight name='Front Right lamp'>
<HeadLight name='Front Left lamp'>
<SunRoof/>
</vehicle>
Любой человек может легко понять эти два XML-примера, проанализировав слова, которые используются для описания их компонентов. Он также может проверить, соответствуют ли эти документы набору правил, определяющих, как могут использоваться элементы vehicle. Например, очевидно, что следующий XML-документ является недопустимым:
<vehicle name='Harley Davidson' type='motorcycle'>
<wheel name='Front Tire'/>
<SunRoof/>
</vehicle>
Совершенно понятно, что у обычного мотоцикла (motorcycle) - два колеса и нет крыши с люком (sunroof). Тем не менее, для части программной логики необходима схема XML, по которой проверяется допустимость конкретного XML-документа.
Проверка допустимости - ключевой этап предполагаемой и эффективной обработки реальных XML-документов. Знание структуры XML-документа избавляет разработчика от необходимости вводить в приложение дополнительную логику. Как только становится известно, что документ принадлежит определенному классу, можно сделать ряд предположений о его структуре.