--- a/src/xmlpatterns/schema/qxsdschemaresolver.cpp Fri May 14 16:40:13 2010 +0300
+++ b/src/xmlpatterns/schema/qxsdschemaresolver.cpp Thu May 27 13:40:48 2010 +0300
@@ -632,7 +632,14 @@
} else {
// 1.2
const XsdSimpleType::Ptr anonType(new XsdSimpleType());
- anonType->setCategory(complexBaseType->contentType()->simpleType()->category());
+ XsdSimpleType::TypeCategory baseCategory = complexBaseType->contentType()->simpleType()->category();
+ anonType->setCategory(baseCategory);
+
+ if (baseCategory == XsdSimpleType::SimpleTypeList) {
+ const XsdSimpleType::Ptr baseSimpleType = complexBaseType->contentType()->simpleType();
+ anonType->setItemType(baseSimpleType->itemType());
+ }
+
anonType->setDerivationMethod(XsdSimpleType::DerivationRestriction);
anonType->setWxsSuperType(complexBaseType->contentType()->simpleType());
anonType->setFacets(complexTypeFacets(complexType));