# HG changeset patch # User wleggette # Date 1241558735 18000 # Branch clean # Node ID c86ba8bafc666343e02ab9f57c0a4ef6b6f1f935 # Parent 3b1f6f066c53dfe478de2c0464e3c72bfa83567c 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 3b1f6f066c53 -r c86ba8bafc66 src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java --- a/src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java Tue May 05 16:24:47 2009 -0500 +++ b/src/typeimpl/org/apache/xmlbeans/impl/schema/StscJavaizer.java Tue May 05 16:25:35 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,33 @@ 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(); + UserType[] utypes = StscState.get().getBindingConfig().getUserTypes(); + + + for (int i = 0; i < utypes.length; i++) + { + SchemaTypeImpl sImpl = state.findGlobalType(utypes[i].getName(), null, null); + if (sImpl != null) + { + sImpl.setUserTypeName(utypes[i].getJavaName()); + sImpl.setUserTypeHandlerName(utypes[i].getStaticHandler()); + } + else + { + System.err.println("Warning: cannot match user type for " + utypes[i].getName()); + } + } + } private static void verifyInterfaceNameCollisions(Set usedNames, StscState state) { diff -r 3b1f6f066c53 -r c86ba8bafc66 src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java --- a/src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Tue May 05 16:24:47 2009 -0500 +++ b/src/xmlconfig/org/apache/xmlbeans/impl/config/BindingConfigImpl.java Tue May 05 16:25:35 2009 -0500 @@ -396,6 +396,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