public boolean verify( XMLReader p, InputSource instance, boolean panicMode ) throws Exception { ReportErrorHandler reh = new ReportErrorHandler(); Verifier v = new Verifier( docDecl, reh ); v.setPanicMode(panicMode); p.setDTDHandler(v); p.setContentHandler(v); p.setErrorHandler(reh); p.parse( instance ); return v.isValid(); } }
public void endDocument() throws SAXException { // ID/IDREF check if (performIDcheck) { if (!ids.keySet().containsAll(idrefs)) { hadError = true; Iterator itr = idrefs.iterator(); while (itr.hasNext()) { Object idref = itr.next(); if (!ids.keySet().contains(idref)) onError(localizeMessage(ERR_UNSOLD_IDREF, new Object[] { idref }), null); } } if (duplicateIds != null) { Iterator itr = duplicateIds.iterator(); while (itr.hasNext()) { Object id = itr.next(); onError(localizeMessage(ERR_DUPLICATE_ID, new Object[] { id }), null); } } } isFinished = true; }
public void characters( char[] buf, int start, int len ) throws SAXException { super.characters(buf,start,len); int m = matchers.size(); for( int i=0; i<m; i++ ) ((Matcher)matchers.get(i)).characters(buf,start,len); }
public boolean verify( XMLReader p, InputSource instance, boolean panicMode ) throws Exception { ReportErrorHandler reh = new ReportErrorHandler(); Verifier v = new IDConstraintChecker( grammar, reh ); v.setPanicMode(panicMode); p.setDTDHandler(v); p.setContentHandler(v); p.setErrorHandler(reh); p.parse( instance ); return v.isValid(); } }
"\n-- startElement(" + qName + ")" + locator.getLineNumber() + ":" + locator.getColumnNumber()); verifyText(); // verify PCDATA first. onError( ref, localizeMessage(ERR_UNEXPECTED_STARTTAG, new Object[] { qName }), new ErrorInfo.BadTagName(sti)); onNextAcceptorReady(sti, next); feedAttribute(next, atts.getURI(i), atts.getLocalName(i), atts.getQName(i), atts.getValue(i)); onError( ref, localizeMessage(ERR_MISSING_ATTRIBUTE, new Object[] { qName }), new ErrorInfo.MissingAttribute(sti));
/** * Creates a new instance of ValidatingUnmarshaller. */ public static ValidatingUnmarshaller create( Grammar grammar, SAXUnmarshallerHandler _core, Locator locator ) { // create a VerifierFilter and configure it // so that error messages will be sent to the core, Verifier v = new Verifier( new REDocumentDeclaration(grammar), new ErrorHandlerAdaptor(_core,locator) ); v.setPanicMode( true ); return new ValidatingUnmarshaller( new VerifierFilter( v ), _core ); }
public VerifierFilter( DocumentDeclaration documentDecl, ErrorHandler errorHandler ) { this( new Verifier(documentDecl,errorHandler) ); }
"\n-- endElement(" + qName + ")" + locator.getLineNumber() + ":" + locator.getColumnNumber()); verifyText(); onError( errRef, localizeMessage(ERR_UNCOMPLETED_CONTENT, new Object[] { qName }), new ErrorInfo.IncompleteContentModel(qName, namespaceUri, localName)); onError(ref, localizeMessage(ERR_UNEXPECTED_ELEMENT, new Object[] { qName }), null); } else panicLevel = Math.max(panicLevel - 1, 0);
public void endChildIsland( String childURI, ElementDecl[] ruleSet ) throws SAXException { ElementExp[] exps = new ElementExp[ruleSet.length]; for( int i=0; i<ruleSet.length; i++ ) { exps[i] = (ElementExp)rule2exp.get(ruleSet[i]); if( exps[i]==null ) throw new Error(); // assertion failed. // it must be registered. } Expression [] epsilons = new Expression[exps.length]; for( int i=0; i<epsilons.length; i++ ) epsilons[i] = Expression.epsilon; // change current Acceptor to a new Acceptor. // this new Acceptor is made to accept those satisfied rules only. current = new ComplexAcceptor( (REDocumentDeclaration)docDecl, (ruleSet.length==0)?Expression.nullSet:Expression.epsilon, epsilons, exps ); // call endElement to let Verifier do the job. super.endElement( lastNamaespaceUri, lastLocalName, lastQName ); }
protected Datatype[] feedAttribute( Acceptor child, String uri, String localName, String qName, String value ) throws SAXException { Datatype[] result = super.feedAttribute( child, uri, localName, qName, value ); final int len = matchers.size(); // call matchers for attributes. for( int i=0; i<len; i++ ) { Matcher m = (Matcher)matchers.get(i); m.onAttribute( uri, localName, value, (result==null || result.length==0)?null:result[0] ); } return result; }
public void endDocument() throws SAXException { super.endDocument(); handler.endDocument(); }
public void startDocument() throws SAXException { // reset everything. // since Verifier maybe reused, initialization is better done here // rather than constructor. init(); // if Verifier is used without "divide&validate", // this method is called and the initial acceptor // is set by this method. // When Verifier is used in IslandVerifierImpl, // then initial acceptor is set at the constructor // and this method is not called. current = docDecl.createAcceptor(); }
/** * signals an error. * * This method can be overrided by the derived class to provide different behavior. */ protected ValidityViolation onError(StringRef ref, String defaultMsg, ErrorInfo ei) throws SAXException { if (ref == null) return onError(defaultMsg, ei); if (ref.str == null) return onError(defaultMsg, ei); else return onError(ref.str, ei); }
public void check( String propertyName ) { // if the specified property doesn't exist, this will throw an error System.out.println( Verifier.localizeMessage(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); } };
"\n-- startElement(" + qName + ")" + locator.getLineNumber() + ":" + locator.getColumnNumber()); verifyText(); // verify PCDATA first. onError( ref, localizeMessage(ERR_UNEXPECTED_STARTTAG, new Object[] { qName }), new ErrorInfo.BadTagName(sti)); onNextAcceptorReady(sti, next); feedAttribute(next, atts.getURI(i), atts.getLocalName(i), atts.getQName(i), atts.getValue(i)); onError( ref, localizeMessage(ERR_MISSING_ATTRIBUTE, new Object[] { qName }), new ErrorInfo.MissingAttribute(sti));
/** * Creates a new instance of ValidatingUnmarshaller. */ public static ValidatingUnmarshaller create( Grammar grammar, SAXUnmarshallerHandler _core, Locator locator ) { // create a VerifierFilter and configure it // so that error messages will be sent to the core, Verifier v = new Verifier( new REDocumentDeclaration(grammar), new ErrorHandlerAdaptor(_core,locator) ); v.setPanicMode( true ); return new ValidatingUnmarshaller( new VerifierFilter( v ), _core ); }
public VerifierFilter( DocumentDeclaration documentDecl, ErrorHandler errorHandler ) { this( new Verifier(documentDecl,errorHandler) ); }
public boolean verify( XMLReader p, InputSource instance, boolean panicMode ) throws Exception { ReportErrorHandler reh = new ReportErrorHandler(); Verifier v = new IDConstraintChecker( grammar, reh ); v.setPanicMode(panicMode); p.setDTDHandler(v); p.setContentHandler(v); p.setErrorHandler(reh); p.parse( instance ); return v.isValid(); } }
"\n-- endElement(" + qName + ")" + locator.getLineNumber() + ":" + locator.getColumnNumber()); verifyText(); onError( errRef, localizeMessage(ERR_UNCOMPLETED_CONTENT, new Object[] { qName }), new ErrorInfo.IncompleteContentModel(qName, namespaceUri, localName)); onError(ref, localizeMessage(ERR_UNEXPECTED_ELEMENT, new Object[] { qName }), null); } else panicLevel = Math.max(panicLevel - 1, 0);