REST V2コネクタ > REST V2コネクタについて > Swagger仕様のXMLオブジェクト
  

Swagger仕様のXMLオブジェクト

Swagger仕様ファイルでは、XML属性、ラッパーオブジェクト、名前空間オブジェクトなどのXMLオブジェクトを設定できます。
XMLオブジェクトの属性のみ定義できます。XML要素の属性を定義することはできません。配列要素にインライン定義がある場合のみ、単純型配列要素に対してラッパーオブジェクトを使用できます。ソース、ミッドストリーム、およびターゲットトランスフォーメーションに対する応答、ミッドストリームおよびターゲットトランスフォーメーションに対する要求には、修飾済みおよび未修飾の名前空間オブジェクトを使用します。
XML属性は必ず文字列型になります。Swagger定義に数値型の属性が含まれている場合でも、REST V2コネクタでは、常に文字列型として属性が処理されます。生成されるXSDには、XML属性の文字列としてデータ型が含まれています。
注: Swagger定義に複数の名前空間が含まれていないことを確認してください。
XML属性のSwagger定義:
"XMLAttrArray_Request##body##Employee##dep##Mangr" : {
"properties" : {
"desg" : {
"type" : "string",
"xml": { "attribute": true }
}, "mid" : { "type" : "string" },
XML属性の例:
<dep>
<Mangr desg="Director">
<mid>em09</mid>
<mname>mg</mname>
</Mangr>
<id>did</id>
<name>dname</name>
</dep>
注: RESTエンドポイントがapplication/xml形式で応答を返し、応答内のXML要素に属性および要素値が含まれている場合、マッピングでは応答の処理は実行されません。例えば、emp要素に属性desgおよび要素値Johnが含まれているXMLサンプル<emp desg="Director">John</emp>を処理することはできません。
ラッパーオブジェクトのSwagger定義:
"books" : {
"type" : "array",
"items" : { "type" : "string" },
"xml": {
"wrapped" : "true", "name": "books-array"
}
}
ラッパーオブジェクトの例:
<books-array>
<books>1</books>
<books>2</books>
</books-array>
名前空間オブジェクトのSwagger定義:
root" : {
"properties" : {
"table" : {
"$ref" : "#/definitions/NSResReq_Request##body##root##table"
}
},
"xml":{
"prefix": "h",
"namespace": "http://www.w3.org/TR/html4/"
}
}
名前空間オブジェクトの例:
<h:root xmlns:h="http://www.w3.org/TR/html4/">
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
</h:root>