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">
Другие вопросы по тегам