XmlParser
Date: 2017-02-11

org.fife.ui.rsyntaxtextarea.parser

## Class XmlParser

- java.lang.Object
- - org.fife.ui.rsyntaxtextarea.parser.AbstractParser
  - - org.fife.ui.rsyntaxtextarea.parser.XmlParser

- All Implemented Interfaces:
    Parser

      public class XmlParser
      extends AbstractParser

  A parser for XML documents. Adds squiggle underlines for any XML errors found (though most XML parsers don't really have error recovery and so only can find one error at a time).

  This class isn't actually used by RSyntaxTextArea anywhere, but you can install and use it yourself. Doing so is as simple as:

       XmlParser xmlParser = new XmlParser();
       textArea.addParser(xmlParser);

  To support DTD validation, specify an entity resolver when creating the parser, and enable validation like so:

       XmlParser xmlParser = new XmlParser(new MyEntityResolver());
       xmlParser.setValidating(true);
       textArea.addParser(xmlParser);

  Also note that a single instance of this class can be installed on multiple instances of `RSyntaxTextArea`.

  For a more complete XML parsing/validation solution, see the RSTALanguageSupport project's `XmlLanguageSupport` class.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XmlParser()`
    `XmlParser(org.xml.sax.EntityResolver resolver)` Constructor allowing DTD validation of documents.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isValidating()` Returns whether this parser does DTD validation.
    `ParseResult` | `parse(RSyntaxDocument doc, java.lang.String style)` Parses input from the specified document.
    `void` | `setValidating(boolean validating)` Sets whether this parser will use DTD validation if required.

    - ### Methods inherited from class org.fife.ui.rsyntaxtextarea.parser.AbstractParser

      `getHyperlinkListener, getImageBase, isEnabled, setEnabled, setHyperlinkListener`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### XmlParser

          public XmlParser()

    - #### XmlParser

          public XmlParser(org.xml.sax.EntityResolver resolver)

      Constructor allowing DTD validation of documents.
      Parameters:
        `resolver` - An entity resolver to use if validation is enabled.
      See Also:
        `setValidating(boolean)`

  - ### Method Detail

    - #### isValidating

          public boolean isValidating()

      Returns whether this parser does DTD validation.
      Returns:
        Whether this parser does DTD validation.
      See Also:
        `setValidating(boolean)`

    - #### parse

          public ParseResult parse(RSyntaxDocument doc,
                          java.lang.String style)

      Parses input from the specified document.
      Parameters:
        `doc` - The document to parse. This document is in a read lock, so it cannot be modified while parsing is occurring.
        `style` - The language being rendered, such as `SyntaxConstants.SYNTAX_STYLE_JAVA`.
      Returns:
        An object describing the section of the document parsed and the results. This is guaranteed to be non-`null`.

    - #### setValidating

          public void setValidating(boolean validating)

      Sets whether this parser will use DTD validation if required.
      Parameters:
        `validating` - Whether DTD validation should be enabled. If this is `true`, documents must specify a DOCTYPE, and you should have used the constructor specifying an entity resolver.
      See Also:
        `isValidating()`