October 20, 2010

"XML-24500: (Error) Can not build schema" in JDeveloper 11g

Problem:

We migrated an ESB 10g project to Mediator 11g. What is strange is that this project works completely fine in the 10g world. However, when we try to make or deploy it in JDeveloper 11g, we receive the following error:
Investigation:

Oracle JDeveloper 10g is more liberal in its verification. In fact, our problem was the following.
  • Our JDeveloper 11g composite looks like this:
  • There are 2 external SOAP services, each having its own WSDL. For example:
http://external.ipnweb.org/Location/AddressWebService.svc?wsdl
http://external.ipnweb.org/Contact/ContactWebService.svc?wsdl
  • Observe the schema definition in each of the WSDLs. You will notice that the same namespace is used across both references, but related to different XSDs.
First WSDL
<xsd:schema targetNamespace="http://ns.ipnweb.com/MyApp/AddressWebService/20090101/Imports">
  <xsd:import schemaLocation="http://external.ipnweb.org/Location/AddressWebService.xsd" namespace="http://ns.ipnweb.com/MyApp/Contact/20090101"/>
  <xsd:import schemaLocation="http://external.ipnweb.org/Location/AddressWebService.xsd" namespace="http://ns.ipnweb.com/MyApp/AuditableDomainBase/20090101"/>
</xsd:schema>

Second WSDL
<xsd:schema targetNamespace="http://ns.ipnweb.com/MyApp/ContactWebService/20090101/Imports">
  <xsd:import schemaLocation="http://external.ipnweb.org/Contact/ContactWebService.xsd" namespace="http://ns.ipnweb.com/MyApp/Contact/20090101"/>
  <xsd:import schemaLocation="http://external.ipnweb.org/Contact/ContactWebService.xsd" namespace="http://ns.ipnweb.com/MyApp/Enums/20090101"/>
</xsd:schema>
  • When we open both the XSDs, we can see that the same element is defined identically, but the problem is, the annotations are defined in one of them, but not the other.
First XSD
<xs:complexType name="Organization">
  <xs:complexContent mixed="false">
    <xs:extension base="q1:DomainBase">
      <xs:sequence>
        <xs:element minOccurs="0" name="OrgId" nillable="true" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>

Second XSD
<xs:complexType name="Organization">
  <xs:annotation>
    <xs:appinfo>
      <Surrogate i:type="d1p1:Annotation"/>
    </xs:appinfo>
  </xs:annotation>
  <xs:complexContent mixed="false">
    <xs:extension base="q1:DomainBase">
      <xs:sequence>
        <xs:element minOccurs="0" name="OrgId" nillable="true" type="xs:string">
          <xs:annotation>
            <xs:appinfo>
              <Surrogate i:type="d1p1:Annotation"/>
            </xs:appinfo>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
The fact that the annotations are different is what is causing the XML-24500 error seen above.

Resolution:

Ensure that the XSDs are identical in terms of definition, including annotations.
Buildfile: C:\jdeveloper\bin\ant-sca-compile.xml

