XML схемы описывают структуру XML документа. Для этого используются определенные ключевые элементы, работающие как кирпичики, из которых и складывается эта самая структура XML документа. При помощи приведенных здесь элементов можно описать любой XML элемент. Подробнее о XML схемах можно прочитать в учебнике по XML схемам.
XSD элементы
| all | Устанавливает, что дочерние элементы могут появляться в любом порядке. Каждый дочерний элемент может быть определен ноль или больше раз | 
| annotation | Элемент наивысшего уровня, определяющий комментарии схемы | 
| any | Позволяет расширять XML документ элементами, не определенными схемой | 
| anyAttribute | Позволяет расширять XML документ атрибутами, не определенными схемой | 
| appinfo | Определяет информацию, которая будет использоваться приложением | 
| attribute | Определяет атрибут | 
| attributeGroup | Используется для группирования набора деклараций атрибутов | 
| choice | Позволяет только одному из элементов, определенных в декларации <choice>, присутствовать внутри элемента-контейнера | 
| complexContent | Определяет расширения или ограничения для сложного типа, который содержит только смешанный контент или элементы | 
| complexType | Определяет сложный тип | 
| documentation | Используется для текстовых комментариев в схеме | 
| element | Определяет элемент | 
| extension | Расширяет существующий элемент simpleType или complexType | 
| field | Задает выражение XPath, которое устанавливает значение, используемое для определения идентификационного ограничения | 
| group | Используется, чтобы определить группу элементов для использования в определениях сложных типов | 
| import | Используется, чтобы добавлять в документ другие схемы с разными пространствами имен | 
| include | Используется, чтобы добавлять в документ другие схемы с одинаковыми целевыми пространствами имен | 
| key | Определяет значение атрибута или элемента, как ключ внутри элемента-контейнера | 
| keyref | Определяет, что значение атрибута или элемента соответствует значению указанного элемента key и unique | 
| list | Определяет элемент простого типа, как список значений заданного типа данных | 
| notation | Описывает формат не-XML данных в XML документе | 
| redefine | Переопределяет простые и сложные типы, группы элементов и атрибутов из внешней схемы | 
| restriction | Определяет ограничения для элементов simpleType, simpleContent и complexContent | 
| schema | Определяет корневой элемент XML схемы | 
| selector | Определяет выражение XPath, отбирающее набор элементов для идентификационного ограничения | 
| sequence | Определяет, что дочерние элементы должны появляться в последовательности | 
| simpleContent | Определяет расширения или ограничения для текстового сложного типа или простого типа, который не содержит элементы | 
| simpleType | Определяет простой тип | 
| union | Определяет элемент простого типа, как коллекцию (набор) значений заданного типа данных | 
| unique | Определяет, что значение атрибута или элемента должно быть уникальным в данной области видимости  | 
XSD ограничители/фасеты для типов данных
О применении XSD ограничителей!
| Ограничитель | Описание | 
|---|---|
| enumeration | Определяет список приемлемых значений | 
| fractionDigits | Определяет максимальное число знаков после десятичной запятой. Должно быть равно или больше нуля | 
| length | Определяет точное число символов или объектов списка. Должно быть равно или больше нуля | 
| maxExclusive | Определяет верхнюю границу для числовых значений (значение должно быть меньше указанного здесь) | 
| maxInclusive | Определяет верхнюю границу для числовых значений (значение должно быть меньше или равно указанному здесь) | 
| maxLength | Определяет максимальное число символов или объектов списка. Должно быть равно или больше нуля | 
| minExclusive | Определяет нижнюю границу для числовых значений (значение должно быть больше указанного здесь) | 
| minInclusive | Определяет нижнюю границу для числовых значений (значение должно быть больше или равно указанному здесь) | 
| minLength | Определяет минимальное число символов или объектов списка. Должно быть равно или больше нуля | 
| pattern | Определяет точную последовательность приемлемых символов | 
| totalDigits | Определяет точное количество допустимых цифр. Должно быть больше нуля | 
| whiteSpace | Определяет способ обработки пробельных символов |