現在のプロジェクトでは、いくつかの財務情報を含む一連の 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 ファイルは、できれば変更しないでください。