Package com.sun.tools.xjc.reader.dtd
Class TDTDReader
- java.lang.Object
-
- com.sun.xml.dtdparser.DTDHandlerBase
-
- com.sun.tools.xjc.reader.dtd.TDTDReader
-
- All Implemented Interfaces:
DTDEventListener
,EventListener
public class TDTDReader extends DTDHandlerBase
Parses DTD grammar along with binding information into BGM.- Author:
- Kohsuke KAWAGUCHI
-
-
Field Summary
-
Fields inherited from interface com.sun.xml.dtdparser.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
Constructors Modifier Constructor Description protected
TDTDReader(ErrorReceiver errorReceiver, Options opts, InputSource _bindInfo)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
attributeDecl(String elementName, String attributeName, String attributeType, String[] enumeration, short attributeUse, String defaultValue)
For each entry in an ATTLIST declaration, this event will be fired.void
childElement(String elementName, short occurence)
void
connector(short connectorType)
Connectors in one model group is guaranteed to be the same.protected CPropertyInfo
createAttribute(String elementName, String attributeName, String attributeType, String[] enums, short attributeUse, String defaultValue)
void
endContentModel(String elementName, short contentModelType)
receives notification that parsing of content model is finished.void
endDTD()
Receive notification of the end of a DTD.void
endModelGroup(short occurence)
protected void
error(Locator loc, String prop, Object... args)
void
error(SAXParseException e)
void
fatalError(SAXParseException e)
static Model
parse(InputSource dtd, InputSource bindingInfo, ErrorReceiver errorReceiver, Options opts)
Parses DTD grammar and a binding information into BGM.void
setDocumentLocator(Locator loc)
void
startContentModel(String elementName, short contentModelType)
receives notification that parsing of content model is beginning.void
startDTD(InputEntity entity)
Receive notification of the beginning of the DTD.void
startModelGroup()
void
warning(SAXParseException e)
-
Methods inherited from class com.sun.xml.dtdparser.DTDHandlerBase
characters, comment, endCDATA, externalGeneralEntityDecl, externalParameterEntityDecl, ignorableWhitespace, internalGeneralEntityDecl, internalParameterEntityDecl, mixedElement, notationDecl, processingInstruction, startCDATA, unparsedEntityDecl
-
-
-
-
Constructor Detail
-
TDTDReader
protected TDTDReader(ErrorReceiver errorReceiver, Options opts, InputSource _bindInfo) throws AbortException
- Throws:
AbortException
-
-
Method Detail
-
parse
public static Model parse(InputSource dtd, InputSource bindingInfo, ErrorReceiver errorReceiver, Options opts)
Parses DTD grammar and a binding information into BGM.This method is just a utility method that covers 80% of the use cases.
- Parameters:
bindingInfo
- binding information file, if any. Can be null.
-
startDTD
public void startDTD(InputEntity entity) throws SAXException
Description copied from interface:DTDEventListener
Receive notification of the beginning of the DTD.- Specified by:
startDTD
in interfaceDTDEventListener
- Overrides:
startDTD
in classDTDHandlerBase
- Parameters:
entity
- Current input entity.- Throws:
SAXException
- See Also:
DTDEventListener.endDTD()
-
endDTD
public void endDTD() throws 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 interfaceDTDEventListener
- Overrides:
endDTD
in classDTDHandlerBase
- Throws:
SAXException
- See Also:
DTDEventListener.startDTD(InputEntity)
-
attributeDecl
public void attributeDecl(String elementName, String attributeName, String attributeType, String[] enumeration, short attributeUse, String defaultValue) throws 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 interfaceDTDEventListener
- Overrides:
attributeDecl
in classDTDHandlerBase
- Throws:
SAXException
-
createAttribute
protected CPropertyInfo createAttribute(String elementName, String attributeName, String attributeType, String[] enums, short attributeUse, String defaultValue) throws SAXException
- Throws:
SAXException
-
startContentModel
public void startContentModel(String elementName, short contentModelType) throws SAXException
Description copied from interface:DTDEventListener
receives notification that parsing of content model is beginning.- Specified by:
startContentModel
in interfaceDTDEventListener
- Overrides:
startContentModel
in classDTDHandlerBase
- Parameters:
elementName
- name of the element whose content model is going to be defined.contentModelType
-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
- Throws:
SAXException
-
endContentModel
public void endContentModel(String elementName, short contentModelType) throws SAXException
Description copied from interface:DTDEventListener
receives notification that parsing of content model is finished.- Specified by:
endContentModel
in interfaceDTDEventListener
- Overrides:
endContentModel
in classDTDHandlerBase
- Throws:
SAXException
-
startModelGroup
public void startModelGroup() throws SAXException
- Specified by:
startModelGroup
in interfaceDTDEventListener
- Overrides:
startModelGroup
in classDTDHandlerBase
- Throws:
SAXException
-
endModelGroup
public void endModelGroup(short occurence) throws SAXException
- Specified by:
endModelGroup
in interfaceDTDEventListener
- Overrides:
endModelGroup
in classDTDHandlerBase
- Throws:
SAXException
-
connector
public void connector(short connectorType) throws 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 interfaceDTDEventListener
- Overrides:
connector
in classDTDHandlerBase
- Throws:
SAXException
-
childElement
public void childElement(String elementName, short occurence) throws SAXException
- Specified by:
childElement
in interfaceDTDEventListener
- Overrides:
childElement
in classDTDHandlerBase
- Throws:
SAXException
-
setDocumentLocator
public void setDocumentLocator(Locator loc)
- Specified by:
setDocumentLocator
in interfaceDTDEventListener
- Overrides:
setDocumentLocator
in classDTDHandlerBase
-
error
public void error(SAXParseException e) throws SAXException
- Specified by:
error
in interfaceDTDEventListener
- Overrides:
error
in classDTDHandlerBase
- Throws:
SAXException
-
fatalError
public void fatalError(SAXParseException e) throws SAXException
- Specified by:
fatalError
in interfaceDTDEventListener
- Overrides:
fatalError
in classDTDHandlerBase
- Throws:
SAXException
-
warning
public void warning(SAXParseException e) throws SAXException
- Specified by:
warning
in interfaceDTDEventListener
- Overrides:
warning
in classDTDHandlerBase
- Throws:
SAXException
-
-