FreeBSD manual
download PDF document: xo_set_info.3.pdf
LIBXO(3) FreeBSD Library Functions Manual LIBXO(3)
NAME
xo_set_info - set the field information data for libxo
LIBRARY
Text, XML, JSON, and HTML Output Emission Library (libxo, -lxo)
SYNOPSIS
#include <libxo/xo.h>
void
xo_set_info(xo_handle_t *handle, xo_info_t *info, int count);
DESCRIPTION
HTML data can include additional information in attributes that begin
with "data-". To enable this, three things must occur:
First the application must build an array of xo_info_t structures, one
per tag. The array must be sorted by name, since libxo uses a binary
search to find the entry that matches names from format instructions.
The xo_info_t structure is defined in <libxo/xo.h>:
typedef struct xo_info_s {
const char *xi_name; /* Name of the element */
const char *xi_type; /* Type of field */
const char *xi_help; /* Description of field */
} xo_info_t;
Second, the application must inform libxo about this information using
the xo_set_info() call. Like other libxo calls, passing NULL for the
handle tells libxo to use the default handle.
If the count is -1, libxo will count the elements of info, but there must
be an empty element at the end. More typically, the number is known to
the application:
xo_info_t info[] = {
{ "in-stock", "number", "Number of items in stock" },
{ "name", "string", "Name of the item" },
{ "on-order", "number", "Number of items on order" },
{ "sku", "string", "Stock Keeping Unit" },
{ "sold", "number", "Number of items sold" },
};
int info_count = (sizeof(info) / sizeof(info[0]));
...
xo_set_info(NULL, info, info_count);
Third, the emission of info must be triggered with the XOF_INFO flag
using either the xo_set_flags() function or the "--libxo=info" command
line argument.
The type and help values, if present, are emitted as the "data-type" and
"data-help" attributes:
<div class="data" data-tag="sku" data-type="string"
data-help="Stock Keeping Unit">GRO-000-533</div>
libxo was written by Phil Shafer <phil@freebsd.org>.
FreeBSD 14.0-RELEASE-p11 December 4, 2014 FreeBSD 14.0-RELEASE-p11