是否有智能方法使用JAXB识别元素之间的关系。
例如:如果元素 SMTP 在通知元素中引用/使用,元素配置
<element name="SMTP">
<complexType>
<sequence>
<element name="fromEmailAddress" type="string"/>
<element name="hostName" type="string"/>
<element name="portNumber" type="string"/>
</sequence>
</complexType>
</element>
<element name="Notification">
<complexType>
<sequence>
<element ref="tns:SMTP"/>
</sequence>
</complexType>
</element>
<element name="Configuration">
<complexType>
<sequence>
<element ref="tns:SMTP"/>
</sequence>
</complexType>
</element>
有没有办法使用JAXB识别这种关系/依赖性(带通知和配置的SMTP)(我使用JAXB为我的XSD中的上述元素生成类)。如果是,示例java代码将会有所帮助< / p>
由于 拉维
答案 0 :(得分:0)
将使用SMTP属性生成配置和通知类:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"smtp"
})
@XmlRootElement(name = "Configuration")
public class Configuration {
@XmlElement(name = "SMTP", namespace = "urn:example", required = true)
protected SMTP smtp;
public SMTP getSMTP() {
return smtp;
}
public void setSMTP(SMTP value) {
this.smtp = value;
}
}
如果您希望使其成为双向关系,您可以利用EclipseLink JAXB中的@XmlInverseReference扩展(我是技术主管)。有关更多信息,请参阅: