src/xmlpatterns/schema/qxsdschemaresolver.cpp
changeset 23 89e065397ea6
parent 0 1918ee327afb
--- 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));