blob: a48159c7a80eb0485a5fd8befbf64ebd599f7e60 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eclipse.org/component-api" xmlns:tns="http://eclipse.org/component-api">
<element name="component-api">
<complexType>
<sequence>
<element name="internal-apis" type="tns:api-types"/>
<element name="external-apis" type="tns:api-types"/>
</sequence>
<attribute name="name" type="string" use="required">
<annotation>
<documentation>
The component name; e.g. "Eclipse Platform
Generic Workbench"; note that this name is used
to refer to the component and distinguish it
from other components (but otherwise has no
official status in Eclipse ontology)
</documentation>
</annotation>
</attribute>
<attribute name="version" type="string" use="required">
</attribute>
</complexType>
</element>
<complexType name="api-types">
<sequence>
<element name="package" type="tns:package" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="package">
<sequence>
<element name="class-api" type="tns:class-api" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required">
</attribute>
</complexType>
<complexType name="class-api">
<sequence>
<element name="method-api" type="tns:method-api" maxOccurs="unbounded"/>
<element name="field-api" type="tns:field-api" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="reference" type="boolean" default="true"/>
<attribute name="subclass" type="boolean" default="true"/>
<attribute name="implement" type="boolean" default="true"/>
<attribute name="instantiate" type="boolean" default="true"/>
</complexType>
<complexType name="method-api">
<attribute name="visibility" type="tns:visibility" use="required"/>
<attribute name="static" type="boolean"/>
<attribute name="final" type="boolean"/>
<attribute name="synchronized" type="boolean"/>
<attribute name="native" type="boolean"/>
<attribute name="abstract" type="boolean"/>
<attribute name="strict" type="boolean"/>
<attribute name="name" type="string" use="required"/>
<attribute name="input-type" type="tns:list-of-types"/>
<attribute name="return-type" type="string"/>
<attribute name="exception-type" type="tns:list-of-types"/>
</complexType>
<simpleType name="visibility">
<restriction base="string">
<enumeration value="public"/>
<enumeration value="protected"/>
<enumeration value="private"/>
</restriction>
</simpleType>
<simpleType name="list-of-types">
<list itemType="string"/>
</simpleType>
<complexType name="field-api">
<attribute name="visibility" type="tns:visibility" use="required"/>
<attribute name="static" type="boolean"/>
<attribute name="final" type="boolean"/>
<attribute name="volatile" type="boolean"/>
<attribute name="transient" type="boolean"/>
<attribute name="name" type="string" use="required"/>
<attribute name="type" type="string" use="required"/>
</complexType>
</schema>