Spec-Zone .ru
спецификации, руководства, описания, API
|
ADC домой > Ссылочная библиотека> Ссылка> Дарвин> Разное пространство пользователя ссылка API
|
parser.h |
Включает: | <stdarg.h> <libxml/xmlversion.h> <libxml/tree.h> <libxml/dict.h> <libxml/hash.h> <libxml/valid.h> <libxml/entities.h> <libxml/xmlerror.h> <libxml/xmlstring.h> <libxml/encoding.h> <libxml/xmlIO.h> <libxml/globals.h> |
attributeDeclSAXFunc |
typedef void (*attributeDeclSAXFunc)( void *ctx, const xmlChar *elem, const xmlChar *fullname, int type, int def, const xmlChar *defaultValue, xmlEnumerationPtr tree);
attributeDeclSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @elem: имя элемента @fullname: название атрибута @type: тип атрибута @def: тип значения по умолчанию @defaultValue: значение по умолчанию атрибута @tree: дерево перечисляемого значения установлено
Определение атрибута было проанализировано.
attributeSAXFunc |
typedef void (*attributeSAXFunc) ( void *ctx, const xmlChar *name, const xmlChar *value);
attributeSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: название атрибута, включая пространство имен снабжают префиксом @UNKNOWN: значение атрибута
Обработайте атрибут, считанный синтаксическим анализатором. Обработка по умолчанию должна преобразовать атрибут в поддерево DOM и мимо него в новом xmlAttr элементе, добавленном к элементу.
cdataBlockSAXFunc |
typedef void (*cdataBlockSAXFunc) ( void *ctx, const xmlChar *value, int len);
cdataBlockSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @UNKNOWN: pcdata содержание @len: длина блока
Вызванный, когда был проанализирован блок pcdata.
charactersSAXFunc |
typedef void (*charactersSAXFunc) ( void *ctx, const xmlChar *ch, int len);
charactersSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @ch: xmlChar представляет @len в виде строки: число xmlChar
Получение некоторых символов от синтаксического анализатора.
commentSAXFunc |
typedef void (*commentSAXFunc) ( void *ctx, const xmlChar *value);
commentSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @UNKNOWN: содержание комментария
Комментарий был проанализирован.
elementDeclSAXFunc |
typedef void (*elementDeclSAXFunc)( void *ctx, const xmlChar *name, int type, xmlElementContentPtr content);
elementDeclSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя элемента @type: тип элемента @content: дерево значения элемента
Определение элемента было проанализировано.
endDocumentSAXFunc |
typedef void (*endDocumentSAXFunc) ( void *ctx);
endDocumentSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML)
Вызванный, когда был обнаружен конец документа.
endElementNsSAX2Func |
typedef void (*endElementNsSAX2Func) ( void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI);
endElementNsSAX2Func: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @localname: локальное имя элемента @prefix: пространство имен элемента снабжает префиксом при наличии @URI: пространство имен элемента называет при наличии
Обратный вызов SAX2, когда конец элемента был обнаружен синтаксическим анализатором. Это обеспечивает информацию о пространстве имен для элемента.
endElementSAXFunc |
typedef void (*endElementSAXFunc) ( void *ctx, const xmlChar *name);
endElementSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя элемента
Вызванный, когда был обнаружен конец элемента.
entityDeclSAXFunc |
typedef void (*entityDeclSAXFunc) ( void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content);
entityDeclSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя объекта @type: тип объекта @publicId: общедоступный ID объекта @systemId: система ID объекта @content: значение объекта (не обрабатывая).
Определение объекта было проанализировано.
errorSAXFunc |
typedef void (*errorSAXFunc) ( void *ctx, const char *msg, ...);
errorSAXFunc: @ctx: контекст синтаксического анализатора XML @msg: сообщение для отображения...: дополнительные параметры для дисплея сообщения
Выведите на экран и отформатируйте сообщения об ошибках, обратный вызов.
externalSubsetSAXFunc |
typedef void (*externalSubsetSAXFunc) ( void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID);
externalSubsetSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: корневое имя элемента @ExternalID: внешний ID @SystemID: SYSTEM ID (например, имя файла или URL)
Обратный вызов на внешнем объявлении подмножества.
fatalErrorSAXFunc |
typedef void (*fatalErrorSAXFunc) ( void *ctx, const char *msg, ...);
fatalErrorSAXFunc: @ctx: контекст синтаксического анализатора XML @msg: сообщение для отображения...: дополнительные параметры для дисплея сообщения
Дисплей и сообщения о фатальной ошибке формата, обратный вызов.Примечание: до сих пор fatalError () обратные вызовы SAX не используются, ошибка () получают все обратные вызовы для ошибок.
getEntitySAXFunc |
typedef xmlEntityPtr (*getEntitySAXFunc) ( void *ctx, const xmlChar *name);
getEntitySAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя объекта
Получите объект по имени.
Возвращает xmlEntityPtr, если найдено.
getParameterEntitySAXFunc |
typedef xmlEntityPtr (*getParameterEntitySAXFunc) ( void *ctx, const xmlChar *name);
getParameterEntitySAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя объекта
Получите сущность параметра по имени.
Возвращает xmlEntityPtr, если найдено.
hasExternalSubsetSAXFunc |
typedef int (*hasExternalSubsetSAXFunc) ( void *ctx);
hasExternalSubsetSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML)
Этот документ имеет внешнее подмножество?
Возвраты 1, если истина
hasInternalSubsetSAXFunc |
typedef int (*hasInternalSubsetSAXFunc) ( void *ctx);
hasInternalSubsetSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML)
Делает этот документ, имеет внутреннее подмножество.
Возвраты 1, если истина
ignorableWhitespaceSAXFunc |
typedef void (*ignorableWhitespaceSAXFunc) ( void *ctx, const xmlChar *ch, int len);
ignorableWhitespaceSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @ch: xmlChar представляет @len в виде строки: число xmlChar
Получение некоторых игнорируемых пробелов от синтаксического анализатора. UNUSED: по умолчанию здание DOM будет использовать символы.
internalSubsetSAXFunc |
typedef void (*internalSubsetSAXFunc) ( void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID);
internalSubsetSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: корневое имя элемента @ExternalID: внешний ID @SystemID: SYSTEM ID (например, имя файла или URL)
Обратный вызов на внутреннем объявлении подмножества.
isStandaloneSAXFunc |
typedef int (*isStandaloneSAXFunc) ( void *ctx);
isStandaloneSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML)
Этот документ тегируется автономный?
Возвраты 1, если истина
notationDeclSAXFunc |
typedef void (*notationDeclSAXFunc)( void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId);
notationDeclSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя нотации @publicId: общедоступный ID объекта @systemId: система ID объекта
Когда объявление нотации было проанализировано, что сделать.
processingInstructionSAXFunc |
typedef void (*processingInstructionSAXFunc) ( void *ctx, const xmlChar *target, const xmlChar *data);
processingInstructionSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @target: целевое имя @data: данные PI
Инструкция обработки была проанализирована.
referenceSAXFunc |
typedef void (*referenceSAXFunc) ( void *ctx, const xmlChar *name);
referenceSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя объекта
Вызванный, когда обнаруживается ссылка на сущность.
resolveEntitySAXFunc |
/** resolveEntitySAXFunc: @ctx: the user data (XML parser context) @publicId: The public ID of the entity @systemId: The system ID of the entity Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it's own entity resolution routine Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. */ typedef xmlParserInputPtr (*resolveEntitySAXFunc) ( void *ctx, const xmlChar *publicId, const xmlChar *systemId);
xmlSAXHandler:
Когда обработка ввода генерирует информация о структуре или данные, обработчик SAX является набором обратных вызовов, вызванных синтаксическим анализатором.
setDocumentLocatorSAXFunc |
typedef void (*setDocumentLocatorSAXFunc) ( void *ctx, xmlSAXLocatorPtr loc);
setDocumentLocatorSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @loc: Локатор SAX
Получите локатор документа при запуске, фактически xmlDefaultSAXLocator. Все доступно на контексте, таким образом, это бесполезно в нашем случае.
startDocumentSAXFunc |
typedef void (*startDocumentSAXFunc) ( void *ctx);
startDocumentSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML)
Вызванный, когда документ начинают обрабатываться.
startElementNsSAX2Func |
typedef void (*startElementNsSAX2Func) ( void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes);
startElementNsSAX2Func: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @localname: локальное имя элемента @prefix: пространство имен элемента снабжает префиксом при наличии @URI: пространство имен элемента называет при наличии @nb_namespaces: число определений пространства имен на том узле @namespaces: указатель на массив определений пространства имен пар префикса/URI @nb_attributes: число атрибутов на том узле @nb_defaulted: число принявших значение по умолчанию атрибутов. Принявшие значение по умолчанию - в конце массива @attributes: указатель на массив (localname/prefix/URI/value/end) значений атрибута.
Обратный вызов SAX2, когда элемент запускаются, был обнаружен синтаксическим анализатором. Это обеспечивает информацию о пространстве имен для элемента, а также новые объявления пространства имен на элементе.
startElementSAXFunc |
typedef void (*startElementSAXFunc) ( void *ctx, const xmlChar *name, const xmlChar **atts);
startElementSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя элемента, включая пространство имен снабжают префиксом @atts: массив имени/значения приписывает пар, завершенный NULL
Вызванный, когда был обработан открывающий тэг.
unparsedEntityDeclSAXFunc |
typedef void (*unparsedEntityDeclSAXFunc)( void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId, const xmlChar *notationName);
unparsedEntityDeclSAXFunc: @ctx: пользовательские данные (контекст синтаксического анализатора XML) @name: имя объекта @publicId: общедоступный ID объекта @systemId: система ID объекта @notationName: имя нотации
Когда непроанализированное объявление сущности анализируется, что сделать.
warningSAXFunc |
typedef void (*warningSAXFunc) ( void *ctx, const char *msg, ...);
warningSAXFunc: @ctx: контекст синтаксического анализатора XML @msg: сообщение для отображения...: дополнительные параметры для дисплея сообщения
Выведите на экран и отформатируйте предупреждающие сообщения, обратный вызов.
xmlExternalEntityLoader |
typedef xmlParserInputPtr (*xmlExternalEntityLoader) ( const char *URL, const char *ID, xmlParserCtxtPtr context);
xmlExternalEntityLoader: @URL: Система ID ресурса запросила @ID: Общественность ID ресурса запросила @context: контекст синтаксического анализатора XML
Внешние типы загрузчиков объекта.
Возвращает входной синтаксический анализатор объекта.
xmlParserInputDeallocate |
/** xmlParserInputDeallocate: @str: the string to deallocate Callback for freeing some parser input allocations. */ typedef void (*xmlParserInputDeallocate)( xmlChar *str);
xmlParserInput:
xmlParserInput является входным потоком для процессора XML. Каждый проанализированный объект связан xmlParserInput (кроме нескольких предопределенных). Дело обстоит так оба для внутренних объектов - когда поток находится уже полностью в памяти - или внешние объекты - когда мы используем buf структуру для прогрессивного чтения и преобразований I18N во внутренний формат UTF-8.
xmlParserInputState |
typedef enum { XML_PARSER_EOF = -1, /* nothing is to be parsed */ XML_PARSER_START = 0, /* nothing has been parsed */ XML_PARSER_MISC, /* Misc* before int subset */ XML_PARSER_PI, /* Within a processing instruction */ XML_PARSER_DTD, /* within some DTD content */ XML_PARSER_PROLOG, /* Misc* after internal subset */ XML_PARSER_COMMENT, /* within a comment */ XML_PARSER_START_TAG, /* within a start tag */ XML_PARSER_CONTENT, /* within the content */ XML_PARSER_CDATA_SECTION, /* within a CDATA section */ XML_PARSER_END_TAG, /* within a closing tag */ XML_PARSER_ENTITY_DECL, /* within an entity declaration */ XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */ XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */ XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */ XML_PARSER_EPILOG, /* the Misc* after the last end tag */ XML_PARSER_IGNORE, /* within an IGNORED section */ XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */ } xmlParserInputState;
xmlParserInputState:
Синтаксический анализатор теперь работает также базируемым синтаксическим анализатором состояния. Рекурсивный использует информацию состояния для обработки объектов.
xmlParserMode |
typedef enum { XML_PARSE_UNKNOWN = 0, XML_PARSE_DOM = 1, XML_PARSE_SAX = 2, XML_PARSE_PUSH_DOM = 3, XML_PARSE_PUSH_SAX = 4, XML_PARSE_READER = 5 } xmlParserMode;
xmlParserMode:
Синтаксический анализатор может работать в различных режимах
xmlParserNodeInfo |
typedef struct _xmlParserNodeInfo xmlParserNodeInfo;
xmlParserNodeInfo:
Синтаксический анализатор можно попросить собрать информацию Узла, т.е. в том, какое место в файле они были обнаружены.Примечание: Это прочь по умолчанию и не очень хорошо протестировано.
xmlParserOption |
typedef enum { XML_PARSE_RECOVER = 1<<0, /* recover on errors */ XML_PARSE_NOENT = 1<<1, /* substitute entities */ XML_PARSE_DTDLOAD = 1<<2, /* load the external subset */ XML_PARSE_DTDATTR = 1<<3, /* default DTD attributes */ XML_PARSE_DTDVALID = 1<<4, /* validate with the DTD */ XML_PARSE_NOERROR = 1<<5, /* suppress error reports */ XML_PARSE_NOWARNING = 1<<6, /* suppress warning reports */ XML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */ XML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */ XML_PARSE_SAX1 = 1<<9, /* use the SAX1 interface internally */ XML_PARSE_XINCLUDE = 1<<10,/* Implement XInclude substitition */ XML_PARSE_NONET = 1<<11,/* Forbid network access */ XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionnary */ XML_PARSE_NSCLEAN = 1<<13,/* remove redundant namespaces declarations */ XML_PARSE_NOCDATA = 1<<14,/* merge CDATA as text nodes */ XML_PARSE_NOXINCNODE= 1<<15 /* do not generate XINCLUDE START/END nodes */ } xmlParserOption;
xmlParserOption:
Это - набор опций синтаксического анализатора XML, которые могут быть переданы к xmlReadDoc () и подобные вызовы.
_xmlParserCtxt |
struct _xmlParserCtxt { struct _xmlSAXHandler *sax; /* The SAX handler */ void *userData; /* For SAX interface only, used by DOM build */ xmlDocPtr myDoc; /* the document being built */ int wellFormed; /* is the document well formed */ int replaceEntities; /* shall we replace entities ? */ const xmlChar *version; /* the XML version string */ const xmlChar *encoding; /* the declared encoding, if any */ int standalone; /* standalone document */ int html; /* an HTML(1)/Docbook(2) document */ /* Input stream stack */ xmlParserInputPtr input; /* Current input stream */ int inputNr; /* Number of current input streams */ int inputMax; /* Max number of input streams */ xmlParserInputPtr *inputTab; /* stack of inputs */ /* Node analysis stack only used for DOM building */ xmlNodePtr node; /* Current parsed Node */ int nodeNr; /* Depth of the parsing stack */ int nodeMax; /* Max depth of the parsing stack */ xmlNodePtr *nodeTab; /* array of nodes */ int record_info; /* Whether node info should be kept */ xmlParserNodeInfoSeq node_seq; /* info about each node parsed */ int errNo; /* error code */ int hasExternalSubset; /* reference and external subset */ int hasPErefs; /* the internal subset has PE refs */ int external; /* are we parsing an external entity */ int valid; /* is the document valid */ int validate; /* shall we try to validate ? */ xmlValidCtxt vctxt; /* The validity context */ xmlParserInputState instate; /* current type of input */ int token; /* next char look-ahead */ char *directory; /* the data directory */ /* Node name stack */ const xmlChar *name; /* Current parsed Node */ int nameNr; /* Depth of the parsing stack */ int nameMax; /* Max depth of the parsing stack */ const xmlChar **nameTab; /* array of nodes */ long nbChars; /* number of xmlChar processed */ long checkIndex; /* used by progressive parsing lookup */ int keepBlanks; /* ugly but ... */ int disableSAX; /* SAX callbacks are disabled */ int inSubset; /* Parsing is in int 1/ext 2 subset */ const xmlChar *intSubName; /* name of subset */ xmlChar *extSubURI; /* URI of external subset */ xmlChar *extSubSystem; /* SYSTEM ID of external subset */ /* xml:space values */ int *space; /* Should the parser preserve spaces */ int spaceNr; /* Depth of the parsing stack */ int spaceMax; /* Max depth of the parsing stack */ int *spaceTab; /* array of space infos */ int depth; /* to prevent entity substitution loops */ xmlParserInputPtr entity; /* used to check entities boundaries */ int charset; /* encoding of the in-memory content */ int nodelen; /* Those two fields are there to */ int nodemem; /* Speed up large node parsing */ int pedantic; /* signal pedantic warnings */ void *_private; /* For user data, libxml won't touch it */ int loadsubset; /* should the external subset be loaded */ int linenumbers; /* set line number in element content */ void *catalogs; /* document's own catalog */ int recovery; /* run in recovery mode */ int progressive; /* is this a progressive parsing */ xmlDictPtr dict; /* dictionnary for the parser */ const xmlChar **atts; /* array for the attributes callbacks */ int maxatts; /* the size of the array */ int docdict; /* use strings from dict to build tree */ /* * pre-interned strings */ const xmlChar *str_xml; const xmlChar *str_xmlns; const xmlChar *str_xml_ns; /* * Everything below is used only by the new SAX mode */ int sax2; /* operating in the new SAX mode */ int nsNr; /* the number of inherited namespaces */ int nsMax; /* the size of the arrays */ const xmlChar **nsTab; /* the array of prefix/namespace name */ int *attallocs; /* which attribute were allocated */ void **pushTab; /* array of data for push */ xmlHashTablePtr attsDefault; /* defaulted attributes if any */ xmlHashTablePtr attsSpecial; /* non-CDATA attributes if any */ int nsWellFormed; /* is the document XML Nanespace okay */ int options; /* Extra options */ /* * Those fields are needed only for treaming parsing so far */ int dictNames; /* Use dictionary names for the tree */ int freeElemsNr; /* number of freed element nodes */ xmlNodePtr freeElems; /* List of freed element nodes */ int freeAttrsNr; /* number of freed attributes nodes */ xmlAttrPtr freeAttrs; /* List of freed attributes nodes */ /* * the complete error informations for the last error. */ xmlError lastError; xmlParserMode parseMode; /* the parser mode */ };
xmlParserCtxt:
Контекст синтаксического анализатора. NOTE Это не полностью определяет состояние синтаксического анализатора, (текущий?) проект синтаксического анализатора использует вызовы рекурсивной функции, так как это позволяет и простое отображение от порождающих правил спецификации к фактическому коду. Недостаток - то, что фактический вызов функции также отражает состояние синтаксического анализатора. Однако, большинство подпрограмм парсинга берет в качестве единственного параметра, который базировал указатель контекста синтаксического анализатора, таким образом мигрируя на состояние, синтаксический анализатор для прогрессивного парсинга не должен быть слишком твердым.
_xmlSAXLocator |
struct _xmlSAXLocator { const xmlChar *(*getPublicId)( void *ctx); const xmlChar *(*getSystemId)( void *ctx); int (*getLineNumber)( void *ctx); int (*getColumnNumber)( void *ctx); };
xmlSAXLocator:
Локатор SAX.
XML_COMPLETE_ATTRS |
#define XML_COMPLETE_ATTRS 4
XML_COMPLETE_ATTRS:
Бит в loadsubset поле контекста для сообщения, чтобы сделать завершенный списки атрибутов элементов с теми принял значение по умолчанию от DTDs. Используйте его для инициализации xmlLoadExtDtdDefaultValue.
XML_DEFAULT_VERSION |
#define XML_DEFAULT_VERSION "1.0"
XML_DEFAULT_VERSION:
Версия по умолчанию XML использовала: 1.0
XML_DETECT_IDS |
#define XML_DETECT_IDS 2
XML_DETECT_IDS:
Бит в loadsubset поле контекста для сообщения, чтобы сделать поиски ID/REFs. Используйте его для инициализации xmlLoadExtDtdDefaultValue.
XML_SAX2_MAGIC |
#define XML_SAX2_MAGIC 0xDEEDBEAF
XML_SAX2_MAGIC:
Специальная константа, найденная в SAX2, блокирует инициализированные поля
XML_SKIP_IDS |
#define XML_SKIP_IDS 8
XML_SKIP_IDS:
Бит в loadsubset поле контекста для сообщения, чтобы не сделать регистрацию ID/REFs. Используемый для инициализации xmlLoadExtDtdDefaultValue в некоторых особых случаях.
Последнее обновление: 20.06.2006