Search in sources :

Example 1 with OutOfContextElementException

use of com.thaiopensource.relaxng.exceptions.OutOfContextElementException in project validator by validator.

the class MessageEmitterAdapter method elaboration.

private void elaboration(Exception e) throws SAXException {
    if (!(e instanceof AbstractValidationException || e instanceof VnuBadAttrValueException || e instanceof VnuBadElementNameException || e instanceof DatatypeMismatchException)) {
        return;
    }
    if (e instanceof ImpossibleAttributeIgnoredException) {
        ImpossibleAttributeIgnoredException ex = (ImpossibleAttributeIgnoredException) e;
        Name elt = ex.getCurrentElement();
        elaborateElementSpecificAttributes(elt, ex.getAttributeName());
    } else if (e instanceof OnlyTextNotAllowedException) {
        OnlyTextNotAllowedException ex = (OnlyTextNotAllowedException) e;
        Name elt = ex.getCurrentElement();
        elaborateContentModel(elt);
    } else if (e instanceof OutOfContextElementException) {
        OutOfContextElementException ex = (OutOfContextElementException) e;
        Name parent = ex.getParent();
        Name child = ex.getCurrentElement();
        elaborateContentModelandContext(parent, child);
    } else if (e instanceof RequiredAttributesMissingException) {
        RequiredAttributesMissingException ex = (RequiredAttributesMissingException) e;
        Name elt = ex.getCurrentElement();
        elaborateElementSpecificAttributes(elt);
    } else if (e instanceof RequiredAttributesMissingOneOfException) {
        RequiredAttributesMissingOneOfException ex = (RequiredAttributesMissingOneOfException) e;
        Name elt = ex.getCurrentElement();
        elaborateElementSpecificAttributes(elt);
    } else if (e instanceof RequiredElementsMissingException) {
        RequiredElementsMissingException ex = (RequiredElementsMissingException) e;
        Name elt = ex.getParent();
        elaborateContentModel(elt);
    } else if (e instanceof RequiredElementsMissingOneOfException) {
        RequiredElementsMissingOneOfException ex = (RequiredElementsMissingOneOfException) e;
        Name elt = ex.getParent();
        elaborateContentModel(elt);
    } else if (e instanceof StringNotAllowedException) {
        StringNotAllowedException ex = (StringNotAllowedException) e;
        Name elt = ex.getCurrentElement();
        elaborateContentModel(elt);
    } else if (e instanceof TextNotAllowedException) {
        TextNotAllowedException ex = (TextNotAllowedException) e;
        Name elt = ex.getCurrentElement();
        elaborateContentModel(elt);
    } else if (e instanceof UnfinishedElementException) {
        UnfinishedElementException ex = (UnfinishedElementException) e;
        Name elt = ex.getCurrentElement();
        elaborateContentModel(elt);
    } else if (e instanceof UnfinishedElementOneOfException) {
        UnfinishedElementOneOfException ex = (UnfinishedElementOneOfException) e;
        Name elt = ex.getCurrentElement();
        elaborateContentModel(elt);
    } else if (e instanceof UnknownElementException) {
        UnknownElementException ex = (UnknownElementException) e;
        Name elt = ex.getParent();
        elaborateContentModel(elt);
    } else if (e instanceof BadAttributeValueException) {
        BadAttributeValueException ex = (BadAttributeValueException) e;
        Map<String, DatatypeException> map = ex.getExceptions();
        elaborateDatatypes(map);
    } else if (e instanceof VnuBadAttrValueException) {
        VnuBadAttrValueException ex = (VnuBadAttrValueException) e;
        Map<String, DatatypeException> map = ex.getExceptions();
        elaborateDatatypes(map);
    } else if (e instanceof VnuBadElementNameException) {
        VnuBadElementNameException ex = (VnuBadElementNameException) e;
        Map<String, DatatypeException> map = ex.getExceptions();
        elaborateDatatypes(map);
    } else if (e instanceof DatatypeMismatchException) {
        DatatypeMismatchException ex = (DatatypeMismatchException) e;
        Map<String, DatatypeException> map = ex.getExceptions();
        elaborateDatatypes(map);
    } else if (e instanceof StringNotAllowedException) {
        StringNotAllowedException ex = (StringNotAllowedException) e;
        Map<String, DatatypeException> map = ex.getExceptions();
        elaborateDatatypes(map);
    }
}
Also used : RequiredAttributesMissingException(com.thaiopensource.relaxng.exceptions.RequiredAttributesMissingException) RequiredAttributesMissingOneOfException(com.thaiopensource.relaxng.exceptions.RequiredAttributesMissingOneOfException) RequiredElementsMissingException(com.thaiopensource.relaxng.exceptions.RequiredElementsMissingException) RequiredElementsMissingOneOfException(com.thaiopensource.relaxng.exceptions.RequiredElementsMissingOneOfException) UnfinishedElementException(com.thaiopensource.relaxng.exceptions.UnfinishedElementException) OutOfContextElementException(com.thaiopensource.relaxng.exceptions.OutOfContextElementException) StringNotAllowedException(com.thaiopensource.relaxng.exceptions.StringNotAllowedException) UnfinishedElementOneOfException(com.thaiopensource.relaxng.exceptions.UnfinishedElementOneOfException) VnuBadElementNameException(nu.validator.checker.VnuBadElementNameException) DatatypeMismatchException(nu.validator.checker.DatatypeMismatchException) Name(com.thaiopensource.xml.util.Name) OnlyTextNotAllowedException(com.thaiopensource.relaxng.exceptions.OnlyTextNotAllowedException) Html5DatatypeException(nu.validator.datatype.Html5DatatypeException) DatatypeException(org.relaxng.datatype.DatatypeException) AbstractValidationException(com.thaiopensource.relaxng.exceptions.AbstractValidationException) ImpossibleAttributeIgnoredException(com.thaiopensource.relaxng.exceptions.ImpossibleAttributeIgnoredException) BadAttributeValueException(com.thaiopensource.relaxng.exceptions.BadAttributeValueException) VnuBadAttrValueException(nu.validator.checker.VnuBadAttrValueException) UnknownElementException(com.thaiopensource.relaxng.exceptions.UnknownElementException) OnlyTextNotAllowedException(com.thaiopensource.relaxng.exceptions.OnlyTextNotAllowedException) TextNotAllowedException(com.thaiopensource.relaxng.exceptions.TextNotAllowedException) Map(java.util.Map) HashMap(java.util.HashMap) TreeMap(java.util.TreeMap)

