[#BloombergLP-balxml-Reader-open-09] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balxml.adoc[balxml]::xref:BloombergLP/balxml/Reader.adoc[Reader]::open :relfileprefix: ../../../ :mrdocs: Set up the reader for parsing the XML data in the specified `buffer`. == Synopsis Declared in `<balxml_reader.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual int open( char const* buffer, std::size_t size, char const* url = 0, char const* encoding = 0) = 0; ---- == Description The buffer has the specified `size`. Set the base URL to the optionally specified `url` and set the encoding value to the optionally specified `encoding` ("ASCII", "UTF‐8", etc). Return 0 on success and non‐zero otherwise. If `url` is null or a blank string is passed, then base URL will be empty. The encoding passed to `Reader::open` will take effect only when there is no encoding information in the original document, i.e., the encoding information obtained from the (XML) `buffer` trumps all. If there is no encoding provided within the document and `encoding` is null or a blank string is passed, then set the encoding to the default "UTF‐8". It is an error to `open` a reader that is already open. Note that the reader will not be on a valid node until `advanceToNextNode` is called. == Return Value 0 on success and non‐zero otherwise == Parameters [cols="1,4"] |=== | Name| Description | *buffer* | memory containing the XML document | *size* | number of bytes in `buffer` | *url* | optional base URL for the document | *encoding* | optional document encoding override |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#