类org.xml.sax.helpers.XMLFilterImpl源码实例Demo

下面列出了怎么用org.xml.sax.helpers.XMLFilterImpl的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: jdk1.8-source-analysis   文件: JAXBSource.java
public void parse() throws SAXException {
    // parses a content object by using the given marshaller
    // SAX events will be sent to the repeater, and the repeater
    // will further forward it to an appropriate component.
    try {
        marshaller.marshal( contentObject, (XMLFilterImpl)repeater );
    } catch( JAXBException e ) {
        // wrap it to a SAXException
        SAXParseException se =
            new SAXParseException( e.getMessage(),
                null, null, -1, -1, e );

        // if the consumer sets an error handler, it is our responsibility
        // to notify it.
        if(errorHandler!=null)
            errorHandler.fatalError(se);

        // this is a fatal error. Even if the error handler
        // returns, we will abort anyway.
        throw se;
    }
}
 
源代码2 项目: iaf   文件: Json2XmlValidator.java
protected PipeRunResult alignXml2Json(String messageToValidate, IPipeLineSession session, boolean responseMode) throws XmlValidatorException, PipeRunException, ConfigurationException {

		ValidationContext context = validator.createValidationContext(session, getJsonRootValidations(responseMode), getInvalidRootNamespaces());
		ValidatorHandler validatorHandler = validator.getValidatorHandler(session,context);
		
		// Make sure to use Xerces' ValidatorHandlerImpl, otherwise casting below will fail.
		XmlAligner aligner = new XmlAligner(validatorHandler);
		Xml2Json xml2json = new Xml2Json(aligner, isCompactJsonArrays(), !isJsonWithRootElements());

		XMLFilterImpl handler = xml2json;

		if (StringUtils.isNotEmpty(getRootElementSessionKey())) {
			handler = new RootElementToSessionKeyFilter(session, getRootElementSessionKey(), getRootNamespaceSessionKey(), handler);
		}
		
		aligner.setContentHandler(handler);
		aligner.setErrorHandler(context.getErrorHandler());
		
		String resultEvent= validator.validate(messageToValidate, session, getLogPrefix(session), validatorHandler, xml2json, context);
		String out=xml2json.toString();
		PipeForward forward=determineForward(resultEvent, session, responseMode);
		PipeRunResult result=new PipeRunResult(forward,out);
		return result;
	}
 
源代码3 项目: TencentKona-8   文件: DomHandlerEx.java
ResultImpl() {
    try {
        DocumentBuilderFactory factory = XmlFactory.createDocumentBuilderFactory(false); // safe - only used for BI
        s2d = new SAX2DOMEx(factory);
    } catch (ParserConfigurationException e) {
        throw new AssertionError(e);    // impossible
    }

    XMLFilterImpl f = new XMLFilterImpl() {
        @Override
        public void setDocumentLocator(Locator locator) {
            super.setDocumentLocator(locator);
            location = new LocatorImpl(locator);
        }
    };
    f.setContentHandler(s2d);

    setHandler(f);
}
 
源代码4 项目: TencentKona-8   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码5 项目: TencentKona-8   文件: JAXBSource.java
public void parse() throws SAXException {
    // parses a content object by using the given marshaller
    // SAX events will be sent to the repeater, and the repeater
    // will further forward it to an appropriate component.
    try {
        marshaller.marshal( contentObject, (XMLFilterImpl)repeater );
    } catch( JAXBException e ) {
        // wrap it to a SAXException
        SAXParseException se =
            new SAXParseException( e.getMessage(),
                null, null, -1, -1, e );

        // if the consumer sets an error handler, it is our responsibility
        // to notify it.
        if(errorHandler!=null)
            errorHandler.fatalError(se);

        // this is a fatal error. Even if the error handler
        // returns, we will abort anyway.
        throw se;
    }
}
 
