⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 schemasinternals.h.svn-base

📁 这是一个用于解析xml文件的类库。使用这个类库
💻 SVN-BASE
字号:
/* * Summary: internal interfaces for XML Schemas * Description: internal interfaces for the XML Schemas handling *              and schema validity checking * * Copy: See Copyright for the status of this software. * * Author: Daniel Veillard */#ifndef __XML_SCHEMA_INTERNALS_H__#define __XML_SCHEMA_INTERNALS_H__#include <libxml/xmlversion.h>#ifdef LIBXML_SCHEMAS_ENABLED#include <libxml/xmlregexp.h>#include <libxml/hash.h>#include <libxml/dict.h>#ifdef __cplusplusextern "C" {#endif/* * XML Schemas defines multiple type of types. */typedef enum {    XML_SCHEMA_TYPE_BASIC = 1,    XML_SCHEMA_TYPE_ANY,    XML_SCHEMA_TYPE_FACET,    XML_SCHEMA_TYPE_SIMPLE,    XML_SCHEMA_TYPE_COMPLEX,    XML_SCHEMA_TYPE_SEQUENCE,    XML_SCHEMA_TYPE_CHOICE,    XML_SCHEMA_TYPE_ALL,    XML_SCHEMA_TYPE_SIMPLE_CONTENT,    XML_SCHEMA_TYPE_COMPLEX_CONTENT,    XML_SCHEMA_TYPE_UR,    XML_SCHEMA_TYPE_RESTRICTION,    XML_SCHEMA_TYPE_EXTENSION,    XML_SCHEMA_TYPE_ELEMENT,    XML_SCHEMA_TYPE_ATTRIBUTE,    XML_SCHEMA_TYPE_ATTRIBUTEGROUP,    XML_SCHEMA_TYPE_GROUP,    XML_SCHEMA_TYPE_NOTATION,    XML_SCHEMA_TYPE_LIST,    XML_SCHEMA_TYPE_UNION,    XML_SCHEMA_TYPE_ANY_ATTRIBUTE,    XML_SCHEMA_FACET_MININCLUSIVE = 1000,    XML_SCHEMA_FACET_MINEXCLUSIVE,    XML_SCHEMA_FACET_MAXINCLUSIVE,    XML_SCHEMA_FACET_MAXEXCLUSIVE,    XML_SCHEMA_FACET_TOTALDIGITS,    XML_SCHEMA_FACET_FRACTIONDIGITS,    XML_SCHEMA_FACET_PATTERN,    XML_SCHEMA_FACET_ENUMERATION,    XML_SCHEMA_FACET_WHITESPACE,    XML_SCHEMA_FACET_LENGTH,    XML_SCHEMA_FACET_MAXLENGTH,    XML_SCHEMA_FACET_MINLENGTH} xmlSchemaTypeType;typedef enum {    XML_SCHEMA_CONTENT_UNKNOWN = 0,    XML_SCHEMA_CONTENT_EMPTY = 1,    XML_SCHEMA_CONTENT_ELEMENTS,    XML_SCHEMA_CONTENT_MIXED,    XML_SCHEMA_CONTENT_SIMPLE,    XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS,    XML_SCHEMA_CONTENT_BASIC,    XML_SCHEMA_CONTENT_ANY} xmlSchemaContentType;typedef struct _xmlSchemaVal xmlSchemaVal;typedef xmlSchemaVal *xmlSchemaValPtr;typedef struct _xmlSchemaType xmlSchemaType;typedef xmlSchemaType *xmlSchemaTypePtr;typedef struct _xmlSchemaFacet xmlSchemaFacet;typedef xmlSchemaFacet *xmlSchemaFacetPtr;/** * Annotation */typedef struct _xmlSchemaAnnot xmlSchemaAnnot;typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;struct _xmlSchemaAnnot {    struct _xmlSchemaAnnot *next;    xmlNodePtr content;         /* the annotation */};/** * XML_SCHEMAS_ANYATTR_SKIP: * * Skip unknown attribute from validation */#define XML_SCHEMAS_ANYATTR_SKIP	1/** * XML_SCHEMAS_ANYATTR_LAX: * * Ignore validation non definition on attributes */#define XML_SCHEMAS_ANYATTR_LAX		2/** * XML_SCHEMAS_ANYATTR_STRICT: * * Apply strict validation rules on attributes */#define XML_SCHEMAS_ANYATTR_STRICT	3/** * XML_SCHEMAS_ATTR_USE_PROHIBITED: * * The attribute is prohibited. */#define XML_SCHEMAS_ATTR_USE_PROHIBITED 0/** * XML_SCHEMAS_ATTR_USE_REQUIRED: * * The attribute is required. */#define XML_SCHEMAS_ATTR_USE_REQUIRED 1/** * XML_SCHEMAS_ATTR_USE_OPTIONAL: * * The attribute is optional. */#define XML_SCHEMAS_ATTR_USE_OPTIONAL 2/** * XML_SCHEMAS_ATTR_NSDEFAULT: * * allow elements in no namespace */#define XML_SCHEMAS_ATTR_NSDEFAULT	1 << 7/** * xmlSchemaAttribute: * An attribute definition. */typedef struct _xmlSchemaAttribute xmlSchemaAttribute;typedef xmlSchemaAttribute *xmlSchemaAttributePtr;struct _xmlSchemaAttribute {    xmlSchemaTypeType type;	/* The kind of type */    struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */    const xmlChar *name;    const xmlChar *id;    const xmlChar *ref;    const xmlChar *refNs;    const xmlChar *typeName;    const xmlChar *typeNs;    xmlSchemaAnnotPtr annot;    xmlSchemaTypePtr base;    int occurs;    const xmlChar *defValue;    xmlSchemaTypePtr subtypes;    xmlNodePtr node;    const xmlChar *targetNamespace;    int flags;};/** * An attribute group definition. * * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures * must be kept similar */typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;struct _xmlSchemaAttributeGroup {    xmlSchemaTypeType type;	/* The kind of type */    struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */    const xmlChar *name;    const xmlChar *id;    const xmlChar *ref;    const xmlChar *refNs;    xmlSchemaAnnotPtr annot;    xmlSchemaAttributePtr attributes;    xmlNodePtr node;};/** * XML_SCHEMAS_TYPE_MIXED: * * the element content type is mixed */#define XML_SCHEMAS_TYPE_MIXED		1 << 0/** * _xmlSchemaType: * * Schemas type definition. */struct _xmlSchemaType {    xmlSchemaTypeType type;	/* The kind of type */    struct _xmlSchemaType *next;/* the next type if in a sequence ... */    const xmlChar *name;    const xmlChar *id;    const xmlChar *ref;    const xmlChar *refNs;    xmlSchemaAnnotPtr annot;    xmlSchemaTypePtr subtypes;    xmlSchemaAttributePtr attributes;    xmlNodePtr node;    int minOccurs;    int maxOccurs;    int flags;    xmlSchemaContentType contentType;    const xmlChar *base;    const xmlChar *baseNs;    xmlSchemaTypePtr baseType;    xmlSchemaFacetPtr facets;    struct _xmlSchemaType *redef;/* possible redefinitions for the type */    int recurse;};/* * xmlSchemaElement: * An element definition. * * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of * structures must be kept similar *//** * XML_SCHEMAS_ELEM_NILLABLE: * * the element is nillable */#define XML_SCHEMAS_ELEM_NILLABLE	1 << 0/** * XML_SCHEMAS_ELEM_GLOBAL: * * the element is global */#define XML_SCHEMAS_ELEM_GLOBAL		1 << 1/** * XML_SCHEMAS_ELEM_DEFAULT: * * the element has a default value */#define XML_SCHEMAS_ELEM_DEFAULT	1 << 2/** * XML_SCHEMAS_ELEM_FIXED: * * the element has a fixed value */#define XML_SCHEMAS_ELEM_FIXED		1 << 3/** * XML_SCHEMAS_ELEM_ABSTRACT: * * the element is abstract */#define XML_SCHEMAS_ELEM_ABSTRACT	1 << 4/** * XML_SCHEMAS_ELEM_TOPLEVEL: * * the element is top level */#define XML_SCHEMAS_ELEM_TOPLEVEL	1 << 5/** * XML_SCHEMAS_ELEM_REF: * * the element is a reference to a type */#define XML_SCHEMAS_ELEM_REF		1 << 6/** * XML_SCHEMAS_ELEM_NSDEFAULT: * * allow elements in no namespace */#define XML_SCHEMAS_ELEM_NSDEFAULT	1 << 7typedef struct _xmlSchemaElement xmlSchemaElement;typedef xmlSchemaElement *xmlSchemaElementPtr;struct _xmlSchemaElement {    xmlSchemaTypeType type;	/* The kind of type */    struct _xmlSchemaType *next;/* the next type if in a sequence ... */    const xmlChar *name;    const xmlChar *id;    const xmlChar *ref;    const xmlChar *refNs;    xmlSchemaAnnotPtr annot;    xmlSchemaTypePtr subtypes;    xmlSchemaAttributePtr attributes;    xmlNodePtr node;    int minOccurs;    int maxOccurs;    int flags;    const xmlChar *targetNamespace;    const xmlChar *namedType;    const xmlChar *namedTypeNs;    const xmlChar *substGroup;    const xmlChar *substGroupNs;    const xmlChar *scope;    const xmlChar *value;    struct _xmlSchemaElement *refDecl;    xmlRegexpPtr contModel;    xmlSchemaContentType contentType;};/* * XML_SCHEMAS_FACET_UNKNOWN: * * unknown facet handling */#define XML_SCHEMAS_FACET_UNKNOWN	0/* * XML_SCHEMAS_FACET_PRESERVE: * * preserve the type of the facet */#define XML_SCHEMAS_FACET_PRESERVE	1/* * XML_SCHEMAS_FACET_REPLACE: * * replace the type of the facet */#define XML_SCHEMAS_FACET_REPLACE	2/* * XML_SCHEMAS_FACET_COLLAPSE: * * collapse the types of the facet */#define XML_SCHEMAS_FACET_COLLAPSE	3/** * A facet definition. */struct _xmlSchemaFacet {    xmlSchemaTypeType type;	/* The kind of type */    struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */    const xmlChar *value;    const xmlChar *id;    xmlSchemaAnnotPtr annot;    xmlNodePtr node;    int fixed;    int whitespace;    xmlSchemaValPtr val;    xmlRegexpPtr    regexp;};/** * A notation definition. */typedef struct _xmlSchemaNotation xmlSchemaNotation;typedef xmlSchemaNotation *xmlSchemaNotationPtr;struct _xmlSchemaNotation {    xmlSchemaTypeType type;	/* The kind of type */    const xmlChar *name;    xmlSchemaAnnotPtr annot;    const xmlChar *identifier;};/** * XML_SCHEMAS_QUALIF_ELEM: * * the shemas requires qualified elements */#define XML_SCHEMAS_QUALIF_ELEM		1 << 0/** * XML_SCHEMAS_QUALIF_ATTR: * * the shemas requires qualified attributes */#define XML_SCHEMAS_QUALIF_ATTR		1 << 1/** * _xmlSchema: * * A Schemas definition */struct _xmlSchema {    const xmlChar *name;        /* schema name */    const xmlChar *targetNamespace;     /* the target namespace */    const xmlChar *version;    const xmlChar *id;    xmlDocPtr doc;    xmlSchemaAnnotPtr annot;    int flags;    xmlHashTablePtr typeDecl;    xmlHashTablePtr attrDecl;    xmlHashTablePtr attrgrpDecl;    xmlHashTablePtr elemDecl;    xmlHashTablePtr notaDecl;    xmlHashTablePtr schemasImports;    void *_private;	/* unused by the library for users or bindings */    xmlHashTablePtr groupDecl;    xmlDictPtr      dict;    void *includes;     /* the includes, this is opaque for now */    int preserve;	/* whether to free the document */};XMLPUBFUN void XMLCALL 	xmlSchemaFreeType	(xmlSchemaTypePtr type);#ifdef __cplusplus}#endif#endif /* LIBXML_SCHEMAS_ENABLED */#endif /* __XML_SCHEMA_INTERNALS_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -