2

現在のプロジェクトでは、いくつかの財務情報を含む一連の XML ファイルを処理する必要があり、後でデータベース スキーマに入力するために、そのデータに対して複雑なクエリを実行する必要があります。

これらの XML ファイルは XSD ベースであり、Hyperjaxb3 maven プラグインを使用してそこから JPA クラスを生成しましたが、すべて正常に動作しているように見えました。残念ながら、Hyperjaxb のドキュメント、Google、およびこちらで検索に何時間も費やした後でも、解決策を見つけることができないという問題が見つかりました。

これは XML ファイルの一部です。

<metrics>
    <metric name="pi1" type="decimal" periodType="instant" creationDate="">
        <label xml:lang="es">Número de personal remunerado</label>
        <label xml:lang="en">Number of staff recipient</label> 
    </metric>
    <metric name="md2" type="monetary" periodType="duration" creationDate="">
        <label xml:lang="es">Importe devengado en el período actual (flujo)</label>
        <label xml:lang="en">Amount awarded in the current period (flow)</label>
    </metric>
</metrics>

この問題はlabel要素に関連しています。その XSD 定義は次のとおりです。

<xs:element name="label">
    <xs:complexType mixed="true">
        <xs:attribute ref="xml:lang"  use="required"/>
    </xs:complexType>
</xs:element>

生成された Java クラスは次のようになります。

@XmlRootElement(name = "label")
@Entity(name = "Label")
@Table(name = "LABEL")
@Inheritance(strategy = InheritanceType.JOINED)
public class Label implements Serializable, Equals, HashCode {
    @XmlValue
    protected String content;

    ...

    @Basic
    @Column(name = "CONTENT")
    public String getContent() {
        return content;
    }

    @Basic
    @Column(name = "LANG")
    public String getLang() {
        return lang;
    }
}

私の質問は、その「コンテンツ」列の長さをどのように定義できますか? 現時点では、バインディングファイルをいじっています

<jaxb:bindings node="//xs:element[@name='label']">
    <hj:basic>
        <orm:column length="1024"/>
    </hj:basic>
</jaxb:bindings>

しかし、まったく違いはありませんでした。あ、ちなみに、サードパーティから提供されている XSD ファイルは、できれば変更しないでください。

4

1 に答える 1