com.ctc.wstx.dtd
Class DTDElement

java.lang.Object
  extended by com.ctc.wstx.dtd.DTDElement

public final class DTDElement
extends java.lang.Object

Class that contains element definitions from DTD.

Notes about thread-safety: this class is not thread-safe, since it does not have to be, in general case. That is, the only instances that can be shared are external subset instances, and those are used in read-only manner (with the exception of temporary arrays constructed on-demand).


Method Summary
 DTDAttribute addAttribute(InputProblemReporter rep, NameKey attrName, int valueType, DefaultAttrValue defValue, WordResolver enumValues, boolean fullyValidate)
          Method called by DTD parser when it has read information about an attribute that belong to this element
 DTDAttribute addNsDefault(InputProblemReporter rep, NameKey attrName, int valueType, DefaultAttrValue defValue, boolean fullyValidate)
          Method called to add a definition of a namespace-declaration pseudo-attribute with a default value.
 boolean attrsNeedValidation()
           
static DTDElement createDefined(ReaderConfig cfg, javax.xml.stream.Location loc, NameKey name, StructValidator val, int allowedContent)
          Method called to create an actual element definition, matching an ELEMENT directive in a DTD subset.
static DTDElement createPlaceholder(ReaderConfig cfg, javax.xml.stream.Location loc, NameKey name)
          Method called to create a "placeholder" element definition, needed to contain attribute definitions.
 DTDElement define(javax.xml.stream.Location loc, StructValidator val, int allowedContent)
          Method called on placeholder element, to create a real instance that has all attribute definitions placeholder had (it'll always have at least one -- otherwise no placeholder was needed).
 void defineFrom(InputProblemReporter rep, DTDElement definedElem, boolean fullyValidate)
          Method called to "upgrade" a placeholder using a defined element, including adding attributes.
 int getAllowedContent()
           
 int getAllowedContentIfSpace()
          Specialized accessor used by non-validating but typing 'validator': essentially, used to figure out whether #PCDATA is allowed or not; and based on that, return one of 2 allowable text values (only space, or anything).
 java.util.HashMap getAttributes()
           
 java.lang.String getDisplayName()
           
 DTDAttribute getIdAttribute()
           
 javax.xml.stream.Location getLocation()
           
 NameKey getName()
           
 DTDAttribute getNotationAttribute()
           
protected  java.util.HashMap getNsDefaults()
           
 java.util.List getSpecialAttrs()
           
 int getSpecialCount()
           
 StructValidator getValidator()
           
 boolean hasAttrDefaultValues()
           
 boolean hasFixedAttrs()
           
 boolean hasNsDefaults()
           
 boolean isDefined()
           
 void mergeMissingAttributesFrom(InputProblemReporter rep, DTDElement other, boolean fullyValidate)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

createDefined

public static DTDElement createDefined(ReaderConfig cfg,
                                       javax.xml.stream.Location loc,
                                       NameKey name,
                                       StructValidator val,
                                       int allowedContent)
Method called to create an actual element definition, matching an ELEMENT directive in a DTD subset.


createPlaceholder

public static DTDElement createPlaceholder(ReaderConfig cfg,
                                           javax.xml.stream.Location loc,
                                           NameKey name)
Method called to create a "placeholder" element definition, needed to contain attribute definitions.


define

public DTDElement define(javax.xml.stream.Location loc,
                         StructValidator val,
                         int allowedContent)
Method called on placeholder element, to create a real instance that has all attribute definitions placeholder had (it'll always have at least one -- otherwise no placeholder was needed).


defineFrom

public void defineFrom(InputProblemReporter rep,
                       DTDElement definedElem,
                       boolean fullyValidate)
                throws WstxException
Method called to "upgrade" a placeholder using a defined element, including adding attributes.

Throws:
WstxException

addAttribute

public DTDAttribute addAttribute(InputProblemReporter rep,
                                 NameKey attrName,
                                 int valueType,
                                 DefaultAttrValue defValue,
                                 WordResolver enumValues,
                                 boolean fullyValidate)
                          throws WstxException
Method called by DTD parser when it has read information about an attribute that belong to this element

Returns:
Newly created attribute Object if the attribute definition was added (hadn't been declared yet); null if it's a duplicate, in which case original definition sticks.
Throws:
WstxException

addNsDefault

public DTDAttribute addNsDefault(InputProblemReporter rep,
                                 NameKey attrName,
                                 int valueType,
                                 DefaultAttrValue defValue,
                                 boolean fullyValidate)
                          throws WstxException
Method called to add a definition of a namespace-declaration pseudo-attribute with a default value.

Returns:
Attribute that acts as the placeholder, if the declaration was added; null to indicate it was a dup (there was an earlier declaration)
Throws:
WstxException

mergeMissingAttributesFrom

public void mergeMissingAttributesFrom(InputProblemReporter rep,
                                       DTDElement other,
                                       boolean fullyValidate)
                                throws WstxException
Throws:
WstxException

getName

public NameKey getName()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getDisplayName

public java.lang.String getDisplayName()

getLocation

public javax.xml.stream.Location getLocation()

isDefined

public boolean isDefined()

getAllowedContent

public int getAllowedContent()
Returns:
Constant that identifies what kind of nodes are in general allowed inside this element.

getAllowedContentIfSpace

public int getAllowedContentIfSpace()
Specialized accessor used by non-validating but typing 'validator': essentially, used to figure out whether #PCDATA is allowed or not; and based on that, return one of 2 allowable text values (only space, or anything). This is the relevant subset in non-validating modes, needed to properly type resulting character events.


getAttributes

public java.util.HashMap getAttributes()

getSpecialCount

public int getSpecialCount()

getSpecialAttrs

public java.util.List getSpecialAttrs()

attrsNeedValidation

public boolean attrsNeedValidation()
Returns:
True if at least one of the attributes has type other than CDATA; false if not

hasFixedAttrs

public boolean hasFixedAttrs()

hasAttrDefaultValues

public boolean hasAttrDefaultValues()

getIdAttribute

public DTDAttribute getIdAttribute()

getNotationAttribute

public DTDAttribute getNotationAttribute()

hasNsDefaults

public boolean hasNsDefaults()

getValidator

public StructValidator getValidator()

getNsDefaults

protected java.util.HashMap getNsDefaults()