Bug 66967 [Contributions] PropertyParser should be deprecated (or removed)
Internal class org.eclipse.ui.ide/org.eclipse.ui.internal.ide.model/PropertyParser should be deprecated. People should be using the extension point org.eclipse.core.runtime.contentTypes instead Note that the tags XML_FIRST_TAG and XML_DTD_NAME have already been deprecated. Can we actually remove these instead of deprecating them?
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/PropertyParser.java
import org.xml.sax.helpers.DefaultHandler;
/*
 * This PropertyParser is used to examine XML files in an effort to learn a bit
 * more about their context. This will then help Eclipse determine, for example,
 * what menu entries are really appropriate for this particular XML file. As an
 * example, a plugin.xml file should not have context menu entries relating to
 * running Ant scripts.
 * 
 * Currently (Eclipse 3.0) this parser only looks for the root level tag and the
 * name of the DTD (if any). This parser may be extended to look for other,
 * relevant pieces of information. The information found is stored as a
 * persistent property on this resource. This way, we only need to parse this
 * file again if the file has changed. If no changes have occurred, we simply
 * access the persistent property and do not parse.
 * 
 * This parser should be aware of the environment in which it is being called in
 * that it needs to be called a minimun number of times (we don't want to
 * reparse every XML file each time someone asks for a context menu), it needs
 * to do minimal computing/parsing, and it needs to handle any unexpected or
 * error results cleanly.
 * 
 * Current restrictions in XML parsing logic require that if a DTD is mentioned
 * in and XML file, that DTD file must be present and accessible. The
 * PropertyParser does not require this to be true, but the underlying XML
 * parser does require this.
 */
public class PropertyParser extends DefaultHandler implements LexicalHandler {
    /**
     * @deprecated Use the extension point org.eclipse.core.runtime.contentTypes
     *             instead. This internal class will be removed in 3.1.