Допустимые символы в XML
В этой статье описываются и классифицируются символы Юникода , которые могут корректно присутствовать в XML .
XML 1.0
[ редактировать ]Кодовые точки Юникода в следующих диапазонах допустимы в документах XML 1.0: [1]
- U+0009, U+000A, U+000D: это единственные элементы управления C0 , принятые в XML 1.0;
- U+0020–U+D7FF, U+E000–U+FFFD: исключаются некоторые (не все) несимволы в BMP (все суррогаты , U+FFFE и U+FFFF запрещены);
- U+10000–U+10FFFF: сюда входят все кодовые точки в дополнительных плоскостях, включая несимвольные.
Предыдущие диапазоны кодовых точек содержат следующие элементы управления, которые действительны только в определенных контекстах в документах XML 1.0 и использование которых ограничено и крайне не рекомендуется:
- U+007F–U+0084, U+0086–U+009F: сюда входят управляющий символ C0 и все элементы управления C1 , кроме одного .
XML 1.1
[ редактировать ]Кодовые точки Юникода в следующих диапазонах кодовых точек всегда действительны в документах XML 1.1: [2]
- U+0001–U+D7FF, U+E000–U+FFFD: сюда входит большинство управляющих символов C0 и C1, но исключаются некоторые (не все) несимволы в BMP (суррогатные символы, U+FFFE и U+FFFF запрещены). );
- U+10000–U+10FFFF: сюда входят все кодовые точки в дополнительных плоскостях, включая несимвольные.
Предыдущие диапазоны кодовых точек содержат следующие элементы управления, которые действительны только в определенных контекстах в документах XML 1.1 и использование которых ограничено и крайне не рекомендуется:
- U+0001–U+0008, U+000B–U+000C, U+000E–U+001F: сюда входят большинство (не все) управляющие символы C0.
- U+007F–U+0084, U+0086–U+009F: сюда входят управляющие символы C0 и все элементы управления C1, кроме одного.
Персонажи разрешены, но не приветствуются
[ редактировать ]Кроме того, следующие элементы кода, хотя они действительны во всех документах XML 1.0 и XML 1.1, также ограничены и не рекомендуются в обеих версиях XML, поскольку в Unicode и ISO/IEC 10646 они постоянно присваиваются несимволам. Некоторые анализаторы XML могут даже сигнализировать о них как о недопустимых в своем декодере набора символов, а содержащие их XML-документы могут не проходить через некоторые ограниченные интерфейсы или не быть взаимозаменяемыми. Эти несимволы по-прежнему могут быть закодированы в стандартных UTF (например, UTF-8 ), поскольку эти UTF ограничивают только кодовые точки, назначенные суррогатным несимволам:
- U+FDD0–U+FDEF
- U+1FFFE–U+1FFFF, U+2FFFE–U+2FFFF, U+3FFFE–U+3FFFF, U+4FFFE–U+4FFFF, U+5FFFE–U+5FFFF, U+6FFFE–U+6FFFF, U+ 7FFFE –U+7FFFF, U+8FFFE–U+8FFFF, U+9FFFE–U+9FFFF, U+AFFFE–U+AFFFF, U+BFFFE–U+BFFFF, U+CFFFE–U+CFFFF, U+DFFFE– U +DFFFF, U+EFFFE–U+EFFFF, U+FFFFE–U+FFFFF, U+10FFFE–U+10FFFF.
Обратите внимание, что кодовая точка U+0000, присвоенная нулевому управляющему символу, является единственным символом, закодированным в Unicode и ISO/IEC 10646, который всегда недействителен в любом документе XML 1.0 и 1.1.
Напротив, кодовая точка U+0085 является допустимым управляющим символом в Unicode и ISO/IEC 10646, а также в документах XML 1.0 и XML 1.1 (во всех контекстах), и ее использование не препятствует (она рассматривается как пробел во многих контекстах XML или в качестве элемента управления разрывом строки, аналогичного U+000D и U+000A в предварительно отформатированных текстах в некоторых приложениях XML).
Неограниченные персонажи
[ редактировать ]По этим причинам неограниченный репертуар, который можно использовать во всех версиях XML и во всех контекстах (как это разрешено синтаксисом XML), содержит только кодовые точки, которые постоянно присвоены символам (за исключением несимвольных символов) или зарезервированы для возможное будущее кодирование в Unicode и ISO/IEC 10646, а также исключает ограниченный репертуар для лучшей совместимости. Они есть:
- U+0009, U+000A, U+000D: это единственные управляющие символы C0, принятые как в XML 1.0, так и в XML 1.1 (во многих контекстах они рассматриваются как пробелы или разрывы строк);
- U+0020–U+007E: это все неуправляющие символы в блоке базовой латиницы («графическое» подмножество US-ASCII), исключая последний элемент управления C0;
- U+0085: это единственный управляющий символ C1, принятый как в XML 1.0, так и в XML 1.1 (во многих контекстах он рассматривается как пробел или разрыв строки);
- U+00A0–U+D7FF, U+E000–U+FDCF, U+FDF0–U+FFFD: сюда входят все остальные символы в BMP, исключая все несимволы (например, суррогаты);
- U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, U+40000–U+4FFFD, U+50000–U+5FFFD, U+60000–U+6FFFD, U+ 70000–U+7FFFD, U+80000–U+8FFFD, U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, U+C0000–U+CFFFD, U+D0000– U+DFFFD, U+E0000–U+EFFFD, U+F0000–U+FFFFD, U+100000–U+10FFFD: это исключает все несимволы в дополнительных плоскостях.
См. также
[ редактировать ]- Список ссылок на символьные сущности XML и HTML
- Ссылка на сущность персонажа
- Ссылка на числовые символы
- Визуальный список допустимых и недопустимых символов в XML 1.0
Ссылки
[ редактировать ]- ^ «Расширяемый язык разметки (XML) 1.0 (четвертое издание)» . www.w3.org .
- ^ «Расширяемый язык разметки (XML) 1.1 (второе издание)» . www.w3.org .