1/*
2 * Summary: implementation of XML Schema Datatypes
3 * Description: module providing the XML Schema Datatypes implementation
4 * both definition and validity checking
5 *
6 * Copy: See Copyright for the status of this software.
7 *
8 * Author: Daniel Veillard
9 */
10
11
12#ifndef __XML_SCHEMA_TYPES_H__
13#define __XML_SCHEMA_TYPES_H__
14
15#include <libxml/xmlversion.h>
16
17#ifdef LIBXML_SCHEMAS_ENABLED
18
19#include <libxml/schemasInternals.h>
20#include <libxml/xmlschemas.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26typedef 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
33XMLPUBFUN void XMLCALL
34 xmlSchemaInitTypes (void);
35XMLPUBFUN void XMLCALL
36 xmlSchemaCleanupTypes (void);
37XMLPUBFUN xmlSchemaTypePtr XMLCALL
38 xmlSchemaGetPredefinedType (const xmlChar *name,
39 const xmlChar *ns);
40XMLPUBFUN int XMLCALL
41 xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
42 const xmlChar *value,
43 xmlSchemaValPtr *val);
44XMLPUBFUN int XMLCALL
45 xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
46 const xmlChar *value,
47 xmlSchemaValPtr *val,
48 xmlNodePtr node);
49XMLPUBFUN int XMLCALL
50 xmlSchemaValidateFacet (xmlSchemaTypePtr base,
51 xmlSchemaFacetPtr facet,
52 const xmlChar *value,
53 xmlSchemaValPtr val);
54XMLPUBFUN int XMLCALL
55 xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
56 xmlSchemaWhitespaceValueType fws,
57 xmlSchemaValType valType,
58 const xmlChar *value,
59 xmlSchemaValPtr val,
60 xmlSchemaWhitespaceValueType ws);
61XMLPUBFUN void XMLCALL
62 xmlSchemaFreeValue (xmlSchemaValPtr val);
63XMLPUBFUN xmlSchemaFacetPtr XMLCALL
64 xmlSchemaNewFacet (void);
65XMLPUBFUN int XMLCALL
66 xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
67 xmlSchemaTypePtr typeDecl,
68 xmlSchemaParserCtxtPtr ctxt,
69 const xmlChar *name);
70XMLPUBFUN void XMLCALL
71 xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
72XMLPUBFUN int XMLCALL
73 xmlSchemaCompareValues (xmlSchemaValPtr x,
74 xmlSchemaValPtr y);
75XMLPUBFUN xmlSchemaTypePtr XMLCALL
76 xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
77XMLPUBFUN int XMLCALL
78 xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
79 const xmlChar *value,
80 unsigned long actualLen,
81 unsigned long *expectedLen);
82XMLPUBFUN xmlSchemaTypePtr XMLCALL
83 xmlSchemaGetBuiltInType (xmlSchemaValType type);
84XMLPUBFUN int XMLCALL
85 xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
86 int facetType);
87XMLPUBFUN xmlChar * XMLCALL
88 xmlSchemaCollapseString (const xmlChar *value);
89XMLPUBFUN xmlChar * XMLCALL
90 xmlSchemaWhiteSpaceReplace (const xmlChar *value);
91XMLPUBFUN unsigned long XMLCALL
92 xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet);
93XMLPUBFUN int XMLCALL
94 xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
95 xmlSchemaFacetPtr facet,
96 const xmlChar *value,
97 xmlSchemaValPtr val,
98 unsigned long *length);
99XMLPUBFUN int XMLCALL
100 xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
101 xmlSchemaValType valType,
102 const xmlChar *value,
103 xmlSchemaValPtr val,
104 unsigned long *length,
105 xmlSchemaWhitespaceValueType ws);
106XMLPUBFUN int XMLCALL
107 xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
108 const xmlChar *value,
109 xmlSchemaValPtr *val,
110 xmlNodePtr node);
111XMLPUBFUN int XMLCALL
112 xmlSchemaGetCanonValue (xmlSchemaValPtr val,
113 const xmlChar **retValue);
114XMLPUBFUN int XMLCALL
115 xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val,
116 const xmlChar **retValue,
117 xmlSchemaWhitespaceValueType ws);
118XMLPUBFUN int XMLCALL
119 xmlSchemaValueAppend (xmlSchemaValPtr prev,
120 xmlSchemaValPtr cur);
121XMLPUBFUN xmlSchemaValPtr XMLCALL
122 xmlSchemaValueGetNext (xmlSchemaValPtr cur);
123XMLPUBFUN const xmlChar * XMLCALL
124 xmlSchemaValueGetAsString (xmlSchemaValPtr val);
125XMLPUBFUN int XMLCALL
126 xmlSchemaValueGetAsBoolean (xmlSchemaValPtr val);
127XMLPUBFUN xmlSchemaValPtr XMLCALL
128 xmlSchemaNewStringValue (xmlSchemaValType type,
129 const xmlChar *value);
130XMLPUBFUN xmlSchemaValPtr XMLCALL
131 xmlSchemaNewNOTATIONValue (const xmlChar *name,
132 const xmlChar *ns);
133XMLPUBFUN xmlSchemaValPtr XMLCALL
134 xmlSchemaNewQNameValue (const xmlChar *namespaceName,
135 const xmlChar *localName);
136XMLPUBFUN int XMLCALL
137 xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
138 xmlSchemaWhitespaceValueType xws,
139 xmlSchemaValPtr y,
140 xmlSchemaWhitespaceValueType yws);
141XMLPUBFUN xmlSchemaValPtr XMLCALL
142 xmlSchemaCopyValue (xmlSchemaValPtr val);
143XMLPUBFUN xmlSchemaValType XMLCALL
144 xmlSchemaGetValType (xmlSchemaValPtr val);
145
146#ifdef __cplusplus
147}
148#endif
149
150#endif /* LIBXML_SCHEMAS_ENABLED */
151#endif /* __XML_SCHEMA_TYPES_H__ */
152