Commit 1aefc862 authored by Daniel Veillard's avatar Daniel Veillard

applied patch from Adam Dickmeiss for mixed content added his regression

* xmlschemas.c: applied patch from Adam Dickmeiss for mixed content
* test/schemas/mixed* result/schemas/mixed*: added his regression
  tests too.
Daniel
parent 3411d08e
Thu Mar 4 12:38:53 CET 2004 Daniel Veillard <daniel@veillard.com>
* xmlschemas.c: applied patch from Adam Dickmeiss for mixed content
* test/schemas/mixed* result/schemas/mixed*: added his regression
tests too.
Mon Mar 1 15:22:06 CET 2004 Daniel Veillard <daniel@veillard.com>
* testSAX.c: fix a compilation problem about a missing timb include
......
./test/schemas/mixed0_0.xml validates
./test/schemas/mixed1_0.xml validates
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<xs:element name='my'>
<xs:complexType mixed='true'/>
</xs:element>
</xs:schema>
<my myattr='y'>x</my>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<xs:element name='my'>
<xs:complexType mixed='true'>
<xs:attribute name='myattr' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
</xs:schema>
......@@ -3581,6 +3581,7 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
xmlNodePtr child = NULL;
const xmlChar *name;
const xmlChar *oldcontainer;
const xmlChar *mixed;
char buf[100];
if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
......@@ -3602,6 +3603,11 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
if (type == NULL) {
return (NULL);
}
mixed = xmlSchemaGetProp(ctxt, node, "mixed");
if (mixed != NULL)
type->flags |= XML_SCHEMAS_TYPE_MIXED;
type->node = node;
type->type = XML_SCHEMA_TYPE_COMPLEX;
type->id = xmlSchemaGetProp(ctxt, node, "id");
......@@ -4491,6 +4497,10 @@ xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
case XML_SCHEMA_TYPE_COMPLEX:{
if (typeDecl->subtypes == NULL) {
typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
typeDecl->contentType =
XML_SCHEMA_CONTENT_MIXED;
} else {
if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
typeDecl->contentType =
......@@ -4511,6 +4521,9 @@ xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
case XML_SCHEMA_TYPE_COMPLEX_CONTENT:{
if (typeDecl->subtypes == NULL) {
typeDecl->contentType = XML_SCHEMA_CONTENT_EMPTY;
if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
typeDecl->contentType =
XML_SCHEMA_CONTENT_MIXED;
} else {
if (typeDecl->flags & XML_SCHEMAS_TYPE_MIXED)
typeDecl->contentType =
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment