Ori Liel has uploaded a new change for review.

Change subject: restapi: schema add missing minOccurs, maxOccurs
......................................................................

restapi: schema add missing minOccurs, maxOccurs

Change-Id: Ia9130358465a9ae5f946246f5111ae917f9f6795
Signed-off-by: Ori Liel <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
1 file changed, 270 insertions(+), 270 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/55/8155/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
index 11d7824..a7ab34c 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
@@ -23,9 +23,9 @@
   <xs:element name="linkCapabilities" type="LinkCapabilities"/>
   
   <xs:complexType name="LinkCapabilities">
-       <xs:sequence>
-         <xs:element name="searchable" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
-       </xs:sequence>
+    <xs:sequence>
+      <xs:element name="searchable" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+    </xs:sequence>
   </xs:complexType>
 
   <xs:element name="detailedLink" type="DetailedLink"/>
@@ -70,9 +70,9 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="special_objects"/>
-          <xs:element ref="product_info"/>
-          <xs:element ref="summary"/>
+          <xs:element ref="special_objects" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="product_info" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="summary" minOccurs="0" maxOccurs="1"/>
           <xs:element name="time" type="xs:dateTime" minOccurs="0" 
maxOccurs="1" />
         </xs:sequence>
       </xs:extension>
@@ -111,8 +111,8 @@
 
   <xs:complexType name="Fault">
     <xs:sequence>
-      <xs:element name="reason" type="xs:string"/>
-      <xs:element name="detail" type="xs:string"/>
+      <xs:element name="reason" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="detail" type="xs:string" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -120,14 +120,14 @@
 
   <xs:complexType name="GracePeriod">
     <xs:sequence>
-      <xs:element name="expiry" type="xs:long"/>
+      <xs:element name="expiry" type="xs:long" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
   <xs:complexType name="IscsiDetails">
     <xs:sequence>
       <xs:choice>
-        <xs:element name="initiator" type="xs:string"/>
+        <xs:element name="initiator" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
         <xs:group ref="IscsiTarget"/>
       </xs:choice>
     </xs:sequence>
@@ -135,48 +135,48 @@
 
   <xs:group name="ActionParameterGroup">
     <xs:sequence>
-      <xs:element name="grace_period" type="GracePeriod" minOccurs="0"/>
+      <xs:element name="grace_period" type="GracePeriod" minOccurs="0" 
maxOccurs="1"/>
       <!-- for StorageDomain VM migrate action -->
-      <xs:element name="host" type="Host" minOccurs="0"/>
+      <xs:element name="host" type="Host" minOccurs="0" maxOccurs="1"/>
       <!-- for host NIC attach action -->
-      <xs:element name="network" type="Network" minOccurs="0"/>
+      <xs:element name="network" type="Network" minOccurs="0" maxOccurs="1"/>
       <!-- when installing a host, a root password is required -->
       <xs:element name="root_password" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
       <!-- when installing a rhev-h host, an ISO image file is required -->
       <xs:element name="image" type="xs:string" minOccurs="0" maxOccurs="1"/>
       <!-- for host fence action -->
-      <xs:element name="fence_type" type="xs:string" minOccurs="0"/>
+      <xs:element name="fence_type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
       <!-- for VM ticket actions -->
-      <xs:element name="ticket" type="Ticket" minOccurs="0"/>
+      <xs:element name="ticket" type="Ticket" minOccurs="0" maxOccurs="1"/>
       <!-- for Host ISCSI actions -->
-      <xs:element name="iscsi" type="IscsiDetails" minOccurs="0"/>
+      <xs:element name="iscsi" type="IscsiDetails" minOccurs="0" 
maxOccurs="1"/>
       <!-- for VM import and export actions -->
-      <xs:element name="storage_domain" type="StorageDomain" minOccurs="0"/>
+      <xs:element name="storage_domain" type="StorageDomain" minOccurs="0" 
maxOccurs="1"/>
       <!-- for VM import action -->
-      <xs:element name="cluster" type="Cluster" minOccurs="0"/>
+      <xs:element name="cluster" type="Cluster" minOccurs="0" maxOccurs="1"/>
       <!-- for VM export action -->
-      <xs:element name="discard_snapshots" type="xs:boolean" minOccurs="0"/>
-      <xs:element name="exclusive" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="discard_snapshots" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="exclusive" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
       <!-- For VM start -->
       <xs:element ref="vm" minOccurs="0" maxOccurs="1"/>
       <!-- For import template -->
       <xs:element ref="template" minOccurs="0" maxOccurs="1"/>
       <!-- For Setup Networks -->
       <xs:element ref="host_nics" minOccurs="0" maxOccurs="1"/>
-      <xs:element name="check_connectivity" type="xs:boolean" minOccurs="0"/>
-      <xs:element name="connectivity_timeout" type="xs:int" minOccurs="0"/>
+      <xs:element name="check_connectivity" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="connectivity_timeout" type="xs:int" minOccurs="0" 
maxOccurs="1"/>
       <!-- A VM can be started paused -->
       <xs:element name="pause" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
       <!-- should migration be forced if VM is pinned to host? -->
