Строковые типы данных используются для значений, которые содержат символьные строки.
Строковый тип (string)
Строковый тип данных может содержать символы окончания строки, перевода каретки, табуляции и другие символы.
Декларация строковых данных в схеме выглядит следующим образом:
<xs:element name="customer" type="xs:string"/>
Соответствующий элемент в XML документе может выглядеть так:
<customer>John Smith</customer>
Или так:
<customer> John Smith </customer>
Примечание: XML процессор не будет модифицировать значение элемента, если используется тип данных string.
Нормализованная строка (normalizedString)
Нормализованная строка normalizedString является производным от строкового типа данных.
Тип normalizedString также содержит символьные данные, однако XML процессор удалит символы переноса стоки, перевода каретки и символы табуляции.
В схеме элемент с таким типом данных декларируется следующим образом:
<xs:element name="customer" type="xs:normalizedString"/>
В XML документе такой элемент будет выглядеть так:
<customer>John Smith</customer>
Или так:
<customer> John Smith</customer>
При этом в данном примере XML процессор заменит все символы табуляции пробелами.
Символьный тип данных (token)
Символьный тип token также является производным от строкового типа данных.
Значения символьного типа также содержат символьные данные, однако XML процессор удалит символы переноса стоки, перевода каретки, табуляции, начальные и конечные пробелы, а также множественные пробелы.
В схеме элемент с таким типом данных декларируется следующим образом:
<xs:element name="customer" type="xs:token"/>
В XML документе такой элемент будет выглядеть так:
<customer>John Smith</customer>
Или так:
<customer>John Smith </customer>
При этом в данном примере XML процессор удалит все символы табуляции.
Строковые типы данных
Все приведенные в следующей таблице типы являются производными от строкового типа данных (за исключением самого строкового типа string).
Название | Описание |
---|---|
ENTITIES | |
ENTITY | |
ID | Строка, представляющая идентификационный атрибут (используется только с атрибутами схемы) |
IDREF | Строка, представляющая IDREF атрибут (используется только с атрибутами схемы) |
IDREFS | |
language | Строка, содержащая корректный идентификатор языка |
Name | Строка, содержащая корректное XML имя |
NCName | |
NMTOKEN | Строка, представляющая NMTOKEN атрибут (используется только с атрибутами схемы) |
NMTOKENS | |
normalizedString | Строка, которая не содержит символы перевода строки, переноса каретки или табуляции |
QName | |
string | Любая строка |
token | Строка, которая не содержит символы перевода строки, переноса каретки, табуляции, начального и конечного пробелов или множественные пробелы |
Ограничения по строковым типам данных
Со строковыми типами данных можно использовать следующие ограничения:
- enumeration
- length
- maxLength
- minLength
- pattern (NMTOKENS, IDREFS и ENTITIES не могут использовать это ограничение)
- whiteSpace