Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sun.msv.reader.dtd
Class DTDReader

    java.lang.Object
      com.sun.msv.reader.dtd.DTDReader

All Implemented Interfaces:
  DTDEventListener, java.util.EventListener

public class DTDReader
extends java.lang.Object
implements DTDEventListener

constructs `TREXGrammar` object that exactly matches to the parsed DTD.

Each element declaration will have its own ReferenceExp by the name of the element.

Note that this class does NOT extend GrammarReader, because DTD is not written in XML format.

Author:
  Kohsuke KAWAGUCHI

Field Summary
`static java.lang.String` | `ERR_UNDECLARED_PREFIX`
`static java.lang.String` | `ERR_UNDEFINED_ELEMENT`
`static java.lang.String` | `WRN_ATTEMPT_TO_USE_NAMESPACE`

Fields inherited from interface com.sun.msv.scanner.dtd.DTDEventListener
`CHOICE, CONTENT_MODEL_ANY, CONTENT_MODEL_CHILDREN, CONTENT_MODEL_EMPTY, CONTENT_MODEL_MIXED, OCCURENCE_ONCE, OCCURENCE_ONE_OR_MORE, OCCURENCE_ZERO_OR_MORE, OCCURENCE_ZERO_OR_ONE, SEQUENCE, USE_FIXED, USE_IMPLIED, USE_NORMAL, USE_REQUIRED`

Constructor Summary
`DTDReader(GrammarReaderController controller, ExpressionPool pool)`

