# 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: [email protected]
For additional commands, e-mail: [email protected]