Java 6是否默认支持xinclude?

Java 6是否默认支持xinclude?,第1张

Java 6是否默认支持xinclude?

根据规范,自Java
1.5(5)以来一直提供支持。我相信XInclude支持依赖于名称空间感知,出于向后兼容的原因,默认情况下将其关闭。

public class XIncludeDemo {    private static final String XML = "<?xml version="1.0"?>n" + "<data xmlns="foo" xmlns:xi="http://www.w3.org/2001/XInclude">n" + "<xi:include href="include.txt" parse="text"/>n" + "</data>n";    private static final String INCLUDE = "Hello, World!";    public static void main(String[] args) throws Exception {        // data        final InputStream xmlStream = new ByteArrayInputStream(XML     .getBytes("UTF-8"));        final InputStream includeStream = new ByteArrayInputStream(INCLUDE     .getBytes("UTF-8"));        // document parser        documentBuilderFactory factory = documentBuilderFactory.newInstance();        factory.setXIncludeAware(true);        factory.setNamespaceAware(true);        documentBuilder docBuilder = factory.newdocumentBuilder();        if (!docBuilder.isXIncludeAware()) { throw new IllegalStateException();        }        docBuilder.setEntityResolver(new EntityResolver() { @Override public InputSource resolveEntity(String publicId, String systemId)         throws SAXException, IOException {     if (systemId.endsWith("include.txt")) {         return new InputSource(includeStream);     }     return null; }        });        document doc = docBuilder.parse(xmlStream);        // print result        Source source = new DOMSource(doc);        Result result = new StreamResult(System.out);        TransformerFactory transformerFactory = TransformerFactory     .newInstance();        Transformer transformer = transformerFactory.newTransformer();        transformer.transform(source, result);    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5487798.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存