-      <xs:element name="force" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="force" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
       <!-- For gluster volume set/reset option action -->
-      <xs:element name="option" type="Option" minOccurs="0"/>
+      <xs:element name="option" type="Option" minOccurs="0" maxOccurs="1"/>
       <!-- In gluster volume rebalance action, should only fix-layout be 
performed -->
-      <xs:element name="fix_layout" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="fix_layout" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
       <!-- In gluster brick replace action, the new brick that will replace 
current one -->
-      <xs:element name="brick" type="GlusterBrick" minOccurs="0"/>
+      <xs:element name="brick" type="GlusterBrick" minOccurs="0" 
maxOccurs="1"/>
       <!-- detach Disk from VM (as opposed to deleting it) -->
-      <xs:element name="detach" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="detach" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
       <!-- import Vm/Template as new entity -->
       <xs:element name="clone" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
       <!-- ... etc., explicitly enumerate all the parameter types -->
@@ -209,7 +209,7 @@
         <xs:sequence>
          <!-- The following are used by the client
               when initiating an operation -->
-            <xs:element name="async" type="xs:boolean" minOccurs="0"/>
+            <xs:element name="async" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
             <!-- action-specific parameter(s) for the operation
                  (if required) -->
             <xs:group ref="ActionParameterGroup"/>
@@ -305,7 +305,7 @@
         <xs:sequence>
           <xs:element ref="values" minOccurs="1" maxOccurs="1"/>
           <xs:element name="type" type="StatisticType" minOccurs="1" 
maxOccurs="1"/>
-                 <xs:element name="unit" type="StatisticUnit" minOccurs="1" 
maxOccurs="1"/>
+          <xs:element name="unit" type="StatisticUnit" minOccurs="1" 
maxOccurs="1"/>
           <!-- only one of the following entity references is set -->
           <xs:element ref="disk" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
@@ -421,7 +421,7 @@
   <xs:complexType name="CPU">
     <xs:sequence>
       <xs:element name="topology" type="CpuTopology" minOccurs="0" 
maxOccurs="1"/>
-      <xs:element name="level" type="xs:int" minOccurs="0"/>
+      <xs:element name="level" type="xs:int" minOccurs="0" maxOccurs="1"/>
       <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
       <xs:element name="speed" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
       <xs:element name="cpu_tune" type="CpuTune" minOccurs="0" maxOccurs="1"/>
@@ -438,7 +438,7 @@
             <jaxb:property name="CPUs"/>
         </xs:appinfo>
       </xs:annotation>
-      <xs:element ref="cpu" maxOccurs="unbounded"/>
+      <xs:element ref="cpu" maxOccurs="unbounded" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -449,41 +449,41 @@
   <xs:complexType name="Version">
     <xs:complexContent>
       <xs:extension base="BaseResource">
-           <xs:attribute name="major" type="xs:unsignedShort">
-               <xs:annotation>
-                 <xs:appinfo>
-                   <jaxb:property generateIsSetMethod="false"/>
-                 </xs:appinfo>
-               </xs:annotation>
-           </xs:attribute>
-           <xs:attribute name="minor" type="xs:unsignedShort">
-               <xs:annotation>
-                 <xs:appinfo>
-                   <jaxb:property generateIsSetMethod="false"/>
-                 </xs:appinfo>
-               </xs:annotation>
-           </xs:attribute>
-           <xs:attribute name="build" type="xs:unsignedShort">
-               <xs:annotation>
-                 <xs:appinfo>
-                   <jaxb:property generateIsSetMethod="false"/>
-                 </xs:appinfo>
-               </xs:annotation>
-           </xs:attribute>
-           <xs:attribute name="revision" type="xs:unsignedShort">
-               <xs:annotation>
-                 <xs:appinfo>
-                   <jaxb:property generateIsSetMethod="false"/>
-                 </xs:appinfo>
-               </xs:annotation>
-           </xs:attribute>
-           <xs:attribute name="full_version" type="xs:string">
-               <xs:annotation>
-                 <xs:appinfo>
-                   <jaxb:property generateIsSetMethod="false"/>
-                 </xs:appinfo>
-               </xs:annotation>
-           </xs:attribute>
+        <xs:attribute name="major" type="xs:unsignedShort">
+            <xs:annotation>
+              <xs:appinfo>
+                <jaxb:property generateIsSetMethod="false"/>
+              </xs:appinfo>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="minor" type="xs:unsignedShort">
+            <xs:annotation>
+              <xs:appinfo>
+                <jaxb:property generateIsSetMethod="false"/>
+              </xs:appinfo>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="build" type="xs:unsignedShort">
+            <xs:annotation>
+              <xs:appinfo>
+                <jaxb:property generateIsSetMethod="false"/>
+              </xs:appinfo>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="revision" type="xs:unsignedShort">
+            <xs:annotation>
+              <xs:appinfo>
+                <jaxb:property generateIsSetMethod="false"/>
+              </xs:appinfo>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="full_version" type="xs:string">
+            <xs:annotation>
+              <xs:appinfo>
+                <jaxb:property generateIsSetMethod="false"/>
+              </xs:appinfo>
+            </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -535,47 +535,47 @@
     <xs:complexContent>
       <xs:extension base="Version">
         <xs:sequence>
