3.5. 表現
オブジェクトの状態は、クライアントとサーバーを転送する時に表現する必要があります。API は、入力と出力の両方で、オブジェクトの状態を表す XML と JSON をサポートします。
3.5.1. XML 表現
オブジェクトの XML 表現は、オブジェクトのタイプに対応する XML 要素、id
属性と href
属性に対応する XML 属性、残りの属性に対応する XML 要素のネストで構成されます。たとえば、仮想マシンの XML 表現は以下のようになります。
<vm id="123" href="/ovirt-engine/api/vms/123"> <name>myvm</name> <description>My VM</description> <memory>1073741824</memory> ... </vm>
オブジェクトのコレクションの XML 表現は、オブジェクトのタイプの名前が複数ある XML 要素で構成されます。これには、コレクションのオブジェクトの表現が含まれます。たとえば、仮想マシンのコレクションに対する XML 表現は以下のようになります。
<vms> <vm id="123" href="/ovirt-engine/api/vms/123"> <name>yourvm</name> <description>Your VM</description> <memory>1073741824</memory> ... </vm> <vm id="456" href="/ovirt-engine/api/vms/456"> <name>myname</name> <description>My description</description> <memory>2147483648</memory> ... </vm> ... </vms>
オブジェクトの XML 表現では、id
および href
属性は XML 属性として表現される唯一の属性で、残りはネストされた XML 要素として表されます。
3.5.2. JSON 表現
オブジェクトの JSON 表現は、各属性の名前/値のペア (id
および href
など) を含む JSON ドキュメントで構成されます。たとえば、仮想マシンの JSON 表現は以下のようになります。
{ "id": "123", "href": "/ovirt-engine/api/vms/123", "name": "myvm", "description": "My VM", "memory": 1073741824, ... }
オブジェクトコレクションの JSON 表現には、名前/値のペア (単数でオブジェクトのタイプの名前) などの JSON ドキュメントで構成され、その中にコレクションのオブジェクトの表現が指定されたアレイが含まれます。たとえば、仮想マシンのコレクションの JSON 表現は以下のようになります。
{ "vm": [ { "id": "123", "href": "/ovirt-engine/api/vms/123", "name": "myvm", "description": "My VM", "memory": 1073741824, ... }, { "id": "456", "href": "/ovirt-engine/api/vms/456", "name": "yourvm", "description": "Your VM", "memory": 2147483648, ... }, ] }