public class DTDGrammar extends Object implements XMLDTDHandler, XMLDTDContentModelHandler, EntityState, Grammar
Modifier and Type | Class and Description |
---|---|
protected static class |
DTDGrammar.QNameHashtable
A simple Hashtable implementation that takes a tuple (String, String)
as the key and a int as value.
|
Modifier and Type | Field and Description |
---|---|
protected XMLAttributeDecl |
fAttributeDecl
Temporary Attribute decl.
|
protected int |
fCurrentAttributeIndex
Current attribute index.
|
protected int |
fCurrentElementIndex
Current element index.
|
protected XMLDTDContentModelSource |
fDTDContentModelSource |
protected XMLDTDSource |
fDTDSource |
protected XMLDTDDescription |
fGrammarDescription |
protected boolean |
fReadingExternalDTD
fReadingExternalDTD
|
static int |
TOP_LEVEL_SCOPE
Top level scope (-1).
|
CONDITIONAL_IGNORE, CONDITIONAL_INCLUDE
OCCURS_ONE_OR_MORE, OCCURS_ZERO_OR_MORE, OCCURS_ZERO_OR_ONE, SEPARATOR_CHOICE, SEPARATOR_SEQUENCE
Constructor and Description |
---|
DTDGrammar(SymbolTable symbolTable,
XMLDTDDescription desc)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
protected int |
addContentSpecNode(short nodeType,
int leftNodeIndex,
int rightNodeIndex)
Create an XMLContentSpec for a two child leaf
|
protected int |
addContentSpecNode(short nodeType,
String nodeValue)
Create an XMLContentSpec for a single non-leaf
|
protected void |
addContentSpecToElement(XMLElementDecl elementDecl)
Adds the content spec to the given element declaration.
|
protected int |
addUniqueLeafNode(String elementName)
create an XMLContentSpec for a leaf
|
void |
any(Augmentations augs)
A content model of ANY.
|
void |
attributeDecl(String elementName,
String attributeName,
String type,
String[] enumeration,
String defaultType,
XMLString defaultValue,
XMLString nonNormalizedDefaultValue,
Augmentations augs)
An attribute declaration.
|
void |
comment(XMLString text,
Augmentations augs)
A comment.
|
protected int |
createAttributeDecl() |
protected int |
createContentSpec() |
protected int |
createElementDecl() |
protected int |
createEntityDecl() |
protected int |
createNotationDecl() |
void |
element(String elementName,
Augmentations augs)
A referenced element in a mixed or children content model.
|
void |
elementDecl(String name,
String contentModel,
Augmentations augs)
An element declaration.
|
void |
empty(Augmentations augs)
A content model of EMPTY.
|
void |
endAttlist(Augmentations augs)
The end of an attribute list.
|
void |
endConditional(Augmentations augs)
The end of a conditional section.
|
void |
endContentModel(Augmentations augs)
The end of a content model.
|
void |
endDTD(Augmentations augs)
The end of the DTD.
|
void |
endExternalSubset(Augmentations augs)
The end of the DTD external subset.
|
void |
endGroup(Augmentations augs)
The end of a group for mixed or children content models.
|
void |
endParameterEntity(String name,
Augmentations augs)
This method notifies the end of an entity.
|
void |
externalEntityDecl(String name,
XMLResourceIdentifier identifier,
Augmentations augs)
An external entity declaration.
|
boolean |
getAttributeDecl(int attributeDeclIndex,
XMLAttributeDecl attributeDecl)
getAttributeDecl
|
int |
getAttributeDeclIndex(int elementDeclIndex,
String attributeDeclName) |
boolean |
getAttributeDeclIsExternal(int attributeDeclIndex)
Returns true if the specified attribute declaration is external.
|
boolean |
getContentSpec(int contentSpecIndex,
XMLContentSpec contentSpec)
getContentSpec
|
String |
getContentSpecAsString(int elementDeclIndex)
getContentSpecAsString
|
int |
getContentSpecIndex(int elementDeclIndex)
Returns the index to the content spec for the given element
declaration, or
-1 if the element declaration
index was invalid. |
short |
getContentSpecType(int elementIndex)
make separate function for getting contentSpecType of element.
|
XMLDTDContentModelSource |
getDTDContentModelSource() |
XMLDTDSource |
getDTDSource() |
protected ContentModelValidator |
getElementContentModelValidator(int elementDeclIndex)
getElementContentModelValidator
|
boolean |
getElementDecl(int elementDeclIndex,
XMLElementDecl elementDecl)
getElementDecl
|
int |
getElementDeclIndex(QName elementDeclQName)
Returns the element decl index.
|
int |
getElementDeclIndex(String elementDeclName)
getElementDeclIndex
|
boolean |
getElementDeclIsExternal(int elementDeclIndex)
Returns true if the specified element declaration is external.
|
boolean |
getEntityDecl(int entityDeclIndex,
XMLEntityDecl entityDecl)
getEntityDecl
|
int |
getEntityDeclIndex(String entityDeclName)
getEntityDeclIndex
|
int |
getFirstAttributeDeclIndex(int elementDeclIndex)
getFirstAttributeDeclIndex
|
int |
getFirstElementDeclIndex()
Returns the index of the first element declaration.
|
XMLGrammarDescription |
getGrammarDescription()
get the
XMLGrammarDescription associated with this
object |
int |
getNextAttributeDeclIndex(int attributeDeclIndex)
getNextAttributeDeclIndex
|
int |
getNextElementDeclIndex(int elementDeclIndex)
Returns the next index of the element declaration following the
specified element declaration.
|
boolean |
getNotationDecl(int notationDeclIndex,
XMLNotationDecl notationDecl)
getNotationDecl
|
int |
getNotationDeclIndex(String notationDeclName)
getNotationDeclIndex
|
SymbolTable |
getSymbolTable()
Returns the symbol table.
|
void |
ignoredCharacters(XMLString text,
Augmentations augs)
Characters within an IGNORE conditional section.
|
protected void |
initializeContentModelStack()
Initialize content model stack.
|
void |
internalEntityDecl(String name,
XMLString text,
XMLString nonNormalizedText,
Augmentations augs)
An internal entity declaration.
|
boolean |
isCDATAAttribute(QName elName,
QName atName)
Returns whether the given attribute is of type CDATA or not
|
boolean |
isEntityDeclared(String name)
Query method to check if entity with this name was declared.
|
boolean |
isEntityUnparsed(String name)
Query method to check if entity is unparsed.
|
boolean |
isNamespaceAware()
Returns true if this grammar is namespace aware.
|
void |
notationDecl(String name,
XMLResourceIdentifier identifier,
Augmentations augs)
A notation declaration
|
void |
occurrence(short occurrence,
Augmentations augs)
The occurrence count for a child in a children content model or
for the mixed content model group.
|
void |
pcdata(Augmentations augs)
The appearance of "#PCDATA" within a group signifying a
mixed content model.
|
void |
printAttributes(int elementDeclIndex) |
void |
printElements() |
void |
processingInstruction(String target,
XMLString data,
Augmentations augs)
A processing instruction.
|
protected void |
putElementNameMapping(QName name,
int scope,
int elementDeclIndex) |
void |
separator(short separator,
Augmentations augs)
The separator between choices or sequences of a mixed or children
content model.
|
protected void |
setAttributeDecl(int elementDeclIndex,
int attributeDeclIndex,
XMLAttributeDecl attributeDecl) |
protected void |
setContentSpec(int contentSpecIndex,
XMLContentSpec contentSpec) |
protected void |
setContentSpecIndex(int elementDeclIndex,
int contentSpecIndex) |
void |
setDTDContentModelSource(XMLDTDContentModelSource source) |
void |
setDTDSource(XMLDTDSource source) |
protected void |
setElementDecl(int elementDeclIndex,
XMLElementDecl elementDecl) |
protected void |
setEntityDecl(int entityDeclIndex,
XMLEntityDecl entityDecl) |
protected void |
setFirstAttributeDeclIndex(int elementDeclIndex,
int newFirstAttrIndex) |
protected void |
setNotationDecl(int notationDeclIndex,
XMLNotationDecl notationDecl) |
void |
startAttlist(String elementName,
Augmentations augs)
The start of an attribute list.
|
void |
startConditional(short type,
Augmentations augs)
The start of a conditional section.
|
void |
startContentModel(String elementName,
Augmentations augs)
The start of a content model.
|
void |
startDTD(XMLLocator locator,
Augmentations augs)
The start of the DTD.
|
void |
startExternalSubset(XMLResourceIdentifier identifier,
Augmentations augs)
The start of the DTD external subset.
|
void |
startGroup(Augmentations augs)
A start of either a mixed or children content model.
|
void |
startParameterEntity(String name,
XMLResourceIdentifier identifier,
String encoding,
Augmentations augs)
This method notifies of the start of an entity.
|
void |
textDecl(String version,
String encoding,
Augmentations augs)
Notifies of the presence of a TextDecl line in an entity.
|
void |
unparsedEntityDecl(String name,
XMLResourceIdentifier identifier,
String notation,
Augmentations augs)
An unparsed entity declaration.
|
public static final int TOP_LEVEL_SCOPE
protected XMLDTDSource fDTDSource
protected XMLDTDContentModelSource fDTDContentModelSource
protected int fCurrentElementIndex
protected int fCurrentAttributeIndex
protected boolean fReadingExternalDTD
protected XMLDTDDescription fGrammarDescription
protected final XMLAttributeDecl fAttributeDecl
public DTDGrammar(SymbolTable symbolTable, XMLDTDDescription desc)
public XMLGrammarDescription getGrammarDescription()
Grammar
XMLGrammarDescription
associated with this
objectgetGrammarDescription
in interface Grammar
public boolean getElementDeclIsExternal(int elementDeclIndex)
elementDeclIndex
- The element declaration index.public boolean getAttributeDeclIsExternal(int attributeDeclIndex)
attributeDeclIndex
- Attribute declaration index.public int getAttributeDeclIndex(int elementDeclIndex, String attributeDeclName)
public void startDTD(XMLLocator locator, Augmentations augs) throws XNIException
startDTD
in interface XMLDTDHandler
locator
- The document locator, or null if the document
location cannot be reported during the parsing of
the document DTD. However, it is strongly
recommended that a locator be supplied that can
at least report the base system identifier of the
DTD.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void startParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs) throws XNIException
Note: Since the DTD is an entity, the handler will be notified of the start of the DTD entity by calling the startParameterEntity method with the entity name "[dtd]" before calling the startDTD method.
startParameterEntity
in interface XMLDTDHandler
name
- The name of the parameter entity.identifier
- The resource identifier.encoding
- The auto-detected IANA encoding name of the entity
stream. This value will be null in those situations
where the entity encoding is not auto-detected (e.g.
internal parameter entities).augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augs) throws XNIException
startExternalSubset
in interface XMLDTDHandler
augs
- Additional information that may include infoset
augmentations.identifier
- The resource identifier.XNIException
- Thrown by handler to signal an error.public void endParameterEntity(String name, Augmentations augs) throws XNIException
Note: Since the DTD is an entity, the handler will be notified of the end of the DTD entity by calling the endEntity method with the entity name "[dtd]" after calling the endDTD method.
endParameterEntity
in interface XMLDTDHandler
name
- The name of the entity.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void endExternalSubset(Augmentations augs) throws XNIException
endExternalSubset
in interface XMLDTDHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void elementDecl(String name, String contentModel, Augmentations augs) throws XNIException
elementDecl
in interface XMLDTDHandler
name
- The name of the element.contentModel
- The element content model.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void attributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augs) throws XNIException
attributeDecl
in interface XMLDTDHandler
elementName
- The name of the element that this attribute
is associated with.attributeName
- The name of the attribute.type
- The attribute type. This value will be one of
the following: "CDATA", "ENTITY", "ENTITIES",
"ENUMERATION", "ID", "IDREF", "IDREFS",
"NMTOKEN", "NMTOKENS", or "NOTATION".enumeration
- If the type has the value "ENUMERATION", this
array holds the allowed attribute values;
otherwise, this array is null.defaultType
- The attribute default type. This value will be
one of the following: "#FIXED", "#IMPLIED",
"#REQUIRED", or null.defaultValue
- The attribute default value, or null if no
default value is specified.nonNormalizedDefaultValue
- The attribute default value with no normalization
performed, or null if no default value is specified.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void internalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augs) throws XNIException
internalEntityDecl
in interface XMLDTDHandler
name
- The name of the entity. Parameter entity names start with
'%', whereas the name of a general entity is just the
entity name.text
- The value of the entity.nonNormalizedText
- The non-normalized value of the entity. This
value contains the same sequence of characters that was in
the internal entity declaration, without any entity
references expanded.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augs) throws XNIException
externalEntityDecl
in interface XMLDTDHandler
name
- The name of the entity. Parameter entity names start
with '%', whereas the name of a general entity is just
the entity name.identifier
- An object containing all location information
pertinent to this external entity declaration.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void unparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augs) throws XNIException
unparsedEntityDecl
in interface XMLDTDHandler
name
- The name of the entity.identifier
- An object containing all location information
pertinent to this entity.notation
- The name of the notation.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augs) throws XNIException
notationDecl
in interface XMLDTDHandler
name
- The name of the notation.identifier
- An object containing all location information
pertinent to this notation.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void endDTD(Augmentations augs) throws XNIException
endDTD
in interface XMLDTDHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void setDTDSource(XMLDTDSource source)
setDTDSource
in interface XMLDTDHandler
public XMLDTDSource getDTDSource()
getDTDSource
in interface XMLDTDHandler
public void textDecl(String version, String encoding, Augmentations augs) throws XNIException
Note: This method is only called for external parameter entities referenced in the DTD.
textDecl
in interface XMLDTDHandler
version
- The XML version, or null if not specified.encoding
- The IANA encoding name of the entity.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void comment(XMLString text, Augmentations augs) throws XNIException
comment
in interface XMLDTDHandler
text
- The text in the comment.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by application to signal an error.public void processingInstruction(String target, XMLString data, Augmentations augs) throws XNIException
Typically, a processing instruction's data will contain a series of pseudo-attributes. These pseudo-attributes follow the form of element attributes but are not parsed or presented to the application as anything other than text. The application is responsible for parsing the data.
processingInstruction
in interface XMLDTDHandler
target
- The target.data
- The data or null if none specified.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void startAttlist(String elementName, Augmentations augs) throws XNIException
startAttlist
in interface XMLDTDHandler
elementName
- The name of the element that this attribute
list is associated with.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void endAttlist(Augmentations augs) throws XNIException
endAttlist
in interface XMLDTDHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void startConditional(short type, Augmentations augs) throws XNIException
startConditional
in interface XMLDTDHandler
type
- The type of the conditional section. This value will
either be CONDITIONAL_INCLUDE or CONDITIONAL_IGNORE.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.XMLDTDHandler.CONDITIONAL_INCLUDE
,
XMLDTDHandler.CONDITIONAL_IGNORE
public void ignoredCharacters(XMLString text, Augmentations augs) throws XNIException
ignoredCharacters
in interface XMLDTDHandler
text
- The ignored text.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void endConditional(Augmentations augs) throws XNIException
endConditional
in interface XMLDTDHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void setDTDContentModelSource(XMLDTDContentModelSource source)
setDTDContentModelSource
in interface XMLDTDContentModelHandler
public XMLDTDContentModelSource getDTDContentModelSource()
getDTDContentModelSource
in interface XMLDTDContentModelHandler
public void startContentModel(String elementName, Augmentations augs) throws XNIException
startContentModel
in interface XMLDTDContentModelHandler
elementName
- The name of the element.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void startGroup(Augmentations augs) throws XNIException
pcdata()
method. A children content model will
contain additional groups and/or elements.startGroup
in interface XMLDTDContentModelHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.any(org.apache.xerces.xni.Augmentations)
,
empty(org.apache.xerces.xni.Augmentations)
public void pcdata(Augmentations augs) throws XNIException
startGroup()
.pcdata
in interface XMLDTDContentModelHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.startGroup(org.apache.xerces.xni.Augmentations)
public void element(String elementName, Augmentations augs) throws XNIException
element
in interface XMLDTDContentModelHandler
elementName
- The name of the referenced element.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void separator(short separator, Augmentations augs) throws XNIException
separator
in interface XMLDTDContentModelHandler
separator
- The type of children separator.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.XMLDTDContentModelHandler.SEPARATOR_CHOICE
,
XMLDTDContentModelHandler.SEPARATOR_SEQUENCE
public void occurrence(short occurrence, Augmentations augs) throws XNIException
occurrence
in interface XMLDTDContentModelHandler
occurrence
- The occurrence count for the last element
or group.augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.XMLDTDContentModelHandler.OCCURS_ZERO_OR_ONE
,
XMLDTDContentModelHandler.OCCURS_ZERO_OR_MORE
,
XMLDTDContentModelHandler.OCCURS_ONE_OR_MORE
public void endGroup(Augmentations augs) throws XNIException
endGroup
in interface XMLDTDContentModelHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public void any(Augmentations augs) throws XNIException
any
in interface XMLDTDContentModelHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.empty(org.apache.xerces.xni.Augmentations)
,
startGroup(org.apache.xerces.xni.Augmentations)
public void empty(Augmentations augs) throws XNIException
empty
in interface XMLDTDContentModelHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.any(org.apache.xerces.xni.Augmentations)
,
startGroup(org.apache.xerces.xni.Augmentations)
public void endContentModel(Augmentations augs) throws XNIException
endContentModel
in interface XMLDTDContentModelHandler
augs
- Additional information that may include infoset
augmentations.XNIException
- Thrown by handler to signal an error.public boolean isNamespaceAware()
public SymbolTable getSymbolTable()
public int getFirstElementDeclIndex()
public int getNextElementDeclIndex(int elementDeclIndex)
elementDeclIndex
- The element declaration index.public int getElementDeclIndex(String elementDeclName)
elementDeclName
- public int getElementDeclIndex(QName elementDeclQName)
elementDeclQName
- qualilfied name of the elementpublic short getContentSpecType(int elementIndex)
public boolean getElementDecl(int elementDeclIndex, XMLElementDecl elementDecl)
elementDeclIndex
- elementDecl
- The values of this structure are set by this call.public int getFirstAttributeDeclIndex(int elementDeclIndex)
elementDeclIndex
- public int getNextAttributeDeclIndex(int attributeDeclIndex)
attributeDeclIndex
- public boolean getAttributeDecl(int attributeDeclIndex, XMLAttributeDecl attributeDecl)
attributeDeclIndex
- attributeDecl
- The values of this structure are set by this call.public boolean isCDATAAttribute(QName elName, QName atName)
elName
- The element name.atName
- The attribute name.public int getEntityDeclIndex(String entityDeclName)
entityDeclName
- public boolean getEntityDecl(int entityDeclIndex, XMLEntityDecl entityDecl)
entityDeclIndex
- entityDecl
- public int getNotationDeclIndex(String notationDeclName)
notationDeclName
- public boolean getNotationDecl(int notationDeclIndex, XMLNotationDecl notationDecl)
notationDeclIndex
- notationDecl
- public boolean getContentSpec(int contentSpecIndex, XMLContentSpec contentSpec)
contentSpecIndex
- contentSpec
- public int getContentSpecIndex(int elementDeclIndex)
-1
if the element declaration
index was invalid.public String getContentSpecAsString(int elementDeclIndex)
elementDeclIndex
- public void printElements()
public void printAttributes(int elementDeclIndex)
protected void addContentSpecToElement(XMLElementDecl elementDecl)
protected ContentModelValidator getElementContentModelValidator(int elementDeclIndex)
elementDeclIndex
- protected int createElementDecl()
protected void setElementDecl(int elementDeclIndex, XMLElementDecl elementDecl)
protected void putElementNameMapping(QName name, int scope, int elementDeclIndex)
protected void setFirstAttributeDeclIndex(int elementDeclIndex, int newFirstAttrIndex)
protected void setContentSpecIndex(int elementDeclIndex, int contentSpecIndex)
protected int createAttributeDecl()
protected void setAttributeDecl(int elementDeclIndex, int attributeDeclIndex, XMLAttributeDecl attributeDecl)
protected int createContentSpec()
protected void setContentSpec(int contentSpecIndex, XMLContentSpec contentSpec)
protected int createEntityDecl()
protected void setEntityDecl(int entityDeclIndex, XMLEntityDecl entityDecl)
protected int createNotationDecl()
protected void setNotationDecl(int notationDeclIndex, XMLNotationDecl notationDecl)
protected int addContentSpecNode(short nodeType, String nodeValue)
nodeType
- the type of XMLContentSpec to create - from XMLContentSpec.CONTENTSPECNODE_*nodeValue
- handle to an XMLContentSpecprotected int addUniqueLeafNode(String elementName)
elementName
- the name (Element) for the nodeprotected int addContentSpecNode(short nodeType, int leftNodeIndex, int rightNodeIndex)
nodeType
- the type of XMLContentSpec to create - from XMLContentSpec.CONTENTSPECNODE_*leftNodeIndex
- handle to an XMLContentSpecrightNodeIndex
- handle to an XMLContentSpecprotected void initializeContentModelStack()
public boolean isEntityDeclared(String name)
EntityState
isEntityDeclared
in interface EntityState
public boolean isEntityUnparsed(String name)
EntityState
isEntityUnparsed
in interface EntityState
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.