jaxb, внешняя привязка атрибута данного элемента
Я пытаюсь заставить компилятор xjc создать код, который позволит мне привязать набор методов доступа к атрибуту элемента.
Например, схема содержит:
<xsd:complexType name="HostInfo">
<xsd:annotation>
<xsd:documentation>Host configuration </xsd:documentation>
</xsd:annotation>
<xsd:attribute name="hostInfoId" type="svtosz:UUID" use="required" />
<xsd:attribute name="mgmtServerId" type="svtosz:UUID" use="required" />
<xsd:attribute name="hostInfoType" type="svtosz:HostInfoType"
use="required" />
</xsd:complexType>
....
<xsd:element name="hostInfo" type="svtosz:HostInfo"
Как мне обратиться к атрибуту hostInfoId элемента hostInfo во внешнем файле привязки?
Я пробовал (beaucoup) варианты:
<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="1.0">
<jxb:bindings schemaLocation="hostInformation.xsd" >
<jxb:bindings node="//xs:element[@name='hostInfo']/@hostInfoId">
<jxb:property>
<jxb:baseType>
<jxb:javaType name="java.lang.String"
parseMethod="HostId.parseHostId" printMethod="HostId.printHostId" />
</jxb:baseType>
</jxb:property>
</jxb:bindings>
</jxb:bindings>
Увы, в Мудвилле не было радости. Я также пытался установить привязку для базового типа svtos:UUID, но отказался от этого. Этот тип объявлен в отдельном файле XSD, который включен в основной файл схемы XSD.
Предложения?
Благодарю.
--Eric
1 ответ
Как насчет:
<jxb:bindings node="//xs:element[@name='hostInfo']/xs:attribute[@name='hostInfoId']">
Вместо
<jxb:bindings node="//xs:element[@name='hostInfo']/@hostInfoId">