# HG changeset patch # User wleggette # Date 1241557917 18000 # Branch clean # Node ID 9ec09138e705b2060ed4c2af5854acde4edf238f # Parent 2947370e6ca73a1c1a3c9d52008883fa3cb85d41 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 2947370e6ca7 -r 9ec09138e705 src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java --- a/src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java Tue May 05 14:43:28 2009 -0500 +++ b/src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java Tue May 05 16:11:57 2009 -0500 @@ -60,7 +60,11 @@ // First distribute the global names among the top entities. if (javaize) + { assignGlobalJavaNames(allSeenTypes); + assignUserTypes(); + } + // now fully javaize everything deeply. for (int i = 0; i < allSeenTypes.size(); i++) @@ -100,19 +104,31 @@ sImpl.setFullJavaName(pickFullJavaClassName(usedNames, findTopName(sImpl), pickedName, sImpl.isDocumentType(), sImpl.isAttributeType())); sImpl.setFullJavaImplName(pickFullJavaImplName(usedNames, sImpl.getFullJavaName())); - UserType utype = StscState.get().getBindingConfig().lookupUserTypeForQName(sImpl.getName()); - if (utype != null) - { - sImpl.setUserTypeName(utype.getJavaName()); - sImpl.setUserTypeHandlerName(utype.getStaticHandler()); - } - setExtensions(sImpl, state); } } verifyInterfaceNameCollisions(usedNames, state); } + + static void assignUserTypes() + { + StscState state = StscState.get(); + + for (UserType utype : StscState.get().getBindingConfig().getUserTypes()) + { + SchemaTypeImpl sImpl = state.findGlobalType(utype.getName(), null, null); + if (sImpl != null) + { + sImpl.setUserTypeName(utype.getJavaName()); + sImpl.setUserTypeHandlerName(utype.getStaticHandler()); + } + else + { + System.err.println("Warning: cannot match user type for " + utype.getName()); + } + } + } private static void verifyInterfaceNameCollisions(Set usedNames, StscState state) { diff -r 2947370e6ca7 -r 9ec09138e705 src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java --- a/src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Tue May 05 14:43:28 2009 -0500 +++ b/src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Tue May 05 16:11:57 2009 -0500 @@ -396,6 +396,12 @@ return (UserType) _userTypes.get(qname); } + + @Override + 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