2 * Summary: implementation of XML Schema Datatypes
3 * Description: module providing the XML Schema Datatypes implementation
4 * both definition and validity checking
6 * Copy: See Copyright for the status of this software.
8 * Author: Daniel Veillard
12 #ifndef __XML_SCHEMA_TYPES_H__
13 #define __XML_SCHEMA_TYPES_H__
15 #include <libxml/xmlversion.h>
17 #ifdef LIBXML_SCHEMAS_ENABLED
19 #include <libxml/schemasInternals.h>
20 #include <libxml/xmlschemas.h>
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;
33 XMLPUBFUN void XMLCALL
34 xmlSchemaInitTypes (void);
35 XMLPUBFUN void XMLCALL
36 xmlSchemaCleanupTypes (void);
37 XMLPUBFUN xmlSchemaTypePtr XMLCALL
38 xmlSchemaGetPredefinedType (const xmlChar *name,
41 xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
43 xmlSchemaValPtr *val);
45 xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
50 xmlSchemaValidateFacet (xmlSchemaTypePtr base,
51 xmlSchemaFacetPtr facet,
55 xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
56 xmlSchemaWhitespaceValueType fws,
57 xmlSchemaValType valType,
60 xmlSchemaWhitespaceValueType ws);
61 XMLPUBFUN void XMLCALL
62 xmlSchemaFreeValue (xmlSchemaValPtr val);
63 XMLPUBFUN xmlSchemaFacetPtr XMLCALL
64 xmlSchemaNewFacet (void);
66 xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
67 xmlSchemaTypePtr typeDecl,
68 xmlSchemaParserCtxtPtr ctxt,
70 XMLPUBFUN void XMLCALL
71 xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
73 xmlSchemaCompareValues (xmlSchemaValPtr x,
75 XMLPUBFUN xmlSchemaTypePtr XMLCALL
76 xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
78 xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
80 unsigned long actualLen,
81 unsigned long *expectedLen);
82 XMLPUBFUN xmlSchemaTypePtr XMLCALL
83 xmlSchemaGetBuiltInType (xmlSchemaValType type);
85 xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
87 XMLPUBFUN xmlChar * XMLCALL
88 xmlSchemaCollapseString (const xmlChar *value);
89 XMLPUBFUN xmlChar * XMLCALL
90 xmlSchemaWhiteSpaceReplace (const xmlChar *value);
91 XMLPUBFUN unsigned long XMLCALL
92 xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet);
94 xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
95 xmlSchemaFacetPtr facet,
98 unsigned long *length);
100 xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
101 xmlSchemaValType valType,
102 const xmlChar *value,
104 unsigned long *length,
105 xmlSchemaWhitespaceValueType ws);
106 XMLPUBFUN int XMLCALL
107 xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
108 const xmlChar *value,
109 xmlSchemaValPtr *val,
111 XMLPUBFUN int XMLCALL
112 xmlSchemaGetCanonValue (xmlSchemaValPtr val,
113 const xmlChar **retValue);
114 XMLPUBFUN int XMLCALL
115 xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val,
116 const xmlChar **retValue,
117 xmlSchemaWhitespaceValueType ws);
118 XMLPUBFUN int XMLCALL
119 xmlSchemaValueAppend (xmlSchemaValPtr prev,
120 xmlSchemaValPtr cur);
121 XMLPUBFUN xmlSchemaValPtr XMLCALL
122 xmlSchemaValueGetNext (xmlSchemaValPtr cur);
123 XMLPUBFUN const xmlChar * XMLCALL
124 xmlSchemaValueGetAsString (xmlSchemaValPtr val);
125 XMLPUBFUN int XMLCALL
126 xmlSchemaValueGetAsBoolean (xmlSchemaValPtr val);
127 XMLPUBFUN xmlSchemaValPtr XMLCALL
128 xmlSchemaNewStringValue (xmlSchemaValType type,
129 const xmlChar *value);
130 XMLPUBFUN xmlSchemaValPtr XMLCALL
131 xmlSchemaNewNOTATIONValue (const xmlChar *name,
133 XMLPUBFUN xmlSchemaValPtr XMLCALL
134 xmlSchemaNewQNameValue (const xmlChar *namespaceName,
135 const xmlChar *localName);
136 XMLPUBFUN int XMLCALL
137 xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
138 xmlSchemaWhitespaceValueType xws,
140 xmlSchemaWhitespaceValueType yws);
141 XMLPUBFUN xmlSchemaValPtr XMLCALL
142 xmlSchemaCopyValue (xmlSchemaValPtr val);
143 XMLPUBFUN xmlSchemaValType XMLCALL
144 xmlSchemaGetValType (xmlSchemaValPtr val);
150 #endif /* LIBXML_SCHEMAS_ENABLED */
151 #endif /* __XML_SCHEMA_TYPES_H__ */