-          <xs:element name="current" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="features" type="Features" minOccurs="0"/>
-          <xs:element ref="cpus" minOccurs="0"/>
-          <xs:element ref="power_managers" minOccurs="0"/>
-          <xs:element ref="fence_types" minOccurs="0"/>
-          <xs:element ref="storage_types" minOccurs="0"/>
-          <xs:element ref="storage_domain_types" minOccurs="0"/>
-          <xs:element ref="vm_types" minOccurs="0"/>
-          <xs:element ref="boot_devices" minOccurs="0"/>
-          <xs:element ref="display_types" minOccurs="0"/>
-          <xs:element ref="nic_interfaces" minOccurs="0"/>
-          <xs:element ref="os_types" minOccurs="0"/>
-          <xs:element ref="disk_formats" minOccurs="0"/>
-          <xs:element ref="disk_interfaces" minOccurs="0"/>          
-          <xs:element ref="vm_affinities" minOccurs="0"/>
-          <xs:element ref="custom_properties" minOccurs="0"/>
-          <xs:element ref="boot_protocols" minOccurs="0"/>
-          <xs:element ref="error_handling" minOccurs="0"/>
-          <xs:element ref="storage_formats" minOccurs="0"/>
-          <xs:element ref="creation_states" minOccurs="0"/>
-          <xs:element ref="power_management_states" minOccurs="0"/>
-          <xs:element ref="host_states" minOccurs="0"/>
-          <xs:element ref="host_non_operational_details" minOccurs="0"/>
-          <xs:element ref="network_states" minOccurs="0"/>
-          <xs:element ref="storage_domain_states" minOccurs="0"/>
-          <xs:element ref="template_states" minOccurs="0"/>
-          <xs:element ref="vm_states" minOccurs="0"/>
-          <xs:element ref="vm_pause_details" minOccurs="0"/>
-          <xs:element ref="disk_states" minOccurs="0"/>
-          <xs:element ref="host_nic_states" minOccurs="0"/>
-          <xs:element ref="data_center_states" minOccurs="0"/>
-          <xs:element ref="vm_device_types" minOccurs="0"/>
-          <xs:element ref="permits" minOccurs="0"/>
-          <xs:element ref="scheduling_policies" minOccurs="0"/>
-          <xs:element ref="usages" minOccurs="0"/>
+          <xs:element name="current" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="features" type="Features" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="cpus" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="power_managers" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="fence_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="storage_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="storage_domain_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="boot_devices" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="display_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="nic_interfaces" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="os_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="disk_formats" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="disk_interfaces" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm_affinities" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="custom_properties" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="boot_protocols" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="error_handling" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="storage_formats" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="creation_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="power_management_states" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="host_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="host_non_operational_details" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="network_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="storage_domain_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="template_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm_pause_details" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="disk_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="host_nic_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="data_center_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm_device_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="permits" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="scheduling_policies" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="usages" minOccurs="0" maxOccurs="1"/>
 
           <!-- Gluster related -->
-          <xs:element ref="gluster_volume_types" minOccurs="0"/>
-          <xs:element ref="transport_types" minOccurs="0"/>
-          <xs:element ref="gluster_volume_states" minOccurs="0"/>
-          <xs:element ref="brick_states" minOccurs="0"/>
+          <xs:element ref="gluster_volume_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="transport_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="gluster_volume_states" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="brick_states" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -583,7 +583,7 @@
 
   <xs:complexType name="Capabilities">
     <xs:sequence>
-      <xs:element name="version" type="VersionCaps" maxOccurs="unbounded">
+      <xs:element name="version" type="VersionCaps" maxOccurs="unbounded" 
minOccurs="0">
         <xs:annotation>
           <xs:appinfo>
             <jaxb:property name="Versions"/>
@@ -591,8 +591,8 @@
         </xs:annotation>
       </xs:element>
       <!-- TODO: (deprecated) remove these elements post 4.0 -->
-      <xs:element name="permits" type="Permits" minOccurs="0"/>
-      <xs:element name="scheduling_policies" type="SchedulingPolicies" 
minOccurs="0"/>
+      <xs:element name="permits" type="Permits" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="scheduling_policies" type="SchedulingPolicies" 
minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -618,16 +618,16 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="transparent_hugepages" minOccurs="0"/>
-          <xs:element ref="gluster_volumes" minOccurs="0"/>
-          <xs:element ref="vm_device_types" minOccurs="0"/>
-          <xs:element ref="storage_types" minOccurs="0"/>
-          <xs:element ref="storage_domain" minOccurs="0"/>
-          <xs:element ref="nic" minOccurs="0"/>
-          <xs:element ref="api" minOccurs="0"/>
-          <xs:element ref="host" minOccurs="0"/>
-          <xs:element ref="url" minOccurs="0"/>
-          <xs:element ref="headers" minOccurs="0"/>
+          <xs:element ref="transparent_hugepages" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="gluster_volumes" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm_device_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="storage_types" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="storage_domain" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="nic" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="api" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="url" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="headers" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -801,7 +801,7 @@
     </xs:sequence>
   </xs:complexType>  
 
