Обмеження використовуються для того, щоб визначити прийнятні значення для XML елементів або атрибутів. Обмеження по XML елементам ще називають "фасетами".
Обмеження за значенням
У наступному прикладі визначається елемент "age" з обмеженням. У цьому елементі передбачається вказувати вік людини, а вік людини, як відомо, не може бути менше 0 і більше 120:
Обмеження по набору значень
Щоб обмежити вміст XML елемента якимось набором прийнятних значень, слід використовувати обмежувач enumeration.
У наступному прикладі визначається елемент "car" з обмеженням. Його єдині прийнятні значення - Audi, Golf, BMW:
Наведений приклад також можна записати в такий спосіб:
У цьому випадку тип "carType" може бути використаний іншими елементами, так як він не є частиною елемента "car".
Обмеження по серії значень
Щоб обмежити вміст XML елемента серією чисел або букв, слід використовувати обмежувач pattern.
У наступному прикладі визначається елемент "letter" з обмеженням. Його єдиним допустимим значенням може бути ОДНА літера в НИЖНЬОМУ регістрі в діапазоні від "a" до "z":
У наступному прикладі визначається елемент "initials" з обмеженням. Його єдиним допустимим значенням може бути ТРИ букви у верхньому регістрі в діапазоні від "a" до "z":
У наступному прикладі також визначається елемент "initials" з обмеженням. Його єдиним допустимим значенням може бути ТРИ букви в НИЖНЬОМУ АБО верхньому регістрі в діапазоні від "a" до "z":
У наступному прикладі визначається елемент "choice" з обмеженням. Його єдиним допустимим значенням може бути ОДНА літера з трьох: x, y АБО z:
У наступному прикладі визначається елемент "prodid" з обмеженням. Його єдиним допустимим значенням може бути П'ЯТЬ послідовних цифр, і кожна цифра повинна бути в діапазоні від 0 до 9:
Інші обмеження по серії значень
У наступному прикладі визначається елемент "letter" з обмеженням. Його допустимим значенням є нуль або більше букв в нижньому регістрі в діапазоні від a до z:
У наступному прикладі також визначається елемент "letter" з обмеженням. Його прийнятним значенням буде одна або більше пара букв, при цьому кожна пара повинна містити букву в нижньому регістрі, за якою слідує буква у верхньому регістрі. Наприклад, "sToP" буде відповідати даному шаблоном, а "Stop" або "STOP" або "stop" немає:
У наступному прикладі визначається елемент "gender" з обмеженням. Його прийнятним значенням буде тільки рядок "male" АБО "female":
У наступному прикладі визначається елемент "password" з обмеженням. Його значенням повинна бути рядок з 8 символів, і цими символами можуть бути літери в нижньому або верхньому регістрі від a до z, або цифри від 0 до 9:
Обмеження по пробільним символам
Щоб визначити, як будуть сприйматися пробільні символи, використовується обмежувач whiteSpace.
У наступному прикладі визначається елемент "address" з обмеженням. Обмежувач whiteSpace встановлений в значення "preserve", що вказує XML парсеру НЕ видаляти ніякі пробільні символи:
У наступному прикладі також визначається елемент "address" з обмеженням. Обмежувач whiteSpace встановлений в значення "replace", що вказує XML парсеру ЗАМІНИТИ все пробільні символи (символи табуляції, пробілу, кінця рядка і перекладу каретки) символами пробілу:
У наступному прикладі також визначається елемент "address" з обмеженням. Обмежувач whiteSpace встановлений в значення "collapse", що вказує XML парсеру ВИДАЛИТИ все пробільні символи (символи табуляції, пробілу, кінця рядка і перекладу каретки і кінцевого пробілу видаляються, а множинні прогалини замінюються на одинарний пробіл):
Обмеження по довжині
Щоб обмежити довжину значення елемента, слід використовувати обмежувачі length. maxLength і minLength.
У наступному прикладі визначається елемент "password" з обмеженням. Довжина його значення має бути точно 8 символів:
У наступному прикладі визначається інший елемент "password" з обмеженням. Довжина його значення має бути мінімум 5 і максимум 8 символів: