Module java.desktop
Package javax.swing.text.html.parser

# Class DTD

java.lang.Object
javax.swing.text.html.parser.DTD

All Implemented Interfaces:
  `DTDConstants`

public class DTD extends Object implements DTDConstants
The representation of an SGML DTD. DTD describes a document syntax and is used in parsing of HTML documents. It contains a list of elements and their attributes as well as a list of entities defined in the DTD.

See Also:
  - `Element`
  - `AttributeList`
  - `ContentModel`
  - `Parser`

## Field Summary

Fields
Modifier and Type
Field
Description
`final Element`
`applet`
The element corresponding to applet.
`final Element`
`base`
The element corresponding to base.
`final Element`
`body`
The element corresponding to body.
`Hashtable<String,Element>`
`elementHash`
The hash table contains the name of element and the corresponding element.
`Vector<Element>`
`elements`
The vector of elements
`Hashtable<Object,Entity>`
`entityHash`
The hash table contains an `Object` and the corresponding `Entity`
`static final int`
`FILE_VERSION`
The version of a file
`final Element`
`head`
The element corresponding to head.
`final Element`
`html`
The element corresponding to html.
`final Element`
`isindex`
The element corresponding to isindex.
`final Element`
`meta`
The element corresponding to meta.
`String`
`name`
the name of the DTD
`final Element`
`p`
The element corresponding to p.
`final Element`
`param`
The element corresponding to param.
`final Element`
`pcdata`
The element corresponding to pcdata.
`final Element`
`title`
The element corresponding to title.

### Fields declared in interface javax.swing.text.html.parser.DTDConstants

`ANY, CDATA, CONREF, CURRENT, DEFAULT, EMPTY, ENDTAG, ENTITIES, ENTITY, FIXED, GENERAL, ID, IDREF, IDREFS, IMPLIED, MD, MODEL, MS, NAME, NAMES, NMTOKEN, NMTOKENS, NOTATION, NUMBER, NUMBERS, NUTOKEN, NUTOKENS, PARAMETER, PI, PUBLIC, RCDATA, REQUIRED, SDATA, STARTTAG, SYSTEM`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`DTD(String name)`
Creates a new DTD with the specified name.

## Method Summary

Modifier and Type
Method
Description
`protected AttributeList`
`defAttributeList(String name, int type, int modifier, String value, String values, AttributeList atts)`
Creates and returns an `AttributeList` responding to a new attribute.
`protected ContentModel`
`defContentModel(int type, Object obj, ContentModel next)`
Creates and returns a new content model.
`protected Element`
`defElement(String name, int type, boolean omitStart, boolean omitEnd, ContentModel content, String[] exclusions, String[] inclusions, AttributeList atts)`
Creates and returns an `Element`.
`Entity`
`defEntity(String name, int type, int ch)`
Creates and returns a character `Entity`.
`protected Entity`
`defEntity(String name, int type, String str)`
Creates and returns an `Entity`.
`void`
`defineAttributes(String name, AttributeList atts)`
Defines attributes for an `Element`.
`Element`
`defineElement(String name, int type, boolean omitStart, boolean omitEnd, ContentModel content, BitSet exclusions, BitSet inclusions, AttributeList atts)`
Returns the `Element` which matches the specified parameters.
`Entity`
`defineEntity(String name, int type, char[] data)`
Defines an entity.
`static DTD`
`getDTD(String name)`
Returns a DTD with the specified `name`.
`Element`
`getElement(int index)`
Gets an element by index.
`Element`
`getElement(String name)`
Gets an element by name.
`Entity`
`getEntity(int ch)`
Gets a character entity.
`Entity`
`getEntity(String name)`
Gets an entity by name.
`String`
`getName()`
Gets the name of the DTD.
`static void`
`putDTDHash(String name, DTD dtd)`
Put a name and appropriate DTD to hashtable.
`void`
`read(DataInputStream in)`
Recreates a DTD from an archived format.
`String`
`toString()`
Returns a string representation of this DTD.

### Methods declared in class java.lang.Object

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

## Field Details

### name

public String name
the name of the DTD

### elements

public Vector<Element> elements
The vector of elements

### elementHash

public Hashtable<String,Element> elementHash
The hash table contains the name of element and the corresponding element.

### entityHash

public Hashtable<Object,Entity> entityHash
The hash table contains an `Object` and the corresponding `Entity`

### pcdata

public final Element pcdata
The element corresponding to pcdata.

### html

public final Element html
The element corresponding to html.

### meta

public final Element meta
The element corresponding to meta.

### base

public final Element base
The element corresponding to base.

### isindex

public final Element isindex
The element corresponding to isindex.

### head

public final Element head
The element corresponding to head.

### body

public final Element body
The element corresponding to body.

### applet

public final Element applet
The element corresponding to applet.

### param

public final Element param
The element corresponding to param.

### p

public final Element p
The element corresponding to p.

### title

public final Element title
The element corresponding to title.

### FILE_VERSION

public static final int FILE_VERSION
The version of a file

See Also:
  - Constant Field Values

## Constructor Details

### DTD

