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


перечисление WS_XML_WRITER_PROPERTY_ID (webservices.h)

Каждое свойство модуля записи XML идентифицируется идентификатором и имеет связанное значение. Это перечисление используется в структуре WS_XML_WRITER_PROPERTY , которая используется в качестве параметра для WsCreateWriter, WsSetOutput, WsSetOutputToBuffer и WsWriteXmlBufferToBytes. Он также используется непосредственно в качестве параметра для WsGetWriterProperty.

Синтаксис

typedef enum {
  WS_XML_WRITER_PROPERTY_MAX_DEPTH = 0,
  WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT = 1,
  WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES = 2,
  WS_XML_WRITER_PROPERTY_WRITE_DECLARATION = 3,
  WS_XML_WRITER_PROPERTY_INDENT = 4,
  WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE = 5,
  WS_XML_WRITER_PROPERTY_CHARSET = 6,
  WS_XML_WRITER_PROPERTY_BUFFERS = 7,
  WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE = 8,
  WS_XML_WRITER_PROPERTY_BYTES = 9,
  WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE = 10,
  WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE = 11,
  WS_XML_WRITER_PROPERTY_INITIAL_BUFFER = 12,
  WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES = 13,
  WS_XML_WRITER_PROPERTY_MAX_NAMESPACES = 14,
  WS_XML_WRITER_PROPERTY_BYTES_WRITTEN = 15,
  WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE = 16,
  WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS = 17,
  WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS = 18
} WS_XML_WRITER_PROPERTY_ID;

Константы

 
WS_XML_WRITER_PROPERTY_MAX_DEPTH
Значение: 0
Значение ULONG, указывающее максимальную глубину документа, разрешенную модулем записи.


Глубина измеряется в любой точке по количеству вложенных начальных элементов.


Глубина 0 предотвращает запись начальных элементов.


Это свойство по умолчанию — 32.
WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT
Значение: 1
Структура WS_XML_WRITER_MTOM_ENCODING , указывающая, будет ли модуль записи разрешать несколько элементов и пробелов на верхнем уровне документа. Это свойство
Для WS_XML_WRITER_MTOM_ENCODING может не быть задано значение TRUE.


Это свойство по умолчанию имеет значение FALSE.
WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES
Значение: 2
ULONG, указывающий
максимальное количество атрибутов, разрешенных модулем записи для элемента.


Это свойство по умолчанию — 128.
WS_XML_WRITER_PROPERTY_WRITE_DECLARATION
Значение: 3
Значение ТИПА BOOL , указывающее, должен ли модуль записи выдавать соответствующее xml-объявление в начале документа.


Это свойство по умолчанию имеет значение FALSE.
WS_XML_WRITER_PROPERTY_INDENT
Значение: 4
Значение ULONG, указывающее, сколько пробелов отступа должно использоваться для форматирования xml. Если отступ равен нулю, форматирование не происходит.


Это свойство по умолчанию — 0.
WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE
Значение: 5
Значение ULONG, указывающее одно из следующих элементов.

Если модуль записи использует WS_XML_WRITER_BUFFER_OUTPUT, это свойство является максимальным числом байтов.
модуль записи будет храниться в вызовах WsSetOutput для буферизации выходных данных.


Если модуль записи использует WS_XML_WRITER_STREAM_OUTPUT, это свойство является максимальным числом байтов.
модуль записи будет сохраняться в вызовах WsSetOutput и WsFlushWriter для
назначение буферизации выходных данных.


Это свойство не действует при указании wsSetOutputToBuffer.


Это свойство по умолчанию — 4096.
WS_XML_WRITER_PROPERTY_CHARSET
Значение: 6
Значение WS_CHARSET,
возвращает набор символов, который модуль записи использует для кодирования документа. Это значение доступно только для
текстовые документы.
WS_XML_WRITER_PROPERTY_BUFFERS
Значение: 7
Структура WS_BUFFERS
возвращает набор буферов, содержащих созданные xml-байты.