Example 2 with OutOfContextElementException

use of com.thaiopensource.relaxng.exceptions.OutOfContextElementException in project validator by validator.

the class MessageEmitterAdapter method rngMessageText.

private void rngMessageText(AbstractValidationException e) throws SAXException {
    MessageTextHandler messageTextHandler = emitter.startText();
    if (messageTextHandler != null) {
        if (e instanceof BadAttributeValueException) {
            BadAttributeValueException ex = (BadAttributeValueException) e;
            boolean isWarning = false;
            Map<String, DatatypeException> datatypeErrors = ex.getExceptions();
            for (Map.Entry<String, DatatypeException> entry : datatypeErrors.entrySet()) {
                DatatypeException dex = entry.getValue();
                if (dex instanceof Html5DatatypeException) {
                    Html5DatatypeException ex5 = (Html5DatatypeException) dex;
                    if (ex5.isWarning()) {
                        isWarning = true;
                    }
                }
            }
            if (isWarning) {
                messageTextString(messageTextHandler, POTENTIALLY_BAD_VALUE, false);
            } else {
                messageTextString(messageTextHandler, BAD_VALUE, false);
            }
            if (ex.getAttributeValue().length() < 200) {
                codeString(messageTextHandler, ex.getAttributeValue());
            }
            messageTextString(messageTextHandler, FOR, false);
            attribute(messageTextHandler, ex.getAttributeName(), ex.getCurrentElement(), false);
            messageTextString(messageTextHandler, ON, false);
            element(messageTextHandler, ex.getCurrentElement(), false);
            emitDatatypeErrors(messageTextHandler, ex.getExceptions());
        } else if (e instanceof ImpossibleAttributeIgnoredException) {
            ImpossibleAttributeIgnoredException ex = (ImpossibleAttributeIgnoredException) e;
            attribute(messageTextHandler, ex.getAttributeName(), ex.getCurrentElement(), true);
            messageTextString(messageTextHandler, NOT_ALLOWED_ON, false);
            element(messageTextHandler, ex.getCurrentElement(), false);
            messageTextString(messageTextHandler, AT_THIS_POINT, false);
        } else if (e instanceof OnlyTextNotAllowedException) {
            OnlyTextNotAllowedException ex = (OnlyTextNotAllowedException) e;
            element(messageTextHandler, ex.getCurrentElement(), true);
            messageTextString(messageTextHandler, ONLY_TEXT, false);
        } else if (e instanceof OutOfContextElementException) {
            OutOfContextElementException ex = (OutOfContextElementException) e;
            element(messageTextHandler, ex.getCurrentElement(), true);
            messageTextString(messageTextHandler, NOT_ALLOWED, false);
            if (ex.getParent() != null) {
                messageTextString(messageTextHandler, AS_CHILD_OF, false);
                element(messageTextHandler, ex.getParent(), false);
            }
            messageTextString(messageTextHandler, IN_THIS_CONTEXT_SUPPRESSING, false);
        } else if (e instanceof RequiredAttributesMissingOneOfException) {
            RequiredAttributesMissingOneOfException ex = (RequiredAttributesMissingOneOfException) e;
            element(messageTextHandler, ex.getCurrentElement(), true);
            messageTextString(messageTextHandler, REQUIRED_ATTRIBUTES_MISSING_ONE_OF, false);
            for (Iterator<String> iter = ex.getAttributeLocalNames().iterator(); iter.hasNext(); ) {
                codeString(messageTextHandler, iter.next());
                if (iter.hasNext()) {
                    messageTextString(messageTextHandler, COMMA, false);
                }
            }
            messageTextString(messageTextHandler, PERIOD, false);
        } else if (e instanceof RequiredAttributesMissingException) {
            RequiredAttributesMissingException ex = (RequiredAttributesMissingException) e;
            element(messageTextHandler, ex.getCurrentElement(), true);
            messageTextString(messageTextHandler, REQUIRED_ATTRIBUTES_MISSING, false);
            codeString(messageTextHandler, ex.getAttributeLocalName());
            messageTextString(messageTextHandler, PERIOD, false);
        } else if (e instanceof RequiredElementsMissingException) {
            RequiredElementsMissingException ex = (RequiredElementsMissingException) e;
            if (ex.getParent() == null) {
                messageTextString(messageTextHandler, REQUIRED_ELEMENTS_MISSING, false);
            } else {
                element(messageTextHandler, ex.getParent(), true);
                if (ex.getMissingElementName() == null) {
                    messageTextString(messageTextHandler, IS_MISSING_A_REQUIRED_CHILD, false);
                } else {
                    messageTextString(messageTextHandler, REQUIRED_CHILDREN_MISSING_FROM, false);
                    codeString(messageTextHandler, ex.getMissingElementName());
                }
                messageTextString(messageTextHandler, PERIOD, false);
            }
        } else if (e instanceof StringNotAllowedException) {
            StringNotAllowedException ex = (StringNotAllowedException) e;
            messageTextString(messageTextHandler, BAD_CHARACTER_CONTENT, false);
            codeString(messageTextHandler, ex.getValue());
            messageTextString(messageTextHandler, FOR, false);
            element(messageTextHandler, ex.getCurrentElement(), false);
            emitDatatypeErrors(messageTextHandler, ex.getExceptions());
        } else if (e instanceof TextNotAllowedException) {
            TextNotAllowedException ex = (TextNotAllowedException) e;
            messageTextString(messageTextHandler, TEXT_NOT_ALLOWED_IN, false);
            element(messageTextHandler, ex.getCurrentElement(), false);
            messageTextString(messageTextHandler, IN_THIS_CONTEXT, false);
        } else if (e instanceof UnfinishedElementException) {
            UnfinishedElementException ex = (UnfinishedElementException) e;
            element(messageTextHandler, ex.getCurrentElement(), true);
            if (ex.getMissingElementName() == null) {
                messageTextString(messageTextHandler, IS_MISSING_A_REQUIRED_CHILD, false);
            } else {
                messageTextString(messageTextHandler, REQUIRED_CHILDREN_MISSING_FROM, false);
                codeString(messageTextHandler, ex.getMissingElementName());
            }
            messageTextString(messageTextHandler, PERIOD, false);
        } else if (e instanceof UnfinishedElementOneOfException) {
            UnfinishedElementOneOfException ex = (UnfinishedElementOneOfException) e;
            element(messageTextHandler, ex.getCurrentElement(), true);
            messageTextString(messageTextHandler, REQUIRED_CHILDREN_MISSING_ONE_OF_FROM, false);
            for (Iterator<String> iter = ex.getMissingElementNames().iterator(); iter.hasNext(); ) {
                String missingElementName = iter.next();
                if (!("http://www.w3.org/1999/xhtml".equals(ex.getCurrentElement().getNamespaceUri()) && "frameset".equals(missingElementName))) {
                    codeString(messageTextHandler, missingElementName);
                    if (iter.hasNext()) {
                        messageTextString(messageTextHandler, COMMA, false);
                    }
                }
            }
            messageTextString(messageTextHandler, PERIOD, false);
        } else if (e instanceof RequiredElementsMissingOneOfException) {
            RequiredElementsMissingOneOfException ex = (RequiredElementsMissingOneOfException) e;
            element(messageTextHandler, ex.getParent(), true);
            messageTextString(messageTextHandler, REQUIRED_CHILDREN_MISSING_ONE_OF_FROM, false);
            for (Iterator<String> iter = ex.getMissingElementNames().iterator(); iter.hasNext(); ) {
                String missingElementName = iter.next();
                if (!("http://www.w3.org/1999/xhtml".equals(ex.getCurrentElement().getNamespaceUri()) && "frameset".equals(missingElementName))) {
                    codeString(messageTextHandler, missingElementName);
                    if (iter.hasNext()) {
                        messageTextString(messageTextHandler, COMMA, false);
                    }
                }
            }
            messageTextString(messageTextHandler, PERIOD, false);
        } else if (e instanceof UnknownElementException) {
            UnknownElementException ex = (UnknownElementException) e;
            messageTextString(messageTextHandler, UNKNOWN, false);
            element(messageTextHandler, ex.getCurrentElement(), false);
            messageTextString(messageTextHandler, NOT_ALLOWED, false);
            if (ex.getParent() != null) {
                messageTextString(messageTextHandler, AS_CHILD_OF, false);
                element(messageTextHandler, ex.getParent(), false);
            }
            messageTextString(messageTextHandler, PERIOD, false);
        }
    }
    emitter.endText();
}
Also used : Html5DatatypeException(nu.validator.datatype.Html5DatatypeException) RequiredAttributesMissingOneOfException(com.thaiopensource.relaxng.exceptions.RequiredAttributesMissingOneOfException) RequiredAttributesMissingException(com.thaiopensource.relaxng.exceptions.RequiredAttributesMissingException) RequiredElementsMissingException(com.thaiopensource.relaxng.exceptions.RequiredElementsMissingException) UnfinishedElementException(com.thaiopensource.relaxng.exceptions.UnfinishedElementException) RequiredElementsMissingOneOfException(com.thaiopensource.relaxng.exceptions.RequiredElementsMissingOneOfException) OutOfContextElementException(com.thaiopensource.relaxng.exceptions.OutOfContextElementException) StringNotAllowedException(com.thaiopensource.relaxng.exceptions.StringNotAllowedException) UnfinishedElementOneOfException(com.thaiopensource.relaxng.exceptions.UnfinishedElementOneOfException) Html5DatatypeException(nu.validator.datatype.Html5DatatypeException) DatatypeException(org.relaxng.datatype.DatatypeException) OnlyTextNotAllowedException(com.thaiopensource.relaxng.exceptions.OnlyTextNotAllowedException) ImpossibleAttributeIgnoredException(com.thaiopensource.relaxng.exceptions.ImpossibleAttributeIgnoredException) BadAttributeValueException(com.thaiopensource.relaxng.exceptions.BadAttributeValueException) Iterator(java.util.Iterator) UnknownElementException(com.thaiopensource.relaxng.exceptions.UnknownElementException) Map(java.util.Map) HashMap(java.util.HashMap) TreeMap(java.util.TreeMap) OnlyTextNotAllowedException(com.thaiopensource.relaxng.exceptions.OnlyTextNotAllowedException) TextNotAllowedException(com.thaiopensource.relaxng.exceptions.TextNotAllowedException)

