2012-09-13 44 views
5

我想向我們的項目中添加一個xsd文件,該文件依賴於jar中另一個xsd中定義的類型。我們使用jaxb從xsds生成Java類。 我該怎麼辦是指SchemaContainingFooTypeIsInaJAR.xsd讓「FooType」解析正確和適當的Java類獲取生成在jar文件中引用/包含xsd文件

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:include schemaLocation="SchemaContainingFooTypeIsInaJAR.xsd"/> 
<xs:complexType name="FooMoreType"> 
    <xs:complexContent> 
     <xs:extension base="FooType"> 
      <xs:sequence> 
       <xs:element name="something" type="xs:boolean" minOccurs="0"> 
        <xs:annotation> 
         <xs:documentation xml:lang="en"> 
          something something 
         </xs:documentation> 
        </xs:annotation> 
       </xs:element> 
      </xs:sequence> 
     </xs:extension> 
    </xs:complexContent> 
</xs:complexType> 
</xs:schema> 

回答

2

你可能有興趣在這些功能:

總之,你可以寫一個目錄文件,該文件將指向您的架構在一個JAR文件:

REWRITE_SYSTEM "some/url/a.xsd" "maven:org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-tests-episodes-a!/a.xsd" 

免責聲明:我是校長maven-jaxb2-plugin的開發工具。

+0

偉大的東西。在第二個文檔中,「查看JAXB指南中的這一部分」下的鏈接已損壞。 –

+1

@GeoffreyDeSmet謝謝,修正。這裏是這個鏈接:http://jaxb.java.net/guide/Fixing_broken_references_in_schema.html – lexicore

0

替換您行:

<xs:include schemaLocation="SchemaContainingFooTypeIsInaJAR.xsd"/>

<xs:include schemaLocation="jar:file:///path/to/jar/thing.jar!/path/inside/jar/to/file.xsd"/>

相關問題