gpt4 book ai didi

java - xsd 到 java bean jaxb 字段名

转载 作者:行者123 更新时间:2023-11-30 08:15:38 25 4
gpt4 key购买 nike

我已经从以下 xsd 文件创建了 java bean

人.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" elementFormDefault="qualified"
jxb:version="2.0">

<xs:annotation>
<xs:appinfo>
<jxb:globalBindings>
<jxb:serializable uid="1"/>
</jxb:globalBindings>
<jxb:schemaBindings>
<jxb:package name="com.thiyanesh"/>
</jxb:schemaBindings>
</xs:appinfo>
</xs:annotation>

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:long"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

团队.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" elementFormDefault="qualified"
jxb:version="2.0">

<xs:import schemaLocation="person.xsd"/>

<xs:annotation>
<xs:appinfo>
<jxb:globalBindings>
<jxb:serializable uid="2"/>
</jxb:globalBindings>
<jxb:schemaBindings>
<jxb:package name="com.thiyanesh"/>
</jxb:schemaBindings>
</xs:appinfo>
</xs:annotation>

<xs:element name="team">
<xs:complexType>
<xs:sequence>
<xs:element ref="person" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

目标是将 Person 定义为单独的类,并在 Team 类中包含人员列表。

现在类 Team 包含字段

List<Person> person;

有没有办法给这个字段起一个不同的名字?说“成员”。

List<Person> members;

我可能无法编辑生成的类。

最佳答案

这个绑定(bind)工作正常

<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:annox="http://annox.dev.java.net"
xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">

<bindings schemaLocation="../path/team.xsd">

<bindings node="//xs:element[@name='team']//xs:complexType//xs:sequence//xs:element[@ref='person']">
<property name="members"/>
</bindings>

</bindings>
</bindings>

其他

    <xs:element name="team">
<xs:complexType>
<xs:sequence>
<xs:element ref="person" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:appinfo>
<jxb:property name="members" />
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

关于java - xsd 到 java bean jaxb 字段名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28777094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com