1

I have a bunch of XSD files and I added them to my project to generate classes from them using JAXB. I am using JDeveloper 11, JDK 1.6 and JAXB 2.0. An XSD file imports other XSD files so I'm generating the content model of the main file, however, I keep getting this error An error was encountered while migrating JAXB. Property "Any" is already defined. Use <jaxb:property> to resolve this conflict.

The rest of the file may contain types of the same name.

I also tried commenting out all the xs:any elements inside the choice and leaving only one, also commenting out their corresponding imports, and was able to generate the jaxb classes. But if I add one more, then I get the error.

I tried the same thing using JDeveloper 12c and using Eclipse but the same thing happened.

What could be the issue here, I also tried looking up the issue, but did not find anything that could work for me.

Below is the main XSD file

<?xml version="1.0" encoding="UTF-8"?>
<!--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Legal Notices

SWIFT SCRL@2014. All rights reserved.

This schema is a component of MyStandards, the SWIFT collaborative Web application used to manage
standards definitions and industry usage.

This is a licensed product, which may only be used and distributed in accordance with MyStandards License
Terms as specified in MyStandards Service Description and the related Terms of Use.

Unless otherwise agreed in writing with SWIFT SCRL, the user has no right to:
 - authorise external end users to use this component for other purposes than their internal use.
 - remove, alter, cover, obfuscate or cancel from view any copyright or other proprietary rights notices appearing in this physical medium.
 - re-sell or authorise another party e.g. software and service providers, to re-sell this component.

This component is provided 'AS IS'. SWIFT does not give and excludes any express or implied warranties
with respect to this component such as but not limited to any guarantee as to its quality, supply or availability.

Any and all rights, including title, ownership rights, copyright, trademark, patents, and any other intellectual 
property rights of whatever nature in this component will remain the exclusive property of SWIFT or its 
licensors.

Trademarks
SWIFT is the trade name of S.W.I.F.T. SCRL.
The following are registered trademarks of SWIFT: the SWIFT logo, SWIFT, SWIFTNet, SWIFTReady, Accord, Sibos, 3SKey, Innotribe, the Standards Forum logo, MyStandards, and SWIFT Institute.
Other product, service, or company names in this publication are trade names, trademarks, or registered trademarks of their respective owners.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Group: T2S
Collection: T2S_UDFS_2.1_head.002
Usage Guideline: head.002.001.01_T2S
Base Message: DRAFT2head.002.001.01
Date of publication: 01 October 2015
URL: https://www2.swift.com/mystandards/standardsPractices/mpDescription.xhtml?marketpractice=mp/mx/_LIiBQGg_EeWfEYThn8bcRQ/_LIiBQWg_EeWfEYThn8bcRQ
Generated by the MyStandards web platform [http://www.swift.com/mystandards] on 2015-11-09T09:46:56+00:00
T2S notices : null
-->
<!--
Being not available on MyStandards, this XSD file of "head.002.001.01" message has been remade based
on the "head.002.001.01" PDF description and the "DRAFT2head.002.001.01" XSD file produced and used
by T2S
The XSD file for "ISO20022+" id based and the remade "head.002.001.01" :
- encapsulation of the signature in a "Sgntr" tag
- encapsulation of the payload in a "Any" tag
- restriction of the payload namespaces to ISO20022+ namespaces (SEPA and ISO20022+ reports)
- strict version : import of namespaces + strict validation required
-->
<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:head.002.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:head.002.001.01">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03" schemaLocation="pacs.002.001.03.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02" schemaLocation="pacs.003.001.02.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.004.001.02" schemaLocation="pacs.004.001.02.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.007.001.02" schemaLocation="pacs.007.001.02.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02" schemaLocation="pacs.008.001.02.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:camt.029.001.03" schemaLocation="camt.029.001.03.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:camt.056.001.01" schemaLocation="camt.056.001.01.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:acmt.022.001.02" schemaLocation="acmt.022.001.02.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRA" schemaLocation="pacs.002.001.03CRA.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRB" schemaLocation="pacs.002.001.03CRB.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRT" schemaLocation="pacs.002.001.03CRT.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03FKO" schemaLocation="pacs.002.001.03FKO.xsd"/>
    <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRG" schemaLocation="pacs.002.001.03CRG.xsd"/>
    <xs:element name="Xchg" type="BusinessFileHeaderV01"/>
    <xs:complexType name="ApplicationSpecifics1">
        <xs:sequence>
            <xs:element maxOccurs="1" minOccurs="0" name="SysUsr" type="Max140Text"/>
            <xs:element maxOccurs="1" minOccurs="0" name="Sgntr" type="ISO20022PlusSgntr"/>
            <xs:element name="TtlNbOfDocs" type="Number"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="BusinessFileHeaderV01">
        <xs:sequence>
            <xs:element name="PyldDesc" type="PayloadDescription1"/>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="Pyld" type="ExchangePayload1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ExchangePayload1">
        <xs:sequence>
            <xs:element name="Any" type="ISO20022PlusAnyPayload"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ISO20022PlusAnyPayload">
        <xs:choice>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.004.001.02" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.007.001.02" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:camt.029.001.03" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:camt.056.001.01" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:acmt.022.001.02" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRA" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRB" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRT" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03FKO" processContents="strict"/>
            <xs:any namespace="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.03CRG" processContents="strict"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="ISO20022PlusSgntr">
        <xs:sequence>
            <xs:any namespace="http://www.w3.org/2000/09/xmldsig#" processContents="strict"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="ISODateTime">
        <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
    <xs:complexType name="ManifestDetails1">
        <xs:sequence>
            <xs:element name="DocTp" type="Max35Text"/>
            <xs:element name="NbOfDocs" type="Number"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="Max140Text">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="140"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Max256Text">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="256"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Max35Text">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="35"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Number">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="18"/>
            <xs:fractionDigits value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="PayloadDescription1">
        <xs:sequence>
            <xs:element name="PyldDtls" type="PayloadDetails1"/>
            <xs:element maxOccurs="1" minOccurs="0" name="ApplSpcfcInf" type="ApplicationSpecifics1"/>
            <xs:element name="PyldTpDtls" type="PayloadTypeDetails1"/>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="MnfstDtls" type="ManifestDetails1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PayloadDetails1">
        <xs:sequence>
            <xs:element name="PyldIdr" type="Max35Text"/>
            <xs:element name="CreDtAndTm" type="ISODateTime"/>
            <xs:element maxOccurs="1" minOccurs="0" name="PssblDplctFlg" type="TrueFalseIndicator"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PayloadTypeDetails1">
        <xs:sequence>
            <xs:element name="Tp" type="Max256Text"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="TrueFalseIndicator">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>
</xs:schema>
hakuna matata
  • 3,243
  • 13
  • 56
  • 93

1 Answers1

0

This error is telling you that you need to use a JAXB binding file to modify the collection name to be associated with each of the xs:any lines from their default value of "Any".

I found some documentation on the Oracle site at https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html

I also found this related stackoverflow answer that should be useful (it has an example of a complete binding file with a jaxb:property element defined): https://stackoverflow.com/a/4394185/265237

Once you have written a binding file you'll need to pass it to XJC alongside your XSD, the commandline version of this would be:

xjc schema.xsd -b bindings.xjb
Peter
  • 965
  • 7
  • 13