Home | History | Annotate | Download | only in libxml
      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