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