blob: ba767f659d9864776b54a1adebc0261ec564b201 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
elementFormDefault="qualified">
<xs:element name="project">
<xs:complexType>
<xs:sequence>
<xs:element ref="extend" minOccurs="0"/>
<xs:element ref="pomVersion"/>
<xs:element ref="id"/>
<xs:element ref="name"/>
<xs:element ref="groupId" minOccurs="0"/>
<xs:element ref="currentVersion"/>
<xs:element ref="organization"/>
<xs:element ref="inceptionYear"/>
<xs:element ref="package" minOccurs="0"/>
<xs:element ref="logo" minOccurs="0"/>
<xs:element ref="gumpRepositoryId" minOccurs="0"/>
<xs:element ref="description" minOccurs="0"/>
<xs:element ref="shortDescription"/>
<xs:element ref="url" minOccurs="0" />
<xs:element ref="issueTrackingUrl" minOccurs="0"/>
<xs:element ref="siteAddress" minOccurs="0"/>
<xs:element ref="siteDirectory" minOccurs="0"/>
<xs:element ref="distributionSite" minOccurs="0"/>
<xs:element ref="distributionDirectory" minOccurs="0"/>
<xs:element ref="repository" minOccurs="0"/>
<xs:element ref="versions" minOccurs="0"/>
<xs:element ref="branches" minOccurs="0"/>
<xs:element ref="mailingLists" minOccurs="0"/>
<xs:element ref="developers"/>
<xs:element ref="contributors" minOccurs="0"/>
<xs:element ref="licenses" minOccurs="0"/>
<xs:element ref="dependencies" minOccurs="0"/>
<xs:element ref="build"/>
<xs:element ref="reports" minOccurs="0"/>
<xs:element ref="properties" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="extend" type='xs:string'/>
<xs:element name="connection" type='xs:string'/>
<xs:element name="developerConnection" type='xs:string'/>
<xs:element name="currentVersion" type='xs:string'/>
<xs:element name="description" type='xs:string'/>
<xs:element name="distributionSite" type='xs:string'/>
<xs:element name="distributionDirectory" type='xs:string'/>
<xs:element name="name" type='xs:string'/>
<xs:element name="groupId" type='xs:string'/>
<xs:element name="artifactId" type='xs:string'/>
<xs:element name="gumpRepositoryId" type='xs:string'/>
<xs:element name="id" type='xs:string'/>
<xs:element name="inceptionYear" type='xs:gYear'/>
<!-- not anyURI as it can contain ${pom....} -->
<xs:element name="issueTrackingUrl" type='xs:string'/>
<xs:element name="logo" type='xs:string'/>
<xs:element name="package" type='xs:string'/>
<xs:element name="pomVersion" type='xs:string'/>
<xs:element name="shortDescription" type='xs:string'/>
<xs:element name="siteAddress" type='xs:string'/>
<xs:element name="siteDirectory" type='xs:string'/>
<!-- not anyURI as it can contain ${pom....} -->
<xs:element name="url" type='xs:string'/>
<!-- /repository element -->
<xs:element name="repository">
<xs:complexType>
<xs:sequence>
<xs:element ref="connection"/>
<xs:element ref="developerConnection" minOccurs="0"/>
<xs:element ref="url" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /organization element -->
<xs:element name="organization">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="url" minOccurs="0" />
<xs:element ref="logo" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /versions element -->
<xs:element name="versions">
<xs:complexType>
<xs:sequence>
<xs:element ref="version" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /versions/version element -->
<xs:element name="version">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element ref="name"/>
<xs:element ref="tag"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /versions/version/tag and branches/branch/tag-->
<xs:element name="tag" type='xs:string'/>
<!-- /branches element -->
<xs:element name="branches">
<xs:complexType>
<xs:sequence>
<xs:element ref="branch" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /branches/branch element -->
<xs:element name="branch">
<xs:complexType>
<xs:sequence>
<xs:element ref="tag"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /mailingLists element -->
<xs:element name="mailingLists">
<xs:complexType>
<xs:sequence>
<xs:element ref="mailingList" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /mailingLists/mailingList element -->
<xs:element name="mailingList">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="subscribe"/>
<xs:element ref="unsubscribe"/>
<xs:element ref="archive" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /mailingLists/mailingList/subscribe element -->
<xs:element name="subscribe" type='xs:string'/>
<!-- /mailingLists/mailingList/unsubscribe element -->
<xs:element name="unsubscribe" type='xs:string'/>
<!-- /mailingLists/mailingList/archive element -->
<xs:element name="archive" type='xs:string'/>
<!-- /developers element -->
<xs:element name="developers">
<xs:complexType>
<xs:sequence>
<xs:element ref="developer" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /developers/developer element -->
<xs:element name="developer">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="id"/>
<xs:group ref="contactDetails" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /developers/developer/contactDetails group and
/contributors/contributor/contactDetails group -->
<xs:group name="contactDetails">
<xs:sequence>
<xs:element ref="email"/>
<xs:element name="organization" type='xs:string' minOccurs="0"/>
<xs:element ref="roles" minOccurs="0" />
<xs:element ref="url" minOccurs="0" />
<xs:element ref="timezone" minOccurs="0" />
</xs:sequence>
</xs:group>
<!-- contactDetails/email element -->
<xs:element name="email" type='xs:string'/>
<!-- contactDetails/roles element -->
<xs:element name="roles">
<xs:complexType>
<xs:sequence>
<xs:element ref="role" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- contactDetails/roles/role element -->
<xs:element name="role" type='xs:string'/>
<!-- type for contactDetails/roles/timezone element -->
<xs:simpleType name="timezoneType">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="-14"/>
<xs:maxInclusive value="+14"/>
</xs:restriction>
</xs:simpleType>
<!-- contactDetails/roles/timezone element
Stores a decimal that is the offset to GMT.
-->
<xs:element name="timezone" type='timezoneType'/>
<!-- /contributors element -->
<xs:element name="contributors">
<xs:complexType>
<xs:sequence>
<xs:element ref="contributor" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /contributors/contributor element -->
<xs:element name="contributor">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:group ref="contactDetails" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /licenses element -->
<xs:element name="licenses">
<xs:complexType>
<xs:sequence>
<xs:element ref="license" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /licenses/license element -->
<xs:element name="license">
<xs:complexType>
<xs:sequence>
<!-- name of the license, e.g. ASL 1.1 -->
<xs:element ref="name" minOccurs="0"/>
<!-- fetchable version of the license -->
<xs:element ref="url" minOccurs="0" />
<!-- 'manual' or 'repo' -->
<xs:element ref="distribution" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /licenses/license/distribution element -->
<xs:element name="distribution">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="manual|repo"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- /dependencies element -->
<xs:element name="dependencies">
<xs:complexType>
<xs:sequence>
<xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /dependencies/dependency element -->
<xs:element name="dependency">
<xs:complexType>
<xs:sequence>
<xs:element ref="id" minOccurs="0" />
<xs:element ref="groupId" minOccurs="0" />
<xs:element ref="artifactId" minOccurs="0" />
<xs:element name="version" type="xs:string" />
<xs:element ref="jar" minOccurs="0"/>
<xs:element ref="type" minOccurs="0"/>
<xs:element ref="url" minOccurs="0"/>
<xs:element ref="properties" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- /dependencies/dependency/type element -->
<xs:element name="type" type='xs:string'/>
<!-- /dependencies/dependency/jar element -->
<xs:element name="jar" type='xs:string'/>
<!-- /build element -->
<xs:element name="build">
<xs:complexType>
<xs:sequence>
<xs:element ref="nagEmailAddress" minOccurs="0"/>
<xs:element ref="sourceDirectory" minOccurs="0"/>
<xs:element ref="sourceModifications" minOccurs="0"/>
<xs:element ref="unitTestSourceDirectory" minOccurs="0"/>
<xs:element ref="integrationUnitTestSourceDirectory" minOccurs="0"/>
<xs:element ref="aspectSourceDirectory" minOccurs="0"/>
<xs:element ref="unitTest" minOccurs="0"/>
<!-- no longer appears in build.java
<xs:element ref="integrationUnitTest" minOccurs="0"/>
-->
<xs:element ref="resources" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nagEmailAddress" type='xs:string'/>
<xs:element name="sourceDirectory" type='xs:string'/>
<xs:element name="sourceModifications">
<xs:complexType>
<xs:sequence>
<xs:element ref="sourceModification" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sourceModification">
<xs:complexType>
<xs:sequence>
<xs:element name="className" type='xs:string'/>
<xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="unitTestSourceDirectory" type='xs:string'/>
<xs:element name="integrationUnitTestSourceDirectory" type='xs:string'/>
<xs:element name="aspectSourceDirectory" type='xs:string'/>
<xs:element name="unitTest">
<xs:complexType>
<xs:sequence>
<xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="resources" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="includes">
<xs:complexType>
<xs:sequence>
<xs:element ref="include" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="excludes">
<xs:complexType>
<xs:sequence>
<xs:element ref="exclude" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="include" type='xs:string'/>
<xs:element name="exclude" type='xs:string'/>
<!-- no longer appears in build.java
<xs:element name="integrationUnitTest">
<xs:complexType>
<xs:sequence>
<xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
-->
<xs:element name="resources">
<xs:complexType>
<xs:sequence>
<xs:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="directory" type='xs:string'/>
<xs:element name="targetPath" type='xs:string'/>
<xs:element name="filtering" type="xs:boolean" />
<xs:element name="resource">
<xs:complexType>
<xs:sequence>
<!-- FIXME: I think that this defaults to basedir, need a check -->
<xs:element ref="directory" minOccurs="0"/>
<xs:element ref="targetPath" minOccurs="0"/>
<xs:element ref="includes" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="excludes" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="filtering" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="reports">
<xs:complexType>
<xs:sequence>
<xs:element name="report" minOccurs="0" maxOccurs="unbounded"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="properties">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="classloader">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="root|root.maven"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>