源代码6 项目: hottub   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码7 项目: jdk8u60   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码8 项目: jdk8u60   文件: JAXBSource.java
public void parse() throws SAXException {
    // parses a content object by using the given marshaller
    // SAX events will be sent to the repeater, and the repeater
    // will further forward it to an appropriate component.
    try {
        marshaller.marshal( contentObject, (XMLFilterImpl)repeater );
    } catch( JAXBException e ) {
        // wrap it to a SAXException
        SAXParseException se =
            new SAXParseException( e.getMessage(),
                null, null, -1, -1, e );

        // if the consumer sets an error handler, it is our responsibility
        // to notify it.
        if(errorHandler!=null)
            errorHandler.fatalError(se);

        // this is a fatal error. Even if the error handler
        // returns, we will abort anyway.
        throw se;
    }
}
 
源代码9 项目: openjdk-jdk8u   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码10 项目: openjdk-8   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码11 项目: openjdk-jdk8u-backup   文件: DomHandlerEx.java
ResultImpl() {
    try {
        DocumentBuilderFactory factory = XmlFactory.createDocumentBuilderFactory(false); // safe - only used for BI
        s2d = new SAX2DOMEx(factory);
    } catch (ParserConfigurationException e) {
        throw new AssertionError(e);    // impossible
    }

    XMLFilterImpl f = new XMLFilterImpl() {
        @Override
        public void setDocumentLocator(Locator locator) {
            super.setDocumentLocator(locator);
            location = new LocatorImpl(locator);
        }
    };
    f.setContentHandler(s2d);

    setHandler(f);
}
 
源代码12 项目: openjdk-jdk8u-backup   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码13 项目: JVoiceXML   文件: TestBeansFilter.java
/**
 * Test method for the filter.
 *
 * @exception Exception
 *                test failed
 */
@Test
public void testFilter() throws Exception {
    final TransformerFactory tf = TransformerFactory.newInstance();
    final TransformerHandler th = ((SAXTransformerFactory) tf)
            .newTransformerHandler();
    final ByteArrayOutputStream out = new ByteArrayOutputStream();
    final Result result = new StreamResult(out);
    th.setResult(result);
    final SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setValidating(false);
    spf.setNamespaceAware(true);
    spf.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
    final SAXParser parser = spf.newSAXParser();
    final XMLFilterImpl filter = new BeansFilter(parser.getXMLReader());
    filter.setContentHandler(th);
    final InputStream in =
        new FileInputStream("../org.jvoicexml.config/src/test/resources/config/test-implementation.xml");
    final InputSource input = new InputSource(in);
    filter.parse(input);
    final String str = out.toString();
    Assert.assertTrue("classpath should be removed",
            str.indexOf("classpath") < 0);
    Assert.assertTrue("repository should be removed",
            str.indexOf("repository") < 0);
}
 
源代码14 项目: openjdk-jdk8u-backup   文件: JAXBSource.java
public void parse() throws SAXException {
    // parses a content object by using the given marshaller
    // SAX events will be sent to the repeater, and the repeater
    // will further forward it to an appropriate component.
    try {
        marshaller.marshal( contentObject, (XMLFilterImpl)repeater );
    } catch( JAXBException e ) {
        // wrap it to a SAXException
        SAXParseException se =
            new SAXParseException( e.getMessage(),
                null, null, -1, -1, e );

        // if the consumer sets an error handler, it is our responsibility
        // to notify it.
        if(errorHandler!=null)
            errorHandler.fatalError(se);

        // this is a fatal error. Even if the error handler
        // returns, we will abort anyway.
        throw se;
    }
}
 
源代码15 项目: openjdk-8   文件: JAXBSource.java
public void parse() throws SAXException {
    // parses a content object by using the given marshaller
    // SAX events will be sent to the repeater, and the repeater
    // will further forward it to an appropriate component.
    try {
        marshaller.marshal( contentObject, (XMLFilterImpl)repeater );
    } catch( JAXBException e ) {
        // wrap it to a SAXException
        SAXParseException se =
            new SAXParseException( e.getMessage(),
                null, null, -1, -1, e );

        // if the consumer sets an error handler, it is our responsibility
        // to notify it.
        if(errorHandler!=null)
            errorHandler.fatalError(se);

        // this is a fatal error. Even if the error handler
        // returns, we will abort anyway.
        throw se;
    }
}
 
