2012-02-02 72 views
2

什麼是類似這樣的內聯選項jaxb中的內聯綁定規範

xjc -d。 -b bindings.xjb Derived.xsd

在我的bindings.xsd將有

<bindings scd="~tns:NameType"> 
     <class ref="com.bcbsmt.eie.pojo.commontypes.NameType"/> 
</bindings> 

所有我想要做的是防止NAMETYPE everywhere.The要求重複,雖然是嚴格的內部約束。

我Derived.xsd東西試過像

<xs:element name="Name"> 
       <xs:annotation> 
        <xs:appinfo> 
         <jaxb:class implClass="com.bcbsmt.eie.pojo.commontypes.NameType"></jaxb:class> 
        </xs:appinfo> 
       </xs:annotation> 
      </xs:element> 

但這沒有工作out.Any想法

+0

非常有趣的結合。你用什麼參考來創建它? AFAIK,你需要[''](http://minitorn.tlu.ee/~jaagup/kool/java/abiinfo/javaeetutorial5/doc/JAXB9.html#wp103167)+ [''](http:// minitorn.tlu.ee/~jaagup/kool/java/abiinfo/javaeetutorial5/doc/JAXB9.html#wp103174)定製。 – 2012-02-04 11:43:49

+0

嘿它只是我的binding.I部分沒有生成綁定file.jaxb - xjc做到了。 – user1141359 2012-02-09 08:47:55

回答

1

我不知道我完全理解你的問題,但下面是如何的一個例子jaxb:class模式註釋可用於指向現有的類。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    jaxb:version="2.1"> 

    <xs:element name="foo"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="bar"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

    <xs:element name="bar"> 
     <xs:complexType> 
      <xs:annotation> 
       <xs:appinfo> 
        <jaxb:class ref="example.BarImpl"></jaxb:class> 
       </xs:appinfo> 
      </xs:annotation> 
      <xs:sequence> 
       <xs:element name="name" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

</xs:schema> 

如果你想重用從XML模式生成的所有類型,那麼你會發現片段文件有用:

+0

我需要通過內嵌註釋指令來做什麼情節文件。我們現在有了重複使用派生類型的情節。但是我們想要擺脫外部情節並使用內聯註釋來完成相同的功能。 – user1141359 2012-02-09 08:45:49

+0

@ user1141359 - 我在答案中給出的XML模式演示了內聯模式註釋的外觀。 – 2012-02-09 10:12:22

+1

錯過了訣竅細微的差異。我有,而不是 .Didnt注意到你的答案第一次。試試。萬分感謝。 – user1141359 2012-02-10 15:01:05