/*====================================================================* * * node.h - document node definitions and declarations; * * Motley Tools by Charles Maier <cmaier@cmassoc.net>; * Copyright 2001-2006 by Charles Maier Associates; * Licensed under the Internet Software Consortium License; * *--------------------------------------------------------------------*/ #ifndef NODE_HEADER #define NODE_HEADER /*====================================================================* * system headers; *--------------------------------------------------------------------*/ #include <unistd.h> #include <stdint.h> /*====================================================================* * custom headers; *--------------------------------------------------------------------*/ #include "../tools/types.h" /*====================================================================* * *--------------------------------------------------------------------*/ #define ISO_CHARSET "iso-8859-1" #define ISO_CONTENT "text/html" /*====================================================================* * *--------------------------------------------------------------------*/ #define W3C_STD "-//W3C//DTD XHTML 1.0 Strict//EN" #define W3C_DTD "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /*====================================================================* * *--------------------------------------------------------------------*/ #define XML_VERSION "1.0" #define XML_NAMESPACE "http://www.w3.org/2001/XMLSchema-instance" #define XML_CHARSET ISO_CHARSET #define XML_LANGUAGE "en-us" #define XML_SCHEMA "http://www.w3.org/2001/XMLSchema" /*====================================================================* * *--------------------------------------------------------------------*/ #define NODE_ELEM '<' #define NODE_SGML '!' #define NODE_INST '?' #define NODE_ATTR ' ' #define NODE_VALU '=' #define NODE_ETAG '/' #define NODE_DATA '>' /*====================================================================* * *--------------------------------------------------------------------*/ #define DATA_SCHEMA "piboffset.xsd" #define DATA_NAME "name" #define DATA_TEXT "text" #define DATA_OBJECT "pib" #define DATA_MEMBER "object" #define DATA_OFFSET "offset" #define DATA_LENGTH "length" #define DATA_STRUCT "array" #define DATA_STRING "dataString" #define DATA_MEMORY "dataHex" #define DATA_HUGE "dataHuge" #define DATA_LONG "dataLong" #define DATA_WORD "dataWord" #define DATA_BYTE "dataByte" /*====================================================================* * variables; *--------------------------------------------------------------------*/ typedef struct node { struct node * above; struct node * prior; struct node * after; struct node * below; unsigned line; unsigned type; char * text; } NODE; /*====================================================================* * functions; *--------------------------------------------------------------------*/ char const * xmlselect (NODE const *, char const * element, char const * attribute); signed xmlread (NODE *, char const * filename); signed xmlscan (NODE *); signed xmledit (NODE const *, void * memory, size_t extent); NODE * xmlopen (char const * filename); NODE * xmlnode (NODE *); NODE const * xmlelement (NODE const *, char const * name); NODE const * xmlattribute (NODE const *, char const * name); NODE const * xmlvalue (NODE const *); NODE const * xmldata (NODE const *); void xmlschema (); void xmltree (NODE const *); void xmlfree (NODE *); /*====================================================================* * *--------------------------------------------------------------------*/ #endif