<?xml version="1.0" encoding="utf-8"?>
<!--
    
    ** OAGIS® Revision: 9.1  **
    ** Date: 11 May 2007 **
    ** Copyright 1997-2007, All Rights Reserved **
    
    This is an OAGIS® BOD XML Schema (XSD) Definition.
    
    License information for this file is provided in the file **OAGi License Agreement.txt** that is provided with this download package.
    
    For support, more information, or to report implementation bugs, please contact the Open Applications Group at xml@openapplications.org.
    
    XML Schema 
    
-->

<!--
    © Copyright 2007 Infor Global Solutions Technology GmbH and/or its affiliates and subsidiaries. All rights reserved. The 
    word and design marks set forth herein are trademarks and/or registered trademarks of Infor Global Solutions 
    Technology GmbH and/or its affiliates and subsidiaries. All rights reserved. All other trademarks listed herein 
    are the property of their respective owners.
    
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns="http://schema.infor.com/InforOAGIS/2"
	targetNamespace="http://schema.infor.com/InforOAGIS/2" elementFormDefault="qualified"
	attributeFormDefault="unqualified">

	<xsd:include schemaLocation="../Components/ISA/ISAChoice.xsd"/>

	<xsd:element name="SupportProduct" type="SupportProductType"/>

	<xsd:complexType name="SupportProductType">
		<xsd:annotation>
			<xsd:documentation>Type Definition for data collection of INFOR Application
				information</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="StatusEnabledStandardHeaderType">
				<xsd:sequence>
					<xsd:element ref="ApplicationServer" minOccurs="0"/>
					<xsd:element ref="ProductCommon" minOccurs="0"> </xsd:element>
					<xsd:element ref="ProductSpecific" minOccurs="0"/>
					<xsd:element ref="ProductDatabases" minOccurs="0"> </xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>


	<xsd:complexType name="ApplicationServerType">
		<xsd:annotation>
			<xsd:documentation>Type Definition for data collection of Application Server
				information</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="ApplicationServerName" minOccurs="0"/>
			<xsd:element ref="ApplicationServerType" minOccurs="0"/>
			<xsd:element ref="ApplicationServerVersion" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ProductCommonType">
		<xsd:annotation>
			<xsd:documentation>Type Definition for the application Common
				collections.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="ApplicationName" minOccurs="0"/>
			<xsd:element ref="ApplicationVersion" minOccurs="0"/>
			<xsd:element ref="ApplicationSalesVersion" minOccurs="0"/>
			<xsd:element ref="InstallationLocation" minOccurs="0"/>
			<xsd:element ref="ApplicationPatches" minOccurs="0"/>
			<xsd:element ref="ApplicationProducts" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="LanguagePacks" minOccurs="0"/>
			<xsd:element ref="ConfigurationSwitches" minOccurs="0"/>
			<xsd:element ref="DataLocations" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="LogFiles" minOccurs="0"/>
			<xsd:element ref="ConfigurationLastRunDateTime" minOccurs="0"/>
			<xsd:element ref="ConfigurationLastRun" minOccurs="0"/>
			<xsd:element ref="ProductKeys" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ApplicationPatchesType">
		<xsd:sequence>
			<xsd:element ref="ApplicationPatch" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="LanguagePacksType">
		<xsd:sequence>
			<xsd:element ref="LanguagePack" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ConfigurationSwitchesType">
		<xsd:sequence>
			<xsd:element ref="ConfigurationSwitch" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="DataLocationsType">
		<xsd:sequence>
			<xsd:element ref="DataLocation" minOccurs="0"/>
			<xsd:element ref="DataLocationAttribute" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ProductKeysType">
		<xsd:sequence maxOccurs="unbounded" minOccurs="0">
			<xsd:element ref="ProductKey" minOccurs="0"/>
			<xsd:element ref="ProductKeyAttribute" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ApplicationProductsType">
		<xsd:sequence>
			<xsd:element ref="ApplicationProduct" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ApplicationProductType">
		<xsd:sequence>
			<xsd:element ref="ApplicationProductName" minOccurs="0"/>
			<xsd:element ref="ApplicationProductRelease" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="ApplicationProduct" type="ApplicationProductType"/>

	<xsd:element name="ApplicationName" type="StringType">
		<xsd:annotation>
			<xsd:documentation>The Application (Product) Name. Also can be referred to as the
				Product Line</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationVersion" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>The Application (Product) full version. This is the version reported
				by the actual software code.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationSalesVersion" type="CodeType">
		<xsd:annotation>
			<xsd:documentation>The Product Line release is the external label of the release as
				customers are using it in the support portal. In the support portal, the release is
				really at the Product level, not the Product Line level. Products within a Product
				Line can have different release numbers as a Product Line has mainline products and
				add on products, etc. We can use a default release at the Product Line level, which
				should be an indication of the mainline products. </xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="InstallationLocation" type="StringType">
		<xsd:annotation>
			<xsd:documentation>The full root install path for the application</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationPatches" type="ApplicationPatchesType"/>
	<xsd:element name="ApplicationProducts" type="ApplicationProductsType"/>
	<xsd:element name="LanguagePacks" type="LanguagePacksType"/>
	<xsd:element name="LanguagePack" type="NormalizedStringType"/>
	<xsd:element name="ConfigurationSwitches" type="ConfigurationSwitchesType"/>
	<xsd:element name="ConfigurationSwitch" type="NormalizedStringType"/>
	<xsd:element name="DataLocations" type="DataLocationsType"/>
	<xsd:element name="DataLocation" type="StringType">
		<xsd:annotation>
			<xsd:documentation>The data location (datastore) for the application data (e.g. IP
				Address of the database)</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="DataLocationAttribute" type="StringType">
		<xsd:annotation>
			<xsd:documentation>If a product has mutiple data stores (e.g. mutiple databases)
				identify the datastore (e.g. datastore name).</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="LogFiles" type="LogFilesType"/>
	<xsd:element name="ConfigurationLastRunDateTime" type="DateTimeType">
		<xsd:annotation>
			<xsd:documentation>The date and time that the configurator was last
				run</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ConfigurationLastRun" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>The user id that last ran the configurator</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ProductKeys" type="ProductKeysType"/>
	<xsd:element name="ProductKey" type="StringType">
		<xsd:annotation>
			<xsd:documentation>The product key installed for the entity being
				reported</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ProductKeyAttribute" type="StringType">
		<xsd:annotation>
			<xsd:documentation>If a product has mutiple product keys (e.g. licensed by module)
				identify the licensed entity (e.g. Module name).</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationProductName" type="NameType">
		<xsd:annotation>
			<xsd:documentation>A product Line has many products. The support portal uses the product
				entitlement to determine what to show and have access for. Optionally the ISA
				product integrations can return the products installed. </xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationProductRelease" type="StringType">
		<xsd:annotation>
			<xsd:documentation>A Product has a release. The support portal organizes all KB articles
				(including patches) at the Product/Release level. Optionally the ISA product
				integrations can return the release of the products installed. If absent, the
				proactive logic will use the Product Line release as default.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:element name="ApplicationServer" type="ApplicationServerType"/>
	<xsd:element name="ApplicationPatch" type="StringType"/>
	<xsd:element name="ProductCommon" type="ProductCommonType"/>

	<xsd:element name="ApplicationServerName" type="NameType">
		<xsd:annotation>
			<xsd:documentation>Application Server Name - Middleware that the appplication is running
				on e.g. weblogic, tomcat IIS</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationServerType" type="CodeType">
		<xsd:annotation>
			<xsd:documentation>Application Server Type - the type of middleware that the application
				is using e.g. webserver, application server</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="ApplicationServerVersion" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>Application Server Version - the version of the application server
				type</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="DatabaseName" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>Database Name</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="DatabaseType" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>Database Product Type; Vendor e.g. Oracle, Enterprise SQL
				Server</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="DatabaseVersion" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>Full version of the Database SQLServer: SELECT
				SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY
				('edition') Oracle: select * from v$version where banner like
				‘Oracle%’;</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="DatabaseFunction" type="StringType">
		<xsd:annotation>
			<xsd:documentation>Function of the database (if known); e.g. Dev, Test,
				Live</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="DatabaseServer" type="NormalizedStringType">
		<xsd:annotation>
			<xsd:documentation>Server Address of the application Database
				(hostname)</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:complexType name="ProductDatabasesType">
		<xsd:sequence>
			<xsd:element ref="ProductDatabase" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="ProductDatabases" type="ProductDatabasesType"/>

	<xsd:complexType name="ProductDatabaseCommonType">
		<xsd:sequence>
			<xsd:element ref="DatabaseName" minOccurs="0"/>
			<xsd:element ref="DatabaseType" minOccurs="0"/>
			<xsd:element ref="DatabaseVersion" minOccurs="0"/>
			<xsd:element ref="DatabaseFunction" minOccurs="0"/>
			<xsd:element ref="DatabaseServer" minOccurs="0"/>
			<xsd:choice>
				<xsd:element ref="OracleDatabaseConfiguration" minOccurs="0"/>
				<xsd:element ref="SQLServerDatabaseConfiguration" minOccurs="0"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="ProductDatabaseCommon" type="ProductDatabaseCommonType"/>

	<xsd:complexType name="DatabaseType">
		<xsd:annotation>
			<xsd:documentation>Type Definition for data collection of Database
				information</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="ProductDatabaseCommon" minOccurs="0"/>
			<xsd:element ref="ProductDatabaseSpecific" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="ProductDatabase" type="DatabaseType"/>

	<xsd:complexType name="LogFilesType">
		<xsd:sequence>
			<xsd:element ref="LogFile" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="LogFileType">
		<xsd:sequence>
			<xsd:element ref="LogType" minOccurs="0"/>
			<xsd:element ref="LogPath" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="LogFile" type="LogFileType"/>

	<xsd:element name="LogType" type="StringType">
		<xsd:annotation>
			<xsd:documentation>Type of Log file - i.e. what is being logged</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="LogPath" type="StringType">
		<xsd:annotation>
			<xsd:documentation>Full path to the logfile including the log name</xsd:documentation>
			<xsd:documentation>if you roll log-files over like the Apache logs, you can put in a
				wild-card extension. Example Apache /var/log/apache2/access.log* access.log =
				current access.log.1.gz = old access.log.2.gz = old</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:complexType name="OracleDatabaseConfigurationType">
		<xsd:sequence>
			<xsd:element ref="OracleInstance" minOccurs="0"/>
			<xsd:element ref="INITora" minOccurs="0"/>
			<xsd:element ref="TableSpaceDefinitions" minOccurs="0"/>
			<xsd:element ref="RedoLogs" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="OracleDatabaseConfiguration" type="OracleDatabaseConfigurationType"/>


	<xsd:complexType name="OracleInstanceType">
		<xsd:annotation>
			<xsd:documentation>Oracle: show sga;</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TotalSystemGlobalArea" minOccurs="0"/>
			<xsd:element ref="FixedSize" minOccurs="0"/>
			<xsd:element ref="VariableSize" minOccurs="0"/>
			<xsd:element ref="DataBaseBuffers" minOccurs="0"/>
			<xsd:element ref="RedoBuffers" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="OracleInstance" type="OracleInstanceType"/>

	<xsd:annotation>
		<xsd:documentation>Oracle: show parameters;</xsd:documentation>
	</xsd:annotation>
	<xsd:complexType name="INIToraType">
		<xsd:sequence>
			<xsd:element ref="ActiveInstanceCount" minOccurs="0"/>
			<xsd:element ref="AqTmProcesses" minOccurs="0"/>
			<xsd:element ref="ArchiveLagTarget" minOccurs="0"/>
			<xsd:element ref="AuditFileDest" minOccurs="0"/>
			<xsd:element ref="AuditTrail" minOccurs="0"/>
			<xsd:element ref="BackgroundCoreDump" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="INITora" type="INIToraType"/>

	<xsd:complexType name="TableSpaceDefinitionsType">
		<xsd:annotation>
			<xsd:documentation>Oracle Tablespace definitions</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TableSpaceDefinition" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="TableSpaceDefinitions" type="TableSpaceDefinitionsType"/>

	<xsd:element name="ActiveInstanceCount" type="IntegerNumericType"/>
	<xsd:element name="AqTmProcesses" type="IntegerNumericType"/>
	<xsd:element name="ArchiveLagTarget" type="IntegerNumericType"/>
	<xsd:element name="AuditFileDest" type="StringType"/>
	<xsd:element name="AuditTrail" type="StringType"/>
	<xsd:element name="BackgroundCoreDump" type="StringType"/>


	<xsd:element name="TotalSystemGlobalArea" type="IntegerNumericType"/>
	<xsd:element name="FixedSize" type="IntegerNumericType"/>
	<xsd:element name="VariableSize" type="IntegerNumericType"/>
	<xsd:element name="DataBaseBuffers" type="IntegerNumericType"/>
	<xsd:element name="RedoBuffers" type="IntegerNumericType"/>

	<xsd:element name="TableSpace" type="StringType"/>
	<xsd:element name="TableSpaceDataFile" type="StringType"/>
	<xsd:element name="TableSpaceSize" type="StringType"/>
	<xsd:element name="TableSpaceExtentManagement" type="StringType"/>

	<xsd:element name="TableSpaceMinExtents" type="IntegerNumericType"/>
	<xsd:element name="TableSpaceMaxExtents" type="IntegerNumericType"/>
	<xsd:element name="TableSpacePCTIncrease" type="IntegerNumericType"/>


	<xsd:complexType name="TableSpaceDefaultStorageType">
		<xsd:sequence>
			<xsd:element ref="TableSpaceDefaultStorageInitial" minOccurs="0"/>
			<xsd:element ref="TableSpaceDefaultStorageNext" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="TableSpaceDefaultStorage" type="TableSpaceDefaultStorageType"/>

	<xsd:element name="TableSpaceDefaultStorageInitial" type="IntegerNumericType"/>
	<xsd:element name="TableSpaceDefaultStorageNext" type="IntegerNumericType"/>

	<xsd:complexType name="SQLServerDatabaseConfigurationType">
		<xsd:sequence>
			<xsd:element ref="DatabaseFileLocation" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>SQL Server Full path of the database file SELECT
						SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf',LOWER(physical_name)) -
						1) DataFileLocation FROM master.sys.master_files WHERE database_id = 1 AND
						FILE_ID = 1</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DatabaseFileSize" minOccurs="0" type="StringType">
				<xsd:annotation>
					<xsd:documentation>SQL Server Size of the database file SELECT
						DB_NAME(database_id) AS DatabaseName, Name AS Logical_Name, Physical_Name,
						(size*8)/1024 SizeMB FROM sys.master_files WHERE DB_NAME(database_id) =
						'%databasename%' GO</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="DatabaseLogLocation" type="StringType">
				<xsd:annotation>
					<xsd:documentation>SQL Server Full path of the database log
						file</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="DatabaseLogSize" type="StringType">
				<xsd:annotation>
					<xsd:documentation>SQL Server Size of the database log file</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="TransactionLogSize" type="StringType">
				<xsd:annotation>
					<xsd:documentation>SQL Server Size of the Transaction Log</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="SQLServerDatabaseConfiguration" type="SQLServerDatabaseConfigurationType"/>
	<xsd:element name="DatabaseFileLocation" type="StringType"/>

	<xsd:complexType name="TableSpaceDefinitionType">
		<xsd:sequence>
			<xsd:element ref="TableSpace" minOccurs="0"/>
			<xsd:element ref="TableSpaceDataFile" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="TableSpaceSize" minOccurs="0"/>
			<xsd:element ref="TableSpaceExtentManagement" minOccurs="0"/>
			<xsd:element ref="TableSpaceDefaultStorage" minOccurs="0"/>
			<xsd:element ref="TableSpaceMinExtents" minOccurs="0"/>
			<xsd:element ref="TableSpaceMaxExtents" minOccurs="0"/>
			<xsd:element ref="TableSpacePCTIncrease" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="TableSpaceDefinition" type="TableSpaceDefinitionType"/>


	<xsd:complexType name="RedoLogsType">
		<xsd:annotation>
			<xsd:documentation>Oracle redo log files select member, group#, bytes, status from
				v$logfile;</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="RedoLog" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="RedoLogType">
		<xsd:sequence>
			<xsd:element ref="Member" minOccurs="0"/>
			<xsd:element ref="Group" minOccurs="0"/>
			<xsd:element ref="RedoLogBytes" minOccurs="0"/>
			<xsd:element ref="RedoLogStatus" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="RedoLog" type="RedoLogType"/>

	<xsd:element name="RedoLogs" type="RedoLogsType"/>

	<xsd:element name="Member" type="StringType"/>
	<xsd:element name="Group" type="IntegerNumericType"/>
	<xsd:element name="RedoLogBytes" type="IntegerNumericType"/>
	<xsd:element name="RedoLogStatus" type="StringType"/>

</xsd:schema>
