XSDからJavaクラスを生成するとき、特定のノードに対して既に存在するJavaクラスを生成する代わりに使用する必要があります。Jaxb:XSD要素の既定のクラスを指定する方法
ありがとうございました。
XSDからJavaクラスを生成するとき、特定のノードに対して既に存在するJavaクラスを生成する代わりに使用する必要があります。Jaxb:XSD要素の既定のクラスを指定する方法
ありがとうございました。
次使用する必要があります。 .episode
ファイルはただjaxb
のbindingsファイルであり、要素とJavaクラスの間のマッピングを持っています。
a)これらの既存のクラスも(別の)xsdから生成されている場合。以下のオプションを使用して最初に.episodeファイルを作成します。
xjc -episode a.episode a.xsd
次いで次xjc
世代への入力としてマッピングを含む、このa.episode
を使用します。
xjc b.xsd -extension -b a.episode
B)あなたには、いくつかのランダムなクラスを参照したい場合は、以下のようにelement
とclass reference
間のマッピングを提供する独自のエピソードのファイルを記述する必要があります。
sample.episode
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" if-exists="true" version="2.1">
<jaxb:bindings scd="x-schema::">
<jaxb:bindings scd="employee">
<jaxb:class ref="www1.example.Employee"/>
<jaxb:package name="www1.example" />
</jaxb:bindings>
</jaxb:bindings>
とxjc b.xsd -extension -b sample.episode
あなたは、既存のクラスを参照するようにepisode
ファイルを使用することができますバインディングカスタマイズ
<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:annox="http://annox.dev.java.net" xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">
<bindings schemaLocation="../schema/yourSchema.xsd">
<bindings node="//xs:complexType[@name='Foo']">
<class ref="com.FooImpl"/>
</bindings>
</bindings>
</bindings>
を使用ありがとうございました。これは2+バージョン用ですが、Jaxb2バージョン1.6で可能かどうか知っていますか? – edutesoy
ようこそ!はい、JDK 1.6(最新のアップデート)を使用することは可能です。この[matrix](https://jaxb.java.net/guide/Which_JAXB_RI_is_included_in_which_JDK_.html)を参照してください。 – ulab