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__ */