blob: 2eae9b73c823af18c38aefcd1e2b7bc5f7bec456 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.4">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Copyright (c) 2010-2014 SAP AG and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
SAP AG - initial API and implementation
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation xml:lang="EN">
This XML schema defines common types used by various parts of the Skalli REST API.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="empty" />
<xsd:simpleType name="ModelVersion">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]+\.[0-9]+(\.[0-9]+)?(\..+)?" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="UUID">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="EmailAddress">
<xsd:restriction base="xsd:string">
<xsd:pattern value="([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([a-zA-Z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\])" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Timestamp">
<xsd:simpleContent>
<xsd:extension base="xsd:dateTime">
<xsd:attribute name="millis" type="xsd:long" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="ProjectId">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines the unique symbolic name of a project, e.g. "eclipse.skalli".
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-z][a-z0-9_\-.]*" />
<xsd:minLength value="3" />
<xsd:maxLength value="64" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ProjectName">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines the display name of a project, e.g. "Skalli".
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:minLength value="3" />
<xsd:maxLength value="255" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ShortName">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines the short name of a project, e.g. "Skalli".
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:minLength value="2" />
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Link">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines a link to another API resource, e.g. to a project
detail resource (rel="project") or a user resource (rel="user").
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="rel" type="RelValues" use="required" />
<xsd:attribute name="href" type="xsd:anyURI" use="required" />
</xsd:complexType>
<xsd:simpleType name="RelValues">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="project"/>
<xsd:enumeration value="browse"/>
<xsd:enumeration value="issues"/>
<xsd:enumeration value="parent"/>
<xsd:enumeration value="subproject"/>
<xsd:enumeration value="user"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Severity">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines the severity of a validation issue.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="INFO"/>
<xsd:enumeration value="WARNING"/>
<xsd:enumeration value="ERROR"/>
<xsd:enumeration value="FATAL"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Member">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines the unique identifier and permanent link to the user resource
of a project member.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="userId" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
The unique identifier of the project member.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="link" type="Link">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Permanent link to the user resource of the project member.
The value of the "rel" attribute is always "user".
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MemberWithRole">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines the unique identifier, permanent link to the user resource
and roles of a project member.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="userId" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
The user identifier of the project member.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="link" type="Link" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Permanent link to the user resource of the project member.
The value of the "rel" attribute is always "user".
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Full name of the user.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="email" type="EmailAddress" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Email address of the user.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="role" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
The roles of the project member.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Extension">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
Defines common attributes for a model extension.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="inherited" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
If true, indicates that the extension is inherited from the parent
project in the project hierarchy. Attributes of inherited extensions
cannot be changed with REST commands.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="derived" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
If true, indicates that the extension is not editable but
contains information that is calculated or derived from
external resources stored elsewhere.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lastModified" type="xsd:dateTime" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
The timestamp of the last modification of an extension in ISO 8601 date/time format.
For derived extension this timestamp could for example indicate the latest
update/download of the extension data from an external resource.
Examples: 2001-10-26T19:32:52Z, 2001-10-26T19:32:52+00:00
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="modifiedBy" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="EN">
The unique identifier of the last modifier.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="apiVersion" type="ModelVersion" use="required" />
</xsd:complexType>
</xsd:schema>