2013-08-30 5 views
2

Мне нужна ObjectFactory с несколькими объектами java из нескольких схем. У меня было 0 удачи с несколькими различными плагинами и вариациями этих плагинов. В настоящее время я использую следующий:Как создать несколько .xsd в том же ObjectFactory?

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-xjc-plugin</artifactId> 
    <version>2.6.2</version> 
    <configuration> 
     <extensions> 
      <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.6.2</extension> 
     </extensions> 
    </configuration> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>xsdtojava</goal> 
      </goals> 
      <configuration> 
       <sourceRoot>${basedir}/target/generated-sources/xjc</sourceRoot> 
       <xsdOptions> 
        <xsdOption> 
<xsd>${basedir}/src/main/resources/osds/schemas/IataAsmAdmEvent.xsd</xsd> 
<xsd>${basedir}/src/main/resources/osds/schemas/IataAsmCnlEvent.xsd</xsd> 
<xsd>${basedir}/src/main/resources/osds/schemas/IataAsmEqtEvent.xsd</xsd> 
<packagename>com.mypackage</packagename> 
        </xsdOption> 
       </xsdOptions> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

С помощью этого плагина, и многие другие, я только в состоянии генерировать ObjectFactory только с последней схемой в списке. Ни один из предыдущих xsds не делает в OF как java-объекты. Может ли кто-нибудь помочь мне решить эту проблему?

Спасибо!

+0

Это похоже на работу ::: \t org.jvnet.jaxb2.maven2 \t Maven-jaxb2-плагин \t \t 0.7.5 \t \t \t \t \t \t \t генерировать-S1-и-S3 \t \t \t \t \t генерировать \t \t \t \t \t \t <Конфигурация> \t \t SRC/основные/ресурсы/схемы \t \t \t \t \t \t \t S2.xsd \t \t \t S3.xsd \t \t \t \t \t \t \t user2733840

+0

Но eclipse застрял в циклах изменений здания для источников генерации xsd, а также для изменения зданий для источников генерации wsdl. Кажется, пинг-понг взад-вперед и никогда не разрешает себя. Есть идеи? – user2733840

+1

Вы когда-нибудь это выясняли? К сожалению, у меня такая же проблема. –

ответ

2

У меня была такая же проблема, может решить, что с оберточной XSD:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:include schemaLocation="schema1.xsd" /> 
    <xs:include schemaLocation="schema2.xsd" /> 
    <xs:include schemaLocation="schema3.xsd" /> 
</xs:schema> 

Конечно, это не допустить, чтобы эти включенные XSDs включать друг друга или других общих XSDs. Если «schema3.xsd» включает «schema2.xsd», удалите «schema2.xsd» из этого списка.

+0

Я пробовал этот метод. Я получил одну ошибку для каждого включенного файла: '[ERROR] src-include.2.1: Целевое пространство имен ссылочной схемы, в настоящее время« http://www.bcb.gov.br/GEN/GEN0020E.xsd », должно быть то же, что и в схеме включения, в настоящее время «null» –

+0

@ PedroLamarão кажется, что вы смешиваете разные пространства имен, где некоторые из них являются нулевыми. возможно, существуют варианты игнорировать пространства имен (чего я не знаю), или вам нужно задать пространство имен каждой из них, включая схему, на «http://www.bcb.gov.br/GEN/GEN0020E.xsd». – comonad

0

Может быть сделано с использованием плагина org.codehaus.mojo. Предоставление нескольких файлов схем под 'schemaFiles' тег:

   <execution> 
        <id>xjc-generate-sources</id> 
        <goals> 
         <goal>xjc</goal> 
        </goals> 
        <configuration> 
         <extension>true</extension> 
         <schemaDirectory>src/main/resources/xsd</schemaDirectory> 
         <schemaFiles>xsd1.xsd,xsd2.xsd</schemaFiles> 
         <packageName>pachage.name.to.generate.classes</packageName> 
         <outputDirectory>target/generated-sources</outputDirectory> 
         <clearOutputDir>false</clearOutputDir> 
        </configuration> 
       </execution> 

 Смежные вопросы

  • Нет связанных вопросов^_^