Method Summary
`void` | `attributeDecl(java.lang.String elementName, java.lang.String attributeName, java.lang.String attributeType, java.lang.String[] enums, short attributeUse, java.lang.String defaultValue)` For each entry in an ATTLIST declaration, this event will be fired.
`void` | `characters(char[] ch, int start, int length)` Receive notification of character data.
`void` | `childElement(java.lang.String elementName, short occurence)`
`void` | `comment(java.lang.String n)` Receive notification that a comment has been read.
`void` | `connector(short type)` Connectors in one model group is guaranteed to be the same.
`Datatype` | `createDatatype(java.lang.String name)` Obtains a Datatype object from its name.
`void` | `endCDATA()` Receive notification that the CDATA section finished.
`void` | `endContentModel(java.lang.String elementName, short type)` receives notification that parsing of content model is finished.
`void` | `endDTD()` Receive notification of the end of a DTD.
`void` | `endModelGroup(short occurence)`
`void` | `error(org.xml.sax.SAXParseException e)`
`void` | `externalGeneralEntityDecl(java.lang.String n, java.lang.String p, java.lang.String s)` Receive notification of an external parsed general entity declaration event.
`void` | `externalParameterEntityDecl(java.lang.String n, java.lang.String p, java.lang.String s)` Receive notification of an external parameter entity declaration event.
`void` | `fatalError(org.xml.sax.SAXParseException e)`
`org.xml.sax.Locator` | `getDeclaredLocationOf(java.lang.Object o)`
`TREXGrammar` | `getResult()` Obtains the parsed grammar object.
`void` | `ignorableWhitespace(char[] ch, int start, int length)` Receive notification of ignorable whitespace in element content.
`void` | `internalGeneralEntityDecl(java.lang.String n, java.lang.String v)` Receive notification of a internal general entity declaration event.
`void` | `internalParameterEntityDecl(java.lang.String n, java.lang.String v)` Receive notification of a internal parameter entity declaration event.
`boolean` | `isUnparsedEntity(java.lang.String entityName)`
`void` | `mixedElement(java.lang.String elementName)` receives notification of child element of mixed content model.
`void` | `notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)` Receive notification of a Notation Declaration.
`static TREXGrammar` | `parse(org.xml.sax.InputSource source, GrammarReaderController controller)`
`static TREXGrammar` | `parse(org.xml.sax.InputSource source, GrammarReaderController controller, ExpressionPool pool)`
`void` | `processingInstruction(java.lang.String target, java.lang.String data)` Receive notification of a Processing Instruction.
`java.lang.String` | `resolveNamespacePrefix(java.lang.String prefix)`
`void` | `setDatatypeLibrary(DatatypeLibrary datatypeLibrary)`
`void` | `setDeclaredLocationOf(java.lang.Object o)`
`void` | `setDocumentLocator(org.xml.sax.Locator loc)`
`void` | `startCDATA()` Receive notification that a CDATA section is beginning.
`void` | `startContentModel(java.lang.String elementName, short type)` receives notification that parsing of content model is beginning.
`void` | `startDTD(InputEntity in)` Receive notification of the beginning of the DTD.
`void` | `startModelGroup()`
`void` | `unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)` Receive notification of an unparsed entity declaration.
`void` | `warning(org.xml.sax.SAXParseException e)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ERR_UNDEFINED_ELEMENT

    public static final java.lang.String ERR_UNDEFINED_ELEMENT

See Also:
  Constant Field Values

### WRN_ATTEMPT_TO_USE_NAMESPACE

    public static final java.lang.String WRN_ATTEMPT_TO_USE_NAMESPACE

See Also:
  Constant Field Values

### ERR_UNDECLARED_PREFIX

    public static final java.lang.String ERR_UNDECLARED_PREFIX

See Also:
  Constant Field Values

Constructor Detail

### DTDReader

    public DTDReader(GrammarReaderController controller,
                     ExpressionPool pool)

Method Detail

### parse

    public static TREXGrammar parse(org.xml.sax.InputSource source,
                                    GrammarReaderController controller)

### parse

    public static TREXGrammar parse(org.xml.sax.InputSource source,
                                    GrammarReaderController controller,
                                    ExpressionPool pool)

### setDatatypeLibrary

    public void setDatatypeLibrary(DatatypeLibrary datatypeLibrary)

### createDatatype

    public Datatype createDatatype(java.lang.String name)

  Obtains a Datatype object from its name.

### getResult

    public TREXGrammar getResult()

  Obtains the parsed grammar object.

  Returns:
    null if there was an error. Otherwise a parsed grammar object will be returned.

### setDocumentLocator

    public void setDocumentLocator(org.xml.sax.Locator loc)

  Specified by:
    `setDocumentLocator` in interface `DTDEventListener`

### startContentModel

    public void startContentModel(java.lang.String elementName,
                                  short type)

  Description copied from interface: `DTDEventListener`
  receives notification that parsing of content model is beginning.

  Specified by:
    `startContentModel` in interface `DTDEventListener`
  Parameters:
    `elementName` - name of the element whose content model is going to be defined.
    `type` - `DTDEventListener.CONTENT_MODEL_EMPTY` this element has EMPTY content model. This notification will be immediately followed by the corresponding endContentModel. `DTDEventListener.CONTENT_MODEL_ANY` this element has ANY content model. This notification will be immediately followed by the corresponding endContentModel. `DTDEventListener.CONTENT_MODEL_MIXED` this element has mixed content model. #PCDATA will not be reported. each child element will be reported by mixedElement method. `DTDEventListener.CONTENT_MODEL_CHILDREN` this elemen has child content model. The actual content model will be reported by childElement, startModelGroup, endModelGroup, and connector methods. Possible call sequences are: START := MODEL_GROUP MODEL_GROUP := startModelGroup TOKEN (connector TOKEN)* endModelGroup TOKEN := childElement | MODEL_GROUP

### endContentModel

    public void endContentModel(java.lang.String elementName,
                                short type)

  Description copied from interface: `DTDEventListener`
  receives notification that parsing of content model is finished.

  Specified by:
    `endContentModel` in interface `DTDEventListener`

### childElement

    public void childElement(java.lang.String elementName,
                             short occurence)

  Specified by:
    `childElement` in interface `DTDEventListener`

### mixedElement

    public void mixedElement(java.lang.String elementName)

  Description copied from interface: `DTDEventListener`
  receives notification of child element of mixed content model. this method is called for each child element.

  Specified by:
    `mixedElement` in interface `DTDEventListener`
  See Also:
    `DTDEventListener.startContentModel(String, short)`

### startModelGroup

    public void startModelGroup()

  Specified by:
    `startModelGroup` in interface `DTDEventListener`

### endModelGroup

    public void endModelGroup(short occurence)

  Specified by:
    `endModelGroup` in interface `DTDEventListener`

### connector

    public void connector(short type)
                   throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Connectors in one model group is guaranteed to be the same.

  IOW, you'll never see an event sequence like (a|b,c)

  Specified by:
    `connector` in interface `DTDEventListener`
  Returns:
    `DTDEventListener.CHOICE` or `DTDEventListener.SEQUENCE`.
  Throws:
    `org.xml.sax.SAXException`

### attributeDecl

    public void attributeDecl(java.lang.String elementName,
                              java.lang.String attributeName,
                              java.lang.String attributeType,
                              java.lang.String[] enums,
                              short attributeUse,
                              java.lang.String defaultValue)
                       throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  For each entry in an ATTLIST declaration, this event will be fired.

  DTD allows the same attributes to be declared more than once, and in that case the first one wins. I think this method will be only fired for the first one, but I need to check.

  Specified by:
    `attributeDecl` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`

