summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libxml/DOCBparser.h6
-rw-r--r--include/libxml/HTMLparser.h3
-rw-r--r--include/libxml/HTMLtree.h3
-rw-r--r--include/libxml/SAX.h5
-rw-r--r--include/libxml/c14n.h2
-rw-r--r--include/libxml/globals.h33
-rw-r--r--include/libxml/nanoftp.h2
-rw-r--r--include/libxml/parser.h17
-rw-r--r--include/libxml/pattern.h5
-rw-r--r--include/libxml/relaxng.h5
-rw-r--r--include/libxml/schemasInternals.h293
-rw-r--r--include/libxml/uri.h7
-rw-r--r--include/libxml/valid.h8
-rw-r--r--include/libxml/xinclude.h5
-rw-r--r--include/libxml/xmlIO.h10
-rw-r--r--include/libxml/xmlerror.h81
-rw-r--r--include/libxml/xmlreader.h5
-rw-r--r--include/libxml/xmlsave.h4
-rw-r--r--include/libxml/xmlschemastypes.h14
-rw-r--r--include/libxml/xmlunicode.h5
-rw-r--r--include/libxml/xmlversion.h8
-rw-r--r--include/libxml/xmlwriter.h7
-rw-r--r--include/libxml/xpath.h5
-rw-r--r--include/libxml/xpathInternals.h4
-rw-r--r--include/libxml/xpointer.h5
25 files changed, 523 insertions, 19 deletions
diff --git a/include/libxml/DOCBparser.h b/include/libxml/DOCBparser.h
index d30aaea..461d4ee 100644
--- a/include/libxml/DOCBparser.h
+++ b/include/libxml/DOCBparser.h
@@ -11,6 +11,9 @@
#ifndef __DOCB_PARSER_H__
#define __DOCB_PARSER_H__
#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_DOCB_ENABLED
+
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
@@ -87,4 +90,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_DOCB_ENABLED */
+
#endif /* __DOCB_PARSER_H__ */
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index f39f0bb..2604d86 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -15,6 +15,8 @@
#include <libxml/xmlversion.h>
#include <libxml/parser.h>
+#ifdef LIBXML_HTML_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -292,4 +294,5 @@ XMLPUBFUN htmlStatus XMLCALL htmlNodeStatus(const htmlNodePtr, int) ;
}
#endif
+#endif /* LIBXML_HTML_ENABLED */
#endif /* __HTML_PARSER_H__ */
diff --git a/include/libxml/HTMLtree.h b/include/libxml/HTMLtree.h
index 157aa67..50b8544 100644
--- a/include/libxml/HTMLtree.h
+++ b/include/libxml/HTMLtree.h
@@ -16,6 +16,7 @@
#include <libxml/tree.h>
#include <libxml/HTMLparser.h>
+#ifdef LIBXML_HTML_ENABLED
#ifdef __cplusplus
extern "C" {
@@ -135,5 +136,7 @@ XMLPUBFUN int XMLCALL
}
#endif
+#endif /* LIBXML_HTML_ENABLED */
+
#endif /* __HTML_TREE_H__ */
diff --git a/include/libxml/SAX.h b/include/libxml/SAX.h
index a305b69..91b3fbc 100644
--- a/include/libxml/SAX.h
+++ b/include/libxml/SAX.h
@@ -18,6 +18,8 @@
#include <libxml/parser.h>
#include <libxml/xlink.h>
+#ifdef LIBXML_SAX1_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -162,4 +164,7 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_SAX1_ENABLED */
+
#endif /* __XML_SAX_H__ */
diff --git a/include/libxml/c14n.h b/include/libxml/c14n.h
index 4bc441c..9f4c6c0 100644
--- a/include/libxml/c14n.h
+++ b/include/libxml/c14n.h
@@ -16,6 +16,7 @@
*/
#ifndef __XML_C14N_H__
#define __XML_C14N_H__
+#ifdef LIBXML_C14N_ENABLED
#ifdef LIBXML_OUTPUT_ENABLED
#ifdef __cplusplus
@@ -99,5 +100,6 @@ XMLPUBFUN int XMLCALL
#endif /* __cplusplus */
#endif /* LIBXML_OUTPUT_ENABLED */
+#endif /* LIBXML_C14N_ENABLED */
#endif /* __XML_C14N_H__ */
diff --git a/include/libxml/globals.h b/include/libxml/globals.h
index 1be2d1f..1173a8f 100644
--- a/include/libxml/globals.h
+++ b/include/libxml/globals.h
@@ -28,6 +28,13 @@ extern "C" {
XMLPUBFUN void XMLCALL xmlInitGlobals(void);
XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
+typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
+typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
+XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc
+XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
+
/*
* Externally global symbols which need to be protected for backwards
* compatibility support.
@@ -63,6 +70,8 @@ XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
#undef xmlRegisterNodeDefaultValue
#undef xmlDeregisterNodeDefaultValue
#undef xmlLastError
+#undef xmlParserInputBufferCreateFilenameValue
+#undef xmlOutputBufferCreateFilenameValue
typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
@@ -110,6 +119,9 @@ struct _xmlGlobalState
xmlMallocFunc xmlMallocAtomic;
xmlError xmlLastError;
+
+ xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+ xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
};
#ifdef __cplusplus
@@ -131,6 +143,11 @@ XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNo
XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
+ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
+ xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
+
/** DOC_DISABLE */
/*
* In general the memory allocation entry points are not kept
@@ -415,6 +432,22 @@ XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
#endif
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlParserInputBufferCreateFilenameValue \
+(*(__xmlParserInputBufferCreateFilenameValue()))
+#else
+XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+#endif
+
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlOutputBufferCreateFilenameValue \
+(*(__xmlOutputBufferCreateFilenameValue()))
+#else
+XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/include/libxml/nanoftp.h b/include/libxml/nanoftp.h
index 01fadb8..95280db 100644
--- a/include/libxml/nanoftp.h
+++ b/include/libxml/nanoftp.h
@@ -138,6 +138,6 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
-#endif /* LIBXML_FTP_ENABLED */
#endif
+#endif /* LIBXML_FTP_ENABLED */
#endif /* __NANO_FTP_H__ */
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 2cecb20..2826c2b 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -156,6 +156,20 @@ typedef enum {
#define XML_SKIP_IDS 8
/**
+ * xmlParserMode:
+ *
+ * A parser can operate in various modes
+ */
+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;
+
+/**
* xmlParserCtxt:
*
* The parser context.
@@ -240,7 +254,7 @@ struct _xmlParserCtxt {
int loadsubset; /* should the external subset be loaded */
int linenumbers; /* set line number in element content */
- void *catalogs; /* document's own catalog */
+ 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 */
@@ -282,6 +296,7 @@ struct _xmlParserCtxt {
* the complete error informations for the last error.
*/
xmlError lastError;
+ xmlParserMode parseMode; /* the parser mode */
};
/**
diff --git a/include/libxml/pattern.h b/include/libxml/pattern.h
index 9db9c4e..02c833b 100644
--- a/include/libxml/pattern.h
+++ b/include/libxml/pattern.h
@@ -15,6 +15,8 @@
#include <libxml/tree.h>
#include <libxml/dict.h>
+#ifdef LIBXML_PATTERN_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -45,4 +47,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_PATTERN_ENABLED */
+
#endif /* __XML_PATTERN_H__ */
diff --git a/include/libxml/relaxng.h b/include/libxml/relaxng.h
index e970289..3254400 100644
--- a/include/libxml/relaxng.h
+++ b/include/libxml/relaxng.h
@@ -14,6 +14,8 @@
#include <libxml/hash.h>
#include <libxml/xmlstring.h>
+#ifdef LIBXML_SCHEMAS_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -176,4 +178,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
+
#endif /* __XML_RELAX_NG__ */
diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h
index 5f42ddf..8433499 100644
--- a/include/libxml/schemasInternals.h
+++ b/include/libxml/schemasInternals.h
@@ -24,12 +24,61 @@
extern "C" {
#endif
+typedef enum {
+ XML_SCHEMAS_UNKNOWN = 0,
+ XML_SCHEMAS_STRING,
+ XML_SCHEMAS_NORMSTRING,
+ XML_SCHEMAS_DECIMAL,
+ XML_SCHEMAS_TIME,
+ XML_SCHEMAS_GDAY,
+ XML_SCHEMAS_GMONTH,
+ XML_SCHEMAS_GMONTHDAY,
+ XML_SCHEMAS_GYEAR,
+ XML_SCHEMAS_GYEARMONTH,
+ XML_SCHEMAS_DATE,
+ XML_SCHEMAS_DATETIME,
+ XML_SCHEMAS_DURATION,
+ XML_SCHEMAS_FLOAT,
+ XML_SCHEMAS_DOUBLE,
+ XML_SCHEMAS_BOOLEAN,
+ XML_SCHEMAS_TOKEN,
+ XML_SCHEMAS_LANGUAGE,
+ XML_SCHEMAS_NMTOKEN,
+ XML_SCHEMAS_NMTOKENS,
+ XML_SCHEMAS_NAME,
+ XML_SCHEMAS_QNAME,
+ XML_SCHEMAS_NCNAME,
+ XML_SCHEMAS_ID,
+ XML_SCHEMAS_IDREF,
+ XML_SCHEMAS_IDREFS,
+ XML_SCHEMAS_ENTITY,
+ XML_SCHEMAS_ENTITIES,
+ XML_SCHEMAS_NOTATION,
+ XML_SCHEMAS_ANYURI,
+ XML_SCHEMAS_INTEGER,
+ XML_SCHEMAS_NPINTEGER,
+ XML_SCHEMAS_NINTEGER,
+ XML_SCHEMAS_NNINTEGER,
+ XML_SCHEMAS_PINTEGER,
+ XML_SCHEMAS_INT,
+ XML_SCHEMAS_UINT,
+ XML_SCHEMAS_LONG,
+ XML_SCHEMAS_ULONG,
+ XML_SCHEMAS_SHORT,
+ XML_SCHEMAS_USHORT,
+ XML_SCHEMAS_BYTE,
+ XML_SCHEMAS_UBYTE,
+ XML_SCHEMAS_HEXBINARY,
+ XML_SCHEMAS_BASE64BINARY,
+ XML_SCHEMAS_ANYTYPE,
+ XML_SCHEMAS_ANYSIMPLETYPE
+} xmlSchemaValType;
/*
* XML Schemas defines multiple type of types.
*/
typedef enum {
- XML_SCHEMA_TYPE_BASIC = 1,
+ XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
XML_SCHEMA_TYPE_ANY,
XML_SCHEMA_TYPE_FACET,
XML_SCHEMA_TYPE_SIMPLE,
@@ -70,7 +119,7 @@ typedef enum {
XML_SCHEMA_CONTENT_ELEMENTS,
XML_SCHEMA_CONTENT_MIXED,
XML_SCHEMA_CONTENT_SIMPLE,
- XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS,
+ XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* obsolete, not used */
XML_SCHEMA_CONTENT_BASIC,
XML_SCHEMA_CONTENT_ANY
} xmlSchemaContentType;
@@ -98,41 +147,68 @@ struct _xmlSchemaAnnot {
* XML_SCHEMAS_ANYATTR_SKIP:
*
* Skip unknown attribute from validation
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ANYATTR_SKIP 1
/**
* XML_SCHEMAS_ANYATTR_LAX:
*
* Ignore validation non definition on attributes
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ANYATTR_LAX 2
/**
* XML_SCHEMAS_ANYATTR_STRICT:
*
* Apply strict validation rules on attributes
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ANYATTR_STRICT 3
-
+/**
+ * XML_SCHEMAS_ANY_SKIP:
+ *
+ * Skip unknown attribute from validation
+ */
+#define XML_SCHEMAS_ANY_SKIP 1
+/**
+ * XML_SCHEMAS_ANY_LAX:
+ *
+ * Used by wildcards.
+ * Validate if type found, don't worry if not found
+ */
+#define XML_SCHEMAS_ANY_LAX 2
+/**
+ * XML_SCHEMAS_ANY_STRICT:
+ *
+ * Used by wildcards.
+ * Apply strict validation rules
+ */
+#define XML_SCHEMAS_ANY_STRICT 3
/**
* XML_SCHEMAS_ATTR_USE_PROHIBITED:
*
+ * Used by wildcards.
* 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_GLOABAL:
+ *
+ * allow elements in no namespace
+ */
+#define XML_SCHEMAS_ATTR_GLOBAL 1 << 0
/**
* XML_SCHEMAS_ATTR_NSDEFAULT:
@@ -169,6 +245,68 @@ struct _xmlSchemaAttribute {
};
/**
+ * xmlSchemaAttributeLink:
+ * Used to build a list of attribute uses on complexType definitions.
+ */
+typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
+typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
+struct _xmlSchemaAttributeLink {
+ struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
+ struct _xmlSchemaAttribute *attr;/* the linked attribute */
+};
+
+/**
+ * XML_SCHEMAS_WILDCARD_COMPLETE:
+ *
+ * If the wildcard is complete.
+ */
+#define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
+
+/**
+ * xmlSchemaCharValueLink:
+ * Used to build a list of namespaces on wildcards.
+ */
+typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
+typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
+struct _xmlSchemaWildcardNs {
+ struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
+ const xmlChar *value;/* the value */
+};
+
+/**
+ * xmlSchemaWildcard.
+ * A wildcard.
+ */
+typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
+typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
+struct _xmlSchemaWildcard {
+ xmlSchemaTypeType type; /* The kind of type */
+ const xmlChar *id;
+ xmlSchemaAnnotPtr annot;
+ xmlNodePtr node;
+ int minOccurs;
+ int maxOccurs;
+ int processContents;
+ int any; /* Indicates if the ns constraint is of ##any */
+ xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
+ xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
+ int flags;
+};
+
+/**
+ * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
+ *
+ * The attribute wildcard has been already builded.
+ */
+#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
+/**
+ * XML_SCHEMAS_ATTRGROUP_GLOBAL:
+ *
+ * The attribute wildcard has been already builded.
+ */
+#define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
+
+/**
* An attribute group definition.
*
* xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
@@ -187,8 +325,32 @@ struct _xmlSchemaAttributeGroup {
xmlSchemaAttributePtr attributes;
xmlNodePtr node;
+ int flags;
+ xmlSchemaWildcardPtr attributeWildcard;
};
+/**
+ * xmlSchemaTypeLink:
+ * Used to build a list of types (e.g. member types of
+ * simpleType with variety "union").
+ */
+typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
+typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
+struct _xmlSchemaTypeLink {
+ struct _xmlSchemaTypeLink *next;/* the next type link ... */
+ xmlSchemaTypePtr type;/* the linked type*/
+};
+
+/**
+ * xmlSchemaFacetLink:
+ * Used to build a list of facets.
+ */
+typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
+typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
+struct _xmlSchemaFacetLink {
+ struct _xmlSchemaFacetLink *next;/* the next facet link ... */
+ xmlSchemaFacetPtr facet;/* the linked facet */
+};
/**
* XML_SCHEMAS_TYPE_MIXED:
@@ -196,6 +358,91 @@ struct _xmlSchemaAttributeGroup {
* the element content type is mixed
*/
#define XML_SCHEMAS_TYPE_MIXED 1 << 0
+/**
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
+ *
+ * the simple or complex type has a derivation method of "extension".
+ */
+#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION 1 << 1
+/**
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
+ *
+ * the simple or complex type has a derivation method of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION 1 << 2
+/**
+ * XML_SCHEMAS_TYPE_GLOBAL:
+ *
+ * the type is global
+ */
+#define XML_SCHEMAS_TYPE_GLOBAL 1 << 3
+/**
+ * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
+ *
+ * the complexType owns an attribute wildcard, i.e.
+ * it can be freed by the complexType
+ */
+#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
+ *
+ * the simpleType has a variety of "absent".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_ABSENT 1 << 5
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_LIST:
+ *
+ * the simpleType has a variety of "list".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_LIST 1 << 6
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_UNION:
+ *
+ * the simpleType has a variety of "union".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_UNION 1 << 7
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
+ *
+ * the simpleType has a variety of "union".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC 1 << 8
+/**
+ * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
+ *
+ * the complexType has a final of "extension".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_EXTENSION 1 << 9
+/**
+ * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
+ *
+ * the simpleType/complexType has a final of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION 1 << 10
+/**
+ * XML_SCHEMAS_TYPE_FINAL_LIST:
+ *
+ * the simpleType has a final of "list".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_LIST 1 << 11
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_UNION 1 << 12
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_DEFAULT 1 << 13
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE 1 << 14
/**
* _xmlSchemaType:
@@ -224,6 +471,11 @@ struct _xmlSchemaType {
xmlSchemaFacetPtr facets;
struct _xmlSchemaType *redef;/* possible redefinitions for the type */
int recurse;
+ xmlSchemaAttributeLinkPtr attributeUses;
+ xmlSchemaWildcardPtr attributeWildcard;
+ int builtInType;
+ xmlSchemaTypeLinkPtr memberTypes;
+ xmlSchemaFacetLinkPtr facetSet;
};
/*
@@ -267,6 +519,7 @@ struct _xmlSchemaType {
* XML_SCHEMAS_ELEM_TOPLEVEL:
*
* the element is top level
+ * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
*/
#define XML_SCHEMAS_ELEM_TOPLEVEL 1 << 5
/**
@@ -279,6 +532,7 @@ struct _xmlSchemaType {
* XML_SCHEMAS_ELEM_NSDEFAULT:
*
* allow elements in no namespace
+ * Obsolete, not used anymore.
*/
#define XML_SCHEMAS_ELEM_NSDEFAULT 1 << 7
@@ -335,7 +589,6 @@ struct _xmlSchemaElement {
* collapse the types of the facet
*/
#define XML_SCHEMAS_FACET_COLLAPSE 3
-
/**
* A facet definition.
*/
@@ -375,7 +628,31 @@ struct _xmlSchemaNotation {
*
* the shemas requires qualified attributes
*/
-#define XML_SCHEMAS_QUALIF_ATTR 1 << 1
+#define XML_SCHEMAS_QUALIF_ATTR 1 << 1
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
+ *
+ * the shema has "extension" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION 1 << 2
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
+ *
+ * the shema has "restriction" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION 1 << 3
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_LIST:
+ *
+ * the shema has "list" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_LIST 1 << 4
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_UNION:
+ *
+ * the shema has "union" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_UNION 1 << 5
/**
* _xmlSchema:
*
@@ -406,6 +683,7 @@ struct _xmlSchema {
};
XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
+XMLPUBFUN void XMLCALL xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
#ifdef __cplusplus
}
@@ -414,4 +692,3 @@ XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
#endif /* LIBXML_SCHEMAS_ENABLED */
#endif /* __XML_SCHEMA_INTERNALS_H__ */
-
diff --git a/include/libxml/uri.h b/include/libxml/uri.h
index 5e29e63..90ed06e 100644
--- a/include/libxml/uri.h
+++ b/include/libxml/uri.h
@@ -47,8 +47,11 @@ struct _xmlURI {
XMLPUBFUN xmlURIPtr XMLCALL
xmlCreateURI (void);
XMLPUBFUN xmlChar * XMLCALL
- xmlBuildURI (const xmlChar *URI,
- const xmlChar *base);
+ xmlBuildURI (const xmlChar *URI,
+ const xmlChar *base);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlBuildRelativeURI (const xmlChar *URI,
+ const xmlChar *base);
XMLPUBFUN xmlURIPtr XMLCALL
xmlParseURI (const char *str);
XMLPUBFUN int XMLCALL
diff --git a/include/libxml/valid.h b/include/libxml/valid.h
index 004bb90..ec34ef0 100644
--- a/include/libxml/valid.h
+++ b/include/libxml/valid.h
@@ -269,7 +269,7 @@ XMLPUBFUN xmlListPtr XMLCALL
/**
* The public function calls related to validity checking.
*/
-
+#ifdef LIBXML_VALID_ENABLED
XMLPUBFUN int XMLCALL
xmlValidateRoot (xmlValidCtxtPtr ctxt,
xmlDocPtr doc);
@@ -337,6 +337,8 @@ XMLPUBFUN int XMLCALL
xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
xmlDocPtr doc,
const xmlChar *notationName);
+#endif /* LIBXML_VALID_ENABLED */
+
XMLPUBFUN int XMLCALL
xmlIsMixedElement (xmlDocPtr doc,
const xmlChar *name);
@@ -370,6 +372,9 @@ XMLPUBFUN int XMLCALL
const xmlChar **list,
int *len,
int max);
+
+#ifdef LIBXML_VALID_ENABLED
+
XMLPUBFUN int XMLCALL
xmlValidateNameValue (const xmlChar *value);
XMLPUBFUN int XMLCALL
@@ -379,6 +384,7 @@ XMLPUBFUN int XMLCALL
XMLPUBFUN int XMLCALL
xmlValidateNmtokensValue(const xmlChar *value);
+#endif /* LIBXML_VALID_ENABLED */
#ifdef LIBXML_REGEXP_ENABLED
/*
* Validation based on the regexp support
diff --git a/include/libxml/xinclude.h b/include/libxml/xinclude.h
index 880a280..4bb0aab 100644
--- a/include/libxml/xinclude.h
+++ b/include/libxml/xinclude.h
@@ -16,6 +16,8 @@
#include <libxml/xmlversion.h>
#include <libxml/tree.h>
+#ifdef LIBXML_XINCLUDE_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -113,4 +115,7 @@ XMLPUBFUN int XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XINCLUDE_ENABLED */
+
#endif /* __XML_XINCLUDE_H__ */
diff --git a/include/libxml/xmlIO.h b/include/libxml/xmlIO.h
index 9c7dc33..f50a3f9 100644
--- a/include/libxml/xmlIO.h
+++ b/include/libxml/xmlIO.h
@@ -206,6 +206,11 @@ XMLPUBFUN int XMLCALL
xmlInputOpenCallback openFunc,
xmlInputReadCallback readFunc,
xmlInputCloseCallback closeFunc);
+
+xmlParserInputBufferPtr
+ __xmlParserInputBufferCreateFilename(const char *URI,
+ xmlCharEncoding enc);
+
#ifdef LIBXML_OUTPUT_ENABLED
/*
* Interfaces for output
@@ -258,6 +263,11 @@ XMLPUBFUN int XMLCALL
xmlOutputOpenCallback openFunc,
xmlOutputWriteCallback writeFunc,
xmlOutputCloseCallback closeFunc);
+
+xmlOutputBufferPtr
+ __xmlOutputBufferCreateFilename(const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
#endif /* LIBXML_OUTPUT_ENABLED */
/* This function only exists if HTTP support built into the library */
diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h
index 048ecf3..513c244 100644
--- a/include/libxml/xmlerror.h
+++ b/include/libxml/xmlerror.h
@@ -555,6 +555,25 @@ typedef enum {
XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD, /* 1778 */
XML_SCHEMAP_INVALID_ATTR_NAME, /* 1779 */
XML_SCHEMAP_REF_AND_CONTENT, /* 1780 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_1, /* 1781 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_2, /* 1782 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_3, /* 1783 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_4, /* 1784 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_5, /* 1785 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1, /* 1786 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1, /* 1787 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2, /* 1788 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2, /* 1789 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3, /* 1790 */
+ XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER, /* 1791 */
+ XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE, /* 1792 */
+ XML_SCHEMAP_UNION_NOT_EXPRESSIBLE, /* 1793 */
+ XML_SCHEMAP_SRC_IMPORT_3_1, /* 1794 */
+ XML_SCHEMAP_SRC_IMPORT_3_2, /* 1795 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1, /* 1796 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2, /* 1797 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3, /* 1798 */
+ XML_SCHEMAP_COS_CT_EXTENDS_1_3, /* 1799 */
XML_SCHEMAV_NOROOT = 1800,
XML_SCHEMAV_UNDECLAREDELEM, /* 1801 */
XML_SCHEMAV_NOTTOPLEVEL, /* 1802 */
@@ -578,7 +597,28 @@ typedef enum {
XML_SCHEMAV_ATTRINVALID, /* 1820 */
XML_SCHEMAV_VALUE, /* 1821 */
XML_SCHEMAV_FACET, /* 1822 */
- XML_XPTR_UNKNOWN_SCHEME = 1900,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1, /* 1823 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2, /* 1824 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3, /* 1825 */
+ XML_SCHEMAV_CVC_TYPE_3_1_1, /* 1826 */
+ XML_SCHEMAV_CVC_TYPE_3_1_2, /* 1827 */
+ XML_SCHEMAV_CVC_FACET_VALID, /* 1828 */
+ XML_SCHEMAV_CVC_LENGTH_VALID, /* 1829 */
+ XML_SCHEMAV_CVC_MINLENGTH_VALID, /* 1830 */
+ XML_SCHEMAV_CVC_MAXLENGTH_VALID, /* 1831 */
+ XML_SCHEMAV_CVC_MININCLUSIVE_VALID, /* 1832 */
+ XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID, /* 1833 */
+ XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID, /* 1834 */
+ XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID, /* 1835 */
+ XML_SCHEMAV_CVC_TOTALDIGITS_VALID, /* 1836 */
+ XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID, /* 1837 */
+ XML_SCHEMAV_CVC_PATTERN_VALID, /* 1838 */
+ XML_SCHEMAV_CVC_ENUMERATION_VALID, /* 1839 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1, /* 1840 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2, /* 1841 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3, /* 1842 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4, /* 1843 */
+ XML_XPTR_UNKNOWN_SCHEME = 1900,
XML_XPTR_CHILDSEQ_START, /* 1901 */
XML_XPTR_EVAL_FAILED, /* 1902 */
XML_XPTR_EXTRA_OBJECTS, /* 1903 */
@@ -591,7 +631,44 @@ typedef enum {
XML_FTP_ACCNT, /* 2002 */
XML_HTTP_URL_SYNTAX = 2020,
XML_HTTP_USE_IP, /* 2021 */
- XML_HTTP_UNKNOWN_HOST /* 2022 */
+ XML_HTTP_UNKNOWN_HOST, /* 2022 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_2, /* 3001 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_3, /* 3002 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_4, /* 3003 */
+ XML_SCHEMAP_SRC_RESOLVE, /* 3004 */
+ XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE, /* 3004 */
+ XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE, /* 3005 */
+ XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES, /* 3006 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_1, /* 3007 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_2, /* 3008 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_3, /* 3009 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_1, /* 3010 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_2, /* 3011 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1, /* 3012 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2, /* 3013 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_1, /* 3014 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1, /* 3015 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2, /* 3016 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1, /* 3017 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2, /* 3018 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, /* 3019 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4, /* 3021 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5, /* 3022 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_1, /* 3023 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1, /* 3024 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2, /* 3025 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2, /* 3026 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1, /* 3027 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, /* 3028 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4, /* 3029 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5, /* 3030 */
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_1, /* 3031 */
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_2, /* 3032 */
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED, /* 3033 */
+ XML_SCHEMAP_S4S_ELEM_MISSING, /* 3034 */
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED, /* 3035 */
+ XML_SCHEMAP_S4S_ATTR_MISSING /* 3036 */
} xmlParserErrors;
/**
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index de13041..e810468 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -17,6 +17,8 @@
#include <libxml/relaxng.h>
#endif
+#ifdef LIBXML_READER_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -359,5 +361,8 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_READER_ENABLED */
+
#endif /* __XML_XMLREADER_H__ */
diff --git a/include/libxml/xmlsave.h b/include/libxml/xmlsave.h
index d83038e..be5971d 100644
--- a/include/libxml/xmlsave.h
+++ b/include/libxml/xmlsave.h
@@ -31,10 +31,14 @@ XMLPUBFUN xmlSaveCtxtPtr XMLCALL
xmlSaveToFilename (const char *filename,
const char *encoding,
int options);
+/******
+ Not yet implemented.
+
XMLPUBFUN xmlSaveCtxtPtr XMLCALL
xmlSaveToBuffer (xmlBufferPtr buffer,
const char *encoding,
int options);
+ ******/
XMLPUBFUN xmlSaveCtxtPtr XMLCALL
xmlSaveToIO (xmlOutputWriteCallback iowrite,
xmlOutputCloseCallback ioclose,
diff --git a/include/libxml/xmlschemastypes.h b/include/libxml/xmlschemastypes.h
index 4514c59..b81e9b4 100644
--- a/include/libxml/xmlschemastypes.h
+++ b/include/libxml/xmlschemastypes.h
@@ -58,6 +58,20 @@ XMLPUBFUN void XMLCALL
XMLPUBFUN int XMLCALL
xmlSchemaCompareValues (xmlSchemaValPtr x,
xmlSchemaValPtr y);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+ xmlSchemaGetBuiltInListSimpleTypeItemType(xmlSchemaTypePtr type);
+XMLPUBFUN int XMLCALL
+xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ unsigned long actualLen,
+ unsigned long *expectedLen);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+xmlSchemaGetBuiltInType(xmlSchemaValType type);
+XMLPUBFUN int XMLCALL
+xmlSchemaIsBuiltInTypeFacet(xmlSchemaTypePtr type,
+ int facetType);
+XMLPUBFUN xmlChar * XMLCALL
+xmlSchemaCollapseString(const xmlChar *value);
#ifdef __cplusplus
}
diff --git a/include/libxml/xmlunicode.h b/include/libxml/xmlunicode.h
index b8537dc..3882b1f 100644
--- a/include/libxml/xmlunicode.h
+++ b/include/libxml/xmlunicode.h
@@ -17,6 +17,8 @@
#include <libxml/xmlversion.h>
+#ifdef LIBXML_UNICODE_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -194,4 +196,7 @@ XMLPUBFUN int XMLCALL xmlUCSIsCat (int code, const char *cat);
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_UNICODE_ENABLED */
+
#endif /* __XML_UNICODE_H__ */
diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h
index a2ab03d..85d1eec 100644
--- a/include/libxml/xmlversion.h
+++ b/include/libxml/xmlversion.h
@@ -29,21 +29,21 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
*
* the version string like "1.2.3"
*/
-#define LIBXML_DOTTED_VERSION "2.6.10"
+#define LIBXML_DOTTED_VERSION "2.6.11"
/**
* LIBXML_VERSION:
*
* the version number: 1.2.3 value is 1002003
*/
-#define LIBXML_VERSION 20610
+#define LIBXML_VERSION 20611
/**
* LIBXML_VERSION_STRING:
*
* the version number string, 1.2.3 value is "1002003"
*/
-#define LIBXML_VERSION_STRING "20610"
+#define LIBXML_VERSION_STRING "20611"
/**
* LIBXML_TEST_VERSION:
@@ -51,7 +51,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
* Macro to check that the libxml version in use is compatible with
* the version the software has been compiled against
*/
-#define LIBXML_TEST_VERSION xmlCheckVersion(20610);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20611);
#ifndef VMS
#if 0
diff --git a/include/libxml/xmlwriter.h b/include/libxml/xmlwriter.h
index f1e1fd8..31ceb5f 100644
--- a/include/libxml/xmlwriter.h
+++ b/include/libxml/xmlwriter.h
@@ -11,6 +11,10 @@
#ifndef __XML_XMLWRITER_H__
#define __XML_XMLWRITER_H__
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_WRITER_ENABLED
+
#include <stdarg.h>
#include <libxml/xmlIO.h>
#include <libxml/list.h>
@@ -449,4 +453,7 @@ extern "C" {
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_WRITER_ENABLED */
+
#endif /* __XML_XMLWRITER_H__ */
diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h
index 41def0c..8a2e210 100644
--- a/include/libxml/xpath.h
+++ b/include/libxml/xpath.h
@@ -20,6 +20,9 @@
#define __XML_XPATH_H__
#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_XPATH_ENABLED
+
#include <libxml/xmlerror.h>
#include <libxml/tree.h>
#include <libxml/hash.h>
@@ -464,4 +467,6 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XPATH_ENABLED */
#endif /* ! __XML_XPATH_H__ */
diff --git a/include/libxml/xpathInternals.h b/include/libxml/xpathInternals.h
index 75e5d74..4ee1965 100644
--- a/include/libxml/xpathInternals.h
+++ b/include/libxml/xpathInternals.h
@@ -15,6 +15,8 @@
#include <libxml/xmlversion.h>
#include <libxml/xpath.h>
+#ifdef LIBXML_XPATH_ENABLED
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -650,4 +652,6 @@ XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XPATH_ENABLED */
#endif /* ! __XML_XPATH_INTERNALS_H__ */
diff --git a/include/libxml/xpointer.h b/include/libxml/xpointer.h
index 2285b0e..dde1dfb 100644
--- a/include/libxml/xpointer.h
+++ b/include/libxml/xpointer.h
@@ -18,6 +18,9 @@
#define __XML_XPTR_H__
#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_XPTR_ENABLED
+
#include <libxml/tree.h>
#include <libxml/xpath.h>
@@ -106,4 +109,6 @@ XMLPUBFUN void XMLCALL
#ifdef __cplusplus
}
#endif
+
+#endif /* LIBXML_XPTR_ENABLED */
#endif /* __XML_XPTR_H__ */