org.apache.xml.serialize
Class HTMLdtd

java.lang.Object
  |
  +--org.apache.xml.serialize.HTMLdtd

public final class HTMLdtd
extends java.lang.Object

Utility class for accessing information specific to HTML documents. The HTML DTD is expressed as three utility function groups. Two methods allow for checking whether an element requires an open tag on printing (isEmptyTag(java.lang.String)) or on parsing (isOptionalClosing(java.lang.String)).

Two other methods translate character references from name to value and from value to name. A small entities resource is loaded into memory the first time any of these methods is called for fast and efficient access.

Version:
$Revision: 317060 $ $Date: 2001-04-18 02:02:49 -0400 (Wed, 18 Apr 2001) $
Author:
Assaf Arkin

Field Summary
static java.lang.String HTMLPublicId
          Public identifier for HTML document type.
static java.lang.String HTMLSystemId
          System identifier for HTML document type.
static java.lang.String XHTMLPublicId
          Public identifier for XHTML document type.
static java.lang.String XHTMLSystemId
          System identifier for XHTML document type.
 
Constructor Summary
HTMLdtd()
           
 
Method Summary
static int charFromName(java.lang.String name)
          Returns the value of an HTML character reference by its name.
static java.lang.String fromChar(int value)
          Returns the name of an HTML character reference based on its character value.
static boolean isBoolean(java.lang.String tagName, java.lang.String attrName)
          Returns true if the specified attribute is a boolean and should be printed without the value.
static boolean isClosing(java.lang.String tagName, java.lang.String openTag)
          Returns true if the opening of one element (tagName) implies the closing of another open element (openTag).
static boolean isElementContent(java.lang.String tagName)
          Returns true if element is declared to have element content.
static boolean isEmptyTag(java.lang.String tagName)
          Returns true if element is declared to be empty.
static boolean isOnlyOpening(java.lang.String tagName)
          Returns true if element's closing tag is generally not printed.
static boolean isOptionalClosing(java.lang.String tagName)
          Returns true if element's closing tag is optional and need not exist.
static boolean isPreserveSpace(java.lang.String tagName)
          Returns true if element's textual contents preserves spaces.
static boolean isURI(java.lang.String tagName, java.lang.String attrName)
          Returns true if the specified attribute it a URI and should be escaped appropriately.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTMLPublicId

public static final java.lang.String HTMLPublicId
Public identifier for HTML document type.

HTMLSystemId

public static final java.lang.String HTMLSystemId
System identifier for HTML document type.

XHTMLPublicId

public static final java.lang.String XHTMLPublicId
Public identifier for XHTML document type.

XHTMLSystemId

public static final java.lang.String XHTMLSystemId
System identifier for XHTML document type.
Constructor Detail

HTMLdtd

public HTMLdtd()
Method Detail

isEmptyTag

public static boolean isEmptyTag(java.lang.String tagName)
Returns true if element is declared to be empty. HTML elements are defines as empty in the DTD, not by the document syntax.
Parameters:
tagName - The element tag name (upper case)
Returns:
True if element is empty

isElementContent

public static boolean isElementContent(java.lang.String tagName)
Returns true if element is declared to have element content. Whitespaces appearing inside element content will be ignored, other text will simply report an error.
Parameters:
tagName - The element tag name (upper case)
Returns:
True if element content

isPreserveSpace

public static boolean isPreserveSpace(java.lang.String tagName)
Returns true if element's textual contents preserves spaces. This only applies to PRE and TEXTAREA, all other HTML elements do not preserve space.
Parameters:
tagName - The element tag name (upper case)
Returns:
True if element's text content preserves spaces

isOptionalClosing

public static boolean isOptionalClosing(java.lang.String tagName)
Returns true if element's closing tag is optional and need not exist. An error will not be reported for such elements if they are not closed. For example, LI is most often not closed.
Parameters:
tagName - The element tag name (upper case)
Returns:
True if closing tag implied

isOnlyOpening

public static boolean isOnlyOpening(java.lang.String tagName)
Returns true if element's closing tag is generally not printed. For example, LI should not print the closing tag.
Parameters:
tagName - The element tag name (upper case)
Returns:
True if only opening tag should be printed

isClosing

public static boolean isClosing(java.lang.String tagName,
                                java.lang.String openTag)
Returns true if the opening of one element (tagName) implies the closing of another open element (openTag). For example, every opening LI will close the previously open LI, and every opening BODY will close the previously open HEAD.
Parameters:
tagName - The newly opened element
openTag - The already opened element
Returns:
True if closing tag closes opening tag

isURI

public static boolean isURI(java.lang.String tagName,
                            java.lang.String attrName)
Returns true if the specified attribute it a URI and should be escaped appropriately. In HTML URIs are escaped differently than normal attributes.
Parameters:
tagName - The element's tag name
attrName - The attribute's name

isBoolean

public static boolean isBoolean(java.lang.String tagName,
                                java.lang.String attrName)
Returns true if the specified attribute is a boolean and should be printed without the value. This applies to attributes that are true if they exist, such as selected (OPTION/INPUT).
Parameters:
tagName - The element's tag name
attrName - The attribute's name

charFromName

public static int charFromName(java.lang.String name)
Returns the value of an HTML character reference by its name. If the reference is not found or was not defined as a character reference, returns EOF (-1).
Parameters:
name - Name of character reference
Returns:
Character code or EOF (-1)

fromChar

public static java.lang.String fromChar(int value)
Returns the name of an HTML character reference based on its character value. Only valid for entities defined from character references. If no such character value was defined, return null.
Parameters:
value - Character value of entity
Returns:
Entity's name or null


Copyright © 1999-2001 Apache XML Project. All Rights Reserved.