2012-09-13 14 views
5

में xsd फ़ाइलों को संदर्भित/सहित, मैं अपनी परियोजना में एक xsd फ़ाइल जोड़ना चाहता हूं जो एक जार में मौजूद किसी अन्य xsd में परिभाषित प्रकारों पर निर्भर करता है। हम xsds से जावा कक्षाएं उत्पन्न करने के लिए जैक्सबी का उपयोग करते हैं। मैं कैसे करूँ SchemaContainingFooTypeIsInaJAR.xsd को देखें तो यह है कि 'FooType' सही ढंग से हल करता है और उचित जावा वर्गों उत्पन्न होएक जार

<?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

आप इन सुविधाओं में रुचि हो सकती:

संक्षेप में, आप एक सूची फ़ाइल जो एक जार फ़ाइल में अपने स्कीमा को इंगित होता लिख ​​सकते हैं:

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

अस्वीकरण: मैं प्रिंसिपल हूं मेवेन-जैक्सबी 2-प्लगइन का देव।

+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"/>