下面列出了org.xml.sax.helpers.XMLFilterImpl#setContentHandler ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
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);
}
/**
* 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;
}
/**
* 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);
}
public String validate(Object input, IPipeLineSession session, String logPrefix, ValidatorHandler validatorHandler, XMLFilterImpl filter, ValidationContext context) throws XmlValidatorException, PipeRunException, ConfigurationException {
if (filter != null) {
// If a filter is present, connect its output to the context.contentHandler.
// It is assumed that the filter input is already properly connected.
filter.setContentHandler(context.getContentHandler());
filter.setErrorHandler(context.getErrorHandler());
} else {
validatorHandler.setContentHandler(context.getContentHandler());
}
validatorHandler.setErrorHandler(context.getErrorHandler());
InputSource is = getInputSource(Message.asMessage(input));
return validate(is, validatorHandler, session, context);
}
/**
* 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;
}
/**
* 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;
}
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);
}
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);
}
/**
* 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;
}
/**
* 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;
}
/**
* 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;
}
/**
* 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;
}
/**
* 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;
}
/**
* 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;
}
/**
* 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;
}
/**
* Wraps the specified content handler by a filter.
* It is little awkward to use a helper implementation class like XMLFilterImpl
* as the method parameter, but this simplifies the code.
*/
private ContentHandler wrapBy( XMLFilterImpl filter, ContentHandler handler ) {
filter.setContentHandler(handler);
return filter;
}
/**
* Wraps the specified content handler by a filter.
* It is little awkward to use a helper implementation class like XMLFilterImpl
* as the method parameter, but this simplifies the code.
*/
private ContentHandler wrapBy( XMLFilterImpl filter, ContentHandler handler ) {
filter.setContentHandler(handler);
return filter;
}
/**
* Wraps the specified content handler by a filter.
* It is little awkward to use a helper implementation class like XMLFilterImpl
* as the method parameter, but this simplifies the code.
*/
private ContentHandler wrapBy( XMLFilterImpl filter, ContentHandler handler ) {
filter.setContentHandler(handler);
return filter;
}
/**
* Wraps the specified content handler by a filter.
* It is little awkward to use a helper implementation class like XMLFilterImpl
* as the method parameter, but this simplifies the code.
*/
private ContentHandler wrapBy( XMLFilterImpl filter, ContentHandler handler ) {
filter.setContentHandler(handler);
return filter;
}
/**
* Wraps the specified content handler by a filter.
* It is little awkward to use a helper implementation class like XMLFilterImpl
* as the method parameter, but this simplifies the code.
*/
private ContentHandler wrapBy( XMLFilterImpl filter, ContentHandler handler ) {
filter.setContentHandler(handler);
return filter;
}