OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [external/] [sax/] [org/] [xml/] [sax/] [Attributes.java] - Blame information for rev 768

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 768 jeremybenn
// Attributes.java - attribute list with Namespace support
2
// http://www.saxproject.org
3
// Written by David Megginson
4
// NO WARRANTY!  This class is in the public domain.
5
// $Id: Attributes.java,v 1.1 2004/12/23 22:38:42 mark Exp $
6
 
7
package org.xml.sax;
8
 
9
 
10
/**
11
 * Interface for a list of XML attributes.
12
 *
13
 * <blockquote>
14
 * <em>This module, both source code and documentation, is in the
15
 * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
16
 * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
17
 * for further information.
18
 * </blockquote>
19
 *
20
 * <p>This interface allows access to a list of attributes in
21
 * three different ways:</p>
22
 *
23
 * <ol>
24
 * <li>by attribute index;</li>
25
 * <li>by Namespace-qualified name; or</li>
26
 * <li>by qualified (prefixed) name.</li>
27
 * </ol>
28
 *
29
 * <p>The list will not contain attributes that were declared
30
 * #IMPLIED but not specified in the start tag.  It will also not
31
 * contain attributes used as Namespace declarations (xmlns*) unless
32
 * the <code>http://xml.org/sax/features/namespace-prefixes</code>
33
 * feature is set to <var>true</var> (it is <var>false</var> by
34
 * default).
35
 * Because SAX2 conforms to the original "Namespaces in XML"
36
 * recommendation, it normally does not
37
 * give namespace declaration attributes a namespace URI.
38
 * </p>
39
 *
40
 * <p>Some SAX2 parsers may support using an optional feature flag
41
 * (<code>http://xml.org/sax/features/xmlns-uris</code>) to request
42
 * that those attributes be given URIs, conforming to a later
43
 * backwards-incompatible revision of that recommendation.  (The
44
 * attribute's "local name" will be the prefix, or "xmlns" when
45
 * defining a default element namespace.)  For portability, handler
46
 * code should always resolve that conflict, rather than requiring
47
 * parsers that can change the setting of that feature flag.  </p>
48
 *
49
 * <p>If the namespace-prefixes feature (see above) is
50
 * <var>false</var>, access by qualified name may not be available; if
51
 * the <code>http://xml.org/sax/features/namespaces</code> feature is
52
 * <var>false</var>, access by Namespace-qualified names may not be
53
 * available.</p>
54
 *
55
 * <p>This interface replaces the now-deprecated SAX1 {@link
56
 * org.xml.sax.AttributeList AttributeList} interface, which does not
57
 * contain Namespace support.  In addition to Namespace support, it
58
 * adds the <var>getIndex</var> methods (below).</p>
59
 *
60
 * <p>The order of attributes in the list is unspecified, and will
61
 * vary from implementation to implementation.</p>
62
 *
63
 * @since SAX 2.0
64
 * @author David Megginson
65
 * @version 2.0.1 (sax2r2)
66
 * @see org.xml.sax.helpers.AttributesImpl
67
 * @see org.xml.sax.ext.DeclHandler#attributeDecl
68
 */
