123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- #include <mce/config.h>
- #ifndef MCE_HELPER_H
- #define MCE_HELPER_H
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- typedef struct MCE_QNAME_LEVEL {
- xmlChar *ns;
- xmlChar *ln;
- puint32_t level;
- puint32_t flag;
- } mceQNameLevel_t;
-
- typedef enum MCE_SKIP_STATE_ENUM {
- MCE_SKIP_STATE_IGNORE,
- MCE_SKIP_STATE_ALTERNATE_CONTENT,
- MCE_SKIP_STATE_CHOICE_MATCHED
- } mceSkipState_t;
-
- typedef struct MCE_SKIP_ITEM {
- puint32_t level_start;
- puint32_t level_end;
- mceSkipState_t state;
- } mceSkipItem_t;
-
- typedef struct MCE_QNAME_LEVEL_SET {
- mceQNameLevel_t *list_array;
- puint32_t list_items;
- puint32_t max_level;
- } mceQNameLevelSet_t;
-
- typedef struct MCE_SKIP_STACK {
- mceSkipItem_t *stack_array;
- puint32_t stack_items;
- } mceSkipStack_t;
- typedef enum MCE_ERROR_ENUM {
- MCE_ERROR_NONE,
- MCE_ERROR_XML,
- MCE_ERROR_MUST_UNDERSTAND,
- MCE_ERROR_VALIDATION,
- MCE_ERROR_MEMORY
- } mceError_t;
-
- typedef struct MCE_CONTEXT {
- mceQNameLevelSet_t ignorable_set;
- mceQNameLevelSet_t understands_set;
- mceQNameLevelSet_t processcontent_set;
- mceQNameLevelSet_t suspended_set;
- #if (MCE_NAMESPACE_SUBSUMPTION_ENABLED)
- mceQNameLevelSet_t subsume_namespace_set;
- mceQNameLevelSet_t subsume_exclude_set;
- mceQNameLevelSet_t subsume_prefix_set;
- #endif
- mceSkipStack_t skip_stack;
- mceError_t error;
- pbool_t mce_disabled;
- puint32_t suspended_level;
- } mceCtx_t;
-
- pbool_t mceQNameLevelAdd(mceQNameLevelSet_t *qname_level_set, const xmlChar *ns, const xmlChar *ln, puint32_t level);
-
- mceQNameLevel_t* mceQNameLevelLookup(mceQNameLevelSet_t *qname_level_set, const xmlChar *ns, const xmlChar *ln, pbool_t ignore_ln);
-
- pbool_t mceQNameLevelCleanup(mceQNameLevelSet_t *qname_level_set, puint32_t level);
-
- pbool_t mceSkipStackPush(mceSkipStack_t *skip_stack, puint32_t level_start, puint32_t level_end, mceSkipState_t state);
-
- void mceSkipStackPop(mceSkipStack_t *skip_stack);
-
- mceSkipItem_t *mceSkipStackTop(mceSkipStack_t *skip_stack);
-
- pbool_t mceSkipStackSkip(mceSkipStack_t *skip_stack, puint32_t level);
-
- pbool_t mceCtxInit(mceCtx_t *ctx);
-
- pbool_t mceCtxCleanup(mceCtx_t *ctx);
-
- pbool_t mceCtxUnderstandsNamespace(mceCtx_t *ctx, const xmlChar *ns);
-
- pbool_t mceCtxSuspendProcessing(mceCtx_t *ctx, const xmlChar *ns, const xmlChar *ln);
-
- #if (MCE_NAMESPACE_SUBSUMPTION_ENABLED)
-
- pbool_t mceCtxSubsumeNamespace(mceCtx_t *ctx, const xmlChar *prefix_new, const xmlChar *ns_new, const xmlChar *ns_old);
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif
|