Class DTDAttribute

    • Field Detail

      • sTypes

        static final java.lang.String[] sTypes
        Array that has String constants matching above mentioned value types
      • mSpecialIndex

        protected final int mSpecialIndex
        Index number amongst "special" attributes (required ones, attributes that have default values), if attribute is one: -1 if not.
      • mCfgNsAware

        protected final boolean mCfgNsAware
      • mCfgXml11

        protected final boolean mCfgXml11
    • Constructor Detail

    • Method Detail

      • cloneWith

        public abstract DTDAttribute cloneWith​(int specIndex)
      • toString

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

        public final java.lang.String getDefaultValue​(org.codehaus.stax2.validation.ValidationContext ctxt,
                                                      org.codehaus.stax2.validation.XMLValidator dtd)
                                               throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getSpecialIndex

        public final int getSpecialIndex()
      • needsValidation

        public final boolean needsValidation()
      • isFixed

        public final boolean isFixed()
      • isRequired

        public final boolean isRequired()
      • isSpecial

        public final boolean isSpecial()
        Method used by the element to figure out if attribute needs "special" checking; basically if it's required, and/or has a default value. In both cases missing the attribute has specific consequences, either exception or addition of a default value.
      • hasDefaultValue

        public final boolean hasDefaultValue()
      • getValueType

        public int getValueType()
        Returns the value type of this attribute as an enumerated int to match type (CDATA, ...)

        Note:

      • getValueTypeString

        public java.lang.String getValueTypeString()
      • typeIsId

        public boolean typeIsId()
      • typeIsNotation

        public boolean typeIsNotation()
      • validate

        public abstract java.lang.String validate​(DTDValidatorBase v,
                                                  char[] cbuf,
                                                  int start,
                                                  int end,
                                                  boolean normalize)
                                           throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • validate

        public java.lang.String validate​(DTDValidatorBase v,
                                         java.lang.String value,
                                         boolean normalize)
                                  throws javax.xml.stream.XMLStreamException

        Note: the default implementation is not optimized, as it does a potentially unnecessary copy of the contents. It is expected that this method is seldom called (Woodstox never directly calls it; it only gets called for chained validators when one validator normalizes the value, and then following validators are passed a String, not char array)

        Throws:
        javax.xml.stream.XMLStreamException
      • validateDefault

        public abstract void validateDefault​(InputProblemReporter rep,
                                             boolean normalize)
                                      throws javax.xml.stream.XMLStreamException
        Method called by the DTDValidator to ask attribute to verify that the default it has (if any) is valid for such type.
        Throws:
        javax.xml.stream.XMLStreamException
      • normalize

        public java.lang.String normalize​(DTDValidatorBase v,
                                          char[] cbuf,
                                          int start,
                                          int end)
        Method called when no validation is to be done, but value is still to be normalized as much as it can. What this usually means is that all regular space (parser earlier on converts other white space to spaces, except for specific character entities; and these special cases are NOT to be normalized).

        The only exception is that CDATA will not do any normalization. But for now, let's implement basic functionality that CDTA instance will override

        Parameters:
        v - Validator that invoked normalization
        Returns:
        Normalized value as a String, if any changes were done; null if input was normalized
      • normalizeDefault

        public void normalizeDefault()
        Method called to do initial normalization of the default attribute value, without trying to verify its validity. Thus, it's called independent of whether we are fully validating the document.
      • validateDefaultName

        protected java.lang.String validateDefaultName​(InputProblemReporter rep,
                                                       boolean normalize)
                                                throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • validateDefaultNames

        protected java.lang.String validateDefaultNames​(InputProblemReporter rep,
                                                        boolean normalize)
                                                 throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • validateDefaultNmToken

        protected java.lang.String validateDefaultNmToken​(InputProblemReporter rep,
                                                          boolean normalize)
                                                   throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • validateEnumValue

        public java.lang.String validateEnumValue​(char[] cbuf,
                                                  int start,
                                                  int end,
                                                  boolean normalize,
                                                  WordResolver res)
        Method called by validation/normalization code for enumeration-valued attributes, to trim specified attribute value (full normalization not needed -- called for values that CAN NOT have spaces inside; such values can not be legal), and then check whether it is included in set of words (tokens) passed in. If actual value was included, will return the normalized word (as well as store shared String locally); otherwise will return null.
      • findEntityDecl

        protected EntityDecl findEntityDecl​(DTDValidatorBase v,
                                            char[] ch,
                                            int start,
                                            int len)
                                     throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • checkEntity

        protected void checkEntity​(InputProblemReporter rep,
                                   java.lang.String id,
                                   EntityDecl ent)
                            throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • reportInvalidChar

        protected java.lang.String reportInvalidChar​(DTDValidatorBase v,
                                                     char c,
                                                     java.lang.String msg)
                                              throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • reportValidationProblem

        protected java.lang.String reportValidationProblem​(DTDValidatorBase v,
                                                           java.lang.String msg)
                                                    throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • reportValidationProblem

        protected java.lang.String reportValidationProblem​(InputProblemReporter rep,
                                                           java.lang.String msg)
                                                    throws javax.xml.stream.XMLStreamException
        Method called during parsing of DTD schema, to report a problem. Note that unlike during actual validation, we have no option of just gracefully listing problems and ignoring them; an exception is always thrown.
        Throws:
        javax.xml.stream.XMLStreamException