Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KXML_PUSHNULL(3)	    Library Functions Manual	      KXML_PUSHNULL(3)

NAME
       kxml_pushnull, kxml_pushnullattrs -- write a null element for kcgixml

LIBRARY
       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 ele-
       ment array passed to kxml_open(3).

       The kxml_pushnullattrs()	form accepts pairs of character	 string	 argu-
       ments,  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  at-
       tribute 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 connec-
	    tions,  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).  In-
	    dicates  that khttp_body(3)	did not	return with success or was not
	    invoked.  For FastCGI connections, the current  connection	should
	    be released	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 14.quarterly	  $Mdocdate$		      KXML_PUSHNULL(3)

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+14.3.quarterly>

home | help