-    <xs:element name="error_handling" type="ErrorHandlingOptions"/>
+  <xs:element name="error_handling" type="ErrorHandlingOptions"/>
 
   <xs:complexType name="ErrorHandlingOptions">
     <xs:sequence>
@@ -833,7 +833,7 @@
 
   <xs:complexType name="ActionableResource">
     <xs:sequence>
-      <xs:element name="actions" type="Actions" minOccurs="0"/>
+      <xs:element name="actions" type="Actions" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -841,9 +841,9 @@
     <xs:complexContent>
       <xs:extension base="ActionableResource">
         <xs:sequence>
-          <xs:element name="name" type="xs:string" minOccurs="0"/>
-          <xs:element name="description" type="xs:string" minOccurs="0"/>
-          <xs:element name="creation_status" type="Status" minOccurs="0"/>
+          <xs:element name="name" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="description" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="creation_status" type="Status" minOccurs="0" 
maxOccurs="1"/>
           <!-- also rel="creation_status" link for monitoring async creation 
-->
           <!-- further link relation types may be defined by specific 
resources -->
           <xs:element ref="link" minOccurs="0" maxOccurs="unbounded">
@@ -864,8 +864,8 @@
      <xs:complexContent>
       <xs:extension base="ActionableResource">
         <xs:sequence>
-          <xs:element name="total" type="xs:unsignedInt" minOccurs="0"/>
-          <xs:element name="active" type="xs:unsignedInt" minOccurs="0"/>
+          <xs:element name="total" type="xs:unsignedInt" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="active" type="xs:unsignedInt" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -901,10 +901,10 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element name="storage_type" type="xs:string" minOccurs="0"/>
-          <xs:element name="storage_format" type="xs:string" minOccurs="0"/>
-          <xs:element name="version" type="Version" minOccurs="0"/>
-          <xs:element name="supported_versions" type="SupportedVersions" 
minOccurs="0"/>
+          <xs:element name="storage_type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="storage_format" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="version" type="Version" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="supported_versions" type="SupportedVersions" 
minOccurs="0" maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
           <!-- also rel="files" and rel="storagedomains" links -->
         </xs:sequence>
@@ -960,7 +960,7 @@
   <xs:complexType name="MemoryPolicy">
     <xs:sequence>
       <xs:element name="guaranteed" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
-      <xs:element name="ballooning" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="ballooning" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
       <xs:element name="overcommit" type="MemoryOverCommit" minOccurs="0" 
maxOccurs="1">
         <xs:annotation>
           <xs:appinfo>
@@ -968,7 +968,7 @@
           </xs:appinfo>
         </xs:annotation>
       </xs:element>
-      <xs:element ref="transparent_hugepages" minOccurs="0"/>
+      <xs:element ref="transparent_hugepages" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -1011,8 +1011,8 @@
           <xs:element ref="data_center" minOccurs="0" maxOccurs="1"/>
           <xs:element name="memory_policy" type="MemoryPolicy" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="scheduling_policy" type="SchedulingPolicy" 
minOccurs="0" maxOccurs="1"/>
-          <xs:element name="version" type="Version" minOccurs="0"/>
-          <xs:element name="supported_versions" type="SupportedVersions" 
minOccurs="0"/>
+          <xs:element name="version" type="Version" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="supported_versions" type="SupportedVersions" 
minOccurs="0" maxOccurs="1"/>
           <xs:element name="error_handling" type="ErrorHandling" minOccurs="0" 
maxOccurs="1"/>          
           <xs:element name="virt_service" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="gluster_service" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
@@ -1046,7 +1046,7 @@
       <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="1"/>
       <xs:element name="username" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
       <xs:element name="password" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
-      <xs:element name="options" type="Options" minOccurs="0"/>
+      <xs:element name="options" type="Options" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="type" type="xs:string"/>
@@ -1113,31 +1113,31 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element name="address" type="xs:string" minOccurs="0"/>
+          <xs:element name="address" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="certificate" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="cluster" type="Cluster" minOccurs="0"/>
+          <xs:element name="cluster" type="Cluster" minOccurs="0" 
maxOccurs="1"/>
           <!-- unsigned to avoid issues with port values greater than 32767,
                e.g. the standard VDSM port 54321 -->
-          <xs:element name="port" type="xs:unsignedShort" minOccurs="0"/>
-          <xs:element name="type" type="xs:string" minOccurs="0"/>
-          <xs:element name="storage_manager" type="StorageManager" 
minOccurs="0"/>
-          <xs:element name="version" type="Version" minOccurs="0"/>
-          <xs:element ref="power_management" minOccurs="0"/>
-          <xs:element ref="ksm" minOccurs="0"/>
-          <xs:element ref="transparent_hugepages" minOccurs="0"/>
-          <xs:element name="iscsi" type="IscsiDetails" minOccurs="0"/>
+          <xs:element name="port" type="xs:unsignedShort" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="storage_manager" type="StorageManager" 
minOccurs="0" maxOccurs="1"/>
+          <xs:element name="version" type="Version" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="power_management" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="ksm" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="transparent_hugepages" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="iscsi" type="IscsiDetails" minOccurs="0" 
maxOccurs="1"/>
           <!-- when creating a new host, a root password is required, but
                this is not subsequently included in the representation -->
           <xs:element name="root_password" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="statistics" type="Statistics" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="cpu" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="memory" type="xs:long" minOccurs="0"/>
