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 void XMLCALL
34: xmlSchemaInitTypes (void);
35: XMLPUBFUN void XMLCALL
36: xmlSchemaCleanupTypes (void);
37: XMLPUBFUN xmlSchemaTypePtr XMLCALL
38: xmlSchemaGetPredefinedType (const xmlChar *name,
39: const xmlChar *ns);
40: XMLPUBFUN int XMLCALL
41: xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
42: const xmlChar *value,
43: xmlSchemaValPtr *val);
44: XMLPUBFUN int XMLCALL
45: xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
46: const xmlChar *value,
47: xmlSchemaValPtr *val,
48: xmlNodePtr node);
49: XMLPUBFUN int XMLCALL
50: xmlSchemaValidateFacet (xmlSchemaTypePtr base,
51: xmlSchemaFacetPtr facet,
52: const xmlChar *value,
53: xmlSchemaValPtr val);
54: XMLPUBFUN int XMLCALL
55: xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
56: xmlSchemaWhitespaceValueType fws,
57: xmlSchemaValType valType,
58: const xmlChar *value,
59: xmlSchemaValPtr val,
60: xmlSchemaWhitespaceValueType ws);
61: XMLPUBFUN void XMLCALL
62: xmlSchemaFreeValue (xmlSchemaValPtr val);
63: XMLPUBFUN xmlSchemaFacetPtr XMLCALL
64: xmlSchemaNewFacet (void);
65: XMLPUBFUN int XMLCALL
66: xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
67: xmlSchemaTypePtr typeDecl,
68: xmlSchemaParserCtxtPtr ctxt,
69: const xmlChar *name);
70: XMLPUBFUN void XMLCALL
71: xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
72: XMLPUBFUN int XMLCALL
73: xmlSchemaCompareValues (xmlSchemaValPtr x,
74: xmlSchemaValPtr y);
75: XMLPUBFUN xmlSchemaTypePtr XMLCALL
76: xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
77: XMLPUBFUN int XMLCALL
78: xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
79: const xmlChar *value,
80: unsigned long actualLen,
81: unsigned long *expectedLen);
82: XMLPUBFUN xmlSchemaTypePtr XMLCALL
83: xmlSchemaGetBuiltInType (xmlSchemaValType type);
84: XMLPUBFUN int XMLCALL
85: xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
86: int facetType);
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);
93: XMLPUBFUN int XMLCALL
94: xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
95: xmlSchemaFacetPtr facet,
96: const xmlChar *value,
97: xmlSchemaValPtr val,
98: unsigned long *length);
99: XMLPUBFUN int XMLCALL
100: xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
101: xmlSchemaValType valType,
102: const xmlChar *value,
103: xmlSchemaValPtr val,
104: unsigned long *length,
105: xmlSchemaWhitespaceValueType ws);
106: XMLPUBFUN int XMLCALL
107: xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
108: const xmlChar *value,
109: xmlSchemaValPtr *val,
110: xmlNodePtr node);
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,
132: const xmlChar *ns);
133: XMLPUBFUN xmlSchemaValPtr XMLCALL
134: xmlSchemaNewQNameValue (const xmlChar *namespaceName,
135: const xmlChar *localName);
136: XMLPUBFUN int XMLCALL
137: xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
138: xmlSchemaWhitespaceValueType xws,
139: xmlSchemaValPtr y,
140: xmlSchemaWhitespaceValueType yws);
141: XMLPUBFUN xmlSchemaValPtr XMLCALL
142: xmlSchemaCopyValue (xmlSchemaValPtr val);
143: XMLPUBFUN 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__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>