I've got a new one of this that applies to trunk. Will send shortly.
On 5/5/09 16:26, "wlegge...@cleversafe.com" <wlegge...@cleversafe.com> wrote: > # 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 > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@xmlbeans.apache.org For additional commands, e-mail: dev-h...@xmlbeans.apache.org