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
`Element` `applet` The element corresponding to applet.
`Element` `base` The element corresponding to base.
`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 int` `FILE_VERSION` The version of a file
`Element` `head` The element corresponding to head.
`Element` `html` The element corresponding to html.
`Element` `isindex` The element corresponding to isindex.
`Element` `meta` The element corresponding to meta.
`String` `name` the name of the DTD
`Element` `p` The element corresponding to p.
`Element` `param` The element corresponding to param.
`Element` `pcdata` The element corresponding to pcdata.
`Element` `title` The element corresponding to title.

### Fields inherited from 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
`protected` `DTD(String name)` Creates a new DTD with the specified name.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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 inherited from class java.lang.Object

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

### Field Detail

#### applet

    public final Element applet

The element corresponding to applet.

#### base

    public final Element base

The element corresponding to base.

#### body

    public final Element body

The element corresponding to body.

#### elementHash

    public Hashtable<String,Element> elementHash

The hash table contains the name of element and the corresponding element.

#### elements

    public Vector<Element> elements

The vector of elements

#### entityHash

    public Hashtable<Object,Entity> entityHash

The hash table contains an `Object` and the corresponding `Entity`

#### FILE_VERSION

    public static final int FILE_VERSION

The version of a file

See Also:
  Constant Field Values

#### head

    public final Element head

The element corresponding to head.

#### html

    public final Element html

The element corresponding to html.

#### isindex

    public final Element isindex

The element corresponding to isindex.

#### meta

    public final Element meta

The element corresponding to meta.

#### name

    public String name

the name of the DTD

#### p

    public final Element p

The element corresponding to p.

#### param

    public final Element param

The element corresponding to param.

#### pcdata

    public final Element pcdata

The element corresponding to pcdata.

#### title

    public final Element title

The element corresponding to title.

### Constructor Detail

#### 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 Detail

#### 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