1. Overview of the Oracle VM Server for SPARC Software
2. Installing and Enabling Software
4. Setting Up Services and the Control Domain
12. Performing Other Administration Tasks
A. Oracle VM Server for SPARC Physical-to-Virtual Conversion Tool
B. Oracle VM Server for SPARC Configuration Assistant
C. Logical Domains Manager Discovery
D. Using the XML Interface With the Logical Domains Manager
E. Logical Domains Manager XML Schemas
The ovf-virtualhardware.xsc Schema
Example E-5 The ovf-core.xsd Schema
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="/var/opt/SUNWldom/envelope" xmlns:ovf="/var/opt/SUNWldom/envelope" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:include schemaLocation="ovf-section.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <!-- A user defined annotation on an entity --> <xs:complexType name="AnnotationSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <!-- Several localized annotations can be included --> <xs:element name="Annotation" type="ovf:Info_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Product information about a virtual appliance --> <xs:complexType name="ProductSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="Product" type="ovf:Info_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Vendor" type="ovf:Info_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Version" type="xs:string" minOccurs="0"/> <xs:element name="Full-version" type="xs:string" minOccurs="0"/> <xs:element name="ProductUrl" type="xs:string" minOccurs="0"/> <xs:element name="VendorUrl" type="xs:string" minOccurs="0"/> <xs:element name="AppUrl" type="xs:string" minOccurs="0"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Configuration parameters that can be passed to the virtual machine for application-level configuration --> <xs:complexType name="PropertySection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="Property" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Description" type="ovf:Info_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="key" type="xs:string"/> <xs:attribute name="type" type="xs:string"/> <xs:attribute name="configurableByUser" type="xs:boolean" use="optional"/> <xs:attribute name="configurableAtRuntime" type="xs:boolean" use="optional"/> <xs:attribute name="defaultValue" type="xs:string" use="optional"/> <xs:anyAttribute namespace="##any"/> </xs:complexType> </xs:element> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- A comma-separated list of transports that are supported by the virtual machine to access the OVF environment. --> <xs:attribute name="transport" type="xs:string" use="optional"/> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Provides descriptions for the logical networks used within the package. These descriptions are typically used as an aid when the package is deployed. --> <xs:complexType name="NetworkSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="Network" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Description" type="ovf:Info_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> <xs:anyAttribute namespace="##any"/> </xs:complexType> </xs:element> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Provides meta-information description of the virtual disks in the package --> <xs:complexType name="DiskSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="Disk" type="ovf:VirtualDiskDesc_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Disk --> <xs:complexType name="VirtualDiskDesc_Type"> <!-- A logical ID for the virtual disk within this package --> <xs:attribute name="diskId" type="xs:string" use="required"/> <!-- A file reference to the virtual disk file. If this is not specified a blank virtual disk is created of the given size --> <xs:attribute name="fileRef" type="xs:string" use="optional"/> <!-- Capacity in bytes. The capacity can be specified as either a size or as a reference to a property using $(property_name) --> <xs:attribute name="capacity" type="xs:string" use="required"/> <!-- Format of the disk. The format is an URL that identifies the disk type, e.g., http://www.vmware.com/format/vmdk.html#sparse --> <xs:attribute name="format" type="xs:string" use="required"/> <!-- Populated size of disk. This is an estimation of how much storage the disk needs if backed by a non pre-allocated (aka. sparse) disk. This size does not take the meta-data into account used by a sparse disk. --> <xs:attribute name="populatedSize" type="xs:long" use="optional"/> <!-- Reference to a potential parent disk --> <xs:attribute name="parentRef" type="xs:string" use="optional"/> </xs:complexType> <!-- CPU Architecture requirements for the guest software. --> <xs:complexType name="CpuCompatibilitySection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="Level" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="level" type="xs:int" use="optional"/> <xs:attribute name="eax" type="xs:string" use="optional"/> <xs:attribute name="ebx" type="xs:string" use="optional"/> <xs:attribute name="ecx" type="xs:string" use="optional"/> <xs:attribute name="edx" type="xs:string" use="optional"/> </xs:complexType> </xs:element> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="Vendor" type="xs:string"/> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Specification of the operating system installed in the guest --> <xs:complexType name="OperatingSystemSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="Description" type="ovf:Info_Type" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- The IDs are the enumeration used in CIM_OperatingSystem_Type --> <xs:attribute name="id" type="xs:string"/> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- End-User License Agreement --> <xs:complexType name="EulaSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <!-- Contains the license agreement in plain text. Several different locales can be specified --> <xs:element name="License" type="ovf:Info_Type" minOccurs="1" maxOccurs="unbounded"/> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- For a VirtualSystemCollection, this section is used to specify the order in which the contained entities are to be powered on. --> <xs:complexType name="StartupSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:element name="item" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <!-- Id of entity in collection --> <xs:attribute name="id" type="xs:string"/> <!-- Startup order. Entities are started up starting with lower-numbers first. Items with same order identifier may be started up concurrently or in any order. The order is reversed for shutdown. --> <xs:attribute name="order" type="xs:int"/> <!-- Delay in seconds to wait for the power on to complete --> <xs:attribute name="startDelay" type="xs:int"/> <!-- Whether to resume power-on sequence, once the guest reports ok. --> <xs:attribute name="waitingForGuest" type="xs:boolean"/> <!-- Delay in seconds to wait for the power on to complete --> <xs:attribute name="stopDelay" type="xs:int"/> <!-- Stop action to use. Valid values are: 'powerOn' (default), 'none'. --> <xs:attribute name="startAction" type="xs:string"/> <!-- Stop action to use. Valid values are: 'powerOff' (default), 'guestShutdown', 'suspend'. --> <xs:attribute name="stopAction" type="xs:string"/> <xs:anyAttribute namespace="##any"/> </xs:complexType> </xs:element> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- A comma-separated list of transports that the virtual machine supports to provide feedback. --> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- If this section is present, it indicates that the virtual machine needs to be initially booted to install and configure the software. --> <xs:complexType name="InstallSection_Type"> <xs:complexContent> <xs:extension base="ovf:Section_Type"> <xs:sequence> <xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- A comma-separated list of transports that the virtual machine supports to provide feedback. --> <xs:attribute name="transport" type="xs:string"/> <xs:anyAttribute namespace="##any"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema>