javax.swing.text.html.parser
Class DTD

java.lang.Object
  extended byjavax.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.

Author:
Arthur van Hoff
See Also:
Element, AttributeList, ContentModel, Parser

Field Summary
 Element applet
           
 Element base
           
 Element body
           
(package private) static Hashtable dtdHash
          The hashtable of DTDs.
 Hashtable elementHash
           
 Vector elements
           
 Hashtable entityHash
           
static int FILE_VERSION
           
 Element head
           
 Element html
           
 Element isindex
           
(package private)  Element link
           
 Element meta
           
 String name
           
 Element p
           
 Element param
           
 Element pcdata
           
(package private)  Element style
           
 Element 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
protected DTD(String name)
          Creates a new DTD with the specified name.
 
Method Summary
protected  AttributeList defAttributeList(String name, int type, int modifier, String value, String values, AttributeList atts)
          Creates and returns an AttributeList.
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)
          Returns the Element which matches the specified AttributeList.
 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.
(package private)  boolean elementExists(String name)
          Returns true if the element is part of the DTD, otherwise returns false.
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)
           
 void read(DataInputStream in)
          Recreates a DTD from an archived format.
private  AttributeList readAttributeList(DataInputStream in, String[] names)
           
private  ContentModel readContentModel(DataInputStream in, String[] names)
           
private  String[] readNameArray(DataInputStream in, String[] names)
           
 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

name

public String name

elements

public Vector elements

elementHash

public Hashtable elementHash

entityHash

public Hashtable entityHash

pcdata

public final Element pcdata

html

public final Element html

meta

public final Element meta

base

public final Element base

isindex

public final Element isindex

head

public final Element head

body

public final Element body

applet

public final Element applet

param

public final Element param

p

public final Element p

title

public final Element title

style

final Element style

link

final Element link

FILE_VERSION

public static int FILE_VERSION

dtdHash

static Hashtable dtdHash
The hashtable of DTDs.

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.

Returns:
the Entity corresponding to the name String

getEntity

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

Returns:
the Entity corresponding to the ch character

elementExists

boolean elementExists(String name)
Returns true if the element is part of the DTD, otherwise returns false.

Parameters:
name - the requested String
Returns:
true if name exists as part of the DTD, otherwise returns false

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 - trueomitEnd - true if end should be omitted
content - the ContentModel
atts - the AttributeList specifying the Element
Returns:
the Element specified

defineAttributes

public void defineAttributes(String name,
                             AttributeList atts)
Returns the Element which matches the specified AttributeList. If one doesn't exist, a new one is created and returned.

Parameters:
name - the name of the Element
atts - the AttributeList specifying the Element
Returns:
the Element specified

defEntity

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

Parameters:
name - the entity's name
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
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
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.

Parameters:
name - the attribute list's name
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
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)

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

read

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

Parameters:
in - the DataInputStream to read from
Throws:
IOException

readContentModel

private ContentModel readContentModel(DataInputStream in,
                                      String[] names)
                               throws IOException
Throws:
IOException

readNameArray

private String[] readNameArray(DataInputStream in,
                               String[] names)
                        throws IOException
Throws:
IOException

readAttributeList

private AttributeList readAttributeList(DataInputStream in,
                                        String[] names)
                                 throws IOException
Throws:
IOException