KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > xmldb > api > modules > XMLResource


1 package org.xmldb.api.modules;
2
3 /*
4  * The XML:DB Initiative Software License, Version 1.0
5  *
6  *
7  * Copyright (c) 2000-2001 The XML:DB Initiative. All rights
8  * reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  *
14  * 1. Redistributions of source code must retain the above copyright
15  * notice, this list of conditions and the following disclaimer.
16  *
17  * 2. Redistributions in binary form must reproduce the above copyright
18  * notice, this list of conditions and the following disclaimer in
19  * the documentation and/or other materials provided with the
20  * distribution.
21  *
22  * 3. The end-user documentation included with the redistribution,
23  * if any, must include the following acknowledgment:
24  * "This product includes software developed by the
25  * XML:DB Initiative (http://www.xmldb.org/)."
26  * Alternately, this acknowledgment may appear in the software itself,
27  * if and wherever such third-party acknowledgments normally appear.
28  *
29  * 4. The name "XML:DB Initiative" must not be used to endorse or
30  * promote products derived from this software without prior written
31  * permission. For written permission, please contact info@xmldb.org.
32  *
33  * 5. Products derived from this software may not be called "XML:DB",
34  * nor may "XML:DB" appear in their name, without prior written
35  * permission of the XML:DB Initiative.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48  * SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This software consists of voluntary contributions made by many
52  * individuals on behalf of the XML:DB Initiative. For more information
53  * on the XML:DB Initiative, please see <http://www.xmldb.org/>.
54  */

55 import org.xmldb.api.base.*;
56
57 import org.w3c.dom.*;
58 import org.xml.sax.*;
59
60 /**
61  * Provides access to XML resources stored in the database. An XMLResource can
62  * be accessed either as text XML or via the DOM or SAX APIs.<p />
63  *
64  * The default behavior for getContent and setContent is to work with XML data
65  * as text so these methods work on <code>String</code> content. I.e. it is always
66  * possible to do the following <BR/>
67  * <code>
68  * if (resource instanceof XMLResource) { <BR/>
69  * &nbsp;&nbsp;String foo = (String)resource.getContent(); <BR/>
70  * }</code>
71  */

72 public interface XMLResource extends Resource {
73    public static final String JavaDoc RESOURCE_TYPE = "XMLResource";
74    
75    /**
76     * Returns the content of the <code>Resource</code> as a DOM Node.
77     *
78     * @return The XML content as a DOM <code>Node</code>
79     * @exception XMLDBException with expected error codes.<br />
80     * <code>ErrorCodes.VENDOR_ERROR</code> for any vendor
81     * specific errors that occur.<br />
82     */

83    Node getContentAsDOM() throws XMLDBException;
84
85    /**
86     * Sets the content of the <code>Resource</code> using a DOM Node as the
87     * source.
88     *
89     * @param content The new content value
90     * @exception XMLDBException with expected error codes.<br />
91     * <code>ErrorCodes.VENDOR_ERROR</code> for any vendor
92     * specific errors that occur.<br />
93     * <code>ErrorCodes.INVALID_RESOURCE</code> if the content value provided is
94     * null.<br />
95     * <code>ErrorCodes.WRONG_CONTENT_TYPE</code> if the content provided in not
96     * a valid DOM <code>Node</code>.
97     */

98    void setContentAsDOM(Node content) throws XMLDBException;
99
100    /**
101     * Allows you to use a <code>ContentHandler</code> to parse the XML data from
102     * the database for use in an application.
103     *
104     * @param handler the SAX <code>ContentHandler</code> to use to handle the
105     * <code>Resource</code> content.
106     * @exception XMLDBException with expected error codes.<br />
107     * <code>ErrorCodes.VENDOR_ERROR</code> for any vendor
108     * specific errors that occur.<br />
109     * <code>ErrorCodes.INVALID_RESOURCE</code> if the
110     * <code>ContentHandler</code> provided is null.<br />
111     */

112    void getContentAsSAX(ContentHandler handler) throws XMLDBException;
113
114    /**
115     * Sets the content of the <code>Resource</code> using a SAX
116     * <code>ContentHandler</code>.
117     *
118     * @return a SAX <code>ContentHandler</code> that can be used to add content
119     * into the <code>Resource</code>.
120     * @exception XMLDBException with expected error codes.<br />
121     * <code>ErrorCodes.VENDOR_ERROR</code> for any vendor
122     * specific errors that occur.<br />
123     */

124    ContentHandler setContentAsSAX() throws XMLDBException;
125    
126 }
127
128
Popular Tags