-          <xs:element name="max_scheduling_memory" type="xs:long" 
minOccurs="0"/>
+          <xs:element name="memory" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="max_scheduling_memory" type="xs:long" 
minOccurs="0" maxOccurs="1"/>
           <xs:element name="summary" type="VmSummary" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="override_iptables" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <!-- when installing a host, optionally reboot the host -->
-          <xs:element name="reboot_after_installation" type="xs:boolean" 
minOccurs="0"/>
+          <xs:element name="reboot_after_installation" type="xs:boolean" 
minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1220,7 +1220,7 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element name="administrative" type="xs:boolean" maxOccurs="1"/>
+          <xs:element name="administrative" type="xs:boolean" maxOccurs="1" 
minOccurs="0"/>
           <xs:element name="role" type="Role" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
@@ -1229,7 +1229,7 @@
 
   <xs:complexType name="Permits">
     <xs:sequence>
-      <xs:element name="permit" type="Permit" maxOccurs="unbounded">
+      <xs:element name="permit" type="Permit" maxOccurs="unbounded" 
minOccurs="0">
         <xs:annotation>
           <xs:appinfo>
             <jaxb:property name="Permits"/>
@@ -1284,7 +1284,7 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="domain" minOccurs="0"/>
+          <xs:element ref="domain" minOccurs="0" maxOccurs="1"/>
           <xs:element name="department" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="logged_in" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="last_name" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
@@ -1296,7 +1296,7 @@
                new user, therafter modification of role assignments are
                only supported via the rel="roles" sub-collection -->
           <xs:element name="roles" type="Roles" minOccurs="0" maxOccurs="1"/>
-          <xs:element ref="groups" minOccurs="0"/>
+          <xs:element ref="groups" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1325,7 +1325,7 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="domain" minOccurs="0"/>
+          <xs:element ref="domain" minOccurs="0" maxOccurs="1"/>
           <!-- used only to represent the initial role assignments for a
                new group, therafter modification of role assignments are
                only supported via the rel="roles" sub-collection -->
@@ -1431,13 +1431,13 @@
           <xs:element name="severity" type="xs:string" minOccurs="0" 
maxOccurs="1" />
           <xs:element name="time" type="xs:dateTime" minOccurs="0" 
maxOccurs="1" />
           <xs:element name="correlation_id" type="xs:string" minOccurs="0" 
maxOccurs="1" />
-          <xs:element ref="user" minOccurs="0" />
-          <xs:element ref="vm" minOccurs="0" />
-          <xs:element ref="storage_domain" minOccurs="0" />
-          <xs:element ref="host" minOccurs="0" />
-          <xs:element ref="template" minOccurs="0" />
-          <xs:element ref="cluster" minOccurs="0" />
-          <xs:element ref="data_center" minOccurs="0" />
+          <xs:element ref="user" minOccurs="0"  maxOccurs="1"/>
+          <xs:element ref="vm" minOccurs="0"  maxOccurs="1"/>
+          <xs:element ref="storage_domain" minOccurs="0"  maxOccurs="1"/>
+          <xs:element ref="host" minOccurs="0"  maxOccurs="1"/>
+          <xs:element ref="template" minOccurs="0"  maxOccurs="1"/>
+          <xs:element ref="cluster" minOccurs="0"  maxOccurs="1"/>
+          <xs:element ref="data_center" minOccurs="0"  maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1468,8 +1468,8 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element name="type" type="xs:string" minOccurs="0"/>
-          <xs:element ref="storage_domain" minOccurs="0"/>
+          <xs:element name="type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="storage_domain" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1543,16 +1543,16 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="data_center" minOccurs="0"/>
-          <xs:element ref="cluster" minOccurs="0"/>
-          <xs:element ref="ip" minOccurs="0"/>
-          <xs:element ref="vlan" minOccurs="0"/>
-          <xs:element name="stp" type="xs:boolean" minOccurs="0"/>
+          <xs:element ref="data_center" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="cluster" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="ip" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vlan" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="stp" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="display" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="mtu" type="xs:int" minOccurs="0"/>
+          <xs:element name="display" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="mtu" type="xs:int" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="usages" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="required" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="required" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1595,34 +1595,34 @@
 
   <xs:group name="NfsStorage">
     <xs:sequence>
