<?xml version='1.0' encoding='UTF-8'?> <!-- Schema file written by PDE --> <schema targetNamespace="org.eclipse.cdt.codan.ui" xmlns="http://www.w3.org/2001/XMLSchema"> <annotation> <appinfo> <meta.schema plugin="org.eclipse.cdt.codan.ui" id="checkers" name="Code Analysis Checkers"/> </appinfo> <documentation> Define chckers for Code Analysis framework. </documentation> </annotation> <element name="extension"> <annotation> <appinfo> <meta.element /> </appinfo> </annotation> <complexType> <sequence minOccurs="1" maxOccurs="unbounded"> <choice> <element ref="checker"/> <element ref="category"/> </choice> </sequence> <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="checker"> <annotation> <documentation> Checker Element. Sets id, name and class that implements checker </documentation> </annotation> <complexType> <sequence minOccurs="0" maxOccurs="unbounded"> <element ref="problem"/> </sequence> <attribute name="id" type="string" use="required"> <annotation> <documentation> Checker id. </documentation> </annotation> </attribute> <attribute name="class" type="string" use="required"> <annotation> <documentation> Checker class. Must implement IChecker. </documentation> <appinfo> <meta.attribute kind="java" basedOn=":org.eclipse.cdt.codan.core.model.IChecker"/> </appinfo> </annotation> </attribute> <attribute name="name" type="string"> <annotation> <documentation> User Friendly name of the chcker, currently not used. Will default to a class name. </documentation> <appinfo> <meta.attribute translatable="true"/> </appinfo> </annotation> </attribute> </complexType> </element> <element name="problem"> <annotation> <documentation> Problem meta-data. </documentation> </annotation> <complexType> <attribute name="id" type="string" use="required"> <annotation> <documentation> Error id. Should be prefixed by plugin name in general. </documentation> </annotation> </attribute> <attribute name="name" type="string"> <annotation> <documentation> User Friendly name of the error. Would be displyed to enable/disable a problem and get access to problem properties. Should be as short as possible, but recogniziable. </documentation> <appinfo> <meta.attribute translatable="true"/> </appinfo> </annotation> </attribute> <attribute name="defaultSeverity" use="default" value="Warning"> <annotation> <documentation> Set defult problem severity. User can override later. Default is Warning. </documentation> </annotation> <simpleType> <restriction base="string"> <enumeration value="Error"> </enumeration> <enumeration value="Warning"> </enumeration> <enumeration value="Info"> </enumeration> </restriction> </simpleType> </attribute> <attribute name="category" type="string"> <annotation> <documentation> Category id for the problem. There are few that are defined in core codan plugin, other user defined. If none specified it would be "Programming Problems". </documentation> <appinfo> <meta.attribute kind="identifier" basedOn="org.eclipse.cdt.codan.core.checkers/category/@id"/> </appinfo> </annotation> </attribute> <attribute name="defaultEnabled" type="boolean" use="default" value="true"> <annotation> <documentation> If problem is enabled in original profile. Default is true. </documentation> </annotation> </attribute> <attribute name="messagePattern" type="string"> <annotation> <documentation> Default error message pattern. Use java pattern notation (such as {0} to replace with first problem argument, and so on. To place single quote ' in a message - use quot symbol twice ''). For example message pattern Invalid argument ''{0}'' would be printed as Invalid argument 'xxx' where xxx what checker would post as an argument for the problem. </documentation> <appinfo> <meta.attribute translatable="true"/> </appinfo> </annotation> </attribute> <attribute name="description" type="string"> <annotation> <documentation> Short description of the problem. Help user to understand that message means. Can be used as tooltip. </documentation> <appinfo> <meta.attribute translatable="true"/> </appinfo> </annotation> </attribute> <attribute name="markerType" type="string"> <annotation> <documentation> Marker type to use to generate problem, default is the generic codan marker </documentation> <appinfo> <meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.markers/@id"/> </appinfo> </annotation> </attribute> <attribute name="multiple" type="boolean"> <annotation> <documentation> Can user duplicate this problem to have multiple instances (each instance can have diffrent scope, arguments, severity, etc. </documentation> </annotation> </attribute> </complexType> </element> <element name="category"> <annotation> <documentation> Category for problem. Allows to group problems for the user. </documentation> </annotation> <complexType> <attribute name="id" type="string" use="required"> <annotation> <documentation> Unique qualified category id. </documentation> </annotation> </attribute> <attribute name="name" type="string" use="required"> <annotation> <documentation> User visible name of the category </documentation> <appinfo> <meta.attribute translatable="true"/> </appinfo> </annotation> </attribute> <attribute name="parentCategory" type="string"> <annotation> <documentation> Id of the parent category. Root is used if not specified. </documentation> <appinfo> <meta.attribute kind="identifier" basedOn="org.eclipse.cdt.codan.core.checkers/category/@id"/> </appinfo> </annotation> </attribute> </complexType> </element> <annotation> <appinfo> <meta.section type="since"/> </appinfo> <documentation> 1.0 </documentation> </annotation> <annotation> <appinfo> <meta.section type="examples"/> </appinfo> <documentation> The following is an example of a single checker definition: <p> <pre> <extension point="org.eclipse.cdt.codan.ui.checkers"> <checker class="org.aaa.AssignmentInConditionChecker" id="org.aaa.AssignmentInConditionChecker" name="Possible Assignment in Condition instead of comparision"> </checker> </extension> </pre> </p> The following is an example of a checker that produces two types of errors: <p> <pre> <extension point="org.eclipse.cdt.codan.ui.checkers"> <checker class="org.aaa.NullPointerDereferenceChecker" id="org.aaa.NullPointerDereferenceChecker" name="Null Pointer Dereference checker"> <problem id="org.aaa.npe_must" name="Null Pointer Dereference"/ defaultSeverity="Error"> <problem id="org.aaa.npe_may" name="Possible Null Pointer Dereference"/> </checker> </extension> </pre> </p> </documentation> </annotation> <annotation> <appinfo> <meta.section type="apiinfo"/> </appinfo> <documentation> [Enter API information here.] </documentation> </annotation> <annotation> <appinfo> <meta.section type="implementation"/> </appinfo> <documentation> [Enter information about supplied implementation of this extension point.] </documentation> </annotation> </schema>