无法使用 JAXB 进行 xml 解组

it is not possible to do xml demarshalling using JAXB

提问人:Анастасия Бочкарева 提问时间:5/16/2023 更新时间:5/16/2023 访问量:26

问:

我正在使用 JAXB 将 XML 解析为 Java 对象,但出现了错误。我有一个 xml 文件

<ED807 xmlns="urn:cbr-ru:ed:v2.0" EDDate="2023-05-13">
    <BICDirectoryEntry BIC="041280103">
        <ParticipantInfo NameP="SAMAT" CntrCd="RU" Rgn="12" Ind="414056" Tnp="г"
                         Adr="FHD" DateIn="2010-06-08" ParticipantStatus="PSAC"/>
        <Accounts CK="99" AccountCBRBIC="041280002" DateIn="2013-01-09" AccountStatus="ACAC"/>
        <Accounts CK="99" AccountCBRBIC="041280002" DateIn="2013-01-09" AccountStatus="ACAC"/>
        <Accounts CK="99" AccountCBRBIC="041280002" DateIn="2013-01-09" AccountStatus="ACAC"/>
        <Accounts CK="99" AccountCBRBIC="041280002" DateIn="2013-01-09" AccountStatus="ACAC"/>
        <Accounts CK="99" AccountCBRBIC="041280002" DateIn="2013-01-09" AccountStatus="ACAC"/>
        <Accounts CK="99" AccountCBRBIC="041280002" DateIn="2013-01-09" AccountStatus="ACAC"/>
    </BICDirectoryEntry>

    <BICDirectoryEntry BIC="040147000">
        <ParticipantInfo NameP="РКЦ БИЙСК"  Tnp="г" Adr="ул. Владимира Ленина, 127"
                         DateIn="1994-01-20" ParticipantStatus="PSAC"/>
    </BICDirectoryEntry>

</ED807>

我使用类 TEG ED807型

@RequiredArgsConstructor
@XmlRootElement(name = "ED807", namespace = "urn:cbr-ru:ed:v2.0")
@XmlAccessorType(XmlAccessType.FIELD)
public class ED807 {


    private String edDate;
    private BICDirectoryEntry[] bicDirectoryEntries;

    @XmlAttribute(name = "EDDate")
    public String getEdDate() {
        return edDate;
    }

    @XmlElement(name = "BICDirectoryEntry")
    public BICDirectoryEntry[] getBicDirectoryEntries() {
        return bicDirectoryEntries;
    }
}

teg BICDirectoryEntry

@RequiredArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BICDirectoryEntry")
@Getter
@Setter
public class BICDirectoryEntry {
    @XmlElement(name = "ParticipantInfo")
    private ParticipantInfo participantInfo;

    @XmlElement(name = "Accounts")
    private Accounts[] accountList;

    @XmlAttribute(name = "BIC")
    private String bic;

}

teg ParticipantInfo

@RequiredArgsConstructor
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ParticipantInfo")
public class ParticipantInfo {

    @XmlAttribute(name = "NameP", required = true)
    private String nameP;

    @XmlAttribute(name = "CntrCd", required = true)
    private String cntrCd;

    @XmlAttribute(name = "RegN")
    private String regN;

    @XmlAttribute(name = "Tnp")
    private String tnp;

    @XmlAttribute(name = "Nnp", required = true)
    private String nnp;

    @XmlAttribute(name = "Adr")
    private String adr;

    @XmlAttribute(name = "PtType")
    private String ptType;

    @XmlAttribute(name = "ParticipantStatus")
    private String participantStatus;

}

和 teg 帐户

@RequiredArgsConstructor
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Accounts")
@XmlRootElement
public class Accounts {
    @XmlAttribute(name = "Account", required = true)
    private String accountNumber;

    @XmlAttribute(name = "RegulationAccountType")
    private String regulationAccountType;

    @XmlAttribute(name = "DateIn")
    private String dateIn;
    @XmlAttribute(name = "DateOut")
    private String dateOut;

    @XmlAttribute(name = "AccountStatus")
    private String accountStatus;
}

Но при тестирование выходит это:

com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions

请告诉我我做错了什么,注释中的错误在哪里

我试图在嵌套标签上方放置一个注释@XmlElementWrapper,但它也给出了一个错误

Java XML XML 解析 JAXB

评论


答: 暂无答案