1

SpringJaxb2Marshallerを使用して Java オブジェクトを XML に、またはその逆に変換しています。xmlns prefix例を考慮して、 and value- means に動的な値を設定する必要があります

xmlns:abc="http://www.example.com"

ここで、prefixasabc およびvalueashttp://www.example.comは構成可能でなければなりません (プロパティー・ファイルから提供)。

Productパッケージの下のクラスのサンプル xml を参照してくださいcom.test.abc

<abc:Product 
    xmlns:abc="http://www.example.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <abc:productId>252</abc:productId>
    <abc:productName>XYZ</abc:productName>
</abc:Product>

このxmlを構築するために、次の構成を使用しています

Spring Jaxb2Marshaller Bean 構成

@Bean
public Jaxb2Marshaller getJaxb2Marshaller(){
    Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
    marshaller.setPackagesToScan("com.test.abc", "com.test.xyz");
    Map<String,Object> propertiesMap = new HashMap<String,Object>();
    propertiesMap.put("jaxb.formatted.output", true);
    marshaller.setMarshallerProperties(propertiesMap);
    return marshaller;
}

パック情報.java

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://www.example.com", 
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
    xmlns = { @javax.xml.bind.annotation.XmlNs(namespaceURI = "http://www.example.com", prefix="abc")})
package com.test.abc;

ここでは、xmlns のプレフィックスと値をハードコーディングしています。プロパティ ファイルから xmlns プレフィックスと値を指定する必要があります。どうすればこれを達成できますか?

SpringBoot 1.3.3 を使用しています

4

0 に答える 0