源代码16 项目: openjdk-jdk9   文件: DOMForest.java
/**
 * Returns a {@link ContentHandler} to feed SAX events into.
 *
 * <p>
 * The client of this class can feed SAX events into the handler
 * to parse a document into this DOM forest.
 *
 * This version requires that the DOM object to be created and registered
 * to the map beforehand.
 */
private ContentHandler getParserHandler( Document dom ) {
    ContentHandler handler = new DOMBuilder(dom,locatorTable,outerMostBindings);
    handler = new WhitespaceStripper(handler,errorReceiver,entityResolver);
    handler = new VersionChecker(handler,errorReceiver,entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);

    if(errorReceiver!=null)
        f.setErrorHandler(errorReceiver);
    if(entityResolver!=null)
        f.setEntityResolver(entityResolver);

    return f;
}
 
源代码17 项目: openjdk-jdk9   文件: JAXBSource.java
public void parse() throws SAXException {
    // parses a content object by using the given marshaller
    // SAX events will be sent to the repeater, and the repeater
    // will further forward it to an appropriate component.
    try {
        marshaller.marshal( contentObject, (XMLFilterImpl)repeater );
    } catch( JAXBException e ) {
        // wrap it to a SAXException
        SAXParseException se =
            new SAXParseException( e.getMessage(),
                null, null, -1, -1, e );

        // if the consumer sets an error handler, it is our responsibility
        // to notify it.
        if(errorHandler!=null)
            errorHandler.fatalError(se);

        // this is a fatal error. Even if the error handler
        // returns, we will abort anyway.
        throw se;
    }
}
 
源代码18 项目: TencentKona-8   文件: ModelLoader.java
/**
 * Parses a RELAX NG grammar into an annotated grammar.
 */
private Model loadRELAXNG() throws SAXException {

    // build DOM forest
    final DOMForest forest = buildDOMForest( new RELAXNGInternalizationLogic() );

    // use JAXP masquerading to validate the input document.
    // DOMForest -> ExtensionBindingChecker -> RNGOM

    XMLReaderCreator xrc = new XMLReaderCreator() {
        public XMLReader createXMLReader() {

            // foreset parser cannot change the receivers while it's working,
            // so we need to have one XMLFilter that works as a buffer
            XMLFilter buffer = new XMLFilterImpl() {
                @Override
                public void parse(InputSource source) throws IOException, SAXException {
                    forest.createParser().parse( source, this, this, this );
                }
            };

            XMLFilter f = new ExtensionBindingChecker(Const.RELAXNG_URI,opt,errorReceiver);
            f.setParent(buffer);

            f.setEntityResolver(opt.entityResolver);

            return f;
        }
    };

    Parseable p = new SAXParseable( opt.getGrammars()[0], errorReceiver, xrc );

    return loadRELAXNG(p);

}
 
源代码19 项目: jdk8u60   文件: DOMForest.java
/**
     * Returns a {@link org.xml.sax.XMLReader} to parse a document into this DOM forest.
     * <p/>
     * This version requires that the DOM object to be created and registered
     * to the map beforehand.
     */
private XMLReader createReader(Document dom) throws SAXException, ParserConfigurationException {
    XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    DOMBuilder dombuilder = new DOMBuilder(dom, locatorTable, outerMostBindings);
    try {
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", dombuilder);
    } catch(SAXException e) {
        errorReceiver.debug(e.getMessage());
    }

    ContentHandler handler = new WhitespaceStripper(dombuilder, errorReceiver, entityResolver);
    handler = new VersionChecker(handler, errorReceiver, entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);
    if (errorReceiver != null)
        f.setErrorHandler(errorReceiver);
    f.setEntityResolver(entityResolver);

    reader.setContentHandler(f);
    if (errorReceiver != null)
        reader.setErrorHandler(errorReceiver);
    reader.setEntityResolver(entityResolver);
    return reader;
}
 
