Иногда элемент содержит смешанное содержимое, а не только элементы или только текст. Например, элемент subject может содержать разметку HTML:
<subject> A reading of Charles Dickens' <i>A Christmas Carol</i>. Absolutely <b>marvelous</b>! </subject>
Это содержимое не может быть описано как xsd:string, поскольку оно содержит элементы. Также и простое перечисление элементов i и b в последовательности не будет работать, поскольку они содержат текст. Вместо этого элемент subject должен быть определен как mixed:
<xsd:element name="subject"> <xsd:complexType mixed="true"> <xsd:sequence> <xsd:element name="i" minOccurs="0" maxOccurs="unbounded" type="xsd:string" /> <xsd:element name="b" minOccurs="0" maxOccurs="unbounded" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element>
Этот метод создания смешанного содержимого является усовершенствованием по сравнению с DTD потому, что он позволяет лучше управлять количеством и порядком следования элементов. Конечно, в случае, если вы не хотите другого.