added the boolean base type. Daniel
* xmlschemastypes.c: added the boolean base type.
Daniel
diff --git a/ChangeLog b/ChangeLog
index 6cf9169..d69c40a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Feb 7 01:43:38 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * xmlschemastypes.c: added the boolean base type.
+
Thu Feb 6 10:23:52 CET 2003 Daniel Veillard <daniel@veillard.com>
* xmlschemastypes.c: started implementing some of the missing
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index aff3e57..89d30db 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -55,6 +55,7 @@
XML_SCHEMAS_DURATION,
XML_SCHEMAS_FLOAT,
XML_SCHEMAS_DOUBLE,
+ XML_SCHEMAS_BOOLEAN,
XML_SCHEMAS_INT,
XML_SCHEMAS_,
XML_SCHEMAS_XXX
@@ -107,6 +108,7 @@
xmlSchemaValDuration dur;
float f;
double d;
+ int b;
} value;
};
@@ -131,6 +133,7 @@
static xmlSchemaTypePtr xmlSchemaTypeDurationDef = NULL;
static xmlSchemaTypePtr xmlSchemaTypeNmtoken = NULL;
static xmlSchemaTypePtr xmlSchemaTypeFloatDef = NULL;
+static xmlSchemaTypePtr xmlSchemaTypeBooleanDef = NULL;
static xmlSchemaTypePtr xmlSchemaTypeDoubleDef = NULL;
static xmlSchemaTypePtr xmlSchemaTypeNameDef = NULL;
static xmlSchemaTypePtr xmlSchemaTypeQNameDef = NULL;
@@ -209,6 +212,7 @@
xmlSchemaTypeNmtoken = xmlSchemaInitBasicType("NMTOKEN");
xmlSchemaTypeFloatDef = xmlSchemaInitBasicType("float");
xmlSchemaTypeDoubleDef = xmlSchemaInitBasicType("double");
+ xmlSchemaTypeBooleanDef = xmlSchemaInitBasicType("boolean");
xmlSchemaTypeNameDef = xmlSchemaInitBasicType("Name");
xmlSchemaTypeQNameDef = xmlSchemaInitBasicType("QName");
xmlSchemaTypeAnyURIDef = xmlSchemaInitBasicType("anyURI");
@@ -1429,6 +1433,31 @@
}
xmlFreeURI(uri);
return(0);
+ } else if (type == xmlSchemaTypeBooleanDef) {
+ const xmlChar *cur = value;
+
+ if ((cur[0] == '0') && (cur[1] == 0))
+ ret = 0;
+ else if ((cur[0] == '1') && (cur[1] == 0))
+ ret = 1;
+ else if ((cur[0] == 't') && (cur[1] == 'r') && (cur[2] == 'u') &&
+ (cur[3] == 'e') && (cur[4] == 0))
+ ret = 1;
+ else if ((cur[0] == 'f') && (cur[1] == 'a') && (cur[2] == 'l') &&
+ (cur[3] == 's') && (cur[4] == 'e') && (cur[5] == 0))
+ ret = 0;
+ else
+ return(1);
+ if (val != NULL) {
+ v = xmlSchemaNewValue(XML_SCHEMAS_BOOLEAN);
+ if (v != NULL) {
+ v->value.b = ret;
+ *val = v;
+ } else {
+ return(-1);
+ }
+ }
+ return(0);
} else {
TODO
return(0);