源代码20 项目: openjdk-8   文件: ModelLoader.java
/**
 * Parses a RELAX NG grammar into an annotated grammar.
 */
private Model loadRELAXNG() throws SAXException {

    // build DOM forest
    final DOMForest forest = buildDOMForest( new RELAXNGInternalizationLogic() );

    // use JAXP masquerading to validate the input document.
    // DOMForest -> ExtensionBindingChecker -> RNGOM

    XMLReaderCreator xrc = new XMLReaderCreator() {
        public XMLReader createXMLReader() {

            // foreset parser cannot change the receivers while it's working,
            // so we need to have one XMLFilter that works as a buffer
            XMLFilter buffer = new XMLFilterImpl() {
                @Override
                public void parse(InputSource source) throws IOException, SAXException {
                    forest.createParser().parse( source, this, this, this );
                }
            };

            XMLFilter f = new ExtensionBindingChecker(Const.RELAXNG_URI,opt,errorReceiver);
            f.setParent(buffer);

            f.setEntityResolver(opt.entityResolver);

            return f;
        }
    };

    Parseable p = new SAXParseable( opt.getGrammars()[0], errorReceiver, xrc );

    return loadRELAXNG(p);

}
 
源代码21 项目: jdk8u60   文件: ModelLoader.java
/**
 * Parses a RELAX NG grammar into an annotated grammar.
 */
private Model loadRELAXNG() throws SAXException {

    // build DOM forest
    final DOMForest forest = buildDOMForest( new RELAXNGInternalizationLogic() );

    // use JAXP masquerading to validate the input document.
    // DOMForest -> ExtensionBindingChecker -> RNGOM

    XMLReaderCreator xrc = new XMLReaderCreator() {
        public XMLReader createXMLReader() {

            // foreset parser cannot change the receivers while it's working,
            // so we need to have one XMLFilter that works as a buffer
            XMLFilter buffer = new XMLFilterImpl() {
                @Override
                public void parse(InputSource source) throws IOException, SAXException {
                    forest.createParser().parse( source, this, this, this );
                }
            };

            XMLFilter f = new ExtensionBindingChecker(Const.RELAXNG_URI,opt,errorReceiver);
            f.setParent(buffer);

            f.setEntityResolver(opt.entityResolver);

            return f;
        }
    };

    Parseable p = new SAXParseable( opt.getGrammars()[0], errorReceiver, xrc );

    return loadRELAXNG(p);

}
 
源代码22 项目: openjdk-8-source   文件: DOMForest.java
/**
     * Returns a {@link org.xml.sax.XMLReader} to parse a document into this DOM forest.
     * <p/>
     * This version requires that the DOM object to be created and registered
     * to the map beforehand.
     */
private XMLReader createReader(Document dom) throws SAXException, ParserConfigurationException {
    XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    DOMBuilder dombuilder = new DOMBuilder(dom, locatorTable, outerMostBindings);
    try {
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", dombuilder);
    } catch(SAXException e) {
        errorReceiver.debug(e.getMessage());
    }

    ContentHandler handler = new WhitespaceStripper(dombuilder, errorReceiver, entityResolver);
    handler = new VersionChecker(handler, errorReceiver, entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);
    if (errorReceiver != null)
        f.setErrorHandler(errorReceiver);
    f.setEntityResolver(entityResolver);

    reader.setContentHandler(f);
    if (errorReceiver != null)
        reader.setErrorHandler(errorReceiver);
    reader.setEntityResolver(entityResolver);
    return reader;
}
 
