<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:loc-agent="bea.com/loc/agent" xmlns:loc="http://bea.com/loc" targetNamespace="bea.com/loc/agent" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
	<xsd:import namespace="http://bea.com/loc" schemaLocation="loc.xsd"/>
	
	<xsd:element name="loc-agent" type="loc-agent:agentType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the root agent element.
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>
	
	<xsd:complexType name="agentType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the root agent node.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="network" type="loc:networkType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Network definition for the agent.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="use-secure-connections" type="xsd:boolean">
			    <xsd:annotation>
                    <xsd:documentation>
                        Flag to indicate if secure communication must be used.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="logging" type="loc:loggingType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Definition of the logging properties.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="audit" type="loc:auditType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Definition of the audit properties.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="work-managers" type="loc:workManagersType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Definition of the work managers.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="encryption" type="loc-agent:encryptionType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Definition of the encryption properties.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="resource-pools" type="loc-agent:resourcePoolsType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Definition of the resource pools.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
    <xsd:complexType name="nfsSoftwareType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of NFS software type.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="path" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Path.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="mode" type="loc-agent:availableSoftwareModeTypes">
			    <xsd:annotation>
                    <xsd:documentation>
                        Mode of the software component.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="isoSoftwareType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of ISO software type.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="path" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Path.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="version" type="loc-agent:lvmVersionTypes">
			    <xsd:annotation>
                    <xsd:documentation>
                        Version.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
    <xsd:complexType name="vmwareAvailableSoftwareType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder for all the VMWare software components.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:choice minOccurs="0" maxOccurs="unbounded">		    
			<xsd:element name="nfs-software" type="loc-agent:nfsSoftwareType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="iso-software" type="loc-agent:isoSoftwareType" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:choice>
	</xsd:complexType>
	
	<xsd:complexType name="plainSoftwareType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of plain software type.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="path" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Path of the software component.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="jreSoftwareType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of JRE software type.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="path" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Path of the software component.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="type" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        The type of JRE being used.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="version" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        The version of JRE being used.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="priority" type="xsd:nonNegativeInteger" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        The priority of the jre.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="plainAvailableSoftwareType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder for all the plain software components.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">		    
			<xsd:element name="software" type="loc-agent:plainSoftwareType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="jre-software" type="loc-agent:jreSoftwareType" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:choice>
	</xsd:complexType>
	
	<xsd:complexType name="resourcePoolsType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder for either the plain or VMWare resource pool type.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:choice>
			<xsd:element name="plain-resource-pool" type="loc-agent:plainResourcePoolType" minOccurs="0"/>
			<xsd:element name="vmware-resource-pools" type="loc-agent:vmwareResourcePoolsType"/>
		</xsd:choice>
	</xsd:complexType>
	
	<xsd:complexType name="plainResourcePoolType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the plain resource pool.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="cpu-capacity" type="xsd:positiveInteger" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        The CPU capacity measured in MHz. 
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="stdout-dir" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Directory where the standard output will be placed.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="stderr-dir" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Directory where the standard error will be placed.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="ip-addresses" type="loc-agent:IPAddressesType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        IP Addresses supported by the plain agent.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="network-interfaces" type="loc-agent:networkInterfacesType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        List of network interfaces supported by the plain agent.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="available-software" type="loc-agent:plainAvailableSoftwareType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        The available software for this plain agent.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="vmwareResourcePoolsType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the VMWare resource pools. This definition
                can have multiple pools defined within it. For v1.0 only
                one pool is supported.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="vc-host" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Virtual Center host.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="vc-port" type="loc:portsType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Port.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="vc-secure-port" type="loc:portsType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Secure port.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="use-secure-connections" type="xsd:boolean" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Flag to indicate if a secure connections should to be used.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="username" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Username.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="password" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Password.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="heartbeat-interval" type="xsd:positiveInteger" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        Heartbeat interval to the virtual center. It is specified in seconds.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="keystore" type="loc-agent:keystoreType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Keystore.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="data-center" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Default data center.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="compute-resource" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Compute Resource.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="resource-pool" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Default resource pool.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="enable-syslog-publisher" type="xsd:boolean" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Flag to enable/disable the syslog publisher.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="pools" type="loc-agent:vmwarePoolsType">
			    <xsd:annotation>
                    <xsd:documentation>
                        Definition of the resource pools for VMWare.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="vmwarePoolType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the VMWare resource pool.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="data-center" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Data center. This value overrides the default.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="compute-resource" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Compute Resource. This value overrides the default.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="resource-pool" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Resource pool. This value overrides the default.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="vmware-networks" type="loc-agent:vmwareNetworksType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Specifies the list of vmware network components.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="stdout-dir" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Standard output directory.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="available-software" type="loc-agent:vmwareAvailableSoftwareType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        List of available software for this pool.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="vmwarePoolsType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder of all the VMWare resource pools.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="pool" type="loc-agent:vmwarePoolType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="IPAddressesType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder of all IP addresses.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ip" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	
    <xsd:complexType name="networkInterfacesType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder of all network interfaces.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="interface" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:complexType name="keystoreType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the keystore properties.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="path" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Keystore path.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="password" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Keystore password.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="vmwareNetworksType">
	    <xsd:annotation>
            <xsd:documentation>
                Contains a list of vmware network components.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="network" type="loc-agent:vmwareNetworkType" minOccurs="1" maxOccurs="unbounded">
			    <xsd:annotation>
                    <xsd:documentation>
                        List of vmware network components.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="vmwareNetworkType">
	    <xsd:annotation>
            <xsd:documentation>
                Definition of the VMWare network type.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="description" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Description.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="gateway" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Gatweway.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="net-mask" type="xsd:string" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        Netmask.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="dns-servers" type="loc-agent:DNSServersType" minOccurs="0">
			    <xsd:annotation>
                    <xsd:documentation>
                        DNS servers.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
			<xsd:element name="domain-name" type="xsd:string">
			    <xsd:annotation>
                    <xsd:documentation>
                        Domain name.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="ip-addresses" type="loc-agent:IPAddressesType">
			    <xsd:annotation>
                    <xsd:documentation>
                        IP Addresses.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="DNSServersType">
	    <xsd:annotation>
            <xsd:documentation>
                Holder of all DNS servers.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
			<xsd:element name="server" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="encryptionType">
		<xsd:annotation>
            <xsd:documentation>
                Definition of the encryption properties.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:sequence>
		    <xsd:element name="password" type="xsd:string">
		        <xsd:annotation>
                    <xsd:documentation>
                        password
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>	
		
	<xsd:simpleType name="fileSystemTypes">
	    <xsd:annotation>
            <xsd:documentation>
                Available file system types.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="nfs"/>
			<xsd:enumeration value="iso"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="availableSoftwareModeTypes">
	    <xsd:annotation>
            <xsd:documentation>
                Available software mode types.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="EXCLUSIVE"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="lvmVersionTypes">
	    <xsd:annotation>
            <xsd:documentation>
                Available LVM versions.
            </xsd:documentation>
        </xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="1.0"/>
			<xsd:enumeration value="1.1"/>
			<xsd:enumeration value="1.2"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