-      <xs:element name="address" type="xs:string" minOccurs="0"/>
-      <xs:element name="path" type="xs:string" minOccurs="0"/>
-      <xs:element name="mount_options" type="xs:string" minOccurs="0"/>
-      <xs:element name="vfs_type" type="xs:string" minOccurs="0"/>
-      <xs:element name="nfs_version" type="xs:unsignedShort" minOccurs="0"/>
-      <xs:element name="nfs_timeo" type="xs:unsignedShort" minOccurs="0"/>
-      <xs:element name="nfs_retrans" type="xs:unsignedShort" minOccurs="0"/>
+      <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="path" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="mount_options" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="vfs_type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="nfs_version" type="xs:unsignedShort" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="nfs_timeo" type="xs:unsignedShort" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="nfs_retrans" type="xs:unsignedShort" minOccurs="0" 
maxOccurs="1"/>
     </xs:sequence>
   </xs:group>
 
   <xs:group name="IscsiTarget">
     <xs:sequence>
-      <xs:element name="address" type="xs:string" minOccurs="0"/>
-      <xs:element name="port" type="xs:unsignedShort" minOccurs="0"/>
-      <xs:element name="target" type="xs:string" minOccurs="0"/>
-      <xs:element name="username" type="xs:string" minOccurs="0"/>
-      <xs:element name="password" type="xs:string" minOccurs="0"/>
-      <xs:element name="serial" type="xs:string" minOccurs="0"/>
-      <xs:element name="vendor_id" type="xs:string" minOccurs="0"/>
-      <xs:element name="product_id" type="xs:string" minOccurs="0"/>
-      <xs:element name="lun_mapping" type="xs:int" minOccurs="0"/>
-      <xs:element name="portal" type="xs:string" minOccurs="0"/>
-      <xs:element name="size" type="xs:long" minOccurs="0"/>
-      <xs:element name="paths" type="xs:int" minOccurs="0"/>
-      <xs:element name="status" type="xs:string" minOccurs="0"/>
-      <xs:element name="volume_group_id" type="xs:string" minOccurs="0"/>
-      <xs:element name="storage_domain_id" type="xs:string" minOccurs="0"/>
-      <xs:element name="disk_id" type="xs:string" minOccurs="0"/>
+      <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="port" type="xs:unsignedShort" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="target" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="username" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="password" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="serial" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="vendor_id" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="product_id" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="lun_mapping" type="xs:int" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="portal" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="size" type="xs:long" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="paths" type="xs:int" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="status" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="volume_group_id" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="storage_domain_id" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="disk_id" type="xs:string" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:group>
 
@@ -1639,7 +1639,7 @@
 
   <xs:complexType name="VolumeGroup">
     <xs:sequence>
-      <xs:element name="name" type="xs:string" minOccurs="0"/>
+      <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="logical_unit" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:appinfo>
@@ -1660,8 +1660,8 @@
           </xs:appinfo>
         </xs:annotation>
       </xs:element>
-      <xs:element ref="volume_group" minOccurs="0"/>
-      <xs:element name="override_luns" type="xs:boolean" minOccurs="0"/>
+      <xs:element ref="volume_group" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="override_luns" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
     </xs:sequence>
   </xs:group>
 
@@ -1676,7 +1676,7 @@
             <xs:group ref="NfsStorage"/>
             <xs:group ref="IscsiStorage"/>
           </xs:choice>
-          <xs:element ref="host" minOccurs="0"/>
+          <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1686,20 +1686,20 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="data_center" minOccurs="0"/>
-          <xs:element name="type" type="xs:string" minOccurs="0"/>
+          <xs:element ref="data_center" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="master" type="xs:boolean" minOccurs="0"/>
-          <xs:element ref="storage" minOccurs="0"/>
+          <xs:element name="master" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="storage" minOccurs="0" maxOccurs="1"/>
           <!-- host is only relevant at creation and deletion time -->
-          <xs:element ref="host" minOccurs="0"/>
+          <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
           <!-- format is only relevant at deletion time -->
-          <xs:element name="format" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="destroy" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="available" type="xs:long" minOccurs="0"/>
-          <xs:element name="used" type="xs:long" minOccurs="0"/>
-          <xs:element name="committed" type="xs:long" minOccurs="0"/>
-          <xs:element name="storage_format" type="xs:string" minOccurs="0"/>
+          <xs:element name="format" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="destroy" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="available" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="used" type="xs:long" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="committed" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="storage_format" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1744,18 +1744,18 @@
       <xs:extension base="BaseResource">
         <xs:sequence>
           <xs:element ref="vm" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="type" type="xs:string" minOccurs="0"/>
+          <xs:element name="type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="memory" type="xs:long" minOccurs="0"/>
-          <xs:element name="cpu" type="CPU" minOccurs="0"/>
-          <xs:element name="os" type="OperatingSystem" minOccurs="0"/>
+          <xs:element name="memory" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="cpu" type="CPU" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="os" type="OperatingSystem" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="cluster" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="storage_domain" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="creation_time" type="xs:dateTime" minOccurs="0"/>
-          <xs:element name="origin" type="xs:string" minOccurs="0"/>
-          <xs:element name="high_availability" type="HighAvailability" 
minOccurs="0"/>
+          <xs:element name="creation_time" type="xs:dateTime" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="origin" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="high_availability" type="HighAvailability" 
minOccurs="0" maxOccurs="1"/>
           <xs:element name="display" type="Display" minOccurs="0" 
