Я новичок в JAXB и этот Maven-плагин jaxb2Генерация классов Java с использованием Maven-jaxb2-плагин
Вот мой XSD-файл:
<xs:element name="user" type="user" />
<xs:element name="userList" type="userList" />
<xs:complexType name="user">
<xs:all>
<xs:element name="id" type="xs:long" minOccurs="0" />
<xs:element name="name" type="xs:string" />
<xs:element name="registrationDate" type="xs:dateTime" />
</xs:all>
</xs:complexType>
<xs:complexType name="userList">
<xs:sequence>
<xs:element name="user" type="user" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
Вот мой .xjb файл:
<!-- Annotate @XmlRootElement Annotation for all the classes, that matches
in the .xsd with complexType -->
<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
<jaxb:bindings node="xs:complexType['1'='1']" multiple="true"
required="false">
<annox:annotate>
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement"
name="user" />
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>
и когда он генерирует это дает класс Java несколько, как:
XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "user", propOrder = {
})
@Entity
@XmlRootElement(name = "${@name}")
@Table(schema = "schemaName", uniqueConstraints = {
}, name = "user_")
public class User
implements Serializable, ToString
{
private final static long serialVersionUID = 1L;
protected Long id;
, где он должен дать имя = имя объекта, например, как здесь «пользователь» Я знаю, что если я пишу в переплетах, как это будет genearate
<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
<jaxb:bindings node="xs:complexType[@name='user']">
<annox:annotate>
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="user" />
</annox:annotate>
</jaxb:bindings>
<jaxb:bindings node="xs:complexType[@name='userList']">
<annox:annotate>
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="userList" />
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
, но я не хочу, чтобы повторить тот же код пользователя и список пользователей является я могу сделать это путем аннотаций или определения регулярного выражения. Пожалуйста, предложите какой-то способ.
Я просто хотел бы знать, что написать в этом коде
<annox:annotate>
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement"
name="user" />
</annox:annotate>
так, что, когда он создает класс пользователя это показать @xmlRootElement (имя = «пользователь») и точно также для других классов @xmlRootElement (имя = 'userList') аналогично для других.