diff -r 8c0b6bccfe47 -r 0989ad8c0860 src/share/jaxws_classes/com/sun/xml/internal/bind/v2/schemagen/XmlSchemaGenerator.java --- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/schemagen/XmlSchemaGenerator.java Thu Apr 04 19:05:24 2013 -0700 +++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/schemagen/XmlSchemaGenerator.java Tue Apr 09 14:51:13 2013 +0100 @@ -1068,9 +1068,11 @@ elemName = te.getElementName(); } - Collection refs = propInfo.ref(); - if ((refs != null) && (!refs.isEmpty()) && (elemName != null)) { - ClassInfoImpl cImpl = (ClassInfoImpl)refs.iterator().next(); + Collection refs = propInfo.ref(); + TypeInfo ti; + if ((refs != null) && (!refs.isEmpty()) && (elemName != null) + && ((ti = refs.iterator().next()) == null || ti instanceof ClassInfoImpl)) { + ClassInfoImpl cImpl = (ClassInfoImpl)ti; if ((cImpl != null) && (cImpl.getElementName() != null)) { e.ref(new QName(cImpl.getElementName().getNamespaceURI(), tn.getLocalPart())); } else {