Если модуль записи использует WS_XML_WRITER_BUFFER_OUTPUT, возвращаются все созданные байты.
буферы действительны до вызова WsSetOutput или WsFreeWriter .


Если модуль записи использует WS_XML_WRITER_MTOM_ENCODING, то открытых элементов не должно быть.
Вспомогательные части MIME будут созданы и включены в возвращаемые буферы. После этого
любой API, который пытается записать в xml-документ, возвращает WS_E_INVALID_OPERATION.
(См. раздел Возвращаемые значения веб-служб Windows.)

Это свойство недоступно при использовании WS_XML_WRITER_STREAM_OUTPUT.


Это свойство недоступно для модуля записи, для WS_XML_BUFFER.


Это может быть менее удобным, но более эффективным, чем использование WS_XML_WRITER_PROPERTY_BYTES потому что
Модуль записи не должен сцеплять буферы, составляющие документ, в один буфер.
WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE
Значение: 8
ULONG,
задает максимальное число байтов, которые модуль записи будет буферистить.


Если модуль записи использует WS_XML_WRITER_BUFFER_OUTPUT, это максимальное число
байты, которые будут помещены в буфер для всего документа. Вызовы WsFlushWriter не оказывают никакого влияния.


Если модуль записи использует WS_XML_WRITER_STREAM_OUTPUT, это максимальное значение
данные, которые будут помещены в буфер между вызовами WsFlushWriter .


Это свойство не действует при указании wsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES
Значение: 9
Структура WS_BUFFERS
возвращает один буфер, содержащий созданные xml-байты.


Если модуль записи использует WS_XML_WRITER_BUFFER_OUTPUT, возвращаются все созданные байты, и
буфер действителен до вызова WsSetOutput или WsFreeWriter .


Если модуль записи использует WS_XML_WRITER_MTOM_ENCODING, то открытых элементов не должно быть.
Вспомогательные части MIME будут созданы и включены в возвращаемые буферы. После этого
любой API, который пытается записать в xml-документ, возвращает WS_E_INVALID_OPERATION.


Это свойство недоступно при использовании WS_XML_WRITER_STREAM_OUTPUT.


Это свойство недоступно для модуля записи, для WS_XML_BUFFER.


Это может быть более удобным, но менее эффективным, чем использование WS_XML_WRITER_PROPERTY_BUFFERS , так как
Может потребоваться сцепить буферы, составляющие документ, в один буфер.
WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE
Значение: 10
ЛОГИЧЕСКОЕ ЗНАЧЕНИЕ, которое
указывает, что был вызван WsWriteStartAttribute , а модуль записи —
позиционируется в содержимом атрибута.
WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE
Значение: 11
ULONG, используемый с WS_XML_WRITER_MTOM_ENCODING. Указывает максимальный объем данных,
будет помещена в буфер для записи частей MIME. WsWriteBytes и
WsPullBytes необходимо буферировать данные, чтобы выдавать данные в виде отдельной части MIME, которая
следует документу, и его можно использовать для ограничения объема буферизации.


Это свойство по умолчанию — 65536.
WS_XML_WRITER_PROPERTY_INITIAL_BUFFER
Значение: 12
Структура WS_BYTES , содержащая буфер, который модуль записи может использовать для кодирования xml-документа. Это
полезно, если известна верхняя граница размера созданных xml-данных или вызывающий объект хочет владеть
буфер, в котором размещаются байты.


Если указанный размер больше или равен WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE, то
Модуль записи не выделяется из своих внутренних буферов.


Этот буфер может отображаться как один из буферов, возвращаемых свойством WS_XML_WRITER_PROPERTY_BUFFERS или WS_XML_WRITER_PROPERTY_BYTES.


