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 protectedTDTDReader(ErrorReceiver errorReceiver, Options opts, InputSource _bindInfo)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidattributeDecl(String elementName, String attributeName, String attributeType, String[] enumeration, short attributeUse, String defaultValue)For each entry in an ATTLIST declaration, this event will be fired.voidchildElement(String elementName, short occurence)voidconnector(short connectorType)Connectors in one model group is guaranteed to be the same.protected CPropertyInfocreateAttribute(String elementName, String attributeName, String attributeType, String[] enums, short attributeUse, String defaultValue)voidendContentModel(String elementName, short contentModelType)receives notification that parsing of content model is finished.voidendDTD()Receive notification of the end of a DTD.voidendModelGroup(short occurence)protected voiderror(Locator loc, String prop, Object... args)voiderror(SAXParseException e)voidfatalError(SAXParseException e)static Modelparse(InputSource dtd, InputSource bindingInfo, ErrorReceiver errorReceiver, Options opts)Parses DTD grammar and a binding information into BGM.voidsetDocumentLocator(Locator loc)voidstartContentModel(String elementName, short contentModelType)receives notification that parsing of content model is beginning.voidstartDTD(InputEntity entity)Receive notification of the beginning of the DTD.voidstartModelGroup()voidwarning(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:DTDEventListenerReceive notification of the beginning of the DTD.- Specified by:
startDTDin interfaceDTDEventListener- Overrides:
startDTDin classDTDHandlerBase- Parameters:
entity- Current input entity.- Throws:
SAXException- See Also:
DTDEventListener.endDTD()
-
endDTD
public void endDTD() throws SAXExceptionDescription copied from interface:DTDEventListenerReceive notification of the end of a DTD. The parser will invoke this method only once.- Specified by:
endDTDin interfaceDTDEventListener- Overrides:
endDTDin 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:DTDEventListenerFor 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:
attributeDeclin interfaceDTDEventListener- Overrides:
attributeDeclin 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:DTDEventListenerreceives notification that parsing of content model is beginning.- Specified by:
startContentModelin interfaceDTDEventListener- Overrides:
startContentModelin classDTDHandlerBase- Parameters:
elementName- name of the element whose content model is going to be defined.contentModelType-DTDEventListener.CONTENT_MODEL_EMPTYthis element has EMPTY content model. This notification will be immediately followed by the corresponding endContentModel.DTDEventListener.CONTENT_MODEL_ANYthis element has ANY content model. This notification will be immediately followed by the corresponding endContentModel.DTDEventListener.CONTENT_MODEL_MIXEDthis element has mixed content model. #PCDATA will not be reported. each child element will be reported by mixedElement method.DTDEventListener.CONTENT_MODEL_CHILDRENthis 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:DTDEventListenerreceives notification that parsing of content model is finished.- Specified by:
endContentModelin interfaceDTDEventListener- Overrides:
endContentModelin classDTDHandlerBase- Throws:
SAXException
-
startModelGroup
public void startModelGroup() throws SAXException- Specified by:
startModelGroupin interfaceDTDEventListener- Overrides:
startModelGroupin classDTDHandlerBase- Throws:
SAXException
-
endModelGroup
public void endModelGroup(short occurence) throws SAXException- Specified by:
endModelGroupin interfaceDTDEventListener- Overrides:
endModelGroupin classDTDHandlerBase- Throws:
SAXException
-
connector
public void connector(short connectorType) throws SAXExceptionDescription copied from interface:DTDEventListenerConnectors in one model group is guaranteed to be the same.IOW, you'll never see an event sequence like (a|b,c)
- Specified by:
connectorin interfaceDTDEventListener- Overrides:
connectorin classDTDHandlerBase- Throws:
SAXException
-
childElement
public void childElement(String elementName, short occurence) throws SAXException
- Specified by:
childElementin interfaceDTDEventListener- Overrides:
childElementin classDTDHandlerBase- Throws:
SAXException
-
setDocumentLocator
public void setDocumentLocator(Locator loc)
- Specified by:
setDocumentLocatorin interfaceDTDEventListener- Overrides:
setDocumentLocatorin classDTDHandlerBase
-
error
public void error(SAXParseException e) throws SAXException
- Specified by:
errorin interfaceDTDEventListener- Overrides:
errorin classDTDHandlerBase- Throws:
SAXException
-
fatalError
public void fatalError(SAXParseException e) throws SAXException
- Specified by:
fatalErrorin interfaceDTDEventListener- Overrides:
fatalErrorin classDTDHandlerBase- Throws:
SAXException
-
warning
public void warning(SAXParseException e) throws SAXException
- Specified by:
warningin interfaceDTDEventListener- Overrides:
warningin classDTDHandlerBase- Throws:
SAXException
-
-