Package com.sun.msv.reader.trex.ng
Class RestrictionChecker
- java.lang.Object
-
- com.sun.msv.reader.trex.ng.RestrictionChecker
-
public class RestrictionChecker extends java.lang.ObjectChecks RELAX NG contextual restrictions defined in the section 7.ExpressionWalker is used to walk the content model thoroughly. Depending on the current context, different walkers are used so that we can detect contextual restrictions properly.
For each ElementExp and AttributeExp, its name class is checked to detect the constraint set out in the section 7.1.6. Also, a set is used to avoid redundant checks.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classRestrictionChecker.DefaultCheckerThe base class of all other context-specific checker.private classRestrictionChecker.DuplicateAttributesCheckerprivate classRestrictionChecker.DuplicateElementsCheckerprotected classRestrictionChecker.DuplicateNameCheckerprivate classRestrictionChecker.ListChecker(package private) classRestrictionChecker.NameClassWalker
-
Field Summary
Fields Modifier and Type Field Description private RestrictionChecker.DuplicateAttributesCheckerattDupCheckerObject that checks duplicate attributes in a content model.private RestrictionChecker.DuplicateElementsCheckerelemDupCheckerObject that checks conflicting elements in interleave.private static java.lang.StringERR_ANYNAME_IN_ANYNAMEprivate static java.lang.StringERR_ANYNAME_IN_NSNAMEprivate static java.lang.StringERR_ATTRIBUTE_IN_ATTRIBUTEprivate static java.lang.StringERR_ATTRIBUTE_IN_EXCEPTprivate static java.lang.StringERR_ATTRIBUTE_IN_LISTprivate static java.lang.StringERR_ATTRIBUTE_IN_STARTprivate static java.lang.StringERR_DATA_IN_INTERLEAVE_IN_LISTprivate static java.lang.StringERR_DATA_IN_STARTprivate static java.lang.StringERR_DUPLICATE_ATTRIBUTESprivate static java.lang.StringERR_DUPLICATE_ELEMENTSprivate static java.lang.StringERR_ELEMENT_IN_ATTRIBUTEprivate static java.lang.StringERR_ELEMENT_IN_EXCEPTprivate static java.lang.StringERR_ELEMENT_IN_LISTprivate static java.lang.StringERR_EMPTY_IN_EXCEPTprivate static java.lang.StringERR_EMPTY_IN_STARTprivate static java.lang.StringERR_INTERLEAVE_IN_EXCEPTprivate static java.lang.StringERR_INTERLEAVE_IN_STARTprivate static java.lang.StringERR_LIST_IN_EXCEPTprivate static java.lang.StringERR_LIST_IN_LISTprivate static java.lang.StringERR_LIST_IN_STARTprivate static java.lang.StringERR_NSNAME_IN_NSNAMEprivate static java.lang.StringERR_ONEORMORE_IN_EXCEPTprivate static java.lang.StringERR_ONEORMORE_IN_STARTprivate static java.lang.StringERR_REPEATED_GROUPED_ATTRIBUTEprivate static java.lang.StringERR_SEQUENCE_IN_EXCEPTprivate static java.lang.StringERR_SEQUENCE_IN_STARTprivate static java.lang.StringERR_TEXT_IN_EXCEPTprivate static java.lang.StringERR_TEXT_IN_LISTprivate static java.lang.StringERR_TEXT_IN_STARTprivate static java.lang.StringERR_VALUE_IN_INTERLEAVE_IN_LISTprivate ExpressionerrorContextThe source location of this expression should be also reported in case of error.private NameClassVisitorinAnyNameClassUsed to visit children of AnyNameClassprivate ExpressionWalkerinAttributeUsed to visit children of attributes.private ExpressionWalkerinElementUsed to visit children of elements.private ExpressionWalkerinExceptUsed to visit children of the 'except' clause of data.private ExpressionWalkerinGroupInOneOrMoreInElementUsed to visit children of group/interleave in oneOrMore in elements.private ExpressionWalkerinInterleaveInListUsed to visit children of interleaves in lists.private ExpressionWalkerinListUsed to visit children of lists.private RestrictionChecker.NameClassWalkerinNameClassUsed to visit name classes.private NameClassVisitorinNsNameClassUsed to visit children of NamespaceNameClassprivate ExpressionWalkerinOneOrMoreInElementUsed to visit children of oneOrMore in elements.private ExpressionWalkerinStartUsed to visit the start pattern.private RELAXNGReaderreaderReader object to which errors are reported.private java.util.SetvisitedExpsVisited ElementExp/AttributeExps.
-
Constructor Summary
Constructors Constructor Description RestrictionChecker(RELAXNGReader _reader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheck()Traverses the grammar and performs the contextual check.voidcheckNameClass(NameClass nc)Checks the contextual restriction on a name class.private voidreportError(Expression exp, java.lang.String errorMsg)private voidreportError(Expression exp, java.lang.String errorMsg, java.lang.Object[] args)
-
-
-
Field Detail
-
reader
private final RELAXNGReader reader
Reader object to which errors are reported.
-
errorContext
private Expression errorContext
The source location of this expression should be also reported in case of error.
-
visitedExps
private final java.util.Set visitedExps
Visited ElementExp/AttributeExps.
-
attDupChecker
private RestrictionChecker.DuplicateAttributesChecker attDupChecker
Object that checks duplicate attributes in a content model.
-
elemDupChecker
private RestrictionChecker.DuplicateElementsChecker elemDupChecker
Object that checks conflicting elements in interleave.
-
inExcept
private final ExpressionWalker inExcept
Used to visit children of the 'except' clause of data.
-
inGroupInOneOrMoreInElement
private final ExpressionWalker inGroupInOneOrMoreInElement
Used to visit children of group/interleave in oneOrMore in elements.
-
inOneOrMoreInElement
private final ExpressionWalker inOneOrMoreInElement
Used to visit children of oneOrMore in elements.
-
inElement
private final ExpressionWalker inElement
Used to visit children of elements.
-
inAttribute
private final ExpressionWalker inAttribute
Used to visit children of attributes.
-
inInterleaveInList
private final ExpressionWalker inInterleaveInList
Used to visit children of interleaves in lists.
-
inList
private final ExpressionWalker inList
Used to visit children of lists.
-
inStart
private final ExpressionWalker inStart
Used to visit the start pattern.
-
inNameClass
private final RestrictionChecker.NameClassWalker inNameClass
Used to visit name classes.
-
inAnyNameClass
private final NameClassVisitor inAnyNameClass
Used to visit children of AnyNameClass
-
inNsNameClass
private final NameClassVisitor inNsNameClass
Used to visit children of NamespaceNameClass
-
ERR_ATTRIBUTE_IN_EXCEPT
private static final java.lang.String ERR_ATTRIBUTE_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_ELEMENT_IN_EXCEPT
private static final java.lang.String ERR_ELEMENT_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_LIST_IN_EXCEPT
private static final java.lang.String ERR_LIST_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_TEXT_IN_EXCEPT
private static final java.lang.String ERR_TEXT_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_EMPTY_IN_EXCEPT
private static final java.lang.String ERR_EMPTY_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_SEQUENCE_IN_EXCEPT
private static final java.lang.String ERR_SEQUENCE_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_INTERLEAVE_IN_EXCEPT
private static final java.lang.String ERR_INTERLEAVE_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_ONEORMORE_IN_EXCEPT
private static final java.lang.String ERR_ONEORMORE_IN_EXCEPT
- See Also:
- Constant Field Values
-
ERR_REPEATED_GROUPED_ATTRIBUTE
private static final java.lang.String ERR_REPEATED_GROUPED_ATTRIBUTE
- See Also:
- Constant Field Values
-
ERR_ELEMENT_IN_ATTRIBUTE
private static final java.lang.String ERR_ELEMENT_IN_ATTRIBUTE
- See Also:
- Constant Field Values
-
ERR_ATTRIBUTE_IN_ATTRIBUTE
private static final java.lang.String ERR_ATTRIBUTE_IN_ATTRIBUTE
- See Also:
- Constant Field Values
-
ERR_ATTRIBUTE_IN_LIST
private static final java.lang.String ERR_ATTRIBUTE_IN_LIST
- See Also:
- Constant Field Values
-
ERR_ELEMENT_IN_LIST
private static final java.lang.String ERR_ELEMENT_IN_LIST
- See Also:
- Constant Field Values
-
ERR_LIST_IN_LIST
private static final java.lang.String ERR_LIST_IN_LIST
- See Also:
- Constant Field Values
-
ERR_TEXT_IN_LIST
private static final java.lang.String ERR_TEXT_IN_LIST
- See Also:
- Constant Field Values
-
ERR_ATTRIBUTE_IN_START
private static final java.lang.String ERR_ATTRIBUTE_IN_START
- See Also:
- Constant Field Values
-
ERR_LIST_IN_START
private static final java.lang.String ERR_LIST_IN_START
- See Also:
- Constant Field Values
-
ERR_TEXT_IN_START
private static final java.lang.String ERR_TEXT_IN_START
- See Also:
- Constant Field Values
-
ERR_EMPTY_IN_START
private static final java.lang.String ERR_EMPTY_IN_START
- See Also:
- Constant Field Values
-
ERR_SEQUENCE_IN_START
private static final java.lang.String ERR_SEQUENCE_IN_START
- See Also:
- Constant Field Values
-
ERR_INTERLEAVE_IN_START
private static final java.lang.String ERR_INTERLEAVE_IN_START
- See Also:
- Constant Field Values
-
ERR_DATA_IN_START
private static final java.lang.String ERR_DATA_IN_START
- See Also:
- Constant Field Values
-
ERR_ONEORMORE_IN_START
private static final java.lang.String ERR_ONEORMORE_IN_START
- See Also:
- Constant Field Values
-
ERR_DATA_IN_INTERLEAVE_IN_LIST
private static final java.lang.String ERR_DATA_IN_INTERLEAVE_IN_LIST
- See Also:
- Constant Field Values
-
ERR_VALUE_IN_INTERLEAVE_IN_LIST
private static final java.lang.String ERR_VALUE_IN_INTERLEAVE_IN_LIST
- See Also:
- Constant Field Values
-
ERR_ANYNAME_IN_ANYNAME
private static final java.lang.String ERR_ANYNAME_IN_ANYNAME
- See Also:
- Constant Field Values
-
ERR_ANYNAME_IN_NSNAME
private static final java.lang.String ERR_ANYNAME_IN_NSNAME
- See Also:
- Constant Field Values
-
ERR_NSNAME_IN_NSNAME
private static final java.lang.String ERR_NSNAME_IN_NSNAME
- See Also:
- Constant Field Values
-
ERR_DUPLICATE_ATTRIBUTES
private static final java.lang.String ERR_DUPLICATE_ATTRIBUTES
- See Also:
- Constant Field Values
-
ERR_DUPLICATE_ELEMENTS
private static final java.lang.String ERR_DUPLICATE_ELEMENTS
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RestrictionChecker
public RestrictionChecker(RELAXNGReader _reader)
-
-
Method Detail
-
check
public void check()
Traverses the grammar and performs the contextual check.
-
reportError
private void reportError(Expression exp, java.lang.String errorMsg)
-
reportError
private void reportError(Expression exp, java.lang.String errorMsg, java.lang.Object[] args)
-
checkNameClass
public void checkNameClass(NameClass nc)
Checks the contextual restriction on a name class.If an error is found, it is reported through GrammarReader.
-
-