簡體   English   中英

從XSD問題生成JAXB類

[英]Generating JAXB Classes from XSD Issue

我有一堆XSD文件,並將它們添加到我的項目中,以使用JAXB從它們生成類。 我正在使用JDeveloper 11,JDK 1.6和JAXB 2.0。 XSD文件會導入其他XSD文件,因此我正在生成主文件的內容模型,但是,我一直收到此錯誤An error was encountered while migrating JAXB. Property "Any" is already defined. Use <jaxb:property> to resolve this conflict. An error was encountered while migrating JAXB. Property "Any" is already defined. Use <jaxb:property> to resolve this conflict.

文件的其余部分可能包含相同名稱的類型。

我還嘗試注釋掉選擇項內的所有xs:any元素,只留下一個,還注釋掉了它們相應的導入,並且能夠生成jaxb類。 但是,如果我再添加一個,則會收到錯誤消息。

我使用JDeveloper 12c和Eclipse嘗試了同樣的事情,但是發生了同樣的事情。

這可能是問題所在,我也嘗試查找問題,但沒有找到任何對我有用的方法。

以下是主要的XSD文件

<?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>

此錯誤告訴您需要使用JAXB綁定文件來修改要與默認值“ Any”的每個xs:any行關聯的集合名稱。

我在Oracle網站上找到了一些文檔,網址為https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html

我還發現這個相關的stackoverflow答案應該是有用的(它具有定義了jaxb:property元素的完整綁定文件的示例): https ://stackoverflow.com/a/4394185/265237

編寫綁定文件后,需要將其與XSD一起傳遞給XJC,此文件的命令行版本為:

xjc schema.xsd -b bindings.xjb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM