Package com.ctc.wstx.dtd
Class DTDElement
java.lang.Object
com.ctc.wstx.dtd.DTDElement
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
Modifier and TypeMethodDescriptionaddAttribute(InputProblemReporter rep, PrefixedName 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 elementaddNsDefault(InputProblemReporter rep, PrefixedName attrName, int valueType, DefaultAttrValue defValue, boolean fullyValidate) Method called to add a definition of a namespace-declaration pseudo-attribute with a default value.booleanstatic DTDElementcreateDefined(ReaderConfig cfg, Location loc, PrefixedName name, StructValidator val, int allowedContent) Method called to create an actual element definition, matching an ELEMENT directive in a DTD subset.static DTDElementcreatePlaceholder(ReaderConfig cfg, Location loc, PrefixedName name) Method called to create a "placeholder" element definition, needed to contain attribute definitions.define(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).voiddefineFrom(InputProblemReporter rep, DTDElement definedElem, boolean fullyValidate) Method called to "upgrade" a placeholder using a defined element, including adding attributes.intintSpecialized 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).getName()protected HashMap<String,DTDAttribute> intbooleanbooleanbooleanbooleanvoidmergeMissingAttributesFrom(InputProblemReporter rep, DTDElement other, boolean fullyValidate) toString()
-
Method Details
-
createDefined
public static DTDElement createDefined(ReaderConfig cfg, Location loc, PrefixedName name, StructValidator val, int allowedContent) Method called to create an actual element definition, matching an ELEMENT directive in a DTD subset. -
createPlaceholder
Method called to create a "placeholder" element definition, needed to contain attribute definitions. -
define
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 XMLStreamException Method called to "upgrade" a placeholder using a defined element, including adding attributes.- Throws:
XMLStreamException
-
addAttribute
public DTDAttribute addAttribute(InputProblemReporter rep, PrefixedName attrName, int valueType, DefaultAttrValue defValue, WordResolver enumValues, boolean fullyValidate) throws XMLStreamException 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:
XMLStreamException
-
addNsDefault
public DTDAttribute addNsDefault(InputProblemReporter rep, PrefixedName attrName, int valueType, DefaultAttrValue defValue, boolean fullyValidate) throws XMLStreamException Method called to add a definition of a namespace-declaration pseudo-attribute with a default value.- Parameters:
rep- Reporter to use to report non-fatal problemsfullyValidate- Whether this is being invoked for actual DTD validation, or just the "typing non-validator"- 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:
XMLStreamException
-
mergeMissingAttributesFrom
public void mergeMissingAttributesFrom(InputProblemReporter rep, DTDElement other, boolean fullyValidate) throws XMLStreamException - Throws:
XMLStreamException
-
getName
-
toString
-
getDisplayName
-
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
-
getSpecialCount
public int getSpecialCount() -
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
-
getNotationAttribute
-
hasNsDefaults
public boolean hasNsDefaults() -
getValidator
-
getNsDefaults
-