tutorial tablas referencias realizar que página para opcional misma internos hipervinculos hipervinculo externos etiquetas etiqueta enlaces enlace java binding jaxb xjc

java - tablas - que es un enlace opcional



¿Cómo anular el nombre predeterminado en JAXB usando un archivo de enlace externo? (1)

Tengo un elemento que se ve algo así.

<xsd:element name="container"> <xsd:complexType> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="navmap"/> <xsd:element ref="keymap" /> <xsd:element ref="container" /> <xsd:element ref="ad" /> <xsd:element ref="button" /> <xsd:element ref="checkbox" /> </xsd:choice> </xsd:complexType> </xsd:element>

Aquí está el código predeterminado que se crea para este elemento.

@XmlElements({ @XmlElement(name = "navmap", type = Navmap.class), @XmlElement(name = "keymap", type = Keymap.class), @XmlElement(name = "container", type = Container.class), @XmlElement(name = "ad", type = Ad.class), @XmlElement(name = "button", type = Button.class), @XmlElement(name = "checkbox", type = Checkbox.class), }) protected List<Object> navmapOrKeymapOrContainer;

Mi pregunta es: ¿Qué debo poner en mi archivo de enlaces .xjb para cambiar el nombre generado por defecto de navmapOrKeymapOrContainer a algo más parecido a los children ?


Ejemplo:

<xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:appinfo> <jaxb:property name="Shapes"/> </xs:appinfo> </xs:annotation> <xs:element name="Rectangle" type="Rectangle"/> <xs:element name="Square" type="Square"/> <xs:element name="Circle" type="Circle"/> </xs:choice> </xs:complexType>

Adapta esto en tu archivo de enlace y lo hará. Mira aquí para referencia.

El listado 11 dice el secreto:

<jxb:bindings version="1.0" xmlns:jxb="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" jxb:extensionBindingPrefixes="xjc"> <jxb:bindings schemaLocation="po4.xsd" node="/xs:schema"> <jxb:globalBindings> <xjc:superClass name="com.syh. <xjc:serializable uid="12343"/> </jxb:globalBindings> <jxb:bindings node="//xs:element[@name=''Widgets'']//xs:complexType//xs:choice"> <jxb:property name="Shapes"/> </jxb:bindings> </jxb:bindings>