# Class XMLContentDescriber

java.lang.Object
org.eclipse.core.internal.content.TextContentDescriber
org.eclipse.core.runtime.content.XMLContentDescriber

All Implemented Interfaces:
  `IContentDescriber, ITextContentDescriber`

Direct Known Subclasses:
  `XMLRootElementContentDescriber, XMLRootElementContentDescriber2`

public class XMLContentDescriber extends org.eclipse.core.internal.content.TextContentDescriber
A content describer for XML files. This class provides basis for XML-based content describers.

The document is detected by the describer as `VALID`, if it contains an xml declaration with `<?xml` prefix and the encoding in the declaration is correct.

Below are sample declarations recognized by the describer as `VALID`

- <?xml version="1.0"?>
- <?xml version="1.0"
- <?xml version="1.0" encoding="utf-16"?>
- <?xml version="1.0" encoding="utf-16?>

Since:
  org.eclipse.core.contenttype 3.4
See Also:
  - `IContentDescriber`
  - `XMLRootElementContentDescriber2`
  - "http://www.w3.org/TR/REC-xml *"
Restriction:
  This class is not intended to be instantiated by clients. Clients should use it to provide their own XML-based describers that can be referenced by the "describer" configuration element in extensions to the `org.eclipse.core.runtime.contentTypes` extension point.

## Field Summary

### Fields inherited from interface IContentDescriber

`INDETERMINATE, INVALID, VALID`

## Constructor Summary

Constructors
Constructor
Description
`XMLContentDescriber()`

## Method Summary

Modifier and Type
Method
Description
`int`
`describe(InputStream input, IContentDescription description)`
Tries to fill a description for the given contents.
`int`
`describe(Reader input, IContentDescription description)`
Tries to fill a description for the given contents.
`QualifiedName[]`
`getSupportedOptions()`
Returns the properties supported by this describer.

### Methods inherited from class Object

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

## Constructor Details

### XMLContentDescriber

public XMLContentDescriber()

## Method Details

### describe

public int describe(InputStream input, IContentDescription description) throws IOException
Description copied from interface: `IContentDescriber`
Tries to fill a description for the given contents. Returns an `int` indicating whether the given stream of bytes represents a valid sample for its corresponding content type. If no content description is provided, this method should perform content type validation.

The input stream must be kept open, and any IOExceptions while reading the stream should flow to the caller.

Specified by:
  `describe` in interface `IContentDescriber`
Overrides:
  `describe` in class `org.eclipse.core.internal.content.TextContentDescriber`
Parameters:
  `input` - the contents to be examined
  `description` - a description to be filled in, or `null` if only content type validation is to be performed
Returns:
  one of the following:
  - `VALID`
  - `INVALID`
  - `INDETERMINATE`
Throws:
  `IOException` - if an I/O error occurs
See Also:
  - `IContentDescription`
  - `IContentDescriber.VALID`
  - `IContentDescriber.INVALID`
  - `IContentDescriber.INDETERMINATE`

### describe

public int describe(Reader input, IContentDescription description) throws IOException
Description copied from interface: `ITextContentDescriber`
Tries to fill a description for the given contents. Returns an `int` indicating whether the given stream of characters represents a valid sample for this describer's corresponding content type. If no content description is provided, this method should only perform content type validation.

The stream provided must be kept open, and any IOExceptions while reading it should flow to the caller.

Specified by:
  `describe` in interface `ITextContentDescriber`
Overrides:
  `describe` in class `org.eclipse.core.internal.content.TextContentDescriber`
Parameters:
  `input` - the contents to be examined
  `description` - a description to be filled in, or `null` if only content type validation is to be performed
Returns:
  one of the following:
  - `VALID`
  - `INVALID`
  - `INDETERMINATE`
Throws:
  `IOException` - if an I/O error occurs
See Also:
  - `IContentDescription`
  - `IContentDescriber.VALID`
  - `IContentDescriber.INVALID`
  - `IContentDescriber.INDETERMINATE`

### getSupportedOptions

public QualifiedName[] getSupportedOptions()
Description copied from interface: `IContentDescriber`
Returns the properties supported by this describer.

Specified by:
  `getSupportedOptions` in interface `IContentDescriber`
Overrides:
  `getSupportedOptions` in class `org.eclipse.core.internal.content.TextContentDescriber`
Returns:
  the supported properties
See Also:
  - `IContentDescriber.describe(InputStream, IContentDescription)`