5

いくつかの子 XSDが埋め込まれた xsd があります(「xsd:include」を使用) (ただし、各 xsd は同じ名前空間に属します)。1 つのパッケージではなく、別個のサブパッケージ(子 XSD ごとに 1 つのサブパッケージ)で jaxb クラスを生成するように依頼されました。

私がこれまでに読んだことによると、jaxb:schemaBindingsこれらの xsds のみが異なる名前空間に属している場合、これらの個別の xsd に追加して、個別のパッケージでクラスを生成できます。

しかし、私の場合、私がやりたいことは、同じ名前空間に属する一連の xsds のいくつかのサブパッケージにクラスを作成することです。JAXBを使用してこれを行うのを手伝ってもらえますか?


編集:問題をもう少し明確にするために、問題についてもう少し説明を追加しました。

すべての XSD には次のヘッダーがあります。したがって、同じ名前空間

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:srm="http://www.mycompany.com/srm/"
    targetNamespace="http://www.mycompany.com/srm/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" elementFormDefault="qualified"
    attributeFormDefault="unqualified" version="1.0">

私のスキーマ ファイル名が A.xsd、B.xsd、および C.xsd であるとします。

  • C.xsd では、上記のヘッダーでいくつかの要素 (文字列型) を定義しました。

  • B.xsd では、「xsd:include」タグを使用して C.xsd をインクルードしました。次に、C.xsd で定義された複合型を使用した complexType 定義があります (上記と同じヘッダーがあります)。

  • A.xsd では、「xsd:include」タグを使用して B.xsd をインクルードしました。次に、B.xsd で定義された複合型を使用した complexType 定義があります (上記と同じヘッダーがあります)。

以下で述べたように、JAXB クラスを生成したいと考えています。

  • com.generate.packageA パッケージで生成する A.xsd に関連する JAXB クラス。

  • com.generate.packageB パッケージで生成する B.xsd に関連する JAXB クラス。

  • com.generate.packageC パッケージで生成する C.xsd 関連の JAXB クラス。

4

1 に答える 1

3

「含まれる」スキーマのそれぞれから個別のパッケージに個別に JAXB クラスを生成し、XJC ツールで使用可能なエピソード メカニズムを利用することができます。

例 (Stack Overflow での回答から)

于 2012-11-19T11:30:43.210 に答える