📄 expat.h
字号:
XML_ParserCreate. On success XML_SetEncoding returns non-zero, zero otherwise. Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer has no effect and returns XML_STATUS_ERROR.*/XMLPARSEAPI(enum XML_Status)XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);/* If this function is called, then the parser will be passed as the first argument to callbacks instead of userData. The userData will still be accessible using XML_GetUserData.*/XMLPARSEAPI(void)XML_UseParserAsHandlerArg(XML_Parser parser);/* If useDTD == XML_TRUE is passed to this function, then the parser will assume that there is an external subset, even if none is specified in the document. In such a case the parser will call the externalEntityRefHandler with a value of NULL for the systemId argument (the publicId and context arguments will be NULL as well). Note: For the purpose of checking WFC: Entity Declared, passing useDTD == XML_TRUE will make the parser behave as if the document had a DTD with an external subset. Note: If this function is called, then this must be done before the first call to XML_Parse or XML_ParseBuffer, since it will have no effect after that. Returns XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. Note: If the document does not have a DOCTYPE declaration at all, then startDoctypeDeclHandler and endDoctypeDeclHandler will not be called, despite an external subset being parsed. Note: If XML_DTD is not defined when Expat is compiled, returns XML_ERROR_FEATURE_REQUIRES_XML_DTD.*/XMLPARSEAPI(enum XML_Error)XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD);/* Sets the base to be used for resolving relative URIs in system identifiers in declarations. Resolving relative identifiers is left to the application: this value will be passed through as the base argument to the XML_ExternalEntityRefHandler, XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base argument will be copied. Returns XML_STATUS_ERROR if out of memory, XML_STATUS_OK otherwise.*/XMLPARSEAPI(enum XML_Status)XML_SetBase(XML_Parser parser, const XML_Char *base);XMLPARSEAPI(const XML_Char *)XML_GetBase(XML_Parser parser);/* Returns the number of the attribute/value pairs passed in last call to the XML_StartElementHandler that were specified in the start-tag rather than defaulted. Each attribute/value pair counts as 2; thus this correspondds to an index into the atts array passed to the XML_StartElementHandler.*/XMLPARSEAPI(int)XML_GetSpecifiedAttributeCount(XML_Parser parser);/* Returns the index of the ID attribute passed in the last call to XML_StartElementHandler, or -1 if there is no ID attribute. Each attribute/value pair counts as 2; thus this correspondds to an index into the atts array passed to the XML_StartElementHandler.*/XMLPARSEAPI(int)XML_GetIdAttributeIndex(XML_Parser parser);/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is detected. The last call to XML_Parse must have isFinal true; len may be zero for this call (or any other). Though the return values for these functions has always been described as a Boolean value, the implementation, at least for the 1.95.x series, has always returned exactly one of the XML_Status values.*/XMLPARSEAPI(enum XML_Status)XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);XMLPARSEAPI(void *)XML_GetBuffer(XML_Parser parser, int len);XMLPARSEAPI(enum XML_Status)XML_ParseBuffer(XML_Parser parser, int len, int isFinal);/* Stops parsing, causing XML_Parse() or XML_ParseBuffer() to return. Must be called from within a call-back handler, except when aborting (resumable = 0) an already suspended parser. Some call-backs may still follow because they would otherwise get lost. Examples: - endElementHandler() for empty elements when stopped in startElementHandler(), - endNameSpaceDeclHandler() when stopped in endElementHandler(), and possibly others. Can be called from most handlers, including DTD related call-backs, except when parsing an external parameter entity and resumable != 0. Returns XML_STATUS_OK when successful, XML_STATUS_ERROR otherwise. Possible error codes: - XML_ERROR_SUSPENDED: when suspending an already suspended parser. - XML_ERROR_FINISHED: when the parser has already finished. - XML_ERROR_SUSPEND_PE: when suspending while parsing an external PE. When resumable != 0 (true) then parsing is suspended, that is, XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED. Otherwise, parsing is aborted, that is, XML_Parse() and XML_ParseBuffer() return XML_STATUS_ERROR with error code XML_ERROR_ABORTED. *Note*: This will be applied to the current parser instance only, that is, if there is a parent parser then it will continue parsing when the externalEntityRefHandler() returns. It is up to the implementation of the externalEntityRefHandler() to call XML_StopParser() on the parent parser (recursively), if one wants to stop parsing altogether. When suspended, parsing can be resumed by calling XML_ResumeParser(). */XMLPARSEAPI(enum XML_Status)XML_StopParser(XML_Parser parser, XML_Bool resumable);/* Resumes parsing after it has been suspended with XML_StopParser(). Must not be called from within a handler call-back. Returns same status codes as XML_Parse() or XML_ParseBuffer(). Additional error code XML_ERROR_NOT_SUSPENDED possible. *Note*: This must be called on the most deeply nested child parser instance first, and on its parent parser only after the child parser has finished, to be applied recursively until the document entity's parser is restarted. That is, the parent parser will not resume by itself and it is up to the application to call XML_ResumeParser() on it at the appropriate moment.*/XMLPARSEAPI(enum XML_Status)XML_ResumeParser(XML_Parser parser);enum XML_Parsing { XML_INITIALIZED, XML_PARSING, XML_FINISHED, XML_SUSPENDED};typedef struct { enum XML_Parsing parsing; XML_Bool finalBuffer;} XML_ParsingStatus;/* Returns status of parser with respect to being initialized, parsing, finished, or suspended and processing the final buffer. XXX XML_Parse() and XML_ParseBuffer() should return XML_ParsingStatus, XXX with XML_FINISHED_OK or XML_FINISHED_ERROR replacing XML_FINISHED*/XMLPARSEAPI(void)XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status);/* Creates an XML_Parser object that can parse an external general entity; context is a '\0'-terminated string specifying the parse context; encoding is a '\0'-terminated string giving the name of the externally specified encoding, or NULL if there is no externally specified encoding. The context string consists of a sequence of tokens separated by formfeeds (\f); a token consisting of a name specifies that the general entity of the name is open; a token of the form prefix=uri specifies the namespace for a particular prefix; a token of the form =uri specifies the default namespace. This can be called at any point after the first call to an ExternalEntityRefHandler so longer as the parser has not yet been freed. The new parser is completely independent and may safely be used in a separate thread. The handlers and userData are initialized from the parser argument. Returns NULL if out of memory. Otherwise returns a new XML_Parser object.*/XMLPARSEAPI(XML_Parser)XML_ExternalEntityParserCreate(XML_Parser parser, const XML_Char *context, const XML_Char *encoding);enum XML_ParamEntityParsing { XML_PARAM_ENTITY_PARSING_NEVER, XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE, XML_PARAM_ENTITY_PARSING_ALWAYS};/* Controls parsing of parameter entities (including the external DTD subset). If parsing of parameter entities is enabled, then references to external parameter entities (including the external DTD subset) will be passed to the handler set with XML_SetExternalEntityRefHandler. The context passed will be 0. Unlike external general entities, external parameter entities can only be parsed synchronously. If the external parameter entity is to be parsed, it must be parsed during the call to the external entity ref handler: the complete sequence of XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and XML_ParserFree calls must be made during this call. After XML_ExternalEntityParserCreate has been called to create the parser for the external parameter entity (context must be 0 for this call), it is illegal to make any calls on the old parser until XML_ParserFree has been called on the newly created parser. If the library has been compiled without support for parameter entity parsing (ie without XML_DTD being defined), then XML_SetParamEntityParsing will return 0 if parsing of parameter entities is requested; otherwise it will return non-zero. Note: If XML_SetParamEntityParsing is called after XML_Parse or XML_ParseBuffer, then it has no effect and will always return 0.*/XMLPARSEAPI(int)XML_SetParamEntityParsing(XML_Parser parser, enum XML_ParamEntityParsing parsing);/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then XML_GetErrorCode returns information about the error.*/XMLPARSEAPI(enum XML_Error)XML_GetErrorCode(XML_Parser parser);/* These functions return information about the current parse location. They may be called from any callback called to report some parse event; in this case the location is the location of the first of the sequence of characters that generated the event. When called from callbacks generated by declarations in the document prologue, the location identified isn't as neatly defined, but will be within the relevant markup. When called outside of the callback functions, the position indicated will be just past the last parse event (regardless of whether there was an associated callback). They may also be called after returning from a call to XML_Parse or XML_ParseBuffer. If the return value is XML_STATUS_ERROR then the location is the location of the character at which the error was detected; otherwise the location is the location of the last parse event, as described above.*/XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser);XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser);XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser);/* Return the number of bytes in the current event. Returns 0 if the event is in an internal entity.*/XMLPARSEAPI(int)XML_GetCurrentByteCount(XML_Parser parser);/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets the integer pointed to by offset to the offset within this buffer of the current parse position, and sets the integer pointed to by size to the size of this buffer (the number of input bytes). Otherwise returns a NULL pointer. Also returns a NULL pointer if a parse isn't active. NOTE: The character pointer returned should not be used outside the handler that makes the call.*/XMLPARSEAPI(const char *)XML_GetInputContext(XML_Parser parser, int *offset, int *size);/* For backwards compatibility with previous versions. */#define XML_GetErrorLineNumber XML_GetCurrentLineNumber#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber#define XML_GetErrorByteIndex XML_GetCurrentByteIndex/* Frees the content model passed to the element declaration handler */XMLPARSEAPI(void)XML_FreeContentModel(XML_Parser parser, XML_Content *model);/* Exposing the memory handling functions used in Expat */XMLPARSEAPI(void *)XML_MemMalloc(XML_Parser parser, size_t size);XMLPARSEAPI(void *)XML_MemRealloc(XML_Parser parser, void *ptr, size_t size);XMLPARSEAPI(void)XML_MemFree(XML_Parser parser, void *ptr);/* Frees memory used by the parser. */XMLPARSEAPI(void)XML_ParserFree(XML_Parser parser);/* Returns a string describing the error. */XMLPARSEAPI(const XML_LChar *)XML_ErrorString(enum XML_Error code);/* Return a string containing the version number of this expat */XMLPARSEAPI(const XML_LChar *)XML_ExpatVersion(void);typedef struct { int major; int minor; int micro;} XML_Expat_Version;/* Return an XML_Expat_Version structure containing numeric version number information for this version of expat.*/XMLPARSEAPI(XML_Expat_Version)XML_ExpatVersionInfo(void);/* Added in Expat 1.95.5. */enum XML_FeatureEnum { XML_FEATURE_END = 0, XML_FEATURE_UNICODE, XML_FEATURE_UNICODE_WCHAR_T, XML_FEATURE_DTD, XML_FEATURE_CONTEXT_BYTES, XML_FEATURE_MIN_SIZE, XML_FEATURE_SIZEOF_XML_CHAR, XML_FEATURE_SIZEOF_XML_LCHAR, XML_FEATURE_NS /* Additional features must be added to the end of this enum. */};typedef struct { enum XML_FeatureEnum feature; const XML_LChar *name; long int value;} XML_Feature;XMLPARSEAPI(const XML_Feature *)XML_GetFeatureList(void);/* Expat follows the GNU/Linux convention of odd number minor version for beta/development releases and even number minor version for stable releases. Micro is bumped with each release, and set to 0 with each change to major or minor version.*/#define XML_MAJOR_VERSION 2#define XML_MINOR_VERSION 0#define XML_MICRO_VERSION 0#ifdef __cplusplus}#endif#endif /* not Expat_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -