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