Вызывающий объект должен убедиться, что указанный буфер действителен в течение времени существования модуля записи.
WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES
Значение: 13
ЛОГИЧЕСКОЕ ЗНАЧЕНИЕ, используемое с WS_XML_WRITER_TEXT_ENCODING. Если задать значение TRUE , ссылки на символы разрешены.
символов, которые считаются недопустимыми в XML 1.0 для принятия.


Установка для этого свойства значения TRUE может повлиять на взаимодействие.


Это свойство по умолчанию имеет значение FALSE.
WS_XML_WRITER_PROPERTY_MAX_NAMESPACES
Значение: 14
ULONG, указывающее максимальное число уникальных объявлений xmlns, которые могут отображаться в область в любой момент.
при написании документа.


Это свойство по умолчанию — 32.
WS_XML_WRITER_PROPERTY_BYTES_WRITTEN
Значение: 15
Значение ULONG, указывающее одно из следующих элементов.

Если модуль записи использует WS_XML_WRITER_BUFFER_OUTPUT, то это свойство
возвращает число байтов, записанных в модуль записи.


Если модуль записи использует WS_XML_WRITER_STREAM_OUTPUT, то это свойство
возвращает количество байтов, записанных в модуль записи с момента последнего вызова
WsFlushWriter.


Если модуль записи в настоящее время записывает начальный тег элемента, размер начального тега не включается в
возвращаемое значение.


Это свойство недоступно для модуля записи, заданного с помощью WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE
Значение: 16
ULONG, возвращающее максимальное количество байтов, необходимое для закрытия всех открытых элементов.


Приложение может использовать WS_XML_WRITER_PROPERTY_BYTES_WRITTEN и
WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE приблизительное количество дополнительных
данные могут быть записаны в документ. При этом приложение должно учитывать
кодировка записываемого документа.


Это свойство недоступно для модуля записи, заданного с помощью WsSetOutputToBuffer.
WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS
Значение: 17
BoOL, который определяет, как WsCopyNode копирует элементы без содержимого.


Если для этого свойства задано значение FALSE, WsCopyNode сохраняет, представлен ли каждый элемент.
как пара тегов start/end или как пустой элемент. Если для этого свойства задано значение TRUE, WsCopyNode будет
преобразование элементов без содержимого в пустые элементы.


Двоичное кодирование не поддерживает пустые элементы. При использовании WsCopyNode с
модуль записи, использующий двоичное кодирование этого свойства, ни в коем случае не оказывает никакого влияния. Все пустые элементы являются
преобразуется в элементы без содержимого.


По умолчанию это свойство имеет значение FALSE.


Для входной СТРОКИ XML, например:



syntax<br><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;container&gt;<br> &lt;emptyElement /&gt;<br> &lt;emptyElementWithEndTag&gt;&lt;/emptyElementWithEndTag&gt;<br>&lt;/container&gt;<br>

Если это свойство имеет значение FALSE, WsCopyNode создаст следующий xml:




syntax<br><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;container&gt;<br> &lt;emptyElement /&gt;<br> &lt;emptyElementWithEndTag&gt;&lt;/emptyElementWithEndTag&gt;<br>&lt;/container&gt;<br>

Если это свойство имеет значение TRUE, WsCopyNode создаст следующий xml:



syntax<br><br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;container&gt;<br> &lt;emptyElement /&gt;<br> &lt;emptyElementWithEndTag /&gt;<br>&lt;/container&gt;<br>
WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS
Значение: 18
Windows 8 или более поздней версии: логический код, определяющий способ выдачи пустых элементов.

Если задано значение FALSE, элемент, созданный только вызовами WsWriteStartElement и WsWriteEndElement , будет выдаваться следующим образом:


syntax<br>&lt;emptyElement /&gt;<br>

Если задано значение TRUE, этот элемент будет выдаваться следующим образом:


xml<br><emptyElement></emptyElement><br><br>


Значение по умолчанию — FALSE.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Верхняя часть webservices.h