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

    All Methods Static Methods Instance Methods Concrete Methods
    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 Detail

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