blob: 004386f636429e0166d612e74e108ee5d174b24c [file] [log] [blame]
Daniel Veillard4255d502002-04-16 15:50:10 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: implementation of XML Schema Datatypes
3 * Description: module providing the XML Schema Datatypes implementation
4 * both definition and validity checking
Daniel Veillard4255d502002-04-16 15:50:10 +00005 *
Daniel Veillardbe586972003-11-18 20:56:51 +00006 * Copy: See Copyright for the status of this software.
Daniel Veillard4255d502002-04-16 15:50:10 +00007 *
Daniel Veillardbe586972003-11-18 20:56:51 +00008 * Author: Daniel Veillard
Daniel Veillard4255d502002-04-16 15:50:10 +00009 */
10
11
12#ifndef __XML_SCHEMA_TYPES_H__
13#define __XML_SCHEMA_TYPES_H__
14
Daniel Veillard4255d502002-04-16 15:50:10 +000015#include <libxml/xmlversion.h>
Igor Zlatkovic7ae91bc2002-11-08 17:18:52 +000016
Daniel Veillard4255d502002-04-16 15:50:10 +000017#ifdef LIBXML_SCHEMAS_ENABLED
18
19#include <libxml/schemasInternals.h>
Daniel Veillard8bc6cf92003-02-27 17:42:22 +000020#include <libxml/xmlschemas.h>
Daniel Veillard4255d502002-04-16 15:50:10 +000021
22#ifdef __cplusplus
23extern "C" {
24#endif
25
Kasimier T. Buchcik6e224f12005-02-17 11:10:44 +000026typedef enum {
27 XML_SCHEMA_WHITESPACE_UNKNOWN = 0,
28 XML_SCHEMA_WHITESPACE_PRESERVE = 1,
29 XML_SCHEMA_WHITESPACE_REPLACE = 2,
30 XML_SCHEMA_WHITESPACE_COLLAPSE = 3
31} xmlSchemaWhitespaceValueType;
32
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +000033XMLPUBFUN void XMLCALL
34 xmlSchemaInitTypes (void);
35XMLPUBFUN void XMLCALL
36 xmlSchemaCleanupTypes (void);
37XMLPUBFUN xmlSchemaTypePtr XMLCALL
38 xmlSchemaGetPredefinedType (const xmlChar *name,
Daniel Veillard4255d502002-04-16 15:50:10 +000039 const xmlChar *ns);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +000040XMLPUBFUN int XMLCALL
41 xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
Daniel Veillard4255d502002-04-16 15:50:10 +000042 const xmlChar *value,
43 xmlSchemaValPtr *val);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +000044XMLPUBFUN int XMLCALL
45 xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
Daniel Veillardc3da18a2003-03-18 00:31:04 +000046 const xmlChar *value,
47 xmlSchemaValPtr *val,
48 xmlNodePtr node);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +000049XMLPUBFUN int XMLCALL
50 xmlSchemaValidateFacet (xmlSchemaTypePtr base,
Daniel Veillard4255d502002-04-16 15:50:10 +000051 xmlSchemaFacetPtr facet,
52 const xmlChar *value,
Kasimier T. Buchcik876a6db2004-09-16 11:31:52 +000053 xmlSchemaValPtr val);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +000054XMLPUBFUN void XMLCALL
55 xmlSchemaFreeValue (xmlSchemaValPtr val);
56XMLPUBFUN xmlSchemaFacetPtr XMLCALL
57 xmlSchemaNewFacet (void);
58XMLPUBFUN int XMLCALL
59 xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
Daniel Veillard8bc6cf92003-02-27 17:42:22 +000060 xmlSchemaTypePtr typeDecl,
61 xmlSchemaParserCtxtPtr ctxt,
62 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +000063XMLPUBFUN void XMLCALL
64 xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
65XMLPUBFUN int XMLCALL
66 xmlSchemaCompareValues (xmlSchemaValPtr x,
Daniel Veillard80b19092003-03-28 13:29:53 +000067 xmlSchemaValPtr y);
Daniel Veillard01fa6152004-06-29 17:04:39 +000068XMLPUBFUN xmlSchemaTypePtr XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000069 xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
Daniel Veillard01fa6152004-06-29 17:04:39 +000070XMLPUBFUN int XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000071 xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
72 const xmlChar *value,
73 unsigned long actualLen,
74 unsigned long *expectedLen);
Daniel Veillard01fa6152004-06-29 17:04:39 +000075XMLPUBFUN xmlSchemaTypePtr XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000076 xmlSchemaGetBuiltInType (xmlSchemaValType type);
Daniel Veillard01fa6152004-06-29 17:04:39 +000077XMLPUBFUN int XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000078 xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
79 int facetType);
Daniel Veillardc0826a72004-08-10 14:17:33 +000080XMLPUBFUN xmlChar * XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000081 xmlSchemaCollapseString (const xmlChar *value);
82XMLPUBFUN xmlChar * XMLCALL
83 xmlSchemaWhiteSpaceReplace (const xmlChar *value);
Daniel Veillardc0826a72004-08-10 14:17:33 +000084XMLPUBFUN unsigned long XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000085 xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet);
Daniel Veillardc0826a72004-08-10 14:17:33 +000086XMLPUBFUN int XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000087 xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
88 xmlSchemaFacetPtr facet,
89 const xmlChar *value,
90 xmlSchemaValPtr val,
91 unsigned long *length) ;
Daniel Veillardc0826a72004-08-10 14:17:33 +000092XMLPUBFUN int XMLCALL
Kasimier T. Buchcik91feaf82004-11-12 14:04:58 +000093 xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
94 const xmlChar *value,
95 xmlSchemaValPtr *val,
96 xmlNodePtr node);
Kasimier T. Buchcik6e224f12005-02-17 11:10:44 +000097XMLPUBFUN int XMLCALL
98 xmlSchemaGetCanonValue (xmlSchemaValPtr val,
99 const xmlChar **retValue);
100XMLPUBFUN xmlSchemaValPtr XMLCALL
101 xmlSchemaNewStringValue (xmlSchemaValType type,
102 const xmlChar *value);
Kasimier T. Buchcikb06b4de2005-02-17 19:00:23 +0000103XMLPUBFUN xmlSchemaValPtr XMLCALL
104 xmlSchemaNewNOTATIONValue (const xmlChar *name,
105 const xmlChar *ns);
106
Kasimier T. Buchcik6e224f12005-02-17 11:10:44 +0000107XMLPUBFUN int XMLCALL
108 xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
109 xmlSchemaWhitespaceValueType xws,
110 xmlSchemaValPtr y,
Kasimier T. Buchcik285ebab2005-03-04 18:04:59 +0000111 xmlSchemaWhitespaceValueType yws);
112XMLPUBFUN xmlSchemaValPtr XMLCALL
113 xmlSchemaCopyValue (xmlSchemaValPtr val);
Daniel Veillard4255d502002-04-16 15:50:10 +0000114
115#ifdef __cplusplus
116}
117#endif
118
119#endif /* LIBXML_SCHEMAS_ENABLED */
120#endif /* __XML_SCHEMA_TYPES_H__ */