# HG changeset patch # User wleggette # Date 1241674622 18000 # Node ID ac60fab7a6cdbb282c4b34386995d02163479c60 # Parent e893e2106ca61abc6a0c9b15606639fe182a3c62 Fixes issue where specifying user types in an xsdconfig for types that are not currently be compiled (but are being referenced) does not work.
diff -r e893e2106ca6 -r ac60fab7a6cd src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java --- a/src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java Thu May 07 00:30:19 2009 -0500 +++ b/src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java Thu May 07 00:37:02 2009 -0500 @@ -100,11 +100,11 @@ sImpl.setFullJavaName(pickFullJavaClassName(usedNames, findTopName(sImpl), pickedName, sImpl.isDocumentType(), sImpl.isAttributeType())); sImpl.setFullJavaImplName(pickFullJavaImplName(usedNames, sImpl.getFullJavaName())); - setUserTypes(sImpl, state); - setExtensions(sImpl, state); } } + + setUserTypes(state); verifyInterfaceNameCollisions(usedNames, state); } @@ -135,17 +135,23 @@ } } - private static void setUserTypes(SchemaTypeImpl sImpl, StscState state) + private static void setUserTypes(StscState state) { BindingConfig config = state.getBindingConfig(); - if (config != null) + UserType[] utypes = StscState.get().getBindingConfig().getUserTypes(); + + for (int i = 0; i < utypes.length; i++) { - UserType utype = config.lookupUserTypeForQName(sImpl.getName()); - if (utype != null) + SchemaTypeImpl sImpl = state.findGlobalType(utypes[i].getName(), null, null); + if (sImpl != null) { - sImpl.setUserTypeName(utype.getJavaName()); - sImpl.setUserTypeHandlerName(utype.getStaticHandler()); + sImpl.setUserTypeName(utypes[i].getJavaName()); + sImpl.setUserTypeHandlerName(utypes[i].getStaticHandler()); + } + else + { + System.err.println("Warning: cannot match user type for " + utypes[i].getName()); } } } diff -r e893e2106ca6 -r ac60fab7a6cd src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java --- a/src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Thu May 07 00:30:19 2009 -0500 +++ b/src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Thu May 07 00:37:02 2009 -0500 @@ -394,6 +394,11 @@ return (UserType) _userTypes.get(qname); } + + public UserType[] getUserTypes() + { + return (UserType[])this._userTypes.values().toArray(new UserType[0]); + } public InterfaceExtension[] getInterfaceExtensions() { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@xmlbeans.apache.org For additional commands, e-mail: dev-h...@xmlbeans.apache.org