/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.xerces.xs;

This interface represents the Simple Type Definition schema component. This interface provides several query operations for facet components. Users can either retrieve the defined facets as XML Schema components, using the facets and the multiValueFacets attributes; or users can separately query a facet's properties using methods such as getLexicalFacetValue, isFixedFacet, etc.
/** * This interface represents the Simple Type Definition schema component. This * interface provides several query operations for facet components. Users * can either retrieve the defined facets as XML Schema components, using * the <code>facets</code> and the <code>multiValueFacets</code> attributes; * or users can separately query a facet's properties using methods such as * <code>getLexicalFacetValue</code>, <code>isFixedFacet</code>, etc. */
public interface XSSimpleTypeDefinition extends XSTypeDefinition { // Variety definitions
The variety is absent for the anySimpleType definition.
/** * The variety is absent for the anySimpleType definition. */
public static final short VARIETY_ABSENT = 0;
Atomic type.
/** * <code>Atomic</code> type. */
public static final short VARIETY_ATOMIC = 1;
List type.
/** * <code>List</code> type. */
public static final short VARIETY_LIST = 2;
Union type.
/** * <code>Union</code> type. */
public static final short VARIETY_UNION = 3; // Facets
No facets defined.
/** * No facets defined. */
public static final short FACET_NONE = 0;
4.3.1 Length
/** * 4.3.1 Length */
public static final short FACET_LENGTH = 1;
4.3.2 minLength.
/** * 4.3.2 minLength. */
public static final short FACET_MINLENGTH = 2;
4.3.3 maxLength.
/** * 4.3.3 maxLength. */
public static final short FACET_MAXLENGTH = 4;
4.3.4 pattern.
/** * 4.3.4 pattern. */
public static final short FACET_PATTERN = 8;
4.3.5 whitespace.
/** * 4.3.5 whitespace. */
public static final short FACET_WHITESPACE = 16;
4.3.7 maxInclusive.
/** * 4.3.7 maxInclusive. */
public static final short FACET_MAXINCLUSIVE = 32;
4.3.9 maxExclusive.
/** * 4.3.9 maxExclusive. */
public static final short FACET_MAXEXCLUSIVE = 64;
4.3.9 minExclusive.
/** * 4.3.9 minExclusive. */
public static final short FACET_MINEXCLUSIVE = 128;
4.3.10 minInclusive.
/** * 4.3.10 minInclusive. */
public static final short FACET_MININCLUSIVE = 256;
4.3.11 totalDigits .
/** * 4.3.11 totalDigits . */
public static final short FACET_TOTALDIGITS = 512;
4.3.12 fractionDigits.
/** * 4.3.12 fractionDigits. */
public static final short FACET_FRACTIONDIGITS = 1024;
4.3.5 enumeration.
/** * 4.3.5 enumeration. */
public static final short FACET_ENUMERATION = 2048;
A constant defined for the 'ordered' fundamental facet: not ordered.
/** * A constant defined for the 'ordered' fundamental facet: not ordered. */
public static final short ORDERED_FALSE = 0;
A constant defined for the 'ordered' fundamental facet: partially ordered.
/** * A constant defined for the 'ordered' fundamental facet: partially * ordered. */
public static final short ORDERED_PARTIAL = 1;
A constant defined for the 'ordered' fundamental facet: total ordered.
/** * A constant defined for the 'ordered' fundamental facet: total ordered. */
public static final short ORDERED_TOTAL = 2;
[variety]: one of {atomic, list, union} or absent.
/** * [variety]: one of {atomic, list, union} or absent. */
public short getVariety();
If variety is atomic the primitive type definition (a built-in primitive datatype definition or the simple ur-type definition) is available, otherwise null.
/** * If variety is <code>atomic</code> the primitive type definition (a * built-in primitive datatype definition or the simple ur-type * definition) is available, otherwise <code>null</code>. */
public XSSimpleTypeDefinition getPrimitiveType();
Returns the closest built-in type category this type represents or derived from. For example, if this simple type is a built-in derived type integer the INTEGER_DV is returned.
/** * Returns the closest built-in type category this type represents or * derived from. For example, if this simple type is a built-in derived * type integer the <code>INTEGER_DV</code> is returned. */
public short getBuiltInKind();
If variety is list the item type definition (an atomic or union simple type definition) is available, otherwise null.
/** * If variety is <code>list</code> the item type definition (an atomic or * union simple type definition) is available, otherwise * <code>null</code>. */
public XSSimpleTypeDefinition getItemType();
If variety is union the list of member type definitions (a non-empty sequence of simple type definitions) is available, otherwise an empty XSObjectList.
/** * If variety is <code>union</code> the list of member type definitions (a * non-empty sequence of simple type definitions) is available, * otherwise an empty <code>XSObjectList</code>. */
public XSObjectList getMemberTypes();
[facets]: all facets defined on this type. The value is a bit combination of FACET_XXX constants of all defined facets.
/** * [facets]: all facets defined on this type. The value is a bit * combination of FACET_XXX constants of all defined facets. */
public short getDefinedFacets();
Convenience method. [Facets]: check whether a facet is defined on this type.
Params:
  • facetName – The name of the facet.
Returns: True if the facet is defined, false otherwise.
/** * Convenience method. [Facets]: check whether a facet is defined on this * type. * @param facetName The name of the facet. * @return True if the facet is defined, false otherwise. */
public boolean isDefinedFacet(short facetName);
[facets]: all defined facets for this type which are fixed.
/** * [facets]: all defined facets for this type which are fixed. */
public short getFixedFacets();
Convenience method. [Facets]: check whether a facet is defined and fixed on this type.
Params:
  • facetName – The name of the facet.
Returns: True if the facet is fixed, false otherwise.
/** * Convenience method. [Facets]: check whether a facet is defined and * fixed on this type. * @param facetName The name of the facet. * @return True if the facet is fixed, false otherwise. */
public boolean isFixedFacet(short facetName);
Convenience method. Returns a value of a single constraining facet for this simple type definition. This method must not be used to retrieve values for enumeration and pattern facets.
Params:
  • facetName – The name of the facet, i.e. FACET_LENGTH, FACET_TOTALDIGITS. To retrieve the value for a pattern or an enumeration, see enumeration and pattern.
Returns:A value of the facet specified in facetName for this simple type definition or null.
/** * Convenience method. Returns a value of a single constraining facet for * this simple type definition. This method must not be used to retrieve * values for <code>enumeration</code> and <code>pattern</code> facets. * @param facetName The name of the facet, i.e. * <code>FACET_LENGTH, FACET_TOTALDIGITS</code>. * To retrieve the value for a pattern or * an enumeration, see <code>enumeration</code> and * <code>pattern</code>. * @return A value of the facet specified in <code>facetName</code> for * this simple type definition or <code>null</code>. */
public String getLexicalFacetValue(short facetName);
A list of enumeration values if it exists, otherwise an empty StringList.
/** * A list of enumeration values if it exists, otherwise an empty * <code>StringList</code>. */
public StringList getLexicalEnumeration();
A list of pattern values if it exists, otherwise an empty StringList.
/** * A list of pattern values if it exists, otherwise an empty * <code>StringList</code>. */
public StringList getLexicalPattern();
Fundamental Facet: ordered.
/** * Fundamental Facet: ordered. */
public short getOrdered();
Fundamental Facet: cardinality.
/** * Fundamental Facet: cardinality. */
public boolean getFinite();
Fundamental Facet: bounded.
/** * Fundamental Facet: bounded. */
public boolean getBounded();
Fundamental Facet: numeric.
/** * Fundamental Facet: numeric. */
public boolean getNumeric();
A list of constraining facets if it exists, otherwise an empty XSObjectList. Note: This method must not be used to retrieve values for enumeration and pattern facets.
/** * A list of constraining facets if it exists, otherwise an empty * <code>XSObjectList</code>. Note: This method must not be used to * retrieve values for <code>enumeration</code> and <code>pattern</code> * facets. */
public XSObjectList getFacets();
A list of enumeration and pattern constraining facets if it exists, otherwise an empty XSObjectList.
/** * A list of enumeration and pattern constraining facets if it exists, * otherwise an empty <code>XSObjectList</code>. */
public XSObjectList getMultiValueFacets();
A constraining facet object. An instance of XSFacet or XSMultiValueFacet.
/** * A constraining facet object. An instance of XSFacet or XSMultiValueFacet. */
public XSObject getFacet(int facetType);
A sequence of [annotations] or an empty XSObjectList.
/** * A sequence of [annotations] or an empty <code>XSObjectList</code>. */
public XSObjectList getAnnotations(); }