mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-02-08 13:57:24 +03:00
* xmlschemas.c xmlschemastypes.c include/libxml/schemasInternals.h include/libxml/xmlschemastypes.h: Changed the validation process to be able to work in streaming mode. Some datatype fixes, especially for list and union types. Due to the changes the error report output has changed in most cases. Initial migration to functions usable by both, the parser and the validator. This should ease a yet-to-come XS construction API in the long term as well.
152 lines
4.8 KiB
C
152 lines
4.8 KiB
C
/*
|
|
* Summary: implementation of XML Schema Datatypes
|
|
* Description: module providing the XML Schema Datatypes implementation
|
|
* both definition and validity checking
|
|
*
|
|
* Copy: See Copyright for the status of this software.
|
|
*
|
|
* Author: Daniel Veillard
|
|
*/
|
|
|
|
|
|
#ifndef __XML_SCHEMA_TYPES_H__
|
|
#define __XML_SCHEMA_TYPES_H__
|
|
|
|
#include <libxml/xmlversion.h>
|
|
|
|
#ifdef LIBXML_SCHEMAS_ENABLED
|
|
|
|
#include <libxml/schemasInternals.h>
|
|
#include <libxml/xmlschemas.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
XML_SCHEMA_WHITESPACE_UNKNOWN = 0,
|
|
XML_SCHEMA_WHITESPACE_PRESERVE = 1,
|
|
XML_SCHEMA_WHITESPACE_REPLACE = 2,
|
|
XML_SCHEMA_WHITESPACE_COLLAPSE = 3
|
|
} xmlSchemaWhitespaceValueType;
|
|
|
|
XMLPUBFUN void XMLCALL
|
|
xmlSchemaInitTypes (void);
|
|
XMLPUBFUN void XMLCALL
|
|
xmlSchemaCleanupTypes (void);
|
|
XMLPUBFUN xmlSchemaTypePtr XMLCALL
|
|
xmlSchemaGetPredefinedType (const xmlChar *name,
|
|
const xmlChar *ns);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr *val);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr *val,
|
|
xmlNodePtr node);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValidateFacet (xmlSchemaTypePtr base,
|
|
xmlSchemaFacetPtr facet,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr val);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
|
|
xmlSchemaWhitespaceValueType fws,
|
|
xmlSchemaValType valType,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr val,
|
|
xmlSchemaWhitespaceValueType ws);
|
|
XMLPUBFUN void XMLCALL
|
|
xmlSchemaFreeValue (xmlSchemaValPtr val);
|
|
XMLPUBFUN xmlSchemaFacetPtr XMLCALL
|
|
xmlSchemaNewFacet (void);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
|
|
xmlSchemaTypePtr typeDecl,
|
|
xmlSchemaParserCtxtPtr ctxt,
|
|
const xmlChar *name);
|
|
XMLPUBFUN void XMLCALL
|
|
xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaCompareValues (xmlSchemaValPtr x,
|
|
xmlSchemaValPtr y);
|
|
XMLPUBFUN xmlSchemaTypePtr XMLCALL
|
|
xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
|
|
const xmlChar *value,
|
|
unsigned long actualLen,
|
|
unsigned long *expectedLen);
|
|
XMLPUBFUN xmlSchemaTypePtr XMLCALL
|
|
xmlSchemaGetBuiltInType (xmlSchemaValType type);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
|
|
int facetType);
|
|
XMLPUBFUN xmlChar * XMLCALL
|
|
xmlSchemaCollapseString (const xmlChar *value);
|
|
XMLPUBFUN xmlChar * XMLCALL
|
|
xmlSchemaWhiteSpaceReplace (const xmlChar *value);
|
|
XMLPUBFUN unsigned long XMLCALL
|
|
xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
|
|
xmlSchemaFacetPtr facet,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr val,
|
|
unsigned long *length);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
|
|
xmlSchemaValType valType,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr val,
|
|
unsigned long *length,
|
|
xmlSchemaWhitespaceValueType ws);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
|
|
const xmlChar *value,
|
|
xmlSchemaValPtr *val,
|
|
xmlNodePtr node);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaGetCanonValue (xmlSchemaValPtr val,
|
|
const xmlChar **retValue);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val,
|
|
const xmlChar **retValue,
|
|
xmlSchemaWhitespaceValueType ws);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValueAppend (xmlSchemaValPtr prev,
|
|
xmlSchemaValPtr cur);
|
|
XMLPUBFUN xmlSchemaValPtr XMLCALL
|
|
xmlSchemaValueGetNext (xmlSchemaValPtr cur);
|
|
XMLPUBFUN const xmlChar * XMLCALL
|
|
xmlSchemaValueGetAsString (xmlSchemaValPtr val);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaValueGetAsBoolean (xmlSchemaValPtr val);
|
|
XMLPUBFUN xmlSchemaValPtr XMLCALL
|
|
xmlSchemaNewStringValue (xmlSchemaValType type,
|
|
const xmlChar *value);
|
|
XMLPUBFUN xmlSchemaValPtr XMLCALL
|
|
xmlSchemaNewNOTATIONValue (const xmlChar *name,
|
|
const xmlChar *ns);
|
|
XMLPUBFUN xmlSchemaValPtr XMLCALL
|
|
xmlSchemaNewQNameValue (const xmlChar *namespaceName,
|
|
const xmlChar *localName);
|
|
XMLPUBFUN int XMLCALL
|
|
xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
|
|
xmlSchemaWhitespaceValueType xws,
|
|
xmlSchemaValPtr y,
|
|
xmlSchemaWhitespaceValueType yws);
|
|
XMLPUBFUN xmlSchemaValPtr XMLCALL
|
|
xmlSchemaCopyValue (xmlSchemaValPtr val);
|
|
XMLPUBFUN xmlSchemaValType XMLCALL
|
|
xmlSchemaGetValType (xmlSchemaValPtr val);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* LIBXML_SCHEMAS_ENABLED */
|
|
#endif /* __XML_SCHEMA_TYPES_H__ */
|