Share via


ISAXXMLReader::parse Method (Compact 2013)

3/26/2014

This method parses an XML document.

Syntax

HRESULT parse(
  VARIANT varInput
);

Parameters

  • varInput
    [in] Variant containing the input source to parse from. See Remarks for supported VARIANT types.

Return Value

  • S_OK
    Returned if parsing is successful.
  • E_INVALIDARG
    Returned if varInput is not a recognized input source.
  • Other
    Parser error code or the code returned by the custom error handler.

Remarks

The application can use this method to instruct the reader to begin parsing a document from a variety of sources. Supported VARIANT types are VT_BSTR, SafeArray of bytes (VT_ARRAYVT_UI1), VT_UNK(IStream), and VT_UNK(ISequentialStream). One-level referencing is also permitted.

   VT_BYREF | VT_VARIANT d
   VT_BYREF | VT_VARIANT -> VT_BSTR
   VT_BYREF | VT_VARIANT -> IStream
   VT_BYREF | VT_VARIANT -> VT_ARRAY|VT_UI1

An application cannot invoke this method while parsing is in progress. Instead, it should create a new instance of the reader for each nested XML document. After parsing is complete, an application can reuse the same reader object, possibly with a different input source.

While parsing, the reader provides information about the XML document through the registered event handlers. If an error occurs during parsing, the reader calls the appropriate method of the ISAXErrorHandler interface. If the error handler returns anything but S_OK, parsing is aborted and the parse method returns the internal error that stopped the parser. Note that the error handler always returns the internal error code, even if the error handler returns a user-defined HRESULT to the parse method. The reader can return a number of return codes, including, but not limited to E_ACCESSDENIED, INET_E_OBJECT_NOT_FOUND, INET_E_DOWNLOAD_FAILURE, MSG_E_BADSTARTNAMECHAR, or MSG_E_MISSINGSEMICOLON.

Requirements

Header

msxml2.h,
msxml2.idl

Library

uuid.lib

See Also

Reference

ISAXXMLReader
ISAXXMLReader::putEntityResolver Method
ISAXXMLReader::putDTDHandler Method
ISAXXMLReader::putContentHandler Method
ISAXXMLReader::putErrorHandler Method