源代码23 项目: openjdk-jdk8u   文件: DOMForest.java
/**
     * Returns a {@link org.xml.sax.XMLReader} to parse a document into this DOM forest.
     * <p/>
     * This version requires that the DOM object to be created and registered
     * to the map beforehand.
     */
private XMLReader createReader(Document dom) throws SAXException, ParserConfigurationException {
    XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    DOMBuilder dombuilder = new DOMBuilder(dom, locatorTable, outerMostBindings);
    try {
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", dombuilder);
    } catch(SAXException e) {
        errorReceiver.debug(e.getMessage());
    }

    ContentHandler handler = new WhitespaceStripper(dombuilder, errorReceiver, entityResolver);
    handler = new VersionChecker(handler, errorReceiver, entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);
    if (errorReceiver != null)
        f.setErrorHandler(errorReceiver);
    f.setEntityResolver(entityResolver);

    reader.setContentHandler(f);
    if (errorReceiver != null)
        reader.setErrorHandler(errorReceiver);
    reader.setEntityResolver(entityResolver);
    return reader;
}
 
源代码24 项目: openjdk-8   文件: DOMForest.java
/**
     * Returns a {@link org.xml.sax.XMLReader} to parse a document into this DOM forest.
     * <p/>
     * This version requires that the DOM object to be created and registered
     * to the map beforehand.
     */
private XMLReader createReader(Document dom) throws SAXException, ParserConfigurationException {
    XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    DOMBuilder dombuilder = new DOMBuilder(dom, locatorTable, outerMostBindings);
    try {
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", dombuilder);
    } catch(SAXException e) {
        errorReceiver.debug(e.getMessage());
    }

    ContentHandler handler = new WhitespaceStripper(dombuilder, errorReceiver, entityResolver);
    handler = new VersionChecker(handler, errorReceiver, entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);
    if (errorReceiver != null)
        f.setErrorHandler(errorReceiver);
    f.setEntityResolver(entityResolver);

    reader.setContentHandler(f);
    if (errorReceiver != null)
        reader.setErrorHandler(errorReceiver);
    reader.setEntityResolver(entityResolver);
    return reader;
}
 
源代码25 项目: openjdk-jdk8u   文件: ModelLoader.java
/**
 * Parses a RELAX NG grammar into an annotated grammar.
 */
private Model loadRELAXNG() throws SAXException {

    // build DOM forest
    final DOMForest forest = buildDOMForest( new RELAXNGInternalizationLogic() );

    // use JAXP masquerading to validate the input document.
    // DOMForest -> ExtensionBindingChecker -> RNGOM

    XMLReaderCreator xrc = new XMLReaderCreator() {
        public XMLReader createXMLReader() {

            // foreset parser cannot change the receivers while it's working,
            // so we need to have one XMLFilter that works as a buffer
            XMLFilter buffer = new XMLFilterImpl() {
                @Override
                public void parse(InputSource source) throws IOException, SAXException {
                    forest.createParser().parse( source, this, this, this );
                }
            };

            XMLFilter f = new ExtensionBindingChecker(Const.RELAXNG_URI,opt,errorReceiver);
            f.setParent(buffer);

            f.setEntityResolver(opt.entityResolver);

            return f;
        }
    };

    Parseable p = new SAXParseable( opt.getGrammars()[0], errorReceiver, xrc );

    return loadRELAXNG(p);

}
 
源代码26 项目: openjdk-jdk8u-backup   文件: DOMForest.java
/**
     * Returns a {@link org.xml.sax.XMLReader} to parse a document into this DOM forest.
     * <p/>
     * This version requires that the DOM object to be created and registered
     * to the map beforehand.
     */
