Class RELAXNGReader

  • All Implemented Interfaces:
    IDContextProvider2, org.relaxng.datatype.ValidationContext, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, org.xml.sax.XMLFilter, org.xml.sax.XMLReader
    Direct Known Subclasses:
    RELAXNGCompReader

    public class RELAXNGReader
    extends TREXBaseReader
    reads RELAX NG grammar from SAX2 and constructs abstract grammar model.
    • Field Detail

      • relaxNGSchema4Schema

        protected static org.iso_relax.verifier.Schema relaxNGSchema4Schema
        Schema for schema of RELAX NG.
      • refExpParseInfos

        private final java.util.Map refExpParseInfos
        Map from ReferenceExps to RefExpParseInfos.
      • currentNamedPattern

        protected RELAXNGReader.RefExpParseInfo currentNamedPattern
        Info about the current ReferenceExp object which is being defined. This field is maintained by DefineState.

        This field is set to null when there is an error, or the pattern being defined is being re-defined.

        This is a part of the process of the recursive self reference error detection.

      • directRefernce

        protected boolean directRefernce
        Flag to indicate whether we saw <element> or not. If we don't see any <element> between <define>/<start> and <ref>/<parentRef>, then that reference will go to currentNamedPattern.refs.

        This is a part of the process of the recursive self reference error detection.

      • RELAXNGNamespace

        public static final java.lang.String RELAXNGNamespace
        Namespace URI of RELAX NG
        See Also:
        Constant Field Values
      • datatypeLibraryFactory

        private org.relaxng.datatype.DatatypeLibraryFactory datatypeLibraryFactory
        DatatypeLibrary factory object.
      • restrictionChecker

        protected final RestrictionChecker restrictionChecker
        Contextual restriction checker.
      • datatypeLib

        private org.relaxng.datatype.DatatypeLibrary datatypeLib
        currently active datatype library. This field is maintained by this class. In case of an error, this field may be set to null after issuing an error. So care should be taken not to report the same error again.
      • datatypeLibURI

        protected java.lang.String datatypeLibURI
        the namespace URI of the currently active datatype library. The empty string indicates the built-in datatype library.
      • dtLibURIStack

        private final LightStack dtLibURIStack
      • ERR_INVALID_PARAMETERS

        public static final java.lang.String ERR_INVALID_PARAMETERS
        See Also:
        Constant Field Values
      • ERR_BAD_DATA_VALUE

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

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

        public static final java.lang.String ERR_UNDEFINED_DATATYPE_1
        See Also:
        Constant Field Values
      • ERR_INCONSISTENT_KEY_TYPE

        public static final java.lang.String ERR_INCONSISTENT_KEY_TYPE
        See Also:
        Constant Field Values
      • ERR_INCONSISTENT_COMBINE

        public static final java.lang.String ERR_INCONSISTENT_COMBINE
        See Also:
        Constant Field Values
      • ERR_REDEFINING_UNDEFINED

        public static final java.lang.String ERR_REDEFINING_UNDEFINED
        See Also:
        Constant Field Values
      • ERR_UNKNOWN_DATATYPE_VOCABULARY_1

        public static final java.lang.String ERR_UNKNOWN_DATATYPE_VOCABULARY_1
        See Also:
        Constant Field Values
      • ERR_MULTIPLE_EXCEPT

        public static final java.lang.String ERR_MULTIPLE_EXCEPT
        See Also:
        Constant Field Values
      • ERR_NOT_ABSOLUTE_URI

        public static final java.lang.String ERR_NOT_ABSOLUTE_URI
        See Also:
        Constant Field Values
      • ERR_INFOSET_URI_ATTRIBUTE

        public static final java.lang.String ERR_INFOSET_URI_ATTRIBUTE
        See Also:
        Constant Field Values
      • ERR_XMLNS_ATTRIBUTE

        public static final java.lang.String ERR_XMLNS_ATTRIBUTE
        See Also:
        Constant Field Values
      • ERR_NAKED_INFINITE_ATTRIBUTE_NAMECLASS

        public static final java.lang.String ERR_NAKED_INFINITE_ATTRIBUTE_NAMECLASS
        See Also:
        Constant Field Values
    • Method Detail

      • parse

        public static TREXGrammar parse​(java.lang.String grammarURL,
                                        javax.xml.parsers.SAXParserFactory factory,
                                        GrammarReaderController controller)
        loads RELAX NG pattern
      • parse

        public static TREXGrammar parse​(org.xml.sax.InputSource grammar,
                                        javax.xml.parsers.SAXParserFactory factory,
                                        GrammarReaderController controller)
        loads RELAX NG pattern
      • getRELAXNGSchema4Schema

        public static org.iso_relax.verifier.Schema getRELAXNGSchema4Schema()
      • localizeMessage

        protected java.lang.String localizeMessage​(java.lang.String propertyName,
                                                   java.lang.Object[] args)
        Description copied from class: GrammarReader
        formats localized message with arguments
        Overrides:
        localizeMessage in class TREXBaseReader
      • getDatatypeLibraryFactory

        public org.relaxng.datatype.DatatypeLibraryFactory getDatatypeLibraryFactory()
        Returns the datatypeLibraryFactory.
      • setDatatypeLibraryFactory

        public void setDatatypeLibraryFactory​(org.relaxng.datatype.DatatypeLibraryFactory datatypeLibraryFactory)
        Sets the datatypeLibraryFactory.
      • resolveDataType

        public org.relaxng.datatype.Datatype resolveDataType​(java.lang.String localName)
        obtains a named DataType object referenced by a local name.
      • resolveDataTypeLibrary

        public org.relaxng.datatype.DatatypeLibrary resolveDataTypeLibrary​(java.lang.String uri)
        obtains the DataTypeLibrary that represents the specified namespace URI. If the specified URI is undefined, then this method issues an error to the user and must return a dummy datatype library.
      • wrapUp

        public void wrapUp()
        Description copied from class: TREXBaseReader
        performs final wrap-up. This method is called from the RootState object, after the parsing is completed.

        This method has to be called after the run-away expression check is done.

        Overrides:
        wrapUp in class TREXBaseReader
      • getCurrentDatatypeLibrary

        public org.relaxng.datatype.DatatypeLibrary getCurrentDatatypeLibrary()
      • resolveNamespacePrefix

        public java.lang.String resolveNamespacePrefix​(java.lang.String prefix)
        Specified by:
        resolveNamespacePrefix in interface org.relaxng.datatype.ValidationContext
        Overrides:
        resolveNamespacePrefix in class GrammarReader
      • startDocument

        public void startDocument()
                           throws org.xml.sax.SAXException
        Specified by:
        startDocument in interface org.xml.sax.ContentHandler
        Overrides:
        startDocument in class org.xml.sax.helpers.XMLFilterImpl
        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 org.xml.sax.helpers.XMLFilterImpl
        Throws:
        org.xml.sax.SAXException
      • startElement

        public void startElement​(java.lang.String a,
                                 java.lang.String b,
                                 java.lang.String c,
                                 org.xml.sax.Attributes d)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class TREXBaseReader
        Throws:
        org.xml.sax.SAXException
      • endElement

        public void endElement​(java.lang.String a,
                               java.lang.String b,
                               java.lang.String c)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class TREXBaseReader
        Throws:
        org.xml.sax.SAXException