У меня есть следующий класс java с аннотацией JAXB @XMLRootElement
@XmlRootElement(name = "ClientData")
public class ClientData {
/**
* The first address field of the person
*/
private String address1 = null;
}
который создает этот фрагмент xml, когда я генерирую схему xsd
<xs:complexType name = "clientData">
<xs:sequence>
<xs:element minOccurs = "0" name = "address1" type = "xs:string"/>
Можно ли использовать аннотацию JAXB, чтобы детали документации в поле address1 были включены как элемент xs: annotation / xs: Documentention в мою окончательную схему?
<xs:complexType name = "clientData">
<xs:sequence>
<xs:element minOccurs = "0" name = "address1" type = "xs:string">
<xs:annotation>
<xs:documentation>The first address field of the person</xs:documentation>
</xs:annotation>
</xs:element>




Не знаю, возможно ли это, так как я никогда этим не пользовался. Но насколько я могу судить, API не поддерживает элемент документации. Однако вы можете использовать аннотацию @XMLElement, чтобы дать вашему участнику более информативное имя.
//Example: Code fragment
public class USPrice {
@XmlElement(name = "itemprice")
public java.math.BigDecimal price;
}
<!-- Example: Local XML Schema element -->
<xs:complexType name = "USPrice"/>
<xs:sequence>
<xs:element name = "itemprice" type = "xs:decimal" minOccurs = "0"/>
</sequence>
</xs:complexType>
Простой ответ: нет, это невозможно со встроенным JAXB.
да - я думал, что это простой обходной путь, но я могу представить, что длина имени поля становится больше по мере того, как в класс добавляются более конкретные поля. Я хотел добавить определения бизнес-пользователей для полей в качестве тега документации, а присвоение имен Java-полям оставить разработчикам. Благодарю.