Path: blob/master/sourcetools/com.ibm.uma/com/ibm/uma/om/parser/module.xsd
6005 views
<!-- Copyright (c) 2001, 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" xmlns:xi="http://www.w3.org/2001/XInclude"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> <xsd:annotation> <xsd:documentation xml:lang="en"> J9 Module Description Schema </xsd:documentation> </xsd:annotation> <xsd:element name="module" type="ModuleType"/> <xsd:complexType name="ModuleType"> <xsd:sequence> <xsd:element name="exportlists" type="ExportlistsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exports" type="ExportsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="objectlists" type="ObjectlistsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="objects" type="ObjectsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="flaglists" type="FlaglistsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="flags" type="flagsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="artifact" type="ArtifactType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ExportlistsType"> <xsd:sequence> <xsd:element name="exports" type="ExportsType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="xml:base"/> </xsd:complexType> <xsd:complexType name="ObjectlistsType"> <xsd:sequence> <xsd:element name="objects" type="ObjectsType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="xml:base"/> </xsd:complexType> <xsd:complexType name="FlaglistsType"> <xsd:sequence> <xsd:element name="flags" type="flagsType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="xml:base"/> </xsd:complexType> <xsd:complexType name="ExportsType"> <xsd:sequence> <xsd:element name="export" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute ref="xml:base"/> <xsd:attribute name="group" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="ObjectsType"> <xsd:sequence> <xsd:element name="group" type="ObjectItemType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="object" type="ObjectItemType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="xml:base"/> <xsd:attribute name="group" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="ObjectItemType"> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" use="required"/> </xsd:complexType> <xsd:complexType name="ArtifactType"> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="options" type="OptionsType" minOccurs="0"/> <xsd:element name="phase" type="PhaseListType" minOccurs="0"/> <xsd:element name="dependencies" type="DependenciesType" minOccurs="0"/> <xsd:element name="commands" type="CommandsType" minOccurs="0"/> <xsd:element name="exports" type="AExportsType" minOccurs="0"/> <xsd:element name="flags" type="flagsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="includes" type="IncludesType" minOccurs="0"/> <xsd:element name="makefilestubs" type="MakefileStubsType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="vpaths" type="vpathsType" minOccurs="0"/> <xsd:element name="objects" type="AObjectsType" minOccurs="0"/> <xsd:element name="libraries" type="LibrariesType" minOccurs="0"/> <xsd:element name="static-link-libraries" type="LibrariesType" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="type"> <xsd:simpleType> <xsd:restriction base='xsd:string'> <xsd:enumeration value='bundle'/> <xsd:enumeration value='executable'/> <xsd:enumeration value='shared'/> <xsd:enumeration value='static'/> <xsd:enumeration value='reference'/> <xsd:enumeration value='target'/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="bundle" type="xsd:string"/> <xsd:attribute name="loadgroup" type="xsd:string"/> <xsd:attribute name="buildlocal" type="xsd:boolean" default="false"/> <xsd:attribute name="appendrelease" type="xsd:boolean" default="true"/> <xsd:attribute name="console" type="xsd:boolean" default="true"/> <xsd:attribute name="scope" type="xsd:string"/> <xsd:attribute name="all" type="xsd:boolean" default="true"/> </xsd:complexType> <xsd:complexType name="OptionsType"> <xsd:sequence> <xsd:element name="option" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="data" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="PhaseListType"> <xsd:list itemType="xsd:string"/> </xsd:simpleType> <xsd:complexType name="DependenciesType"> <xsd:sequence> <xsd:element name="dependency" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CommandsType"> <xsd:sequence> <xsd:element name="command" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="line" type="xsd:string" use="required"/> <xsd:attribute name="type" type="CommandType" default="all"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="AExportsType"> <xsd:sequence> <xsd:element name="group" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="export" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MakefileStubsType"> <xsd:sequence> <xsd:element name="makefilestub" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="data" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="vpathsType"> <xsd:sequence> <xsd:element name="vpath" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="path" type="xsd:string"/> <xsd:attribute name="pattern" type="xsd:string"/> <xsd:attribute name="type" type="pathtype" default="artifact"/> <xsd:attribute name="augmentObjects" type="xsd:boolean" default="false"/> <xsd:attribute name="augmentIncludes" type="xsd:boolean" default="false"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="IncludesType"> <xsd:sequence> <xsd:element name="include" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="path" type="xsd:string" use="required"/> <xsd:attribute name="type" type="pathtype" default="artifact"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="flagsType"> <xsd:sequence> <xsd:element name="flag" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="value" type="xsd:string" /> <xsd:attribute name="cflag" type="xsd:boolean" default="true"/> <xsd:attribute name="cxxflag" type="xsd:boolean" default="true"/> <xsd:attribute name="cppflag" type="xsd:boolean" default="true"/> <xsd:attribute name="asmflag" type="xsd:boolean" default="false"/> <xsd:attribute name="definition" type="xsd:boolean" default="true"/> </xsd:complexType> </xsd:element> <xsd:element name="group" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute ref="xml:base"/> <xsd:attribute name="group" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="LibrariesType"> <xsd:sequence> <xsd:element name="library" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="type" type="libtype" default="build"/> <xsd:attribute name="delayload" type="xsd:boolean" default="false"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="AObjectsType"> <xsd:sequence> <xsd:element name="group" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="object" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="include-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="exclude-if" type="PredicateType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="PredicateType"> <xsd:attribute name="condition" type="xsd:string" use="required"/> </xsd:complexType> <xsd:simpleType name='libtype'> <xsd:annotation> <xsd:documentation>Library type</xsd:documentation> </xsd:annotation> <xsd:restriction base='xsd:string'> <xsd:enumeration value='build'/> <xsd:enumeration value='external'/> <xsd:enumeration value='system'/> <xsd:enumeration value='macro'/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name='pathtype'> <xsd:annotation> <xsd:documentation>path type</xsd:documentation> </xsd:annotation> <xsd:restriction base='xsd:string'> <xsd:enumeration value='rootpath'/> <xsd:enumeration value='relativepath'/> <xsd:enumeration value='artifact'/> <xsd:enumeration value='macro'/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name='CommandType'> <xsd:annotation> <xsd:documentation>Command type</xsd:documentation> </xsd:annotation> <xsd:restriction base='xsd:string'> <xsd:enumeration value='all'/> <xsd:enumeration value='clean'/> <xsd:enumeration value='ddrgen'/> </xsd:restriction> </xsd:simpleType> </xsd:schema>