protected DTD(String name)
Creates a new DTD with the specified name.

Parameters:
  `name` - the name, as a `String` of the new DTD

## Method Details

### getName

public String getName()
Gets the name of the DTD.

Returns:
  the name of the DTD

### getEntity

public Entity getEntity(String name)
Gets an entity by name.

Parameters:
  `name` - the entity name
Returns:
  the `Entity` corresponding to the `name` `String`

### getEntity

public Entity getEntity(int ch)
Gets a character entity.

Parameters:
  `ch` - the character
Returns:
  the `Entity` corresponding to the `ch` character

### getElement

public Element getElement(String name)
Gets an element by name. A new element is created if the element doesn't exist.

Parameters:
  `name` - the requested `String`
Returns:
  the `Element` corresponding to `name`, which may be newly created

### getElement

public Element getElement(int index)
Gets an element by index.

Parameters:
  `index` - the requested index
Returns:
  the `Element` corresponding to `index`

### defineEntity

public Entity defineEntity(String name, int type, char[] data)
Defines an entity. If the `Entity` specified by `name`, `type`, and `data` exists, it is returned; otherwise a new `Entity` is created and is returned.

Parameters:
  `name` - the name of the `Entity` as a `String`
  `type` - the type of the `Entity`
  `data` - the `Entity`'s data
Returns:
  the `Entity` requested or a new `Entity` if not found

### defineElement

public Element defineElement(String name, int type, boolean omitStart, boolean omitEnd, ContentModel content, BitSet exclusions, BitSet inclusions, AttributeList atts)
Returns the `Element` which matches the specified parameters. If one doesn't exist, a new one is created and returned.

Parameters:
  `name` - the name of the `Element`
  `type` - the type of the `Element`
  `omitStart` - `true` if start should be omitted
  `omitEnd` - `true` if end should be omitted
  `content` - the `ContentModel`
  `exclusions` - the set of elements that must not occur inside the element
  `inclusions` - the set of elements that can occur inside the element
  `atts` - the `AttributeList` specifying the `Element`
Returns:
  the `Element` specified

### defineAttributes

public void defineAttributes(String name, AttributeList atts)
Defines attributes for an `Element`.

Parameters:
  `name` - the name of the `Element`
  `atts` - the `AttributeList` specifying the `Element`

### defEntity

public Entity defEntity(String name, int type, int ch)
Creates and returns a character `Entity`.

Parameters:
  `name` - the entity's name
  `type` - the entity's type
  `ch` - the entity's value (character)
Returns:
  the new character `Entity`

### defEntity

protected Entity defEntity(String name, int type, String str)
Creates and returns an `Entity`.

Parameters:
  `name` - the entity's name
  `type` - the entity's type
  `str` - the entity's data section
Returns:
  the new `Entity`

### defElement

protected Element defElement(String name, int type, boolean omitStart, boolean omitEnd, ContentModel content, String[] exclusions, String[] inclusions, AttributeList atts)
Creates and returns an `Element`.

Parameters:
  `name` - the element's name
  `type` - the element's type
  `omitStart` - `true` if the element needs no starting tag
  `omitEnd` - `true` if the element needs no closing tag
  `content` - the element's content
  `exclusions` - the elements that must be excluded from the content of the element
  `inclusions` - the elements that can be included as the content of the element
  `atts` - the attributes of the element
Returns:
  the new `Element`

### defAttributeList

protected AttributeList defAttributeList(String name, int type, int modifier, String value, String values, AttributeList atts)
Creates and returns an `AttributeList` responding to a new attribute.

Parameters:
  `name` - the attribute's name
  `type` - the attribute's type
  `modifier` - the attribute's modifier
  `value` - the default value of the attribute
  `values` - the allowed values for the attribute (multiple values could be separated by '|')
  `atts` - the previous attribute of the element; to be placed to `AttributeList.next`, creating a linked list
Returns:
  the new `AttributeList`

### defContentModel

protected ContentModel defContentModel(int type, Object obj, ContentModel next)
Creates and returns a new content model.

Parameters:
  `type` - the type of the new content model
  `obj` - the content of the content model
  `next` - pointer to the next content model
Returns:
  the new `ContentModel`

### toString

public String toString()
Returns a string representation of this DTD.

Overrides:
  `toString` in class `Object`
Returns:
  the string representation of this DTD

### putDTDHash

public static void putDTDHash(String name, DTD dtd)
Put a name and appropriate DTD to hashtable.

Parameters:
  `name` - the name of the DTD
  `dtd` - the DTD

### getDTD

public static DTD getDTD(String name) throws IOException
Returns a DTD with the specified `name`. If a DTD with that name doesn't exist, one is created and returned. Any uppercase characters in the name are converted to lowercase.

Parameters:
  `name` - the name of the DTD
Returns:
  the DTD which corresponds to `name`
Throws:
  `IOException` - if an I/O error occurs

### read

public void read(DataInputStream in) throws IOException
Recreates a DTD from an archived format.

Parameters:
  `in` - the `DataInputStream` to read from
Throws:
  `IOException` - if an I/O error occurs