/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/*
* Copyright 2003,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.sun.org.apache.xerces.internal.xs;
import java.util.Map;
/**
* Objects implementing the XSNamedMap interface are used to
* represent immutable collections of XML Schema components that can be
* accessed by name. Note that XSNamedMap does not inherit from
* XSObjectList. The XSObjects in
* XSNamedMaps are not maintained in any particular order.
*/
public interface XSNamedMap extends Map {
/**
* The number of XSObjects in the XSObjectList.
* The range of valid child object indices is 0 to length-1
* inclusive.
*/
public int getLength();
/**
* Returns the indexth item in the collection or
* null if index is greater than or equal to
* the number of objects in the list. The index starts at 0.
* @param index index into the collection.
* @return The XSObject at the indexth
* position in the XSObjectList, or null if
* the index specified is not valid.
*/
public XSObject item(int index);
/**
* Retrieves an XSObject specified by local name and
* namespace URI.
*
Per XML Namespaces, applications must use the value null as the
* namespace parameter for methods if they wish to specify
* no namespace.
* @param namespace The namespace URI of the XSObject to
* retrieve, or null if the XSObject has no
* namespace.
* @param localName The local name of the XSObject to
* retrieve.
* @return A XSObject (of any type) with the specified local
* name and namespace URI, or null if they do not
* identify any object in this map.
*/
public XSObject itemByName(String namespace,
String localName);
}