ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Resolved :XSD exists more than once with in Application

Post new topic  Reply to topic
 Resolved :XSD exists more than once with in Application « View previous topic :: View next topic » 
Author Message
sankritya
PostPosted: Mon Oct 08, 2012 5:43 am    Post subject: Resolved :XSD exists more than once with in Application Reply with quote

Centurion

Joined: 14 Feb 2008
Posts: 100

Hi All,

I am getting error XSD exists more than once in an Application. I am generated two libraries from 2 set of WSDL and supporting XSD's. Some of the XSD's in both the WSDL are common. Although independently they are not showing any error but after referencing them in a Application both of them are returning error
Quote:
The file path ABC.xsd exists more than once in the Application MyApp. The file path may only exist once within all projects that are part of an application
.

I tried deleting the common ABC.xsd from one of the library and creating a project reference from other library but it still does not resolves the error as it is unable to find XSD.

Env : WMB V 8.0.0.1


Last edited by sankritya on Wed Oct 10, 2012 9:59 pm; edited 1 time in total
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Oct 08, 2012 5:51 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

XSD files that do not incorporate namespaces make all variable definitions global thereby causing collisions when the XSD is included by multiple entities.

This is especially true for IBM MDM, and other products, which by default do not use namespaces when it generates the XSDs. The solution for MDM is to use the MDM workbench to generate local namespaces (much like package names in WMB).

Regenerate your XSD and be sure to include a namespace decl for the variable types defined within the XSD.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
sankritya
PostPosted: Mon Oct 08, 2012 6:17 am    Post subject: Reply with quote

Centurion

Joined: 14 Feb 2008
Posts: 100

XSD is declared with Namespace and it is same for both as existing XSD has been reused from 1 WSDL to generate the other WSDL. It is kind of a passthrough service where same message is passed to Service provider without any transformation.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Oct 08, 2012 6:19 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

sankritya wrote:
XSD is declared with Namespace and it is same for both as existing XSD has been reused from 1 WSDL to generate the other WSDL. It is kind of a passthrough service where same message is passed to Service provider without any transformation.


Therefore, there is no need to import the WSDL twice? Import the WSDL only once.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
sankritya
PostPosted: Mon Oct 08, 2012 6:23 am    Post subject: Reply with quote

Centurion

Joined: 14 Feb 2008
Posts: 100

1 of the WSDL exposed by ESB is using some other XSD also for defining the performance parameters. It can not be forced to Service provider application.
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Oct 08, 2012 6:46 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

sankritya wrote:
It is kind of a passthrough service where same message is passed to Service provider without any transformation.


You can't have "kind of" a passthrough service. Either you're passing the web service call using the gateway mode of the SOAPInput node (in which case the WSDL is not needed) or the SOAPInput node is parsing the service.

If it's the latter, then you need to ensure (force) the XSD(s) used by the WSDLs to play nice, as indicated.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
sankritya
PostPosted: Mon Oct 08, 2012 8:52 pm    Post subject: Reply with quote

Centurion

Joined: 14 Feb 2008
Posts: 100

Quote:
Either you're passing the web service call using the gateway mode of the SOAPInput node (in which case the WSDL is not needed) or the SOAPInput node is parsing the service


SOAP Input node is parsing the message as validation of message is required.

Quote:
you need to ensure (force) the XSD(s) used by the WSDLs to play nice, as indicated.


It means that I can not use it as Passthrough service.javascript:emoticon('') I will have to do the mappings just for the sake of namespace. In my opinion it is one of the disadvantage of using Application until it provides a way for doing so.

It could be easily done using message set in V6.1.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Oct 09, 2012 5:43 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

sankritya wrote:
It could be easily done using message set in V6.1.


If v6.1 allowed it then that's a "feature" which has now been fixed. The namespace support in v6.1 was much less rich, and hence much less strict.

If you have multiple services with overlapping XSDs and mismatched namespaces that is a design issue with your web services. What you're attempting doesn't sound like it would work happily in any container.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
sankritya
PostPosted: Wed Oct 10, 2012 9:58 pm    Post subject: Reply with quote

Centurion

Joined: 14 Feb 2008
Posts: 100

Issue resolved. Imported the second wsdl also in the same library. It just imported the additional xsd files required along with the wsdl. So no conflict.
Back to top
View user's profile Send private message
Vibor
PostPosted: Sat Sep 26, 2015 5:09 am    Post subject: Reply with quote

Newbie

Joined: 02 Mar 2015
Posts: 7
Location: Zagreb, Croatia

Has anyone managed to solve this problem in another way?

I have two different WSDLs for two different web services. I would like to encapsulate each services into there own library. I would like for each library to contain appropriate message model and subflow for calling the service.

Unfortunately, both message models, when generated, provide same XSD file which causes "Global element exists more than once within the Application" problem when are both referenced by same application or BIP5035E error on deployment referencing integration project.

I've tried to isolate that XSD into separate library and reference that library from both previously created libraries. But then I get errors in WSDLs since they can no longer resolve XSD file location.

How do I keep services separated but usable by other project?
Back to top
View user's profile Send private message
timber
PostPosted: Sun Sep 27, 2015 12:19 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Aug 2015
Posts: 1292

Message Broker v8 and IIBv9:
Import the WSDLs into separate message sets. Note that this is the *only* good reason I can think of for using message sets in v8 and v9.
Alternatively, work around the problem by reorganising the schemas to avoid the duplication - but that was suggested already, and you specifically asked for 'another way' to solve the problem.

IIBv10:
Put the WSDLs and their xsds into separate *shared* Libraries. Shared libraries are a new-for-v10 feature that is specifically intended to solve this problem ( among others ).
Back to top
View user's profile Send private message
Vibor
PostPosted: Sun Sep 27, 2015 1:49 pm    Post subject: Reply with quote

Newbie

Joined: 02 Mar 2015
Posts: 7
Location: Zagreb, Croatia

Thank you for reply. We are currently developing for IIB9 so second option is not available for us now but first is. Thx.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Resolved :XSD exists more than once with in Application
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.