As facetas possibilitam especificar restrições em um tipo de dados. Utilize facetas para especificar um intervalo válido de valores, especificar a precisão e o comprimento dos valores, definir listas de valores válidos e a correspondência de padrões.
A tabela a seguir lista as facetas que fazem parte da linguagem do Esquema XML:| Aspecto | Definição |
|---|---|
| fractionDigits | O número de dígitos fracionários deve ser menor que, ou igual a, x |
| comprimento | O comprimento do valor deve ser x |
| maxExclusive | O valor deve ser menor que x |
| maxInclusive | O valor deve ser menor que, ou igual a, x |
| maxLength | O comprimento do valor deve ser menor que, ou igual a, x |
| minExclusive | O valor deve ser maior que x |
| minInclusive | O valor deve ser maior que, ou igual a, x |
| minLength | O comprimento do valor deve ser maior que, ou igual a, x |
| pattern | x é uma das expressões comuns que o valor pode corresponder |
| totalDigits | O número de dígitos significativos deve ser menor que, ou igual a, x |
| whitespace | O processador do esquema deve preservar, substituir ou reduzir o espaço em branco, dependendo de x |
A tabela a seguir lista os tipos de dados simples que estão integrados à linguagem do Esquema XML. A tabela também lista as facetas aplicáveis para cada tipo de dados simples. Observe que mesmo que a recomendação W3C especifique a enumeração como uma faceta, a enumeração não será listada na tabela. Para representar uma enumeração, utilize a enumeração UML ou uma classe com o estereótipo «enumeration».
| Tipos de Dados Simples Integrados | Facetas Aplicáveis |
|---|---|
| ENTITY, ID, IDREFS | length, maxLength, pattern |
| Nome | length, maxLength, minLength |
| NCName | length, maxLength, minLength |
| NMTOKEN | length, maxLength, minLength |
| NMTOKENS | length, maxLength |
| NOTATION | length, maxLength, minLength, pattern |
| QNAME | length, maxLength, minLength, pattern |
| anyURI, base64Binary, hexBinary | length, maxLength, minLength, pattern |
| idioma | length, maxLength, minLength |
| float, double | maxExclusive, maxInclusive, minExclusive, minExclusive, pattern |
| decimal | maxExclusive, maxInclusive, minExclusive, minExclusive, fractionDigits, totalDigits, pattern |
| tipos de dados de número inteiro (integer, byte, int, long, negativeInteger, nonNegativeInteger, nonPositiveInteger, positiveInteger, unsignedByte, unsignedInt, unsignedLong,unsignedShort) | maxExclusive, maxInclusive, minExclusive, minExclusive, totalDigits, pattern |
| Tipos de dados de data e hora (date, time, dateTime, gYear,gYearMonth, gMonth, gMonthDay, gDay, duration) | maxExclusive, maxInclusive, minExclusive, minExclusive, pattern |
| string, normalizedString, token | length, maxLength, minLength, pattern |