All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.xml.xsom.XSElementDecl Maven / Gradle / Ivy

Go to download

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.

There is a newer version: 4.0.5
Show newest version
/*
 * Copyright (c) 1997, 2021 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;

import java.util.List;
import java.util.Set;

/**
 * Element declaration.
 * 
 * @author
 *  Kohsuke Kawaguchi ([email protected])
 */
public interface XSElementDecl extends XSDeclaration, XSTerm
{
    /**
     * Gets the type of this element declaration.
     * @return
     *      always non-null.
     */
    XSType getType();

    boolean isNillable();

    /**
     * Gets the substitution head of this element, if any.
     * Otherwise null.
     */
    XSElementDecl getSubstAffiliation();

    /**
     * Returns all the {@link XSIdentityConstraint}s in this element decl.
     *
     * @return
     *      never null, but can be empty.
     */
    List getIdentityConstraints();

    /**
     * Checks the substitution excluded property of the schema component.
     * 
     * IOW, this checks the value of the final attribute
     * (plus finalDefault).
     * 
     * @param method
     *      Possible values are {@link XSType#EXTENSION} or
     *      XSType.RESTRICTION.
     */
    boolean isSubstitutionExcluded(int method);

    /**
     * Checks the diallowed substitution property of the schema component.
     * 
     * IOW, this checks the value of the block attribute
     * (plus blockDefault).
     * 
     * @param method
     *      Possible values are {@link XSType#EXTENSION},
     *      XSType.RESTRICTION, or XSType.SUBSTITUTION
     */
    boolean isSubstitutionDisallowed(int method);

    boolean isAbstract();

    /**
     * Returns the element declarations that can substitute
     * this element.
     * 
     * 

* IOW, this set returns all the element decls that satisfies * * the "Substitution Group OK" constraint. * * * @return * nun-null valid array. The return value always contains this element * decl itself. * * @deprecated * this method allocates a new array every time, so it could be * inefficient when working with a large schema. Use * {@link #getSubstitutables()} instead. */ @Deprecated XSElementDecl[] listSubstitutables(); /** * Returns the element declarations that can substitute * this element. * *

* IOW, this set returns all the element decls that satisfies * * the "Substitution Group OK" constraint. * * *

* Note that the above clause does NOT check for * abstract elements. So abstract elements may still show up * in the returned set. * * @return * nun-null unmodifiable list. * The returned list always contains this element decl itself. */ Set getSubstitutables(); /** * Returns true if this element declaration can be validly substituted * by the given declaration. * *

* Just a short cut of {@code getSubstitutables().contain(e);} */ boolean canBeSubstitutedBy(XSElementDecl e); // TODO: identitiy constraints // TODO: scope XmlString getDefaultValue(); XmlString getFixedValue(); /** * Used for javadoc schema generation * * @return * null if form attribute not present, * true if form attribute present and set to qualified, * false if form attribute present and set to unqualified. */ Boolean getForm(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy