DCMTK Version 3.7.0 OFFIS DICOM Toolkit

Public Member Functions | Static Public Member Functions | List of all members
XMLParserBase64Tool Struct Reference
The XML parser » Helper class to include binary data inside XML strings using "Base64 encoding".

Helper class to include binary data inside XML strings using "Base64 encoding". More...

## Public Member Functions
void | freeBuffer ()
| Call this function when you have finished using this object to release memory used by the internal buffer.
XMLSTR | encode (const unsigned char *inByteBuf, unsigned int inByteLen, char formatted=0)
| The "base64Encode" function returns a string containing the base64 encoding of "inByteLen" bytes from "inByteBuf". More...
unsigned char * | decode (XMLCSTR inString, int *outByteLen=NULL, XMLError *xe=NULL)
| The "decode" function returns a pointer to a buffer containing the binary data decoded from "inString" The output buffer will be free'd when the XMLParserBase64Tool object is deleted. More...

## Static Public Member Functions
static int | encodeLength (int inBufLen, char formatted=0)
| return the length of the base64 string that encodes a data buffer of size inBufLen bytes. More...
static unsigned int | decodeSize (XMLCSTR inString, XMLError *xe=NULL)
| returns the number of bytes which will be decoded from "inString".
static unsigned char | decode (XMLCSTR inString, unsigned char *outByteBuf, int inMaxByteOutBuflen, XMLError *xe=NULL)
| decodes data from "inString" to "outByteBuf". More...

## Detailed Description

Helper class to include binary data inside XML strings using "Base64 encoding".

The "XMLParserBase64Tool" class allows you to include any binary data (images, sounds,...) into an XML document using "Base64 encoding". This class is completely separated from the rest of the xmlParser library and can be removed without any problem. To include some binary data into an XML file, you must convert the binary data into standard text (using "encode"). To retrieve the original binary data from the b64-encoded text included inside the XML file, use "decode". Alternatively, these functions can also be used to "encrypt/decrypt" some critical data contained inside the XML (it's not a strong encryption at all, but sometimes it can be useful).

## Member Function Documentation

## ◆ decode() [1/2]

unsigned char* XMLParserBase64Tool::decode | ( | XMLCSTR | inString,
|  | int * | outByteLen = `NULL`,
|  | XMLError * | xe = `NULL`
| ) |  |

The "decode" function returns a pointer to a buffer containing the binary data decoded from "inString" The output buffer will be free'd when the XMLParserBase64Tool object is deleted.

All output buffer are sharing the same memory space.

Parameters

  inString | If "instring" is malformed, NULL will be returned returns a pointer to an internal buffer containing the binary data decoded from "inString"

## ◆ decode() [2/2]

static unsigned char XMLParserBase64Tool::decode | ( | XMLCSTR | inString,
|  | unsigned char * | outByteBuf,
|  | int | inMaxByteOutBuflen,
|  | XMLError * | xe = `NULL`
| ) |  |
| static

decodes data from "inString" to "outByteBuf".

You need to provide the size (in byte) of "outByteBuf" in "inMaxByteOutBuflen". If "outByteBuf" is not large enough or if data is malformed, then "FALSE" will be returned; otherwise "TRUE". deprecated.

## ◆ encode()

XMLSTR XMLParserBase64Tool::encode | ( | const unsigned char * | inByteBuf,
|  | unsigned int | inByteLen,
|  | char | formatted = `0`
| ) |  |

The "base64Encode" function returns a string containing the base64 encoding of "inByteLen" bytes from "inByteBuf".

If "formatted" parameter is true, then there will be a carriage-return every 72 chars. The string will be free'd when the XMLParserBase64Tool object is deleted. All returned strings are sharing the same memory space. returns a pointer to an internal buffer containing the base64 string containing the binary data encoded from "inByteBuf"

## ◆ encodeLength()

static int XMLParserBase64Tool::encodeLength | ( | int | inBufLen,
|  | char | formatted = `0`
| ) |  |
| static

return the length of the base64 string that encodes a data buffer of size inBufLen bytes.

Parameters

  formatted | If "formatted"=true, some space will be reserved for a carriage-return every 72 chars.

The documentation for this struct was generated from the following file:

- ofstd/include/dcmtk/ofstd/ofxml.h

Generated on Mon Dec 15 2025 for DCMTK Version 3.7.0 by Doxygen 1.9.1