0

次のコマンドを実行します

java -jar "C:\Program Files\eclipse\plugins\org.jvnet.jaxbw.eclipse_1.1.0\lib\jaxb-xjc.jar" -d src  -catalog xsd\catalog.cat xsd\componentsData.xsd 

xsd\componentsData.xsd には、次の行が含まれています。

xmlns:txtColor="com.my.company.product.jaxb.TextColor"
xmlns="com.my.company.product.jaxb.componentsData"
targetNamespace="com.my.company.product.jaxb.componentsData"

<xsd:import
schemaLocation="TextColor.xsd"
namespace="com.my.company.product.jaxb.TextColor"/>

xsd\TextColor.xsd には以下が含まれます

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"
         xmlns="com.my.company.product.jaxb.TextColor"
         targetNamespace="com.my.company.product.jaxb.TextColor"
         >

これは私のカタログです:

<!DOCTYPE catalog
  PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
       "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

<system
    systemId="com.my.company.product.jaxb.TextColor.TextColor.xsd"
    uri="TextColor"/>

私のファイルは次のパスに生成されました - THE ORDER IS INVERTED WHY ? : componentsData.jaxb.product.company.my.com

TextColor.jaxb.product.company.my.com

次の引数ファイルを追加すると、正しい順序でファイルが生成されましたが、catalog.cat は考慮されていないようです

-p com.my.company.product.jaxb.componentsData
4

1 に答える 1

0

バインディング ファイルを追加する必要がありました (xjc の -b オプション)

<jaxb:bindings
   xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   version="2.1">

<jaxb:bindings schemaLocation="componentsData.xsd" node="/xsd:schema">
    <jaxb:schemaBindings>
        <jaxb:package name="com.my.company.product.jaxb.componentsData"/>
    </jaxb:schemaBindings>
</jaxb:bindings>

<jaxb:bindings schemaLocation="TextColor.xsd" node="/xsd:schema">
    <jaxb:schemaBindings>
        <jaxb:package name="com.my.company.product.jaxb.TextColor"/>
    </jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>

しかし、まだ質問があります。Eclipseで成功しなかったため、xjcの使用を開始しました.Eclipse GUIでどのように行うことができますか

于 2012-05-17T06:17:19.480 に答える