2012-02-02 55 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