2011-07-27 44 views
4

JAXB無法分析此示例的綁定:JAXB在綁定空節點

<xs:element name="classA" type="classA" substitutionGroup="classSubA"/> 

<xs:complexType name="complexClassA" mixed="true"> 

<xs:attribute name="attA"> 
    <xs:annotation> 
     <xs:appinfo> 
      <moProperty value="classA:attA"/> 
      <label value="Attribute A" default="true"/> 
      <externAccess value="readWrite"/> 
      <description value="NO COMMENTS"/> 
     </xs:appinfo> 
    </xs:annotation> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="off"/> 
      <xs:enumeration value="on"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:attribute> 

bindings.xml(片段):

<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1"> 
    <jxb:bindings schemaLocation="schema/mySchema.xsd"> 
     <jxb:bindings node="//xs:complexType[@name='complexClassA']"> 
      <jxb:bindings node=".//xs:element[@name='attA']"> 
       <jxb:property name="att" /> 
      </jxb:bindings> 
     </jxb:bindings> 
    </jxb:bindings> 
</jxb:bindings> 

當生成Java文件的錯誤是:

com.sun.istack.SAXParseException2: XPath evaluation of ".//xs:element[@name='attA']" results in empty target node 

我忽略了什麼?

謝謝。

Udo。

回答

1

我想這:

<jxb:bindings node=".//xs:element[@name='attA']"> 

應該是這樣的:

<jxb:bindings node=".//xs:attribute[@name='attA']"> 

你有一個屬性,XPath的適用於某個元素。