⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testnamespace.java

📁 Java的面向对象数据库系统的源代码
💻 JAVA
字号:
/* * Copyright 2001 (C) MetaStuff, Ltd. All Rights Reserved. * * This software is open source. * See the bottom of this file for the licence. * * $Id: TestNamespace.java,v 1.3 2003/11/02 18:31:28 per_nyfelt Exp $ */package test.dom4j;import junit.framework.Test;import junit.framework.TestSuite;import junit.textui.TestRunner;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.Namespace;import org.dom4j.QName;import org.dom4j.io.SAXReader;import java.io.File;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;/** A test harness to test the use of Namespaces.  *  * @author <a href="mailto:james.strachan@metastuff.com">James Strachan</a>  * @version $Revision: 1.3 $  */public class TestNamespace extends AbstractTestCase {    /** Input XML file to read */    protected static String INPUT_XML_FILE = "xml/namespaces.xml";    /** AbstractNamespace to use in tests */    protected static Namespace XSL_NAMESPACE;    protected static QName XSL_TEMPLATE;    public static void main( String[] args ) {        TestRunner.run( suite() );    }    public static Test suite() {        return new TestSuite( TestNamespace.class );    }    public TestNamespace(String name) {        super(name);    }    // Test case(s)    //-------------------------------------------------------------------------    public void debugShowNamespaces() throws Exception {        Element root = getRootElement();        for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) {            Element element = (Element) iter.next();            log( "Found element:    " + element );            log( "AbstractNamespace:        " + element.getNamespace() );            log( "AbstractNamespace prefix: " + element.getNamespacePrefix() );            log( "AbstractNamespace URI:    " + element.getNamespaceURI() );        }    }    public void testGetElement() throws Exception {        Element root = getRootElement();        Element firstTemplate = root.element( XSL_TEMPLATE );        assertTrue( "Root element contains at least one <xsl:template/> element", firstTemplate != null );        log( "Found element: " + firstTemplate );    }    public void testGetElements() throws Exception {        Element root = getRootElement();        List list = root.elements( XSL_TEMPLATE );        assertTrue( "Root element contains at least one <xsl:template/> element", list.size() > 0 );        log( "Found elements: " + list );    }    public void testElementIterator() throws Exception {        Element root = getRootElement();        Iterator iter = root.elementIterator( XSL_TEMPLATE );        assertTrue( "Root element contains at least one <xsl:template/> element", iter.hasNext() );        do {            Element element = (Element) iter.next();            log( "Found element: " + element );        }        while ( iter.hasNext() );    }    /** Tests the use of namespace URI Mapping associated with a DocumentFactory */    public void testNamespaceUriMap() throws Exception {        // register namespace prefix->uri mappings with factory        Map uris = new HashMap();        uris.put( "x", "fooNamespace" );        uris.put( "y", "barNamespace" );        xpathFactory.setXPathNamespaceURIs( uris );        // parse or create a document        SAXReader reader = new SAXReader();        reader.setNodeFactory( nodeFactory );        Document doc = reader.read( "xml/test/nestedNamespaces.xml" );        // evaluate XPath using registered namespace prefixes        // which do not appear in the document (though the URIs do!)        String value = doc.valueOf( "/x:pizza/y:cheese/x:pepper" );        log( "Found value: " + value );        assertEquals( "XPath used default namesapce URIS", "works", value );    }    // Implementation methods    //-------------------------------------------------------------------------    protected void setUp() throws Exception {        SAXReader reader = new SAXReader();        document = reader.read( new File( INPUT_XML_FILE ) );        XSL_NAMESPACE = nodeFactory.createNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");        XSL_TEMPLATE = nodeFactory.createQName("template", XSL_NAMESPACE );    }    /** @return the root element of the document */    protected Element getRootElement() {        Element root = document.getRootElement();        assertTrue( "Document has root element", root != null );        return root;    }}/* * Redistribution and use of this software and associated documentation * ("Software"), with or without modification, are permitted provided * that the following conditions are met: * * 1. Redistributions of source code must retain copyright *    statements and notices.  Redistributions must also contain a *    copy of this document. * * 2. Redistributions in binary form must reproduce the *    above copyright notice, this list of conditions and the *    following disclaimer in the documentation and/or other *    materials provided with the distribution. * * 3. The name "DOM4J" must not be used to endorse or promote *    products derived from this Software without prior written *    permission of MetaStuff, Ltd.  For written permission, *    please contact dom4j-info@metastuff.com. * * 4. Products derived from this Software may not be called "DOM4J" *    nor may "DOM4J" appear in their names without prior written *    permission of MetaStuff, Ltd. DOM4J is a registered *    trademark of MetaStuff, Ltd. * * 5. Due credit should be given to the DOM4J Project *    (http://dom4j.org/). * * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL * METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * Copyright 2001 (C) MetaStuff, Ltd. All Rights Reserved. * * $Id: TestNamespace.java,v 1.3 2003/11/02 18:31:28 per_nyfelt Exp $ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -