SOAPメッセージをマーシャリング(XML形式に変換)する際に、soapenv要素を追加するには以下の手順を実行します。
- SOAPメッセージのデータ構造を定義するGoの構造体を作成します。例えば、以下のような構造体を考えましょう。
type Envelope struct {
XMLName xml.Name `xml:"soapenv:Envelope"`
Body Body `xml:"soapenv:Body"`
}
type Body struct {
XMLName xml.Name `xml:"soapenv:Body"`
// 他の要素やデータフィールドを定義することもできます
}
- マーシャリングする前に、SOAPメッセージのルート要素にsoapenvの名前空間を追加します。これにより、生成されるXMLにsoapenv要素が含まれるようになります。
env := Envelope{}
env.XMLName = xml.Name{
Local: "Envelope",
Space: "http://schemas.xmlsoap.org/soap/envelope/",
}
-
オプションとして、必要に応じて他の要素やデータフィールドを構造体に追加します。これらの要素はSOAPメッセージのボディ部分に含まれます。
-
マーシャリングを行います。以下のように
xml.Marshal()
関数を使用してSOAPメッセージをXML形式に変換します。
xmlData, err := xml.Marshal(env)
if err != nil {
// エラーハンドリング
}
これでSOAPメッセージにsoapenv要素が追加されたXMLデータがxmlData
に格納されます。