Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/sourcetools/objectmodel/schema/spec-v1.xsd
5995 views
<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2007, 2017 IBM Corp. and others

   This program and the accompanying materials are made available under
   the terms of the Eclipse Public License 2.0 which accompanies this
   distribution and is available at https://www.eclipse.org/legal/epl-2.0/
   or the Apache License, Version 2.0 which accompanies this distribution and
   is available at https://www.apache.org/licenses/LICENSE-2.0.

   This Source Code may also be made available under the following
   Secondary Licenses when the conditions for such availability set
   forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
   General Public License, version 2 with the GNU Classpath
   Exception [1] and GNU General Public License, version 2 with the
   OpenJDK Assembly Exception [2].

   [1] https://www.gnu.org/software/classpath/license.html
   [2] http://openjdk.java.net/legal/assembly-exception.html

   SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<xsd:schema 
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	targetNamespace="http://www.ibm.com/j9/builder/spec" 
	xmlns:tns="http://www.ibm.com/j9/builder/spec"
	elementFormDefault="qualified">
	
	<xsd:element name="spec" type="tns:specType" >
		<xsd:annotation>
			<xsd:documentation>Build Spec definition element</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:complexType name="specType">
		<xsd:annotation>
			<xsd:documentation>
				Build Spec definition contains a number of well defined
				fields describing one particular build spec.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" >
				<xsd:annotation>
					<xsd:documentation>Name of the build spec</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="asmBuilderName" type="xsd:string" >
				<xsd:annotation>
					<xsd:documentation>Name of the smalltalk assembly builder</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="cpuArchitecture" type="xsd:string" >
				<xsd:annotation>
					<xsd:documentation>Name of the CPU architecture this build spec is ment to support</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="os" type="xsd:string" >
				<xsd:annotation>
					<xsd:documentation>Name of the OS this build spec supports</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="defaultJCL" type="xsd:string" >
				<xsd:annotation>
					<xsd:documentation>Name of JCL the VM will use by default</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="defaultSizes" type="xsd:string" >
				<xsd:annotation>
					<xsd:documentation>Description of VM memory foot print and behaviour</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="priority" type="xsd:integer" >
				<xsd:annotation>
					<xsd:documentation>Priority to be given to this build spec while executing it using Axxon</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
	
			<!-- Compound types go here -->
			<xsd:element name="owners" type="tns:ownersType" minOccurs="0" maxOccurs="1" >
				<xsd:annotation>
					<xsd:documentation>A list of owners of this build spec</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			
			<xsd:element name="properties" type="tns:propertiesType" minOccurs="0" maxOccurs="1" >
				<xsd:annotation>
					<xsd:documentation>A list of properties in this build spec</xsd:documentation>
				</xsd:annotation>
			</xsd:element>

			<xsd:element name="features" type="tns:featuresType" minOccurs="0" maxOccurs="1" >
				<xsd:annotation>
					<xsd:documentation>A list of feature names needed by this build spec.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>

			<xsd:element name="source" type="tns:sourceType" >
				<xsd:annotation>
					<xsd:documentation>A list of projects used by this build spec</xsd:documentation>
				</xsd:annotation>
			</xsd:element>

			<xsd:element name="flags" type="tns:flagsType" >
				<xsd:annotation>
					<xsd:documentation>A list of flags used by this build spec.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
						
		</xsd:sequence>
		
		<xsd:attribute name="id" type="xsd:ID" use="required" >
			<xsd:annotation>
				<xsd:documentation>Unique Build Spec Identifier</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	
	
	<xsd:complexType name="ownersType">
		<xsd:annotation>
			<xsd:documentation>
				A list of owners of a build spec.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence maxOccurs="unbounded" minOccurs="0">
			<xsd:annotation>
				<xsd:documentation>
					Owner of a build spec. A build spec may have none or more then one owners. 
				</xsd:documentation>
			</xsd:annotation>
			<xsd:element name="owner" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="propertiesType">
		<xsd:annotation>
			<xsd:documentation>
				A list of properties of a build spec.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence maxOccurs="unbounded" minOccurs="0">
			<xsd:annotation>
				<xsd:documentation>
					A collection of named key-value pairs. 
				</xsd:documentation>
			</xsd:annotation>
			<xsd:sequence maxOccurs="unbounded" minOccurs="0">
				<xsd:element name="property" type="tns:propertyType" />
			</xsd:sequence>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="propertyType">
		<xsd:annotation>
			<xsd:documentation>
				A property is a key-value pair similar to what one would find in an Ant script.  
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:ID" use="required"/>
		<xsd:attribute name="value" type="xsd:string" use="required"/>
	</xsd:complexType>

	<xsd:complexType name="sourceType">
		<xsd:annotation>
			<xsd:documentation>
				A list of the source projects that form the build.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence maxOccurs="unbounded" minOccurs="0">
			<xsd:annotation>
				<xsd:documentation>
					A collection of named key-value pairs. 
				</xsd:documentation>
			</xsd:annotation>
			<xsd:sequence maxOccurs="unbounded" minOccurs="0">
				<xsd:element name="project" type="tns:projectType" />
			</xsd:sequence>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="projectType">
		<xsd:annotation>
			<xsd:documentation>
				This node indicates the name of an Eclipse project that will be included in the source
				for a given build specification.  
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="id" type="xsd:ID" use="required"/>
	</xsd:complexType>
		
	<xsd:complexType name="featuresType">
		<xsd:annotation>
			<xsd:documentation>
				A list of Build Features. Features are used to group a set of flags.
				A build spec will refer to feature names, it does not define features.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence maxOccurs="unbounded" minOccurs="0">
			<xsd:element name="feature" type="tns:featureType" />
		</xsd:sequence>
	</xsd:complexType>
			
	<xsd:complexType name="featureType">
		<xsd:annotation>
			<xsd:documentation>
				A feature as used and defined by a build spec simply refers to a feature name.
				It does not define any flags within the build spec xml but rather provides means
				(a name) of accessing it.  
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="id" type="xsd:ID" use="required"/>
	</xsd:complexType>
		
	
	<xsd:complexType name="flagsType">
		<xsd:annotation>
			<xsd:documentation>
				A list of Flags. 
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence maxOccurs="unbounded" minOccurs="0">
			<xsd:element name="flag" type="tns:flagType" />
		</xsd:sequence>
	</xsd:complexType>
		
	<xsd:complexType name="flagType">
		<xsd:annotation>
			<xsd:documentation>
				A Flag determines what to do to source code controlled by a build spec. 
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="id" type="xsd:ID" use="required"/>
		<xsd:attribute name="value" type="xsd:boolean" use="required"/>
	</xsd:complexType>
	
	

</xsd:schema>