[prev in list] [next in list] [prev in thread] [next in thread]
List: xmlbeans-dev
Subject: [PATCH 1 of 1] Fixes issue where specifying user types in an
From: wleggette () cleversafe ! com
Date: 2009-05-07 5:41:22
Message-ID: ac60fab7a6cdbb282c4b.1241674882 () terrence ! local
[Download RAW message or body]
# 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-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic