You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by em...@apache.org on 2007/05/16 10:36:40 UTC
svn commit: r538479 -
/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
Author: ema
Date: Wed May 16 01:36:39 2007
New Revision: 538479
URL: http://svn.apache.org/viewvc?view=rev&rev=538479
Log:
Check if the schema import is exist before add to schema
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?view=diff&rev=538479&r1=538478&r2=538479
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Wed May 16 01:36:39 2007
@@ -76,6 +76,7 @@
import org.apache.ws.commons.schema.XmlSchemaElement;
import org.apache.ws.commons.schema.XmlSchemaForm;
import org.apache.ws.commons.schema.XmlSchemaImport;
+import org.apache.ws.commons.schema.XmlSchemaObject;
import org.apache.ws.commons.schema.XmlSchemaSequence;
import org.apache.ws.commons.schema.XmlSchemaSerializer;
import org.apache.ws.commons.schema.XmlSchemaSerializer.XmlSchemaSerializerException;
@@ -552,7 +553,7 @@
if (mpi.isElement()) {
el.setRefName(mpi.getElementQName());
- String ns = message.getMessageParts().get(0).getElementQName().getNamespaceURI();
+ String ns = mpi.getElementQName().getNamespaceURI();
if (!ns.equals(schema.getTargetNamespace()) && !ns.equals(WSDLConstants.NU_SCHEMA_XSD)) {
XmlSchemaImport is = new XmlSchemaImport();
is.setNamespace(ns);
@@ -560,11 +561,13 @@
}
} else {
el.setSchemaTypeName(mpi.getTypeQName());
- String ns = message.getMessageParts().get(0).getTypeQName().getNamespaceURI();
+ String ns = mpi.getTypeQName().getNamespaceURI();
if (!ns.equals(schema.getTargetNamespace()) && !ns.equals(WSDLConstants.NU_SCHEMA_XSD)) {
XmlSchemaImport is = new XmlSchemaImport();
- is.setNamespace(ns);
- schema.getItems().add(is);
+ is.setNamespace(ns);
+ if (!isExistImport(schema, ns)) {
+ schema.getItems().add(is);
+ }
}
}
@@ -583,6 +586,23 @@
}
}
+ private boolean isExistImport(XmlSchema schema, String ns) {
+ boolean isExist = false;
+
+ for (Iterator ite = schema.getItems().getIterator(); ite.hasNext();) {
+ XmlSchemaObject obj = (XmlSchemaObject)ite.next();
+ if (obj instanceof XmlSchemaImport) {
+ XmlSchemaImport xsImport = (XmlSchemaImport)obj;
+ if (xsImport.getNamespace().equals(ns)) {
+ isExist = true;
+ break;
+ }
+ }
+ }
+ return isExist;
+
+ }
+
private void createWrappedMessageSchema(AbstractMessageContainer wrappedMessage,
AbstractMessageContainer unwrappedMessage, XmlSchema schema,
QName wrapperName) {