Поделиться через


Кодирование и декодирование имен элементов и атрибутов XML, а также значений идентификаторов

Имена элементов и атрибутов или значения идентификаторов ограничены диапазоном символов XML в соответствии с рекомендацией консорциума W3C XML 1.0 (четвертый выпуск).Имена, содержащие недопустимые символы, преобразуются в допустимые XML-имена с помощью методов кодирования и декодирования.

Многие языки и приложения (например, Microsoft SQL Server и Microsoft Office Word) допускают использование в именах символов Юникода, которые недопустимы в XML-именах.Например, если «Order Detail» — заголовок столбца в базе данных, между словами «Order» и «Detail» допускается пробел. Однако в XML пробел между этими словами будет сочтен недопустимым для XML символом.Поэтому недопустимый символ пробела нужно преобразовать в экранированную шестнадцатеричную кодировку, а впоследствии его можно будет раскодировать.

По умолчанию класс XmlTextWriter не выполняет проверку символов.Например, код WriteElementString("Order Detail", "My order"), создает недопустимый элемент <Order Detail>My order</Order Detail>.

Значение элемента нужно закодировать в правильной кодировке writer.WriteElementString(XmlConvert.EncodeName("Order Detail"), "My order"), тогда будет создан допустимый элемент <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

См. также

Основные понятия

Преобразование типов XML-данных