FreeBSD Manual Pages
KXML_PUSHNULL(3) Library Functions Manual KXML_PUSHNULL(3) NAME kxml_pushnull, kxml_pushnullattrs -- write a null element for kcgixml LIBRARY libkcgixml SYNOPSIS #include <sys/types.h> #include <stdarg.h> #include <stdint.h> #include <kcgi.h> #include <kcgixml.h> enum kcgi_err kxml_pushnull(struct kxmlreq *req, size_t elem); enum kcgi_err kxml_pushnullattrs(struct kxmlreq *req, size_t elem, ...); DESCRIPTION Write a null (self-closing) element elem on the current element stack of req, initialised with kxml_open(3). The element must be in the element ar- ray passed to kxml_open(3). The kxml_pushnullattrs() form accepts pairs of character string arguments, the first being an attribute name, the second its value. This list must be terminated by a NULL pointer. Attribute names are left as-is: the caller must make sure that keys are valid XML. Attribute values are XML escaped to prevent content from breaking out of the attribute string. RETURN VALUES Returns an enum kcgi_err indicating the error state. KCGI_OK Success (not an error). KCGI_ENOMEM Internal memory allocation failure, including reaching the maximum number of possible JSON scopes. KCGI_HUP The output connection has been terminated. For FastCGI connections, the current connection should be released with khttp_free(3) and parse loop reentered. KCGI_FORM The connection is still expecting headers with khttp_head(3). Indi- cates that khttp_body(3) did not return with success or was not in- voked. For FastCGI connections, the current connection should be re- leased with khttp_free(3) and parse loop reentered. KCGI_SYSTEM Internal system error writing to the output stream. KCGI_WRITER The elem is not a valid element index. EXAMPLES The following outputs a simple XML page. It assumes r is a struct kreq pointer. For brevity, it does not do any error checking. const char *const elems[] = { "foo", "bar", "baz" }; khttp_head(r, kresps[KRESP_STATUS], "%s", khttps[KHTTP_200]); khttp_head(r, kresps[KRESP_CONTENT_TYPE], "%s", kmimetypes[KMIME_TEXT_XML]); khttp_body(r); kxml_open(&req, r, elems, 3); kxml_pushnull(&req, 0); /* foo */ kxml_pushnullattrs(&req, 1, "key", "val", NULL); /* bar */ kxml_close(&req); SEE ALSO kcgixml(3) AUTHORS Written by Kristaps Dzonsons <kristaps@bsd.lv>. FreeBSD ports 15.quarterly $Mdocdate$ KXML_PUSHNULL(3)
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kxml_pushnull&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
