blob: a48159c7a80eb0485a5fd8befbf64ebd599f7e60 [file] [log] [blame]
ryman22c246e2005-01-20 12:03:04 +00001<?xml version="1.0" encoding="UTF-8"?>
2<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eclipse.org/component-api" xmlns:tns="http://eclipse.org/component-api">
3 <element name="component-api">
4 <complexType>
5 <sequence>
6 <element name="internal-apis" type="tns:api-types"/>
7 <element name="external-apis" type="tns:api-types"/>
8 </sequence>
9 <attribute name="name" type="string" use="required">
10 <annotation>
11 <documentation>
12 The component name; e.g. "Eclipse Platform
13 Generic Workbench"; note that this name is used
14 to refer to the component and distinguish it
15 from other components (but otherwise has no
16 official status in Eclipse ontology)
17 </documentation>
18 </annotation>
19 </attribute>
20 <attribute name="version" type="string" use="required">
21 </attribute>
22 </complexType>
23 </element>
24
25 <complexType name="api-types">
26 <sequence>
27 <element name="package" type="tns:package" maxOccurs="unbounded"/>
28 </sequence>
29 </complexType>
30
31 <complexType name="package">
32 <sequence>
33 <element name="class-api" type="tns:class-api" maxOccurs="unbounded"/>
34 </sequence>
35 <attribute name="name" type="string" use="required">
36 </attribute>
37 </complexType>
38
39 <complexType name="class-api">
40 <sequence>
41 <element name="method-api" type="tns:method-api" maxOccurs="unbounded"/>
42 <element name="field-api" type="tns:field-api" maxOccurs="unbounded"/>
43 </sequence>
44 <attribute name="name" type="string" use="required"/>
45 <attribute name="reference" type="boolean" default="true"/>
46 <attribute name="subclass" type="boolean" default="true"/>
47 <attribute name="implement" type="boolean" default="true"/>
48 <attribute name="instantiate" type="boolean" default="true"/>
49 </complexType>
50
51 <complexType name="method-api">
52 <attribute name="visibility" type="tns:visibility" use="required"/>
53 <attribute name="static" type="boolean"/>
54 <attribute name="final" type="boolean"/>
55 <attribute name="synchronized" type="boolean"/>
56 <attribute name="native" type="boolean"/>
57 <attribute name="abstract" type="boolean"/>
58 <attribute name="strict" type="boolean"/>
59 <attribute name="name" type="string" use="required"/>
60 <attribute name="input-type" type="tns:list-of-types"/>
61 <attribute name="return-type" type="string"/>
62 <attribute name="exception-type" type="tns:list-of-types"/>
63 </complexType>
64
65 <simpleType name="visibility">
66 <restriction base="string">
67 <enumeration value="public"/>
68 <enumeration value="protected"/>
69 <enumeration value="private"/>
70 </restriction>
71 </simpleType>
72
73 <simpleType name="list-of-types">
74 <list itemType="string"/>
75 </simpleType>
76
77 <complexType name="field-api">
78 <attribute name="visibility" type="tns:visibility" use="required"/>
79 <attribute name="static" type="boolean"/>
80 <attribute name="final" type="boolean"/>
81 <attribute name="volatile" type="boolean"/>
82 <attribute name="transient" type="boolean"/>
83 <attribute name="name" type="string" use="required"/>
84 <attribute name="type" type="string" use="required"/>
85 </complexType>
86</schema>