### endDTD

    public void endDTD()
                throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of the end of a DTD. The parser will invoke this method only once.

  Specified by:
    `endDTD` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.startDTD(InputEntity)`

### fatalError

    public void fatalError(org.xml.sax.SAXParseException e)
                    throws org.xml.sax.SAXException

  Specified by:
    `fatalError` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`

### error

    public void error(org.xml.sax.SAXParseException e)
               throws org.xml.sax.SAXException

  Specified by:
    `error` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`

### warning

    public void warning(org.xml.sax.SAXParseException e)
                 throws org.xml.sax.SAXException

  Specified by:
    `warning` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`

### setDeclaredLocationOf

    public void setDeclaredLocationOf(java.lang.Object o)

### getDeclaredLocationOf

    public org.xml.sax.Locator getDeclaredLocationOf(java.lang.Object o)

### isUnparsedEntity

    public boolean isUnparsedEntity(java.lang.String entityName)

### resolveNamespacePrefix

    public java.lang.String resolveNamespacePrefix(java.lang.String prefix)

### processingInstruction

    public void processingInstruction(java.lang.String target,
                                      java.lang.String data)
                               throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of a Processing Instruction. Processing instructions contain information meaningful to the application.

  Specified by:
    `processingInstruction` in interface `DTDEventListener`
  Parameters:
    `target` - The target of the proceessing instruction which should have meaning to the application.
    `data` - The instruction itself which should contain valid XML characters.
  Throws:
    `org.xml.sax.SAXException`

### notationDecl

    public void notationDecl(java.lang.String name,
                             java.lang.String publicId,
                             java.lang.String systemId)
                      throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of a Notation Declaration. Notation declarations are used by elements and entities for identifying embedded non-XML data.

  Specified by:
    `notationDecl` in interface `DTDEventListener`
  Parameters:
    `name` - The notation name, referred to by entities and elements.
    `publicId` - The public identifier
    `systemId` - The system identifier
  Throws:
    `org.xml.sax.SAXException`

### unparsedEntityDecl

    public void unparsedEntityDecl(java.lang.String name,
                                   java.lang.String publicId,
                                   java.lang.String systemId,
                                   java.lang.String notationName)
                            throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of an unparsed entity declaration. Unparsed entities are non-XML data.

  Specified by:
    `unparsedEntityDecl` in interface `DTDEventListener`
  Parameters:
    `name` - The name of the unparsed entity.
    `publicId` - The public identifier
    `systemId` - The system identifier
    `notationName` - The associated notation
  Throws:
    `org.xml.sax.SAXException`

### externalGeneralEntityDecl

    public void externalGeneralEntityDecl(java.lang.String n,
                                          java.lang.String p,
                                          java.lang.String s)
                                   throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of an external parsed general entity declaration event.

  If a system identifier is present, and it is a relative URL, the parser will have resolved it fully before passing it through this method to a listener.

  Specified by:
    `externalGeneralEntityDecl` in interface `DTDEventListener`
  Parameters:
    `n` - The entity name.
    `p` - The entity's public identifier, or null if none was given.
    `s` - The entity's system identifier.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.unparsedEntityDecl(String, String, String, String)`