maxOccurs="1"/>
-          <xs:element name="stateless" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="stateless" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="timezone" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="domain" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="usb" minOccurs="0" maxOccurs="1"/>
@@ -1803,9 +1803,9 @@
   <xs:complexType name="OperatingSystem">
     <xs:sequence>
       <xs:element name="boot" type="Boot" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="kernel" type="xs:string" minOccurs="0"/>
-      <xs:element name="initrd" type="xs:string" minOccurs="0"/>
-      <xs:element name="cmdline" type="xs:string" minOccurs="0"/>
+      <xs:element name="kernel" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="initrd" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="cmdline" type="xs:string" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="type" type="xs:string"/>
   </xs:complexType>
@@ -1861,7 +1861,7 @@
 
   <xs:complexType name="Payload">
     <xs:sequence>
-      <xs:element name="file" type="PayloadFile"/>
+      <xs:element name="file" type="PayloadFile" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="type" type="xs:string">
         <xs:annotation>
@@ -1876,7 +1876,7 @@
   
   <xs:complexType name="PayloadFile">
     <xs:sequence>
-      <xs:element name="content" type="xs:string" />
+      <xs:element name="content" type="xs:string"  minOccurs="0" 
maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="name" type="xs:string">
         <xs:annotation>
@@ -1926,25 +1926,25 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element name="type" type="xs:string" minOccurs="0"/>
+          <xs:element name="type" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="memory" type="xs:long" minOccurs="0"/>
-          <xs:element name="cpu" type="CPU" minOccurs="0"/>
-          <xs:element name="os" type="OperatingSystem" minOccurs="0"/>
-          <xs:element name="high_availability" type="HighAvailability" 
minOccurs="0"/>
+          <xs:element name="memory" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="cpu" type="CPU" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="os" type="OperatingSystem" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="high_availability" type="HighAvailability" 
minOccurs="0" maxOccurs="1"/>
           <xs:element name="display" type="Display" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="cluster" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="template" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="storage_domain" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="start_time" type="xs:dateTime" minOccurs="0"/>
-          <xs:element name="creation_time" type="xs:dateTime" minOccurs="0"/>
-          <xs:element name="origin" type="xs:string" minOccurs="0"/>
-          <xs:element name="stateless" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="start_time" type="xs:dateTime" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="creation_time" type="xs:dateTime" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="origin" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="stateless" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="timezone" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="domain" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="custom_properties" type="CustomProperties" 
minOccurs="0"/>
-          <xs:element name="payloads" type="Payloads" minOccurs="0"/>
+          <xs:element name="custom_properties" type="CustomProperties" 
minOccurs="0" maxOccurs="1"/>
+          <xs:element name="payloads" type="Payloads" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="statistics" type="Statistics" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="disks" type="Disks" minOccurs="0" maxOccurs="1"/>
           <xs:element name="nics" type="Nics" minOccurs="0" maxOccurs="1"/>
@@ -2046,10 +2046,10 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element name="size" type="xs:int" minOccurs="0"/>
+          <xs:element name="size" type="xs:int" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="cluster" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="template" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="prestarted_vms" type="xs:int" minOccurs="0"/>
+          <xs:element name="prestarted_vms" type="xs:int" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -2111,7 +2111,7 @@
     <xs:complexContent>
       <xs:extension base="BaseDevice">
         <xs:sequence>
-          <xs:element ref="file" minOccurs="0"/>
+          <xs:element ref="file" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -2137,7 +2137,7 @@
     <xs:complexContent>
       <xs:extension base="BaseDevice">
         <xs:sequence>
-          <xs:element ref="file"/>
+          <xs:element ref="file" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -2165,22 +2165,22 @@
         <xs:sequence>
           <xs:element name="image_id" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="storage_domains" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="size" type="xs:long" minOccurs="0"/> <!-- 
Deprecated, replaced by 'provisioned_size' -->
-          <xs:element name="type" type="xs:string" minOccurs="0"/> <!-- 
Deprecated, will be removed at 4.0 -->
-          <xs:element name="provisioned_size" type="xs:long" minOccurs="0"/>
-          <xs:element name="actual_size" type="xs:long" minOccurs="0"/>
+          <xs:element name="size" type="xs:long" minOccurs="0" maxOccurs="1"/> 
<!-- Deprecated, replaced by 'provisioned_size' -->
+          <xs:element name="type" type="xs:string" minOccurs="0" 
maxOccurs="1"/> <!-- Deprecated, will be removed at 4.0 -->
+          <xs:element name="provisioned_size" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="actual_size" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="interface" type="xs:string" minOccurs="0"/>
-          <xs:element name="format" type="xs:string" minOccurs="0"/>
-          <xs:element name="sparse" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="bootable" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="shareable" type="xs:boolean" minOccurs="0"/>
-          <xs:element name="wipe_after_delete" type="xs:boolean" 
minOccurs="0"/>
-          <xs:element name="propagate_errors" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="interface" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="format" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="sparse" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="bootable" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="shareable" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="wipe_after_delete" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="propagate_errors" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="statistics" type="Statistics" minOccurs="0" 
maxOccurs="1"/>
-          <xs:element name="active" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="active" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="quota" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="lunStorage" type="Storage" minOccurs="0"/>
+          <xs:element name="lunStorage" type="Storage" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -2230,10 +2230,10 @@
       <xs:extension base="BaseDevice">
         <xs:sequence>
           <xs:element ref="network" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="interface" type="xs:string" minOccurs="0"/>
