# Resource Markers

###### Identifier:

org.eclipse.core.resources.markers

###### Description:

The workspace supports the notion of markers on arbitrary resources. A marker is a kind of metadata (similar to properties) which can be used to tag resources with user information. Markers are optionally persisted by the workspace whenever a workspace save or snapshot is done.

Users can define and query for markers of a given type. Marker types are defined in a hierarchy that supports multiple-inheritance. Marker type definitions also specify a number attributes which must or may be present on a marker of that type as well as whether or not markers of that type should be persisted.

The markers extension-point allows marker writers to register their marker types under a symbolic name that is then used from within the workspace to create and query markers. The symbolic name is the id of the marker extension. When defining a marker extension, users are encouraged to include a human-readable value for the "name" attribute which indentifies their marker and potentially may be presented to users.

###### Configuration Markup:

<!ELEMENT extension (super* , persistent? , attribute*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #REQUIRED

name CDATA #IMPLIED

>

- point - a fully qualified identifier of the target extension point
- id - a required identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT super EMPTY>

<!ATTLIST super

type IDREF #REQUIRED

>

- type - the fully-qualified id of a marker super type (i.e., a marker type defined by another marker extension)

<!ELEMENT persistent EMPTY>

<!ATTLIST persistent

value (true | false)

>

- value - "`true`" or "`false`" indicating whether or not markers of this type should be persisted by the workspace. If the persistent characteristic is not specified, the marker type is not persisted.

<!ELEMENT attribute EMPTY>

<!ATTLIST attribute

name CDATA #REQUIRED

>

- name - the name of an attribute which may be present on markers of this type

###### Examples:

Following is an example of a marker configuration:

       <extension id="com.xyz.coolMarker" point="org.eclipse.core.resources.markers" name="Cool Marker">
          <persistent value="true"/>
          <super type="org.eclipse.core.resources.problemmarker"/>
          <super type="org.eclipse.core.resources.textmarker"/>
          <attribute name="owner"/>
       </extension>

###### API Information:

All markers, regardless of their type, are instances of `org.eclipse.core.resources.IMarker`.

###### Supplied Implementation:

The platform itself has a number of pre-defined marker types. Particular product installs may include additional markers as required.

Copyright (c) 2002, 2008 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html