### internalGeneralEntityDecl

    public void internalGeneralEntityDecl(java.lang.String n,
                                          java.lang.String v)
                                   throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of a internal general entity declaration event.

  Specified by:
    `internalGeneralEntityDecl` in interface `DTDEventListener`
  Parameters:
    `n` - The internal general entity name.
    `v` - The value of the entity, which may include unexpanded entity references. Character references will have been expanded.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.externalGeneralEntityDecl(String, String, String)`

### externalParameterEntityDecl

    public void externalParameterEntityDecl(java.lang.String n,
                                            java.lang.String p,
                                            java.lang.String s)
                                     throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of an external parameter entity declaration event.

  If a system identifier is present, and it is a relative URL, the parser will have resolved it fully before passing it through this method to a listener.

  Specified by:
    `externalParameterEntityDecl` in interface `DTDEventListener`
  Parameters:
    `n` - The parameter entity name.
    `p` - The entity's public identifier, or null if none was given.
    `s` - The entity's system identifier.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.unparsedEntityDecl(String, String, String, String)`

### internalParameterEntityDecl

    public void internalParameterEntityDecl(java.lang.String n,
                                            java.lang.String v)
                                     throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of a internal parameter entity declaration event.

  Specified by:
    `internalParameterEntityDecl` in interface `DTDEventListener`
  Parameters:
    `n` - The internal parameter entity name.
    `v` - The value of the entity, which may include unexpanded entity references. Character references will have been expanded.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.externalParameterEntityDecl(String, String, String)`

### startDTD

    public void startDTD(InputEntity in)
                  throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of the beginning of the DTD.

  Specified by:
    `startDTD` in interface `DTDEventListener`
  Parameters:
    `in` - Current input entity.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.endDTD()`

### comment

    public void comment(java.lang.String n)
                 throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification that a comment has been read.

  Note that processing instructions are the mechanism designed to hold information for consumption by applications, not comments. XML systems may rely on applications being able to access information found in processing instructions; this is not true of comments, which are typically discarded.

  Specified by:
    `comment` in interface `DTDEventListener`
  Parameters:
    `n` - the text within the comment delimiters.
  Throws:
    `org.xml.sax.SAXException`

### characters

    public void characters(char[] ch,
                           int start,
                           int length)
                    throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of character data.

  The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

  The application must not attempt to read from the array outside of the specified range.

  Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).

  Specified by:
    `characters` in interface `DTDEventListener`
  Parameters:
    `ch` - The characters from the DTD.
    `start` - The start position in the array.
    `length` - The number of characters to read from the array.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.ignorableWhitespace(char[], int, int)`

### ignorableWhitespace

    public void ignorableWhitespace(char[] ch,
                                    int start,
                                    int length)
                             throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification of ignorable whitespace in element content.

  Validating Parsers must use this method to report each chunk of ignorable whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-validating parsers may also use this method if they are capable of parsing and using content models.

  SAX parsers may return all contiguous whitespace in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

  The application must not attempt to read from the array outside of the specified range.

  Specified by:
    `ignorableWhitespace` in interface `DTDEventListener`
  Parameters:
    `ch` - The characters from the DTD.
    `start` - The start position in the array.
    `length` - The number of characters to read from the array.
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.characters(char[], int, int)`

### startCDATA

    public void startCDATA()
                    throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification that a CDATA section is beginning. Data in a CDATA section is is reported through the appropriate event, either characters() or ignorableWhitespace.

  Specified by:
    `startCDATA` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.endCDATA()`

### endCDATA

    public void endCDATA()
                  throws org.xml.sax.SAXException

  Description copied from interface: `DTDEventListener`
  Receive notification that the CDATA section finished.

  Specified by:
    `endCDATA` in interface `DTDEventListener`
  Throws:
    `org.xml.sax.SAXException`
  See Also:
    `DTDEventListener.startCDATA()`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD