com.sun.xml.xsom.XSSchemaSet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of schema2proto-xsom Show documentation
Show all versions of schema2proto-xsom Show documentation
XML Schema Object Model (XSOM) is a Java library that allows applications to easily parse XML Schema
documents and inspect information in them. It is expected to be useful for applications that need to take XML
Schema as an input.
The newest version!
/*
* Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package com.sun.xml.xsom;
/*-
* #%L
* XSOM
* %%
* Copyright (C) 2019 - 2020 Entur
* %%
* Licensed under the EUPL, Version 1.1 or – as soon they will be
* approved by the European Commission - subsequent versions of the
* EUPL (the "Licence");
*
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl5
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
* #L%
*/
import javax.xml.namespace.NamespaceContext;
import java.util.Iterator;
import java.util.Collection;
/**
* Set of {@link XSSchema} objects.
*
* @author
* Kohsuke Kawaguchi ([email protected])
*/
public interface XSSchemaSet
{
XSSchema getSchema(String targetNamespace);
XSSchema getSchema(int idx);
int getSchemaSize();
Iterator iterateSchema();
/**
* Gets all {@link XSSchema}s in a single collection.
*/
Collection 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 iterateElementDecls();
/** Iterates all type definitions in all the schemas. */
Iterator iterateTypes();
/** Iterates all atribute declarations in all the schemas. */
Iterator iterateAttributeDecls();
/** Iterates all attribute group declarations in all the schemas. */
Iterator iterateAttGroupDecls();
/** Iterates all model group declarations in all the schemas. */
Iterator iterateModelGroupDecls();
/** Iterates all simple type definitions in all the schemas. */
Iterator iterateSimpleTypes();
/** Iterates all complex type definitions in all the schemas. */
Iterator iterateComplexTypes();
/** Iterates all notation declarations in all the schemas. */
Iterator iterateNotations();
/**
* Iterates all identity constraints in all the schemas.
*/
Iterator 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 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);
}