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
23 extern "C" {
24 #endif
25
26 typedef 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
33 XMLPUBFUN int
34 xmlSchemaInitTypes (void);
35 XML_DEPRECATED
36 XMLPUBFUN void
37 xmlSchemaCleanupTypes (void);
38 XMLPUBFUN xmlSchemaTypePtr
39 xmlSchemaGetPredefinedType (const xmlChar *name,
40 const xmlChar *ns);
41 XMLPUBFUN int
42 xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
43 const xmlChar *value,
44 xmlSchemaValPtr *val);
45 XMLPUBFUN int
46 xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
47 const xmlChar *value,
48 xmlSchemaValPtr *val,
49 xmlNodePtr node);
50 XMLPUBFUN int
51 xmlSchemaValidateFacet (xmlSchemaTypePtr base,
52 xmlSchemaFacetPtr facet,
53 const xmlChar *value,
54 xmlSchemaValPtr val);
55 XMLPUBFUN int
56 xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
57 xmlSchemaWhitespaceValueType fws,
58 xmlSchemaValType valType,
59 const xmlChar *value,
60 xmlSchemaValPtr val,
61 xmlSchemaWhitespaceValueType ws);
62 XMLPUBFUN void
63 xmlSchemaFreeValue (xmlSchemaValPtr val);
64 XMLPUBFUN xmlSchemaFacetPtr
65 xmlSchemaNewFacet (void);
66 XMLPUBFUN int
67 xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
68 xmlSchemaTypePtr typeDecl,
69 xmlSchemaParserCtxtPtr ctxt,
70 const xmlChar *name);
71 XMLPUBFUN void
72 xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
73 XMLPUBFUN int
74 xmlSchemaCompareValues (xmlSchemaValPtr x,
75 xmlSchemaValPtr y);
76 XMLPUBFUN xmlSchemaTypePtr
77 xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
78 XMLPUBFUN int
79 xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
80 const xmlChar *value,
81 unsigned long actualLen,
82 unsigned long *expectedLen);
83 XMLPUBFUN xmlSchemaTypePtr
84 xmlSchemaGetBuiltInType (xmlSchemaValType type);
85 XMLPUBFUN int
86 xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
87 int facetType);
88 XMLPUBFUN xmlChar *
89 xmlSchemaCollapseString (const xmlChar *value);
90 XMLPUBFUN xmlChar *
91 xmlSchemaWhiteSpaceReplace (const xmlChar *value);
92 XMLPUBFUN unsigned long
93 xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet);
94 XMLPUBFUN int
95 xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
96 xmlSchemaFacetPtr facet,
97 const xmlChar *value,
98 xmlSchemaValPtr val,
99 unsigned long *length);
100 XMLPUBFUN int
101 xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
102 xmlSchemaValType valType,
103 const xmlChar *value,
104 xmlSchemaValPtr val,
105 unsigned long *length,
106 xmlSchemaWhitespaceValueType ws);
107 XMLPUBFUN int
108 xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
109 const xmlChar *value,
110 xmlSchemaValPtr *val,
111 xmlNodePtr node);
112 XMLPUBFUN int
113 xmlSchemaGetCanonValue (xmlSchemaValPtr val,
114 const xmlChar **retValue);
115 XMLPUBFUN int
116 xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val,
117 const xmlChar **retValue,
118 xmlSchemaWhitespaceValueType ws);
119 XMLPUBFUN int
120 xmlSchemaValueAppend (xmlSchemaValPtr prev,
121 xmlSchemaValPtr cur);
122 XMLPUBFUN xmlSchemaValPtr
123 xmlSchemaValueGetNext (xmlSchemaValPtr cur);
124 XMLPUBFUN const xmlChar *
125 xmlSchemaValueGetAsString (xmlSchemaValPtr val);
126 XMLPUBFUN int
127 xmlSchemaValueGetAsBoolean (xmlSchemaValPtr val);
128 XMLPUBFUN xmlSchemaValPtr
129 xmlSchemaNewStringValue (xmlSchemaValType type,
130 const xmlChar *value);
131 XMLPUBFUN xmlSchemaValPtr
132 xmlSchemaNewNOTATIONValue (const xmlChar *name,
133 const xmlChar *ns);
134 XMLPUBFUN xmlSchemaValPtr
135 xmlSchemaNewQNameValue (const xmlChar *namespaceName,
136 const xmlChar *localName);
137 XMLPUBFUN int
138 xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
139 xmlSchemaWhitespaceValueType xws,
140 xmlSchemaValPtr y,
141 xmlSchemaWhitespaceValueType yws);
142 XMLPUBFUN xmlSchemaValPtr
143 xmlSchemaCopyValue (xmlSchemaValPtr val);
144 XMLPUBFUN xmlSchemaValType
145 xmlSchemaGetValType (xmlSchemaValPtr val);
146
147 #ifdef __cplusplus
148 }
149 #endif
150
151 #endif /* LIBXML_SCHEMAS_ENABLED */
152 #endif /* __XML_SCHEMA_TYPES_H__ */