Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2011-08-25 21:35:25 +0000
committerpfullbright2011-08-25 21:35:25 +0000
commit3e96439d2b7743b7610c7e2e84fb258eda15b150 (patch)
tree1b720d421bd2bedd4844afbbc390ee76f1693477
parentf77f063f864057babbbd6380c591dcc2457552c4 (diff)
downloadwebtools.dali-3e96439d2b7743b7610c7e2e84fb258eda15b150.tar.gz
webtools.dali-3e96439d2b7743b7610c7e2e84fb258eda15b150.tar.xz
webtools.dali-3e96439d2b7743b7610c7e2e84fb258eda15b150.zip
fixed xsd type retrieval for anonymous/ root element types
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java
index 47dfec3fa6..915d42c9e2 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaPersistentType.java
@@ -32,6 +32,7 @@ import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages;
import org.eclipse.jpt.jaxb.core.resource.java.QNameAnnotation;
import org.eclipse.jpt.jaxb.core.resource.java.XmlRootElementAnnotation;
import org.eclipse.jpt.jaxb.core.resource.java.XmlTypeAnnotation;
+import org.eclipse.jpt.jaxb.core.xsd.XsdElementDeclaration;
import org.eclipse.jpt.jaxb.core.xsd.XsdSchema;
import org.eclipse.jpt.jaxb.core.xsd.XsdTypeDefinition;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
@@ -303,7 +304,22 @@ public abstract class AbstractJavaPersistentType
public XsdTypeDefinition getXsdTypeDefinition() {
XsdSchema xsdSchema = getJaxbPackage().getXsdSchema();
- return (xsdSchema == null) ? null : xsdSchema.getTypeDefinition(this.qName.getNamespace(), this.qName.getName());
+ if (xsdSchema == null) {
+ return null;
+ }
+
+ if (! StringTools.stringIsEmpty(this.qName.getName())) {
+ return xsdSchema.getTypeDefinition(this.qName.getNamespace(), this.qName.getName());
+ }
+
+ if (this.rootElement != null) {
+ XsdElementDeclaration xsdElement = xsdSchema.getElementDeclaration(this.rootElement.getQName().getNamespace(), this.rootElement.getQName().getName());
+ if (xsdElement != null) {
+ return xsdElement.getType();
+ }
+ }
+
+ return null;
}
@Override

Back to the top