116 lines
4.7 KiB
Java
116 lines
4.7 KiB
Java
/*
|
|
* Copyright (c) 1997, 2010, 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);
|
|
}
|