| /* |
| * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Oracle designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Oracle in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| package com.sun.xml.internal.xsom; |
| |
| import javax.xml.namespace.NamespaceContext; |
| import java.util.Iterator; |
| import java.util.Collection; |
| |
| /** |
| * Set of {@link XSSchema} objects. |
| * |
| * @author |
| * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) |
| */ |
| public interface XSSchemaSet |
| { |
| XSSchema getSchema(String targetNamespace); |
| XSSchema getSchema(int idx); |
| int getSchemaSize(); |
| Iterator<XSSchema> iterateSchema(); |
| |
| /** |
| * Gets all {@link XSSchema}s in a single collection. |
| */ |
| Collection<XSSchema> getSchemas(); |
| |
| XSType getType(String namespaceURI, String localName); |
| XSSimpleType getSimpleType(String namespaceURI, String localName); |
| XSAttributeDecl getAttributeDecl(String namespaceURI, String localName); |
| XSElementDecl getElementDecl(String namespaceURI, String localName); |
| XSModelGroupDecl getModelGroupDecl(String namespaceURI, String localName); |
| XSAttGroupDecl getAttGroupDecl(String namespaceURI, String localName); |
| XSComplexType getComplexType(String namespaceURI, String localName); |
| XSIdentityConstraint getIdentityConstraint(String namespaceURI, String localName); |
| |
| /** Iterates all element declarations in all the schemas. */ |
| Iterator<XSElementDecl> iterateElementDecls(); |
| /** Iterates all type definitions in all the schemas. */ |
| Iterator<XSType> iterateTypes(); |
| /** Iterates all atribute declarations in all the schemas. */ |
| Iterator<XSAttributeDecl> iterateAttributeDecls(); |
| /** Iterates all attribute group declarations in all the schemas. */ |
| Iterator<XSAttGroupDecl> iterateAttGroupDecls(); |
| /** Iterates all model group declarations in all the schemas. */ |
| Iterator<XSModelGroupDecl> iterateModelGroupDecls(); |
| /** Iterates all simple type definitions in all the schemas. */ |
| Iterator<XSSimpleType> iterateSimpleTypes(); |
| /** Iterates all complex type definitions in all the schemas. */ |
| Iterator<XSComplexType> iterateComplexTypes(); |
| /** Iterates all notation declarations in all the schemas. */ |
| Iterator<XSNotation> iterateNotations(); |
| /** |
| * Iterates all identity constraints in all the schemas. |
| */ |
| Iterator<XSIdentityConstraint> iterateIdentityConstraints(); |
| |
| // conceptually static methods |
| XSComplexType getAnyType(); |
| XSSimpleType getAnySimpleType(); |
| XSContentType getEmpty(); |
| |
| /** |
| * Evaluates a schema component designator against this schema component |
| * and returns the resulting schema components. |
| * |
| * @throws IllegalArgumentException |
| * if SCD is syntactically incorrect. |
| * @param scd |
| * Schema component designator. See {@link SCD} for more details. |
| * @param nsContext |
| * The namespace context in which SCD is evaluated. Cannot be null. |
| * @return |
| * Can be empty but never null. |
| */ |
| Collection<XSComponent> select(String scd, NamespaceContext nsContext); |
| |
| /** |
| * Evaluates a schema component designator against this schema component |
| * and returns the first resulting schema component. |
| * |
| * @throws IllegalArgumentException |
| * if SCD is syntactically incorrect. |
| * @param scd |
| * Schema component designator. See {@link SCD} for more details. |
| * @param nsContext |
| * The namespace context in which SCD is evaluated. Cannot be null. |
| * @return |
| * null if the SCD didn't match anything. If the SCD matched more than one node, |
| * the first one will be returned. |
| */ |
| XSComponent selectSingle(String scd, NamespaceContext nsContext); |
| } |