scac:
[scac] Validating composite "C:\MyProject\composite.xml"
[scac] oracle.fabric.common.wsdl.XSDException: Global Type declaration/definition of name '{http://ns.ipnweb.com/MyApp/Organization/20090101}Organization' are duplicated at the following locations:
[scac]
[scac] file:/C:/MyProject/ContactWebService.svc_xsd_xsd9.xsd [line#: 6]
[scac] file:/C:/MyProject/AddressWebService.svc_xsd_xsd2.xsd [line#: 6]
[scac] There are at least two of them looking different:
[scac] file:/C:/MyProject/ContactWebService.svc_xsd_xsd9.xsd [difference starting at line#:17]
[scac] file:/C:/MyProject/AddressWebService.svc_xsd_xsd2.xsd [difference starting at line#:17]
[scac]
[scac] Global Type declaration/definition of name '{http://ns.ipnweb.com/MyApp/OrganizationEvent/20090101}OrganizationEvent' are duplicated at the following locations:
[scac]
[scac] file:/C:/MyProject/ContactWebService.svc_xsd_xsd10.xsd [line#: 11]
[scac] file:/C:/MyProject/AddressWebService.svc_xsd_xsd7.xsd [line#: 18]
[scac] There are at least two of them looking different:
[scac] file:/C:/MyProject/ContactWebService.svc_xsd_xsd10.xsd [difference starting at line#:12]
[scac] file:/C:/MyProject/AddressWebService.svc_xsd_xsd7.xsd [difference starting at line#:19]
[scac]
[scac]
[scac] at oracle.fabric.common.wsdl.SchemaBuilder.postProcessXSD(SchemaBuilder.java:330)
[scac] at oracle.fabric.common.wsdl.SchemaBuilder.loadAllSchemas(SchemaBuilder.java:210)
[scac] at oracle.fabric.common.wsdl.SchemaManager.loadAllXSD(SchemaManager.java:139)
[scac] at oracle.fabric.common.wsdl.SchemaManager.buildXDKSchema(SchemaManager.java:348)
[scac] at oracle.fabric.common.wsdl.SchemaManager.lookupSchema(SchemaManager.java:216)
[scac] at oracle.fabric.common.wsdl.SchemaManager.lookupXSDElementDeclaration(SchemaManager.java:399)
[scac] at oracle.soa.scac.WSDLValidator.validateMessageParts(WSDLValidator.java:112)
[scac] at oracle.soa.scac.WSDLValidator.validateMessages(WSDLValidator.java:88)
[scac] at oracle.soa.scac.WSDLValidator.validate(WSDLValidator.java:47)
[scac] at oracle.soa.scac.WSDLValidator.validate(WSDLValidator.java:40)
[scac] at oracle.soa.scac.ValidateComposite.loadWSDLs(ValidateComposite.java:1004)
[scac] at oracle.soa.scac.ValidateComposite.doValidation(ValidateComposite.java:568)
[scac] at oracle.soa.scac.ValidateComposite.run(ValidateComposite.java:156)
[scac] at oracle.soa.scac.ValidateComposite.main(ValidateComposite.java:141)
[scac]
[scac] <Line 2, Column 172>: XML-24500: (Error) Can not build schema 'http://ns.ipnweb.com/MyApp/Organization/20090101' located at 'http://ns.ipnweb.com/MyApp/Organization/20090101.__OAUX_GENXSD_.TOP.XSD'
[scac] <Line 2, Column 168>: XML-24500: (Error) Can not build schema 'http://ns.ipnweb.com/MyApp/DomainBase/20090101' located at 'http://ns.ipnweb.com/MyApp/DomainBase/20090101.__OAUX_GENXSD_.TOP.XSD'
[scac] <Line 3, Column 162>: XML-24500: (Error) Can not build schema 'http://ns.ipnweb.com/MyApp/Contact/20090101' located at 'http://ns.ipnweb.com/MyApp/Contact/20090101.__OAUX_GENXSD_.TOP.XSD'
[scac] <Line 106, Column 164>: XML-24528: (Error) Invalid reference: 'http://ns.ipnweb.com/MyApp/Organization/20090101:Organization'
[scac]
[scac] FATAL_ERROR: location {/ns:composite/ns:import[@location='file:/C:/MyProject/AddressWebService.svc_wsdl_wsdl0.wsdl']}: Load of wsdl "ContactWebService.svc.wsdl with Message part element undefined in wsdl [file:/C:/MyProject/AddressWebService.svc_wsdl_wsdl0.wsdl] part name = parameters type = {http://ns.ipnweb.com/MyApp/AddressWebService/20090101}DeleteAddressBookEntry" failed
[scac] FATAL_ERROR: location {/ns:composite/ns:import[@location='file:/C:/MyProject/ContactWebService.svc_wsdl_wsdl0.wsdl']}: Load of wsdl "ContactWebService.svc.wsdl with Message part element undefined in wsdl [file:/C:/MyProject/ContactWebService.svc_wsdl_wsdl0.wsdl] part name = parameters type = {http://ns.ipnweb.com/MyApp/ContactWebService/20090101}DeleteProfileContactResponse" failed
[scac] FATAL_ERROR: location {/ns:composite/ns:import[@location='file:/C:/MyProject/AddressWebService.svc.wsdl']}: Load of wsdl "ContactWebService.svc.wsdl with Message part element undefined in wsdl [file:/C:/MyProject/AddressWebService.svc_wsdl_wsdl0.wsdl] part name = parameters type = {http://ns.ipnweb.com/MyApp/AddressWebService/20090101}DeleteAddressBookEntry" failed
[scac] FATAL_ERROR: location {/ns:composite/ns:import[@location='file:/C:/MyProject/ContactWebService.svc.wsdl']}: Load of wsdl "ContactWebService.svc.wsdl with Message part element undefined in wsdl [file:/C:/MyProject/ContactWebService.svc_wsdl_wsdl0.wsdl] part name = parameters type = {http://ns.ipnweb.com/MyApp/ContactWebService/20090101}DeleteProfileContactResponse" failed
[scac] FATAL_ERROR: location {/ns:composite/ns:reference[@name='Address']}(17,74): Reference Address does not exist as wire target
[scac] FATAL_ERROR: location {/ns:composite/ns:reference[@name='Contact']}(25,74): Reference Contact does not exist as wire target

BUILD FAILED
C:\jdeveloper\bin\ant-sca-compile.xml:236: Java returned: 1 Check log file : C:\MyProject\SCA-INF\classes\scac.log for errors

Total time: 5 seconds

15 comments:

  1. This is a very helpful blog.. Cheers Ahmed!!

    ReplyDelete
  2. Hi,
    This site is pretty good.I like the way they it was explained.This site had cleared all my issues which i was facing earlier.Many Thanks.

    Oracle R12 Upgrade.

    ReplyDelete
  3. Hi Ahmed.. i need an urgent help.

    i have an esb..

    with one routing service and one soup service

    when i am migrating to 11g.. i am getting in service reference and one reference pointing to 10g wsdl..ok

    when i deployed the same code to 11g it got deployed successfully..

    now i want to point the both routing service and soap service to 11g port..

    i am able to get the routing service wsdl ,can you please let me know where can i find the soup service wsdl pointing to 11g port..

    ReplyDelete
  4. AnonymousJune 21, 2012

    HI Very good info.. Thanks alot for sharing .

    ReplyDelete
  5. great & nice articles with a lot of information to read...great people keep posting and keep updating people..thank you , Hello, this is very useful material. You can read information about Turkey eVisa online. Turkey e Visa is an electronic visa that allows travel into Turkey.

    ReplyDelete
  6. Thank you Before applying for Kenya visa you must check the eligible countries for Kenya Visa. To verify that Are you eligible to get the Kenya visa or not?

    ReplyDelete
  7. Hey everyone, Foreign citizens can enter India for business purposes. The Indian government allows foreign country citizens to apply for a business visa for India. e Business visa India, Non-Indian visitors who are looking for business business or meetings, setting up industrial or business enterprises in India or other similar business activities etc.

    ReplyDelete
  8. Attractive component of the material. I just stumbled across your web site and accession capital to say that I really enjoyed your site. You are a compelling author. An e visa Turkey is an electronic visa which is for those travelers who can apply from anywhere from all around the world.

    ReplyDelete
  9. Bitdefender Total Security 2019 Crack is award-winning antivirus and Internet security package that is equipped with powerful tools. Bitdefender Total Security Crack

    ReplyDelete
  10. MorphVOX Pro Crack is a useful and easy to use utility that will change your voice to match your personality. It is a reliable tool that MorPhVox Cracked

    ReplyDelete
  11. Good morning, dear husband. You are my life. You are my other half. I cannot stop loving you. Have a great day. Have a great time! Love MSG For Husband

    ReplyDelete
  12. Here is a rewritten version of the comment:

    Planning a trip to Turkey soon? Be sure to apply for your Turkey eVisa online before you travel. The Turkey eVisa is an easy and convenient electronic visa that allows entry into Turkey. It can be obtained entirely online in just a few simple steps. All you need is a valid passport, a credit or debit card, and an email address. The online application form only takes about 10-15 minutes to complete. Once approved, you will receive your Turkey eVisa via email within 24 hours. With an eVisa, you can enter and exit Turkey multiple times during your visit. It is valid for up to 90 days within a 180 day period. The Turkey eVisa streamlines the visa process, saving you time and hassle. No need to apply in person at an embassy or consulate. Visit the official website today to apply for your Turkey eVisa and be ready for your upcoming trip to this fascinating country! Let me know if you have any other questions.

    ReplyDelete