Aggregations

BadAttributeValueException (com.thaiopensource.relaxng.exceptions.BadAttributeValueException)2 ImpossibleAttributeIgnoredException (com.thaiopensource.relaxng.exceptions.ImpossibleAttributeIgnoredException)2 OnlyTextNotAllowedException (com.thaiopensource.relaxng.exceptions.OnlyTextNotAllowedException)2 OutOfContextElementException (com.thaiopensource.relaxng.exceptions.OutOfContextElementException)2 RequiredAttributesMissingException (com.thaiopensource.relaxng.exceptions.RequiredAttributesMissingException)2 RequiredAttributesMissingOneOfException (com.thaiopensource.relaxng.exceptions.RequiredAttributesMissingOneOfException)2 RequiredElementsMissingException (com.thaiopensource.relaxng.exceptions.RequiredElementsMissingException)2 RequiredElementsMissingOneOfException (com.thaiopensource.relaxng.exceptions.RequiredElementsMissingOneOfException)2 StringNotAllowedException (com.thaiopensource.relaxng.exceptions.StringNotAllowedException)2 TextNotAllowedException (com.thaiopensource.relaxng.exceptions.TextNotAllowedException)2 UnfinishedElementException (com.thaiopensource.relaxng.exceptions.UnfinishedElementException)2 UnfinishedElementOneOfException (com.thaiopensource.relaxng.exceptions.UnfinishedElementOneOfException)2 UnknownElementException (com.thaiopensource.relaxng.exceptions.UnknownElementException)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 TreeMap (java.util.TreeMap)2 Html5DatatypeException (nu.validator.datatype.Html5DatatypeException)2 DatatypeException (org.relaxng.datatype.DatatypeException)2 AbstractValidationException (com.thaiopensource.relaxng.exceptions.AbstractValidationException)1 Name (com.thaiopensource.xml.util.Name)1