xsd validation error in designer: "#cos-ct-extends.1.4.3.2.2.1: Extending complex types must preserve the 'mixed' state of the base type".

xsd validation error in designer: "#cos-ct-extends.1.4.3.2.2.1: Extending complex types must preserve the 'mixed' state of the base type".

book

Article ID: KB0092785

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Resolution:

When validating a XSD in Designer, the following error is thrown:


#cos-ct-extends.1.4.3.2.2.1: Extending complex types must preserve the 'mixed' state of the base type

To explain the error, look at the definition of some elements in the XSD. The complexType "Inline" is defined as "mixed" content,

<xs:complexType name="Inline" mixed="true">

The "inline" element can contain both element and character data, something like:

<Inline>some character data<some element/>moredata</Inline>

Look at the definition of element "p":

<xs:element name="p" substitutionGroup="block">
<xs:complexType>
<xs:complexContent>
<xs:extension base="Inline">

"p" is an extension of "inline" and is not defined as "mixed" content, therefore the definition of "p" element violates the following rule in the spec:

http://www.w3.org/TR/xmlschema-0/#DerivExt

When a complex type is derived by extension, its effective content model is the content model of the base type plus the content model specified in the type derivation.

What this means is that for the base type the content is "mixed", but for the derived type nothing is defined, meaning "mixed" is false. So if an effective content model needs to be created, there is a contradiction. To correct the schema, you would need to change:

<xs:complexType>
to 
<xs:complexType mixed="1">

Issue/Introduction

xsd validation error in designer: "#cos-ct-extends.1.4.3.2.2.1: Extending complex types must preserve the 'mixed' state of the base type".