1/* 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26package com.sun.xml.internal.xsom; 27 28import java.util.Iterator; 29import java.util.Collection; 30 31/** 32 * Common aspect of {@link XSComplexType} and {@link XSAttGroupDecl} 33 * as the container of attribute uses/attribute groups. 34 * 35 * @author 36 * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 37 */ 38public interface XSAttContainer extends XSDeclaration { 39 XSWildcard getAttributeWildcard(); 40 41 /** 42 * Looks for the attribute use with the specified name from 43 * all the attribute uses that are directly/indirectly 44 * referenced from this component. 45 * 46 * <p> 47 * This is the exact implementation of the "attribute use" 48 * schema component. 49 */ 50 XSAttributeUse getAttributeUse( String nsURI, String localName ); 51 52 /** 53 * Lists all the attribute uses that are directly/indirectly 54 * referenced from this component. 55 * 56 * <p> 57 * This is the exact implementation of the "attribute use" 58 * schema component. 59 */ 60 Iterator<? extends XSAttributeUse> iterateAttributeUses(); 61 62 /** 63 * Gets all the attribute uses. 64 */ 65 Collection<? extends XSAttributeUse> getAttributeUses(); 66 67 /** 68 * Looks for the attribute use with the specified name from 69 * the attribute uses which are declared in this complex type. 70 * 71 * This does not include att uses declared in att groups that 72 * are referenced from this complex type, nor does include 73 * att uses declared in base types. 74 */ 75 XSAttributeUse getDeclaredAttributeUse( String nsURI, String localName ); 76 77 /** 78 * Lists all the attribute uses that are declared in this complex type. 79 */ 80 Iterator<? extends XSAttributeUse> iterateDeclaredAttributeUses(); 81 82 /** 83 * Lists all the attribute uses that are declared in this complex type. 84 */ 85 Collection<? extends XSAttributeUse> getDeclaredAttributeUses(); 86 87 88 /** 89 * Iterates all AttGroups which are directly referenced from 90 * this component. 91 */ 92 Iterator<? extends XSAttGroupDecl> iterateAttGroups(); 93 94 /** 95 * Iterates all AttGroups which are directly referenced from 96 * this component. 97 */ 98 Collection<? extends XSAttGroupDecl> getAttGroups(); 99} 100