* Summary: The DTD validation * Description: API for the DTD handling and the validity checking * * Copy: See Copyright for the status of this software. * * Author: Patrick Monnerat , DATASPHERE S.A. /if not defined(XML_VALID_H__) /define XML_VALID_H__ /include "libxmlrpg/xmlversion" /include "libxmlrpg/xmlTypesC" /include "libxmlrpg/xmlerror" /include "libxmlrpg/tree" /include "libxmlrpg/list" /include "libxmlrpg/xmlautomata" /include "libxmlrpg/xmlregexp" * Validation state added for non-determinist content model. d xmlValidStatePtr... d s * based(######typedef######) * xmlValidityErrorFunc: * @ctx: usually an xmlValidCtxtPtr to a validity error context, * but comes from ctxt->userData (which normally contains such * a pointer); ctxt->userData can be changed by the user. * @msg: the string to format *printf like vararg * @...: remaining arguments to the format * * Callback called when a validity error is found. This is a message * oriented function similar to an *printf function. d xmlValidityErrorFunc... d s * based(######typedef######) d procptr * xmlValidityWarningFunc: * @ctx: usually an xmlValidCtxtPtr to a validity error context, * but comes from ctxt->userData (which normally contains such * a pointer); ctxt->userData can be changed by the user. * @msg: the string to format *printf like vararg * @...: remaining arguments to the format * * Callback called when a validity warning is found. This is a message * oriented function similar to an *printf function. d xmlValidityWarningFunc... d s * based(######typedef######) d procptr * xmlValidCtxt: * An xmlValidCtxt is used for error reporting when validating. d xmlValidCtxtPtr... d s * based(######typedef######) d xmlValidCtxt ds based(xmlValidCtxtPtr) d align qualified d userdata * void * d error like(xmlValidityErrorFunc) Error callback d warning like(xmlValidityWarningFunc) Warning callback * * Node analysis stack used when validating within entities * d node like(xmlNodePtr) Current parsed Node d nodeNr like(xmlCint) Parsing stack depth d nodeMax like(xmlCint) Max stack depth d nodeTab * xmlNodePtr * * d finishDtd like(xmlCuint) d doc like(xmlDocPtr) The document d valid like(xmlCint) Temp check result * * state state used for non-determinist content validation * d vstate * xmlValidState * d vstateNr like(xmlCint) Validat. stack depth d vstateMax like(xmlCint) Max stack depth d vstateTab * xmlValidState * * /if defined(LIBXML_REGEXP_ENABLED) d am like(xmlAutomataPtr) The automata d state like(xmlAutomataStatePtr) Automata build state /else d am * d state * /endif * ALL notation declarations are stored in a table. * There is one table per DTD. d xmlNotationTablePtr... d s * based(######typedef######) * ALL element declarations are stored in a table. * There is one table per DTD. d xmlElementTablePtr... d s * based(######typedef######) * ALL attribute declarations are stored in a table. * There is one table per DTD. d xmlAttributeTablePtr... d s * based(######typedef######) * ALL IDs attributes are stored in a table. * There is one table per document. d xmlIDTablePtr s * based(######typedef######) * ALL Refs attributes are stored in a table. * There is one table per document. d xmlRefTablePtr s * based(######typedef######) * Notation d xmlAddNotationDecl... d pr extproc('xmlAddNotationDecl') d like(xmlNotationPtr) d ctxt value like(xmlValidCtxtPtr) d dtd value like(xmlDtdPtr) d name * value options(*string) const xmlChar * d PublicID * value options(*string) const xmlChar * d SystemID * value options(*string) const xmlChar * /if defined(LIBXML_TREE_ENABLED) d xmlCopyNotationTable... d pr extproc('xmlCopyNotationTable') d like(xmlNotationPtr) d table value like(xmlNotationTablePtr) /endif LIBXML_TREE_ENABLED d xmlFreeNotationTable... d pr extproc('xmlFreeNotationTable') d table value like(xmlNotationTablePtr) /if defined(LIBXML_OUTPUT_ENABLED) d xmlDumpNotationDecl... d pr extproc('xmlDumpNotationDecl') d buf value like(xmlBufferPtr) d nota value like(xmlNotationPtr) d xmlDumpNotationTable... d pr extproc('xmlDumpNotationTable') d buf value like(xmlBufferPtr) d table value like(xmlNotationTablePtr) /endif LIBXML_OUTPUT_ENABLD * Element Content * the non Doc version are being deprecated d xmlNewElementContent... d pr extproc('xmlNewElementContent') d like(xmlElementContentPtr) d name * value const xmlChar * d type value like(xmlElementContentType) d xmlCopyElementContent... d pr extproc('xmlCopyElementContent') d like(xmlElementContentPtr) d content value like(xmlElementContentPtr) d xmlFreeElementContent... d pr extproc('xmlFreeElementContent') d cur value like(xmlElementContentPtr) * the new versions with doc argument d xmlNewDocElementContent... d pr extproc('xmlNewDocElementContent') d like(xmlElementContentPtr) d doc value like(xmlDocPtr) d name * value const xmlChar * d type value like(xmlElementContentType) d xmlCopyDocElementContent... d pr extproc('xmlCopyDocElementContent') d like(xmlElementContentPtr) d doc value like(xmlDocPtr) d content value like(xmlElementContentPtr) d xmlFreeDocElementContent... d pr extproc('xmlFreeDocElementContent') d doc value like(xmlDocPtr) d cur value like(xmlElementContentPtr) d xmlSnprintfElementContent... d pr extproc('xmlSnprintfElementContent') d buf 65535 options(*varsize) d size value like(xmlCint) d content value like(xmlElementContentPtr) d englob value like(xmlCint) /if defined(LIBXML_OUTPUT_ENABLED) * DEPRECATED d xmlSprintfElementContent... d pr extproc('xmlSprintfElementContent') d buf 65535 options(*varsize) d content value like(xmlElementContentPtr) d englob value like(xmlCint) /endif LIBXML_OUTPUT_ENABLD * DEPRECATED * Element d xmlAddElementDecl... d pr extproc('xmlAddElementDecl') d like(xmlElementPtr) d ctxt value like(xmlValidCtxtPtr) d dtd value like(xmlDtdPtr) d name * value options(*string) const xmlChar * d type value like(xmlElementTypeVal) d content value like(xmlElementContentPtr) /if defined(LIBXML_TREE_ENABLED) d xmlCopyElementTable... d pr extproc('xmlCopyElementTable') d like(xmlElementTablePtr) d table value like(xmlElementTablePtr) /endif LIBXML_TREE_ENABLED d xmlFreeElementTable... d pr extproc('xmlFreeElementTable') d table value like(xmlElementTablePtr) /if defined(LIBXML_OUTPUT_ENABLED) d xmlDumpElementTable... d pr extproc('xmlDumpElementTable') d buf value like(xmlBufferPtr) d table value like(xmlElementTablePtr) d xmlDumpElementDecl... d pr extproc('xmlDumpElementDecl') d buf value like(xmlBufferPtr) d elem value like(xmlElementPtr) /endif LIBXML_OUTPUT_ENABLD * Enumeration d xmlCreateEnumeration... d pr extproc('xmlCreateEnumeration') d like(xmlEnumerationPtr) d name * value options(*string) const xmlChar * d xmlFreeEnumeration... d pr extproc('xmlFreeEnumeration') d cur value like(xmlEnumerationPtr) /if defined(LIBXML_TREE_ENABLED) d xmlCopyEnumeration... d pr extproc('xmlCopyEnumeration') d like(xmlEnumerationPtr) d cur value like(xmlEnumerationPtr) /endif LIBXML_TREE_ENABLED * Attribute d xmlAddAttributeDecl... d pr extproc('xmlAddAttributeDecl') d like(xmlAttributePtr) d ctxt value like(xmlValidCtxtPtr) d dtd value like(xmlDtdPtr) d elem * value options(*string) const xmlChar * d name * value options(*string) const xmlChar * d ns * value options(*string) const xmlChar * d type value like(xmlAttributeType) d def value like(xmlAttributeDefault) d defaultValue * value options(*string) const xmlChar * d tree value like(xmlEnumerationPtr) /if defined(LIBXML_TREE_ENABLED) d xmlCopyAttributeTable... d pr extproc('xmlCopyAttributeTable') d like(xmlAttributeTablePtr) d table value like(xmlAttributeTablePtr) /endif LIBXML_TREE_ENABLED d xmlFreeAttributeTable... d pr extproc('xmlFreeAttributeTable') d table value like(xmlAttributeTablePtr) /if defined(LIBXML_OUTPUT_ENABLED) d xmlDumpAttributeTable... d pr extproc('xmlDumpAttributeTable') d buf value like(xmlBufferPtr) d table value like(xmlAttributeTablePtr) d xmlDumpAttributeDecl... d pr extproc('xmlDumpAttributeDecl') d buf value like(xmlBufferPtr) d attr value like(xmlAttributePtr) /endif LIBXML_OUTPUT_ENABLD * IDs d xmlAddID pr extproc('xmlAddID') d like(xmlIDPtr) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d value * value options(*string) const xmlChar * d attr value like(xmlAttrPtr) d xmlFreeIdTable pr extproc('xmlFreeIDTable') d table value like(xmlIDTablePtr) d xmlGetID pr extproc('xmlGetID') d like(xmlAttrPtr) d doc value like(xmlDocPtr) d ID * value options(*string) const xmlChar * d xmlIsID pr extproc('xmlIsID') d like(xmlCint) d doc value like(xmlDocPtr) d node value like(xmlNodePtr) d attr value like(xmlAttrPtr) d xmlRemoveID pr extproc('xmlRemoveID') d like(xmlCint) d doc value like(xmlDocPtr) d attr value like(xmlAttrPtr) * IDREFs d xmlAddRef pr extproc('xmlAddRef') d like(xmlRefPtr) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d value * value options(*string) const xmlChar * d attr value like(xmlAttrPtr) d xmlFreeRefTable... d pr extproc('xmlFreeRefTable') d table value like(xmlRefTablePtr) d xmlIsRef pr extproc('xmlIsRef') d like(xmlCint) d doc value like(xmlDocPtr) d node value like(xmlNodePtr) d attr value like(xmlAttrPtr) d xmlRemoveRef pr extproc('xmlRemoveRef') d like(xmlCint) d doc value like(xmlDocPtr) d attr value like(xmlAttrPtr) d xmlGetRefs pr extproc('xmlGetRefs') d like(xmlListPtr) d doc value like(xmlDocPtr) d ID * value options(*string) const xmlChar * * The public function calls related to validity checking. /if defined(LIBXML_VALID_ENABLED) * Allocate/Release Validation Contexts d xmlNewValidCtxt... d pr extproc('xmlNewValidCtxt') d like(xmlValidCtxtPtr) d xmlFreeValidCtxt... d pr extproc('xmlFreeValidCtxt') d ctxt value like(xmlValidCtxtPtr) d xmlValidateRoot... d pr extproc('xmlValidateRoot') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d xmlValidateElementDecl... d pr extproc('xmlValidateElementDecl') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlElementPtr) d xmlValidNormalizeAttributeValue... d pr * extproc( xmlChar * d 'xmlValidNormalizeAttributeValue') d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d name * value options(*string) const xmlChar * d value * value options(*string) const xmlChar * d xmlValidCtxtNormalizeAttributeValue... d pr * extproc('xmlValidCtxt+ xmlChar * d NormalizeAttributeValue') d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d name * value options(*string) const xmlChar * d value * value options(*string) const xmlChar * d xmlValidateAttributeDecl... d pr extproc('xmlValidateAttributeDecl') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d attr value like(xmlAttributePtr) d xmlValidateAttributeValue... d pr extproc('xmlValidateAttributeValue') d like(xmlCint) d type value like(xmlAttributeType) d value * value options(*string) const xmlChar * d xmlValidateNotationDecl... d pr extproc('xmlValidateNotationDecl') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d nota value like(xmlNotationPtr) d xmlValidateDtd pr extproc('xmlValidateDtd') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d dtd value like(xmlDtdPtr) d xmlValidateDtdFinal... d pr extproc('xmlValidateDtdFinal') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d xmlValidateDocument... d pr extproc('xmlValidateDocument') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d xmlValidateElement... d pr extproc('xmlValidateElement') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d xmlValidateOneElement... d pr extproc('xmlValidateOneElement') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d xmlValidateOneAttribute... d pr extproc('xmlValidateOneAttribute') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d attr value like(xmlAttrPtr) d value * value options(*string) const xmlChar * d xmlValidateOneNamespace... d pr extproc('xmlValidateOneNamespace') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d prefix * value options(*string) const xmlChar * d ns value like(xmlNsPtr) d value * value options(*string) const xmlChar * d xmlValidateDocumentFinal... d pr extproc('xmlValidateDocumentFinal') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) /endif LIBXML_VALID_ENABLED /undefine XML_TESTVAL /if defined(LIBXML_VALID_ENABLED) /define XML_TESTVAL /elseif defined(LIBXML_SCHEMAS_ENABLED) /define XML_TESTVAL /endif /if defined(XML_TESTVAL) d xmlValidateNotationUse... d pr extproc('xmlValidateNotationUse') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d notationName * value options(*string) const xmlChar * /undefine XML_TESTVAL /endif d xmlIsMixedElement... d pr extproc('xmlIsMixedElement') d like(xmlCint) d doc value like(xmlDocPtr) d name * value options(*string) const xmlChar * d xmlGetDtdAttrDesc... d pr extproc('xmlGetDtdAttrDesc') d like(xmlAttributePtr) d dtd value like(xmlDtdPtr) d elem * value options(*string) const xmlChar * d name * value options(*string) const xmlChar * d xmlGetDtdQAttrDesc... d pr extproc('xmlGetDtdQAttrDesc') d like(xmlAttributePtr) d dtd value like(xmlDtdPtr) d elem * value options(*string) const xmlChar * d name * value options(*string) const xmlChar * d prefix * value options(*string) const xmlChar * d xmlGetDtdNotationDesc... d pr extproc('xmlGetDtdNotationDesc') d like(xmlNotationPtr) d dtd value like(xmlDtdPtr) d name * value options(*string) const xmlChar * d xmlGetDtdQElementDesc... d pr extproc('xmlGetDtdQElementDesc') d like(xmlElementPtr) d dtd value like(xmlDtdPtr) d name * value options(*string) const xmlChar * d prefix * value options(*string) const xmlChar * d xmlGetDtdElementDesc... d pr extproc('xmlGetDtdElementDesc') d like(xmlElementPtr) d dtd value like(xmlDtdPtr) d name * value options(*string) const xmlChar * /if defined(LIBXML_VALID_ENABLED) d xmlValidGetPotentialChildren... d pr extproc( d 'xmlValidGetPotentialChildren') d like(xmlCint) d ctree * value xmlElementContent * d names * const xmlChar *(*) d len like(xmlCint) d max value like(xmlCint) d xmlValidGetValidElements... d pr extproc('xmlValidGetValidElements') d like(xmlCint) d prev like(xmlNodePtr) d next like(xmlNodePtr) d names * const xmlChar *(*) d max value like(xmlCint) d xmlValidateNameValue... d pr extproc('xmlValidateNameValue') d like(xmlCint) d value * value options(*string) const xmlChar * d xmlValidateNamesValue... d pr extproc('xmlValidateNamesValue') d like(xmlCint) d value * value options(*string) const xmlChar * d xmlValidateNmtokenValue... d pr extproc('xmlValidateNmtokenValue') d like(xmlCint) d value * value options(*string) const xmlChar * d xmlValidateNmtokensValue... d pr extproc('xmlValidateNmtokensValue') d like(xmlCint) d value * value options(*string) const xmlChar * /if defined(LIBXML_REGEXP_ENABLED) * Validation based on the regexp support d xmlValidBuildContentModel... d pr extproc('xmlValidBuildContentModel') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d elem value like(xmlElementPtr) d xmlValidatePushElement... d pr extproc('xmlValidatePushElement') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d qname * value options(*string) const xmlChar * d xmlValidatePushCData... d pr extproc('xmlValidatePushCData') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d data * value options(*string) const xmlChar * d len value like(xmlCint) d xmlValidatePopElement... d pr extproc('xmlValidatePopElement') d like(xmlCint) d ctxt value like(xmlValidCtxtPtr) d doc value like(xmlDocPtr) d elem value like(xmlNodePtr) d qname * value options(*string) const xmlChar * /endif LIBXML_REGEXP_ENABLD /endif LIBXML_VALID_ENABLED /endif XML_VALID_H__