blob: b6f45d82a66f28aa9c752dfa327de8dec0f41f4c [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<schema targetNamespace="org.eclipse.statet.ltk" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
<meta.schema id="ModelTypes"
plugin="org.eclipse.statet.ltk.core"
name="LTK Model Types and Working Contexts"/>
</appinfo>
<documentation>
This extension-point allows to define model types and plug-in into its working contexts:
&lt;ol&gt;
&lt;li&gt;Add factories for shared source units (ISourceUnit).&lt;/li&gt;
&lt;/ol&gt;
</documentation>
</annotation>
<element name="extension">
<annotation>
<appinfo>
<meta.element />
</appinfo>
</annotation>
<complexType>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="modelType"/>
<element ref="unitType"/>
<element ref="contentType"/>
</choice>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute translatable="true"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="modelType">
<annotation>
<documentation>
This points allows to define a model type.
</documentation>
</annotation>
<complexType>
<sequence>
<element ref="baseType" minOccurs="0" maxOccurs="1"/>
<element ref="secondaryType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="id" type="string" use="required">
<annotation>
<documentation>
The id of the model type.
</documentation>
<appinfo>
<meta.attribute kind="identifier"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="unitType">
<annotation>
<documentation>
This point allows to provide new types of source units, e.g. for an new model type or a special context of an existing model type.
</documentation>
</annotation>
<complexType>
<attribute name="modelTypeId" type="string" use="required">
<annotation>
<documentation>
The id of the model type.
</documentation>
<appinfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.statet.ltk.ModelTypes/modelType/@id"/>
</appinfo>
</annotation>
</attribute>
<attribute name="contextKey" type="string" use="required">
<annotation>
<documentation>
The key of the working context.
</documentation>
</annotation>
</attribute>
<attribute name="unitFactory" type="string" use="required">
<annotation>
<documentation>
An implementation of &lt;code&gt;org.eclipse.statet.ltk.ISourceUnitFactory&lt;/code&gt; supporting creation of source units for the specified model type and context.
</documentation>
<appinfo>
<meta.attribute kind="java" basedOn=":org.eclipse.statet.ltk.ISourceUnitFactory"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="contentType">
<annotation>
<documentation>
This point allows to links a model type to a content type
</documentation>
</annotation>
<complexType>
<attribute name="contentTypeId" type="string" use="required">
<annotation>
<documentation>
The content type id.
</documentation>
<appinfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.core.contenttype.contentTypes/content-type/@id"/>
</appinfo>
</annotation>
</attribute>
<attribute name="modelTypeId" type="string" use="required">
<annotation>
<documentation>
The model type id to activate for the content type.
</documentation>
<appinfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.statet.ltk.ModelTypes/modelType/@id"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="baseType">
<complexType>
<attribute name="modelTypeId" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.statet.ltk.ModelTypes/modelType/@id"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="secondaryType">
<complexType>
<attribute name="modelTypeId" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.statet.ltk.ModelTypes/modelType/@id"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appinfo>
<meta.section type="since"/>
</appinfo>
<documentation>
0.4
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="copyright"/>
</appinfo>
<documentation>
Copyright (c) 2008, 2020 Stephan Wahlbrink and others.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
which is available at https://www.apache.org/licenses/LICENSE-2.0.
SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
Contributors:
Stephan Wahlbrink &lt;sw@wahlbrink.eu&gt; - initial API and implementation
</documentation>
</annotation>
</schema>