public class TDTDReader extends DTDHandlerBase
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| Modifier | Constructor and Description |
|---|---|
protected |
TDTDReader(ErrorReceiver errorReceiver,
Options opts,
InputSource _bindInfo) |
| Modifier and Type | Method and 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) |
characters, comment, endCDATA, externalGeneralEntityDecl, externalParameterEntityDecl, ignorableWhitespace, internalGeneralEntityDecl, internalParameterEntityDecl, mixedElement, notationDecl, processingInstruction, startCDATA, unparsedEntityDeclprotected TDTDReader(ErrorReceiver errorReceiver, Options opts, InputSource _bindInfo) throws AbortException
AbortExceptionpublic static Model parse(InputSource dtd, InputSource bindingInfo, ErrorReceiver errorReceiver, Options opts)
This method is just a utility method that covers 80% of the use cases.
bindingInfo - binding information file, if any. Can be null.public void startDTD(InputEntity entity) throws SAXException
DTDEventListenerstartDTD in interface DTDEventListenerstartDTD in class DTDHandlerBaseentity - Current input entity.SAXExceptionDTDEventListener.endDTD()public void endDTD()
throws SAXException
DTDEventListenerendDTD in interface DTDEventListenerendDTD in class DTDHandlerBaseSAXExceptionDTDEventListener.startDTD(InputEntity)public void attributeDecl(String elementName, String attributeName, String attributeType, String[] enumeration, short attributeUse, String defaultValue) throws SAXException
DTDEventListener
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.
attributeDecl in interface DTDEventListenerattributeDecl in class DTDHandlerBaseSAXExceptionprotected CPropertyInfo createAttribute(String elementName, String attributeName, String attributeType, String[] enums, short attributeUse, String defaultValue) throws SAXException
SAXExceptionpublic void startContentModel(String elementName, short contentModelType) throws SAXException
DTDEventListenerstartContentModel in interface DTDEventListenerstartContentModel in class DTDHandlerBaseelementName - 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
SAXExceptionpublic void endContentModel(String elementName, short contentModelType) throws SAXException
DTDEventListenerendContentModel in interface DTDEventListenerendContentModel in class DTDHandlerBaseSAXExceptionpublic void startModelGroup()
throws SAXException
startModelGroup in interface DTDEventListenerstartModelGroup in class DTDHandlerBaseSAXExceptionpublic void endModelGroup(short occurence)
throws SAXException
endModelGroup in interface DTDEventListenerendModelGroup in class DTDHandlerBaseSAXExceptionpublic void connector(short connectorType)
throws SAXException
DTDEventListener
IOW, you'll never see an event sequence like (a|b,c)
connector in interface DTDEventListenerconnector in class DTDHandlerBaseSAXExceptionpublic void childElement(String elementName, short occurence) throws SAXException
childElement in interface DTDEventListenerchildElement in class DTDHandlerBaseSAXExceptionpublic void setDocumentLocator(Locator loc)
setDocumentLocator in interface DTDEventListenersetDocumentLocator in class DTDHandlerBasepublic void error(SAXParseException e) throws SAXException
error in interface DTDEventListenererror in class DTDHandlerBaseSAXExceptionpublic void fatalError(SAXParseException e) throws SAXException
fatalError in interface DTDEventListenerfatalError in class DTDHandlerBaseSAXExceptionpublic void warning(SAXParseException e) throws SAXException
warning in interface DTDEventListenerwarning in class DTDHandlerBaseSAXExceptionCopyright © 2017 Oracle Corporation. All rights reserved.