private XMLReader createReader(Document dom) throws SAXException, ParserConfigurationException {
    XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    DOMBuilder dombuilder = new DOMBuilder(dom, locatorTable, outerMostBindings);
    try {
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", dombuilder);
    } catch(SAXException e) {
        errorReceiver.debug(e.getMessage());
    }

    ContentHandler handler = new WhitespaceStripper(dombuilder, errorReceiver, entityResolver);
    handler = new VersionChecker(handler, errorReceiver, entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);
    if (errorReceiver != null)
        f.setErrorHandler(errorReceiver);
    f.setEntityResolver(entityResolver);

    reader.setContentHandler(f);
    if (errorReceiver != null)
        reader.setErrorHandler(errorReceiver);
    reader.setEntityResolver(entityResolver);
    return reader;
}
 
源代码27 项目: openjdk-jdk9   文件: DOMForest.java
/**
     * Returns a {@link org.xml.sax.XMLReader} to parse a document into this DOM forest.
     * <p/>
     * This version requires that the DOM object to be created and registered
     * to the map beforehand.
     */
private XMLReader createReader(Document dom) throws SAXException, ParserConfigurationException {
    XMLReader reader = parserFactory.newSAXParser().getXMLReader();
    DOMBuilder dombuilder = new DOMBuilder(dom, locatorTable, outerMostBindings);
    try {
        reader.setProperty("http://xml.org/sax/properties/lexical-handler", dombuilder);
    } catch(SAXException e) {
        errorReceiver.debug(e.getMessage());
    }

    ContentHandler handler = new WhitespaceStripper(dombuilder, errorReceiver, entityResolver);
    handler = new VersionChecker(handler, errorReceiver, entityResolver);

    // insert the reference finder so that
    // included/imported schemas will be also parsed
    XMLFilterImpl f = logic.createExternalReferenceFinder(this);
    f.setContentHandler(handler);
    if (errorReceiver != null)
        f.setErrorHandler(errorReceiver);
    f.setEntityResolver(entityResolver);

    reader.setContentHandler(f);
    if (errorReceiver != null)
        reader.setErrorHandler(errorReceiver);
    reader.setEntityResolver(entityResolver);
    return reader;
}
 
源代码28 项目: openjdk-8-source   文件: ModelLoader.java
/**
 * Parses a RELAX NG grammar into an annotated grammar.
 */
private Model loadRELAXNG() throws SAXException {

    // build DOM forest
    final DOMForest forest = buildDOMForest( new RELAXNGInternalizationLogic() );

    // use JAXP masquerading to validate the input document.
    // DOMForest -> ExtensionBindingChecker -> RNGOM

    XMLReaderCreator xrc = new XMLReaderCreator() {
        public XMLReader createXMLReader() {

            // foreset parser cannot change the receivers while it's working,
            // so we need to have one XMLFilter that works as a buffer
            XMLFilter buffer = new XMLFilterImpl() {
                @Override
                public void parse(InputSource source) throws IOException, SAXException {
                    forest.createParser().parse( source, this, this, this );
                }
            };

            XMLFilter f = new ExtensionBindingChecker(Const.RELAXNG_URI,opt,errorReceiver);
            f.setParent(buffer);

            f.setEntityResolver(opt.entityResolver);

            return f;
        }
    };

    Parseable p = new SAXParseable( opt.getGrammars()[0], errorReceiver, xrc );

    return loadRELAXNG(p);

}
 
源代码29 项目: openjdk-jdk9   文件: ParserAdapterTest.java
/**
 * Verifies parserAdapter.getDTDHandler()
 */
@Test
public void dtdHandler01() {
    XMLFilterImpl xmlFilter = new XMLFilterImpl();
    parserAdapter.setDTDHandler(xmlFilter);
    assertNotNull(parserAdapter.getDTDHandler());
}
 
源代码30 项目: openjdk-jdk9   文件: XMLFilterTest.java
/**
 * No exception expected when set a correct entity solver.
 */
@Test
public void entity01() {
    XMLFilterImpl xmlFilter = new XMLFilterImpl();
    xmlFilter.setEntityResolver(xmlFilter);
    assertNotNull(xmlFilter.getEntityResolver());
}