-          <xs:element ref="mac" minOccurs="0"/>
+          <xs:element name="interface" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="mac" minOccurs="0" maxOccurs="1"/>
           <xs:element name="statistics" type="Statistics" minOccurs="0" 
maxOccurs="1"/>
-          <xs:element name="active" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="active" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element ref="port_mirroring" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
@@ -2266,9 +2266,9 @@
     <xs:complexContent>
       <xs:extension base="VM">
         <xs:sequence>
-          <xs:element ref="vm" minOccurs="0"/>
-          <xs:element name="date" type="xs:dateTime" minOccurs="0"/>
-          <xs:element name="snapshot_status" type="xs:string" minOccurs="0"/>
+          <xs:element ref="vm" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="date" type="xs:dateTime" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element name="snapshot_status" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <!-- Also a rel="prev" link -->
         </xs:sequence>
       </xs:extension>
@@ -2304,16 +2304,16 @@
         <xs:sequence>
           <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="network" minOccurs="0" maxOccurs="1"/>
-          <xs:element ref="mac" minOccurs="0"/>
-          <xs:element ref="ip" minOccurs="0"/>
-          <xs:element ref="vlan" minOccurs="0"/>
+          <xs:element ref="mac" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="ip" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vlan" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="bonding" minOccurs="0" maxOccurs="1"/>              
      
           <xs:element name="boot_protocol" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="statistics" type="Statistics" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="check_connectivity" type="xs:boolean" 
minOccurs="0" maxOccurs="1"/>
           <xs:element name="speed" type="xs:long" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="status" minOccurs="0" maxOccurs="1"/>
-          <xs:element name="mtu" type="xs:int" minOccurs="0"/>
+          <xs:element name="mtu" type="xs:int" minOccurs="0" maxOccurs="1"/>
           <xs:element name="bridged" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
           <xs:element name="custom_configuration" type="xs:boolean" 
minOccurs="0" maxOccurs="1"/>
           <xs:element name="override_configuration" type="xs:boolean" 
minOccurs="0" maxOccurs="1"/>
@@ -2357,7 +2357,7 @@
 
   <xs:complexType name="Slaves">
     <xs:sequence>
-      <xs:element ref="host_nic" maxOccurs="unbounded">
+      <xs:element ref="host_nic" maxOccurs="unbounded" minOccurs="0">
         <xs:annotation>
           <xs:appinfo>
             <jaxb:property name="Slaves"/>
@@ -2398,7 +2398,7 @@
 
   <xs:complexType name="TagParent">
     <xs:sequence>
-      <xs:element ref="tag" minOccurs="0"/>
+      <xs:element ref="tag" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -2406,11 +2406,11 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="host" minOccurs="0"/>
-          <xs:element ref="vm" minOccurs="0"/>
-          <xs:element ref="user" minOccurs="0"/>
-          <xs:element ref="group" minOccurs="0"/>
-          <xs:element name="parent" type="TagParent" minOccurs="0"/>
+          <xs:element ref="host" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="vm" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="user" minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="group" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="parent" type="TagParent" minOccurs="0" 
maxOccurs="1"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -2446,7 +2446,7 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-          <xs:element ref="data_center" minOccurs="0"/>
+          <xs:element ref="data_center" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="vms" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="disks" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="users" minOccurs="0" maxOccurs="1"/>
@@ -2544,8 +2544,8 @@
     <xs:complexContent>
       <xs:extension base="BaseResource">
         <xs:sequence>
-             <xs:element name="value" type="xs:string" minOccurs="1" 
maxOccurs="1"/>
-             <xs:element ref="parameters_set" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="value" type="xs:string" minOccurs="1" 
maxOccurs="1"/>
+          <xs:element ref="parameters_set" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
         <xs:attribute name="required" type="xs:boolean"/>
         <xs:attribute name="type" type="xs:string"/>
@@ -2577,7 +2577,7 @@
 
   <xs:complexType name="Headers">
     <xs:sequence>
-      <xs:element ref="header" maxOccurs="unbounded">
+      <xs:element ref="header" maxOccurs="unbounded" minOccurs="0">
         <xs:annotation>
           <xs:appinfo>
             <jaxb:property name="Headers"/>
@@ -2618,7 +2618,7 @@
 
   <xs:complexType name="RSDL">
      <xs:sequence>
-       <xs:element name="description" type="xs:string" minOccurs="0"/>
+       <xs:element name="description" type="xs:string" minOccurs="0" 
maxOccurs="1"/>
        <xs:element type="Version" name="version" minOccurs="0" maxOccurs="1" />
        <xs:element ref="schema" minOccurs="0" maxOccurs="1" />
        <xs:element type="DetailedLinks" name="links" minOccurs="0"/>


--
To view, visit http://gerrit.ovirt.org/8155
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia9130358465a9ae5f946246f5111ae917f9f6795
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ori Liel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to