繁体   English   中英

jaxb xsd模式重用

[英]jaxb xsd schemas reusing

假设我有三个xsd架构:CommonSchema.xsd,A.xsd,B.xsd。 在CommonSchema.xsd中,我有一些要在A.xsd和B.xsd中重用的元素。 当然,我想重用org.jvnet.jaxb2.maven2插件生成的代码。 我想在生成的Java代码中获得如下内容:

A extends CommonSchema {...}
B extends CommonSchema {...}

或从A.java和B.java到CommonSchema.java的私有引用

最好的方法是什么? 提前致谢

您照常编写通用XML模式“ com.xsd”。 假设它包含一个复杂的TypeType类型,并且其目标名称空间是“ a:b”。 然后,另一个使用“ com.xsd”中的内容的XML Schema文件将使用s.th。 喜欢

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ns="a:b"
           targetNamespace="x:y">

    <xs:import schemaLocation="com.xsd" namespace="a:b"/>

    <xs:complexType name="TypeX2">
      <xs:sequence>
        <xs:element name="name" type="ns:TypeCommon"/>
      </xs:sequence>
    </xs:complexType>
</xs:schema>

类层次结构是由复杂类型扩展产生的,例如

<xs:complexType name="TypeA">
  <xs:complexContent>
    <xs:extension base="ns:TypeCommon">
    <xs:sequence>
      <xs:element name="foo" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="bar" type="xs:int" fixed="1"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM