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


Класс System.Xml.XmlConvert

Замечание

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Класс XmlConvert функционально эквивалентен классу Convert , но поддерживает XML-стандарты. Система типов основана на языке определения схем XML (XSD), а возвращаемые значения всегда являются независимыми от региональных настроек.

Кодировка и декодирование

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

Например, если вы хотите использовать заголовок столбца "Детали заказа" в базе данных, база данных допускает пробел между двумя словами. Однако в XML пространство между "Order" и "Detail" считается недопустимым XML-символом. Его необходимо преобразовать в шестнадцатеричное кодирование и декодировать его позже.

Метод можно использовать с классом EncodeNameXmlWriter , чтобы убедиться, что имена, записанные, являются допустимыми XML-именами. Следующий код C# преобразует имя Order Detail в допустимое XML-имя и записывает элемент <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");

XmlConvert Следующие методы выполняют кодировку и декодирование.

Метод Описание
EncodeName Принимает имя и возвращает закодированное имя вместе с любым недопустимым символом, заменяемым escape-строкой. Этот метод позволяет, чтобы двоеточия могли находиться в любой позиции, что означает, что имя по-прежнему может быть недопустимым в соответствии с рекомендацией W3C Namespaces в XML 1.0.
EncodeNmToken Принимает имя и возвращает закодированное имя.
EncodeLocalName EncodeName То же самое, за исключением того, что он также кодирует символ двоеточия, гарантируя, что имя может быть использовано в качестве LocalName части имени пространства имен.
DecodeName Отменяет преобразование для всех методов кодирования.

Проверка имени

Класс XmlConvert содержит два метода, которые проверяют символы в имени элемента или атрибута и проверяют соответствие имени правилам, заданным рекомендацией W3C XML 1.0:

  • VerifyName проверяет символы и проверяет, является ли имя допустимым. Метод возвращает имя, если оно допустимо, и вызывает исключение, если это не так.
  • VerifyNCName выполняет ту же проверку, но принимает неквалифицированные имена.

Он XmlConvert содержит дополнительные методы, которые проверяют маркеры, символы пробелов, общедоступные идентификаторы и другие строки.

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

XmlConvert также предоставляет методы, позволяющие преобразовать данные из строки в строго типизированный тип данных. Например, ToDateTime метод преобразует строку в его DateTime эквивалент. Это полезно, так как большинство методов в XmlReader классе возвращают данные в виде строки. После чтения данных его можно преобразовать в правильный тип данных перед использованием. Перегрузки ToString обеспечивают дополнительную операцию путем преобразования строго типизированных данных в строки. Например, это полезно при добавлении данных в текстовые поля на веб-странице. Параметры локальных настроек не учитываются во время преобразования данных. Типы данных основаны на типах данных СХЕМЫ XML (XSD).