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


Функция WsStartReaderCanonicalization (webservices.h)

Эта операция начинает процесс помещения указанного средства чтения XML в стандартную или канонизированную форму.

Шаблон использования для канонизации:

  • Переместите средство чтения в элемент, с которого начинается канонизация.
  • Вызовите WsStartReaderCanonicalization.
  • Переместите средство чтения вперед в конечное положение.
  • Вызовите WsEndReaderCanonicalization.
Во время этого процесса канонические байты записываются в указанный параметр writeCallback.
Примечание Расширенные узлы канонизируются, включая узлы дочерних элементов, пропущенные с помощью WsSkipNode. Это полезно, так как это означает, что канонизация и синтаксический анализ могут выполняться за один проход по XML-содержимому независимо от того, какие функции используются для чтения данных.
 

Чтобы использовать средство чтения XML исключительно для канонизации узла элемента XML, приложение может вызывать WsStartReaderCanonicalization, WsSkipNode и WsEndReaderCanonicalization , когда средство чтения расположено в элементе .

Необходимо вызвать WsEndReaderCanonicalization , чтобы обеспечить запись всех канонических байтов в указанный обратный вызов.

ПримечаниеWsEndReaderCanonicalization должен вызываться на той же глубине, на которой выполняется WsStartReaderCanonicalization. Другие функции чтения возвращают ошибку при перемещении на глубину ниже, чем там, где был вызван WsStartReaderCanonicalization . d
 

Недопустимо вызывать WsMoveReader или WsSetReaderPosition в средстве чтения между вызовами WsStartReaderCanonicalization и WsEndReaderCanonicalization.

Синтаксис

HRESULT WsStartReaderCanonicalization(
  [in]           WS_XML_READER                          *reader,
  [in]           WS_WRITE_CALLBACK                      writeCallback,
  [in]           void                                   *writeCallbackState,
                 const WS_XML_CANONICALIZATION_PROPERTY *properties,
  [in]           ULONG                                  propertyCount,
  [in, optional] WS_ERROR                               *error
);

Параметры

[in] reader

Указатель на объект WS_XML_READER , с которого начинается канонизация. Указатель должен ссылаться на допустимый объект средства чтения XML .

[in] writeCallback

Функция обратного вызова, вызываемая для записи канонических байтов по мере их создания.

Примечание Этот обратный вызов вызывается синхронно.

 

[in] writeCallbackState

Указатель на состояние, определенное вызывающим, которое передается при вызове WS_WRITE_CALLBACK.

properties

Ссылка на "массив" на необязательные свойства, управляющие способом канонизации.

Примечание Дополнительные сведения см. в разделе WS_XML_CANONICALIZATION_PROPERTY .

 

[in] propertyCount

Количество свойств.

[in, optional] error

Указатель на объект WS_ERROR , в котором должны храниться дополнительные сведения об ошибке в случае сбоя функции.

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
E_INVALIDARG
Один или несколько аргументов недопустимы.
WS_E_INVALID_OPERATION
Операция не разрешена из-за текущего состояния объекта .
WS_E_INVALID_FORMAT
Входные данные не были в ожидаемом формате или не имели ожидаемого значения.

Комментарии

Вызовы этой функции не могут быть вложенными. Следовательно, за вызовом WsStartReaderCanonicalization должен следовать вызов WsEndReaderCanonicalization , прежде чем можно будет выполнить следующий вызов WsStartReaderCanonicalization .

Если WS_XML_CANONICALIZATION_ALGORITHM не указан , используется WS_EXCLUSIVE_XML_CANONICALIZATION_ALGORITHM .

Алгоритмы WS_INCLUSIVE_XML_CANONICALIZATION_ALGORITHM и WS_INCLUSIVE_WITH_COMMENTS_XML_CANONICALIZATION_ALGORITHM могут использоваться только со всеми XML-документами. Средство чтения должно находиться в WS_XML_NODE_TYPE_BOF при вызове WsStartReaderCanonicalization с помощью этих алгоритмов.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header webservices.h
Библиотека WebServices.lib
DLL WebServices.dll