вечер! не могу второй день решить навалившуюся на меня траблу есть два .xsd и к сожалению без namespace.. оба эти .xsd имеют одни и те же имена элементов внутри, но другое содержание. .xsd файлы я менять никак не могу.. попробовал xmlbeans и jaxb.. JAXB: пробую в одном заходе читать два .xsd и передать ему следующий binding: | Код | <?xml version="1.0" encoding="UTF-8"?> <jaxb:bindings jaxb:version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- RESPONSE --> <jaxb:bindings schemaLocation="../xsd/ino_dp_addr_response.xsd"> <jaxb:bindings node="/xs:schema"> <jaxb:schemaBindings> <jaxb:package name="com.example.response" /> </jaxb:schemaBindings> </jaxb:bindings> <jaxb:bindings node=".//xs:element[@name='Address']"> <jaxb:class name="AddressResponse" /> </jaxb:bindings> <jaxb:bindings node="//xs:complexType[@name='AddressingType']"> <jaxb:class name="AddressingTypeResponse" /> </jaxb:bindings> </jaxb:bindings> <!-- REQUEST --> <jaxb:bindings schemaLocation="../xsd/ino_dp_addr_request.xsd"> <jaxb:bindings node="/xs:schema"> <jaxb:schemaBindings> <jaxb:package name="com.example.request" /> </jaxb:schemaBindings> </jaxb:bindings> <jaxb:bindings node=".//xs:element[@name='Address']"> <jaxb:class name="AddressRequest" /> </jaxb:bindings> <jaxb:bindings node="//xs:complexType[@name='AddressingType']"> <jaxb:class name="AddressingTypeRequest" /> </jaxb:bindings> </jaxb:bindings> </jaxb:bindings>
|
это ант скрипт: | Код | <?xml version="1.0"?> <project name="XMLBeans" default="generate" basedir="."> <!-- PROPERTY --> <property file="build.properties"/> <property name="eclipse.jaxb.project" value="${workspace.dir}/JAXB" /> <property name="src" value="${eclipse.jaxb.project}/src" /> <property name="bin" value="${eclipse.jaxb.project}/bin" /> <property name="lib" value="${eclipse.jaxb.project}/lib" /> <property name="xsd" value="${eclipse.jaxb.project}/xsd" /> <!-- PROPERTY: packages --> <property name="package" value="de.comsoft.esi.jaxb" /> <property name="package.request" value="${package}.request" /> <property name="package.response" value="${package}.response" /> <!-- PROPERTY: request --> <property name="includes.request" value="esi_list.xsd, ino_dp_addr_request.xsd, ino_dp_aftn_request.xsd, ino_dp_ashtam_request.xsd, ino_dp_birdtam_request.xsd, ino_dp_nof_request.xsd, ino_dp_notam_request.xsd, ino_dp_series_request.xsd, ino_dp_snowtam_request.xsd" /> <!-- PROPERTY: response --> <property name="includes.response" value="esi_subscribe.xsd, ino_dp_addr_response.xsd, ino_dp_aftn_response.xsd, ino_dp_ashtam_response.xsd, ino_dp_birdtam_response.xsd, ino_dp_nof_response.xsd, ino_dp_notam_response.xsd, ino_dp_series_response.xsd, ino_dp_snowtam_response.xsd" /> <property name="test" value="ino_dp_addr_response.xsd, ino_dp_addr_request.xsd" /> <!-- TASKDEF --> <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"> <classpath> <fileset dir="${lib}" includes="*.jar" /> </classpath> </taskdef> <!-- Generate .JAVA from .XSD --> <target name="generate" depends="clean" description="Generate .JAVA from .XSD"> <!-- REQUEST --> <xjc destdir="${src}" binding="bindings/$all.xjb" package="${package}"> <schema dir="${xsd}" includes="${test}" /> </xjc> <!-- RESPONSE --> <!-- <xjc destdir="${src}" binding="bindings/response.xjb" package="${package}"> <schema dir="${xsd}" includes="${includes.response}" /> </xjc> --> </target> <!-- Delete **/* from 'scr' directory. --> <target name="clean" description="Delete **/* from 'scr' directory."> <delete> <fileset dir="${src}" includes="**/*" /> <fileset dir="${bin}" includes="**/*" /> </delete> </target> </project>
|
получаю следующую ошибку: | Код | generate: [xjc] build id of XJC is hudson-jaxb-ri-2.1-520 [xjc] Consider using <depends>/<produces> so that XJC won't do unnecessary compilation [xjc] Checking timestamp of /home/piskovatskovd/workspace/JAXB/bindings/$all.xjb [xjc] Checking timestamp of /home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_request.xsd [xjc] Checking timestamp of /home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_response.xsd [xjc] the last modified time of the inputs is 1202145581000 [xjc] the last modified time of the outputs is -9223372036854775808 [xjc] Compiling file:/home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_request.xsd and others [xjc] [ERROR] 'AddressingType' is already defined [xjc] line 48 of file:/home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_response.xsd [xjc] [ERROR] (related to above error) the first definition appears here [xjc] line 21 of file:/home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_request.xsd [xjc] [ERROR] 'Address' is already defined [xjc] line 52 of file:/home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_response.xsd [xjc] [ERROR] (related to above error) the first definition appears here [xjc] line 48 of file:/home/piskovatskovd/workspace/JAXB/xsd/ino_dp_addr_request.xsd [xjc] failure in the XJC task. Use the Ant -verbose switch for more details
|
два файла компилировать по отдельности я не могу .xsd файлы я переправлять не могу.. толкните мысль, а то ЩА застрелюсь
|