01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: package org.apache.xerces.xs;
19:
20: /**
21: * Objects implementing the <code>XSNamedMap</code> interface are used to
22: * represent immutable collections of XML Schema components that can be
23: * accessed by name. Note that <code>XSNamedMap</code> does not inherit from
24: * <code>XSObjectList</code>. The <code>XSObject</code>s in
25: * <code>XSNamedMap</code>s are not maintained in any particular order.
26: */
27: public interface XSNamedMap {
28: /**
29: * The number of <code>XSObjects</code> in the <code>XSObjectList</code>.
30: * The range of valid child object indices is 0 to <code>length-1</code>
31: * inclusive.
32: */
33: public int getLength();
34:
35: /**
36: * Returns the <code>index</code>th item in the collection or
37: * <code>null</code> if <code>index</code> is greater than or equal to
38: * the number of objects in the list. The index starts at 0.
39: * @param index index into the collection.
40: * @return The <code>XSObject</code> at the <code>index</code>th
41: * position in the <code>XSObjectList</code>, or <code>null</code> if
42: * the index specified is not valid.
43: */
44: public XSObject item(int index);
45:
46: /**
47: * Retrieves an <code>XSObject</code> specified by local name and
48: * namespace URI.
49: * <br>Per XML Namespaces, applications must use the value <code>null</code> as the
50: * <code>namespace</code> parameter for methods if they wish to specify
51: * no namespace.
52: * @param namespace The namespace URI of the <code>XSObject</code> to
53: * retrieve, or <code>null</code> if the <code>XSObject</code> has no
54: * namespace.
55: * @param localName The local name of the <code>XSObject</code> to
56: * retrieve.
57: * @return A <code>XSObject</code> (of any type) with the specified local
58: * name and namespace URI, or <code>null</code> if they do not
59: * identify any object in this map.
60: */
61: public XSObject itemByName(String namespace, String localName);
62:
63: }
|