private static void registerDefaultStringifiers() { if (!defaultsRegistered) { registerStringifier(new ElementStringifier()); registerStringifier(new ElementListStringifier()); registerStringifier(new ListListStringifier(20)); registerStringifier(new NonElementListStringifier(5, Integer.MAX_VALUE)); defaultsRegistered = true; } }
private List<PrefixedLine> postambleLines(final int linum, final int maxLinumWidth) { return extractLines(maxLinumWidth, linum, CONTEXT_LINES + linum > this.context.documentLineCount() ? this.context.documentLineCount() : linum + CONTEXT_LINES); }
public List<List<SchemaElement>> pathsToSchemaElement(final Function<SchemaElement, Boolean> pred) { return schemaTree().pathsToValue(true, pred); }
public ErrorHandler.HandledResult handle(ValidationError error) { final ErrorHandler.HandledResult result = error.type().handler().handle(this, error); if (result.isPossiblyMalformed() && !this.docWalker.valid()) { @SuppressWarnings("ThrowableResultOfMethodCallIgnored") final SAXParseException ex = this.docWalker.validationFailure(); final ErrorHandler.HandledResult validationResult = new ErrorHandler.HandledResult(ex.getLineNumber(), ex.getColumnNumber(), null); validationResult.addPrimaryMessage(I18N.Key.PASSTHRU, Util.stripPeriod(ex.getLocalizedMessage())); result.addSecondaryMessage(I18N.Key.MALFORMED_XML, Util.documentName(this.document)); result.addSecondaryResult(validationResult); } return result; }
public void print(ValidationError error) { final ErrorHandler.HandledResult res = this.context.handle(error); if (res != null) { final StringBuilder out = new StringBuilder() .append('\n') .append(divider(I18N.validationErrorIn(Util.documentName(this.docURL)))); formatResult(out, res); out.append(divider(1)) .append('\n'); this.printer.printlnErr(Util.withPrefixAfterNth(2, "|", out.toString())); } }
@Override public void endElement(String uri, String localName, String qName) throws SAXException { final Position pos = position(); stack.peek().value().endPosition(pos); storePosition(pos); stack.pop(); nsStack.pop(); }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { final String namespace = attributes.getValue("xmlns"); if (namespace != null) { nsStack.push(namespace); } else { nsStack.push(nsStack.peek()); } stack.push(stack.peek().addChild(new DocElement(qname(qName), attributes) .startPosition(lastPosition))); }
private List<PrefixedLine> extractLines(final int maxLinumWidth, final int start, final int end) { final List<PrefixedLine> ret = new ArrayList<>(); int linum = start; for (String line: this.context.extractLines(start, end)) { ret.add(new PrefixedLine(linumPrefix(linum, maxLinumWidth), line)); linum++; } return ret; }
public List<List<DocElement>> pathsToDocElement(final Function<DocElement, Boolean> pred) { return documentTree().pathsToValue(true, pred); }
public HandledResult addSecondaryMessage(final I18N.Key key, Object... args) { return addSecondaryMessage(new Message(key, args)); }
public HandledResult addPrimaryMessage(final I18N.Key key, Object... args) { return addPrimaryMessage(new Message(key, args)); }
@Override public void characters(char[] ch, int start, int length) throws SAXException { storePosition(position()); }
public XMLStreamValidationException(final String message, final ValidationError validationError, final Throwable nested) { super(message, validationError.location(), nested); this.validationError = validationError; }
private List<PrefixedLine> preambleLines(final int linum, final int maxLinumWidth) { return extractLines(maxLinumWidth, CONTEXT_LINES > linum ? 0 : linum - CONTEXT_LINES, linum); }
public Tree<SchemaElement> elements() { if (this.elements == null) { return new Tree<>(); } return this.elements; }
public SAXParseException validationFailure() { walk(); return this.validationFailure; }
public ErrorPrinter prefixProvider(final SchemaPathPrefixProvider prefixProvider) { this.context.prefixProvider(prefixProvider); return this; }
public ErrorPrinter(final URL document, final List<URL> schemas) throws IOException { this.context = new ValidationContext(document, schemas); this.docURL = document; }
public ErrorPrinter pathGate(final SchemaPathGate gate) { this.context.pathGate(gate); return this; }