Added creation of the content type of xs:anyType. This is needed when
* xmlschemastypes.c: Added creation of the content type of
xs:anyType. This is needed when trying to extend xs:anyType
(although it makes no sense to extend it; IMHO the schema
people should have ruled this out). This was reported
by Yong Chen to the mailing list.
* xmlschemas.c: Fixed handling of xs:anyType in
xmlSchemaCheckCOSCTExtends() (reported by Young Chen). Tiny
adjustment to an error report output.
* test/schemas/extension2* result/schemas/extension2*:
Added a test case provided by Young Chen.
diff --git a/xmlschemas.c b/xmlschemas.c
index 4a4e36b..7e668cf 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -802,6 +802,8 @@
return(BAD_CAST "IDC (key)");
case XML_SCHEMA_TYPE_IDC_KEYREF:
return(BAD_CAST "IDC (keyref)");
+ case XML_SCHEMA_TYPE_ANY:
+ return(BAD_CAST "wildcard (any)");
case XML_SCHEMA_EXTRA_QNAMEREF:
return(BAD_CAST "[helper component] QName reference");
default:
@@ -2577,7 +2579,7 @@
xmlSchemaPErr(ctxt, node, error, (const char *) msg, NULL, NULL);
} else {
msg = xmlStrcat(msg, BAD_CAST message);
- msg = xmlStrcat(msg, BAD_CAST "\n");
+ msg = xmlStrcat(msg, BAD_CAST ".\n");
xmlSchemaPErrExt(ctxt, node, error, NULL, NULL, NULL,
(const char*) msg, str1, str2, NULL, NULL, NULL);
}
@@ -3259,6 +3261,9 @@
}
}
if (type->type != XML_SCHEMA_TYPE_BASIC) {
+ /*
+ * TODO: Why is this restricted to non built-in types?
+ */
if (type->attributeUses != NULL)
xmlSchemaFreeAttributeUseList(type->attributeUses);
}
@@ -11423,8 +11428,10 @@
default:
xmlSchemaPInternalErr(pctxt, "xmlSchemaBuildAContentModel",
"found unexpected term of type '%s' in content model of complex "
- "type '%s'.\n",
+ "type '%s'",
xmlSchemaCompTypeToString(particle->children->type), name);
+ xmlGenericError(xmlGenericErrorContext,
+ "Unexpected type: %d\n", particle->children->type);
return;
}
}
@@ -14370,7 +14377,7 @@
* SPEC (1) "If the {base type definition} is a complex type definition,
* then all of the following must be true:"
*/
- if (base->type == XML_SCHEMA_TYPE_COMPLEX) {
+ if (IS_COMPLEX_TYPE(base)) {
/*
* SPEC (1.1) "The {final} of the {base type definition} must not
* contain extension."