Class IDConstraintChecker

  • All Implemented Interfaces:
    IDContextProvider2, IVerifier, org.iso_relax.verifier.VerifierHandler, org.relaxng.datatype.ValidationContext, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler

    public class IDConstraintChecker
    extends Verifier
    Verifier with XML Schema-related enforcement.

    This class can be used in the same way as Verifier. This class also checks XML Schema's identity constraint.

    • Field Detail

      • grammar

        protected final XMLSchemaGrammar grammar
        the grammar object against which we are validating.
      • matchers

        protected final java.util.Vector matchers
        active mathcers.
      • keyValues

        private final java.util.Map keyValues
        a map from SelectorMatcher to set of KeyValues. One SelectorMatcher correponds to one scope of the identity constraint.
      • referenceScope

        private final java.util.Map referenceScope
        a map from keyref SelectorMatcher to key/unique SelectorMatcher. Given a keyref scope, this map stores which key scope should it refer to.
      • activeScopes

        private final java.util.Map activeScopes
        a map from IdentityConstraint to a LightStack of SelectorMatcher. Each stack top keeps the currently active scope for the given IdentityConstraint.
      • ERR_UNMATCHED_KEY_FIELD

        public static final java.lang.String ERR_UNMATCHED_KEY_FIELD
        See Also:
        Constant Field Values
      • ERR_NOT_UNIQUE_DIAG

        public static final java.lang.String ERR_NOT_UNIQUE_DIAG
        See Also:
        Constant Field Values
      • ERR_DOUBLE_MATCH

        public static final java.lang.String ERR_DOUBLE_MATCH
        See Also:
        Constant Field Values
      • ERR_UNDEFINED_KEY

        public static final java.lang.String ERR_UNDEFINED_KEY
        See Also:
        Constant Field Values
    • Constructor Detail

      • IDConstraintChecker

        public IDConstraintChecker​(XMLSchemaGrammar grammar,
                                   org.xml.sax.ErrorHandler errorHandler)
    • Method Detail

      • add

        protected void add​(Matcher matcher)
      • remove

        protected void remove​(Matcher matcher)
      • addKeyValue

        protected boolean addKeyValue​(SelectorMatcher scope,
                                      KeyValue value)
        adds a new KeyValue to the value set.
        Returns:
        true if this is a new value.
      • getKeyValues

        protected KeyValue[] getKeyValues​(SelectorMatcher scope)
        gets the all KeyValues that were added within the specified scope.
      • startDocument

        public void startDocument()
                           throws org.xml.sax.SAXException
        Specified by:
        startDocument in interface org.xml.sax.ContentHandler
        Overrides:
        startDocument in class Verifier
        Throws:
        org.xml.sax.SAXException
      • endDocument

        public void endDocument()
                         throws org.xml.sax.SAXException
        Specified by:
        endDocument in interface org.xml.sax.ContentHandler
        Overrides:
        endDocument in class Verifier
        Throws:
        org.xml.sax.SAXException
      • onNextAcceptorReady

        protected void onNextAcceptorReady​(StartTagInfo sti,
                                           Acceptor next)
                                    throws org.xml.sax.SAXException
        Description copied from class: Verifier
        this method is called from the startElement method after the tag name is processed and the child acceptor is created.

        This method is called before the attributes are consumed.

        derived class can use this method to do something useful.

        Overrides:
        onNextAcceptorReady in class Verifier
        Throws:
        org.xml.sax.SAXException
      • feedAttribute

        protected org.relaxng.datatype.Datatype[] feedAttribute​(Acceptor child,
                                                                java.lang.String uri,
                                                                java.lang.String localName,
                                                                java.lang.String qName,
                                                                java.lang.String value)
                                                         throws org.xml.sax.SAXException
        Overrides:
        feedAttribute in class Verifier
        Throws:
        org.xml.sax.SAXException
      • characters

        public void characters​(char[] buf,
                               int start,
                               int len)
                        throws org.xml.sax.SAXException
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class Verifier
        Throws:
        org.xml.sax.SAXException
      • endElement

        public void endElement​(java.lang.String namespaceUri,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class Verifier
        Throws:
        org.xml.sax.SAXException
      • reportError

        protected void reportError​(ErrorInfo ei,
                                   java.lang.String propKey,
                                   java.lang.Object[] args)
                            throws org.xml.sax.SAXException
        reports an error.
        Throws:
        org.xml.sax.SAXException
      • reportError

        protected void reportError​(org.xml.sax.Locator loc,
                                   ErrorInfo ei,
                                   java.lang.String propKey,
                                   java.lang.Object[] args)
                            throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • localizeMessage

        public static java.lang.String localizeMessage​(java.lang.String propertyName,
                                                       java.lang.Object arg)
      • localizeMessage

        public static java.lang.String localizeMessage​(java.lang.String propertyName,
                                                       java.lang.Object[] args)