Class DTDValidator

  • All Implemented Interfaces:
    NsDefaultProvider

    public class DTDValidator
    extends DTDValidatorBase
    Woodstox implementation of XMLValidator; the class that handles DTD-based validation.
    • Field Detail

      • mReportDuplicateErrors

        protected boolean mReportDuplicateErrors
        Determines if identical problems (definition of the same element, for example) should cause multiple error notifications or not: if true, will get one error per instance, if false, only the first one will get reported.
      • mIdMap

        protected ElementIdMap mIdMap
        Information about declared and referenced element ids (unique ids that attributes may defined, as defined by DTD)
      • mValidators

        protected StructValidator[] mValidators
        Stack of validators for open elements
      • mCurrSpecialAttrs

        protected java.util.BitSet mCurrSpecialAttrs
        Bitset used for keeping track of required and defaulted attributes for which values have been found.
      • mCurrHasAnyFixed

        boolean mCurrHasAnyFixed
      • mTmpSpecialAttrs

        java.util.BitSet mTmpSpecialAttrs
        Reusable lazily instantiated BitSet; needed to keep track of missing 'special' attributes (required ones, ones with default values)
    • Constructor Detail

      • DTDValidator

        public DTDValidator​(DTDSubset schema,
                            org.codehaus.stax2.validation.ValidationContext ctxt,
                            boolean hasNsDefaults,
                            java.util.Map<PrefixedName,​DTDElement> elemSpecs,
                            java.util.Map<java.lang.String,​EntityDecl> genEntities)
    • Method Detail

      • reallyValidating

        public final boolean reallyValidating()
        Specified by:
        reallyValidating in class DTDValidatorBase
        Returns:
        True for validator object that actually do validate content; false for objects that only use DTD type information.
      • validateElementStart

        public void validateElementStart​(java.lang.String localName,
                                         java.lang.String uri,
                                         java.lang.String prefix)
                                  throws javax.xml.stream.XMLStreamException
        Method called to update information about the newly encountered (start) element. At this point namespace information has been resolved, but no DTD validation has been done. Validator is to do these validations, including checking for attribute value (and existence) compatibility.
        Specified by:
        validateElementStart in class DTDValidatorBase
        Throws:
        javax.xml.stream.XMLStreamException
      • validateAttribute

        public java.lang.String validateAttribute​(java.lang.String localName,
                                                  java.lang.String uri,
                                                  java.lang.String prefix,
                                                  java.lang.String value)
                                           throws javax.xml.stream.XMLStreamException
        Specified by:
        validateAttribute in class DTDValidatorBase
        Throws:
        javax.xml.stream.XMLStreamException
      • validateAttribute

        public java.lang.String validateAttribute​(java.lang.String localName,
                                                  java.lang.String uri,
                                                  java.lang.String prefix,
                                                  char[] valueChars,
                                                  int valueStart,
                                                  int valueEnd)
                                           throws javax.xml.stream.XMLStreamException
        Specified by:
        validateAttribute in class DTDValidatorBase
        Throws:
        javax.xml.stream.XMLStreamException
      • validateElementAndAttributes

        public int validateElementAndAttributes()
                                         throws javax.xml.stream.XMLStreamException
        Specified by:
        validateElementAndAttributes in class DTDValidatorBase
        Throws:
        javax.xml.stream.XMLStreamException
      • validateElementEnd

        public int validateElementEnd​(java.lang.String localName,
                                      java.lang.String uri,
                                      java.lang.String prefix)
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        validateElementEnd in class DTDValidatorBase
        Returns:
        Validation state that should be effective for the parent element state
        Throws:
        javax.xml.stream.XMLStreamException
      • validationCompleted

        public void validationCompleted​(boolean eod)
                                 throws javax.xml.stream.XMLStreamException
        Specified by:
        validationCompleted in class DTDValidatorBase
        Throws:
        javax.xml.stream.XMLStreamException
      • checkIdRefs

        protected void checkIdRefs()
                            throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException