| <?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> |