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