69
public interface Attributes
70
{
71
 
72
 
73
    ////////////////////////////////////////////////////////////////////
74
    // Indexed access.
75
    ////////////////////////////////////////////////////////////////////
76
 
77
 
78
    /**
79
     * Return the number of attributes in the list.
80
     *
81
     * <p>Once you know the number of attributes, you can iterate
82
     * through the list.</p>
83
     *
84
     * @return The number of attributes in the list.
85
     * @see #getURI(int)
86
     * @see #getLocalName(int)
87
     * @see #getQName(int)
88
     * @see #getType(int)
89
     * @see #getValue(int)
90
     */
91
    public abstract int getLength ();
92
 
93
 
94
    /**
95
     * Look up an attribute's Namespace URI by index.
96
     *
97
     * @param index The attribute index (zero-based).
98
     * @return The Namespace URI, or the empty string if none
99
     *         is available, or null if the index is out of
100
     *         range.
101
     * @see #getLength
102
     */
103
    public abstract String getURI (int index);
104
 
105
 
106
    /**
107
     * Look up an attribute's local name by index.
108
     *
109
     * @param index The attribute index (zero-based).
110
     * @return The local name, or the empty string if Namespace
111
     *         processing is not being performed, or null
112
     *         if the index is out of range.
113
     * @see #getLength
114
     */
115
    public abstract String getLocalName (int index);
116
 
117
 
118
    /**
119
     * Look up an attribute's XML qualified (prefixed) name by index.
120
     *
121
     * @param index The attribute index (zero-based).
122
     * @return The XML qualified name, or the empty string
123
     *         if none is available, or null if the index
124
     *         is out of range.
125
     * @see #getLength
126
     */
127
    public abstract String getQName (int index);
128
 
129
 
130
    /**
131
     * Look up an attribute's type by index.
132
     *
133
     * <p>The attribute type is one of the strings "CDATA", "ID",
134
     * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
135
     * or "NOTATION" (always in upper case).</p>
136
     *
137
     * <p>If the parser has not read a declaration for the attribute,
138
     * or if the parser does not report attribute types, then it must
139
     * return the value "CDATA" as stated in the XML 1.0 Recommendation
140
     * (clause 3.3.3, "Attribute-Value Normalization").</p>
141
     *
142
     * <p>For an enumerated attribute that is not a notation, the
143
     * parser will report the type as "NMTOKEN".</p>
144
     *
145
     * @param index The attribute index (zero-based).
146
     * @return The attribute's type as a string, or null if the
147
     *         index is out of range.
148
     * @see #getLength
149
     */
150
    public abstract String getType (int index);
151
 
152
 
153
    /**
154
     * Look up an attribute's value by index.
155
     *
156
     * <p>If the attribute value is a list of tokens (IDREFS,
157
     * ENTITIES, or NMTOKENS), the tokens will be concatenated
158
     * into a single string with each token separated by a
159
     * single space.</p>
160
     *
161
     * @param index The attribute index (zero-based).
162
     * @return The attribute's value as a string, or null if the
163
     *         index is out of range.
164
     * @see #getLength
165
     */
166
    public abstract String getValue (int index);
167
 
168
 
169
 
170
    ////////////////////////////////////////////////////////////////////
171
    // Name-based query.
172
    ////////////////////////////////////////////////////////////////////
173
 
174
 
175
    /**
176
     * Look up the index of an attribute by Namespace name.
177
     *
178
     * @param uri The Namespace URI, or the empty string if
179
     *        the name has no Namespace URI.
180
     * @param localName The attribute's local name.
181
     * @return The index of the attribute, or -1 if it does not
182
     *         appear in the list.
183
     */
184
    public int getIndex (String uri, String localName);
185
 
186
 
187
    /**
188
     * Look up the index of an attribute by XML qualified (prefixed) name.
189
     *
190
     * @param qName The qualified (prefixed) name.
191
     * @return The index of the attribute, or -1 if it does not
192
     *         appear in the list.
193
     */
194
    public int getIndex (String qName);
195
 
196
 
197
    /**
198
     * Look up an attribute's type by Namespace name.
199
     *
200
     * <p>See {@link #getType(int) getType(int)} for a description
201
     * of the possible types.</p>
202
     *
203
     * @param uri The Namespace URI, or the empty String if the
204
     *        name has no Namespace URI.
205
     * @param localName The local name of the attribute.
206
     * @return The attribute type as a string, or null if the
207
     *         attribute is not in the list or if Namespace
208
     *         processing is not being performed.
209
     */
210
    public abstract String getType (String uri, String localName);
211
 
212
 
213
    /**
214
     * Look up an attribute's type by XML qualified (prefixed) name.
215
     *
216
     * <p>See {@link #getType(int) getType(int)} for a description
217
     * of the possible types.</p>
218
     *
219
     * @param qName The XML qualified name.
220
     * @return The attribute type as a string, or null if the
221
     *         attribute is not in the list or if qualified names
222
     *         are not available.
223
     */
224
    public abstract String getType (String qName);
225
 
226
 
227
    /**
228
     * Look up an attribute's value by Namespace name.
229
     *
230
     * <p>See {@link #getValue(int) getValue(int)} for a description
231
     * of the possible values.</p>
232
     *
233
     * @param uri The Namespace URI, or the empty String if the
234
     *        name has no Namespace URI.
235
     * @param localName The local name of the attribute.
236
     * @return The attribute value as a string, or null if the
237
     *         attribute is not in the list.
238
     */
239
    public abstract String getValue (String uri, String localName);
240
 
241
 
242
    /**
243
     * Look up an attribute's value by XML qualified (prefixed) name.
244
     *
245
     * <p>See {@link #getValue(int) getValue(int)} for a description
246
     * of the possible values.</p>
247
     *
248
     * @param qName The XML qualified name.
249
     * @return The attribute value as a string, or null if the
250
     *         attribute is not in the list or if qualified names
251
     *         are not available.
252
     */
253
    public abstract String getValue (String qName);
254
 
255
}
256
 
257
// end of Attributes.java

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.