Home » xmlbeans-2.5.0-src » org.apache » xmlbeans » [javadoc | source]
org.apache.xmlbeans
public interface: SchemaType [javadoc | source]

All Implemented Interfaces:
    SchemaAnnotated, SchemaComponent

All Known Implementing Classes:
    SchemaTypeImpl

Represents a schema type.

SchemaType is the metadata "type" class for XmlObject , and it plays the analogous role for XmlObject that java.lang.Class plays for java.lang.Object .

Every XML Bean class corresponds to a singleton SchemaType object obtainable by ClassName.type (e.g., XmlNonPositiveInteger#type ), and every XML Bean instance has an actual SchemaType, obtainable by XmlObject#schemaType . The ClassName.type and schemaType() mechanisms are analogous to the ordinary Java ClassName.class and obj.getClass() mechanisms.

All schema types are represented by a SchemaType, this includes all types regardless of whether they are built-in or user-defined, compiled or uncompiled, simple or complex.

In addition, a compiled XML Bean type system includes special "document" schema types each representing a document containing nothing but a single element for each global element, and special "attribute" schema types each representing a fragment containing nothing but a single global attribute for global attribute.

Do not confuse Schema Types with other types of Schema Components such as Global Elements , Global Attributes , Named Model Groups , or Attribute Groups . SchemaType represents a Type component, not any of the other kinds of components. There are different kinds of metadata objects for the different Schema components.

The space of SchemaTypes is divided as follows:

Nested Class Summary:
public static final class  SchemaType.Ref  Used to allow on-demand loading of types. 
Field Summary
public static final  int DT_NOT_DERIVED    Not derived. True for XmlObject.type only. See #getDerivationType
public static final  int DT_RESTRICTION    Derived by restriction. See #getDerivationType
public static final  int DT_EXTENSION    Derived by extension. See #getDerivationType
public static final  int BTC_NOT_BUILTIN    Not a builtin type 
public static final  int BTC_ANY_TYPE    xs:anyType, aka XmlObject#type  
public static final  int BTC_FIRST_PRIMITIVE    The primitive types have codes between BTC_FIRST_PRIMITIVE and BTC_LAST_PRIMITIVE inclusive 
public static final  int BTC_ANY_SIMPLE    xs:anySimpleType, aka XmlAnySimpleType#type  
public static final  int BTC_BOOLEAN    xs:boolean, aka XmlBoolean#type  
public static final  int BTC_BASE_64_BINARY    xs:base64Binary, aka XmlBase64Binary#type  
public static final  int BTC_HEX_BINARY    xs:hexBinary, aka XmlBase64Binary#type  
public static final  int BTC_ANY_URI    xs:anyURI, aka XmlAnyURI#type  
public static final  int BTC_QNAME    xs:QName, aka XmlQName#type  
public static final  int BTC_NOTATION    xs:NOTATION, aka XmlNOTATION#type  
public static final  int BTC_FLOAT    xs:float, aka XmlFloat#type  
public static final  int BTC_DOUBLE    xs:double, aka XmlDouble#type  
public static final  int BTC_DECIMAL    xs:decimal, aka XmlDecimal#type  
public static final  int BTC_STRING    xs:string, aka XmlString#type  
public static final  int BTC_DURATION    xs:duration, aka XmlDuration#type  
public static final  int BTC_DATE_TIME    xs:dateTime, aka XmlDateTime#type  
public static final  int BTC_TIME    xs:time, aka XmlTime#type  
public static final  int BTC_DATE    xs:date, aka XmlDate#type  
public static final  int BTC_G_YEAR_MONTH    xs:gYearMonth, aka XmlGYearMonth#type  
public static final  int BTC_G_YEAR    xs:gYear, aka XmlGYear#type  
public static final  int BTC_G_MONTH_DAY    xs:gMonthDay, aka XmlGMonthDay#type  
public static final  int BTC_G_DAY    xs:gDay, aka XmlGDay#type  
public static final  int BTC_G_MONTH    xs:gMonth, aka XmlGMonth#type  
public static final  int BTC_LAST_PRIMITIVE    The primitive types have codes between BTC_FIRST_PRIMITIVE and BTC_LAST_PRIMITIVE inclusive 
public static final  int BTC_INTEGER    xs:integer, aka XmlInteger#type  
public static final  int BTC_LONG    xs:long, aka XmlLong#type  
public static final  int BTC_INT    xs:int, aka XmlInt#type  
public static final  int BTC_SHORT    xs:short, aka XmlShort#type  
public static final  int BTC_BYTE    xs:byte, aka XmlByte#type  
public static final  int BTC_NON_POSITIVE_INTEGER    xs:nonPositiveInteger, aka XmlNonPositiveInteger#type  
public static final  int BTC_NEGATIVE_INTEGER    xs:NegativeInteger, aka XmlNegativeInteger#type  
public static final  int BTC_NON_NEGATIVE_INTEGER    xs:nonNegativeInteger, aka XmlNonNegativeInteger#type  
public static final  int BTC_POSITIVE_INTEGER    xs:positiveInteger, aka XmlPositiveInteger#type  
public static final  int BTC_UNSIGNED_LONG    xs:unsignedLong, aka XmlUnsignedLong#type  
public static final  int BTC_UNSIGNED_INT    xs:unsignedInt, aka XmlUnsignedInt#type  
public static final  int BTC_UNSIGNED_SHORT    xs:unsignedShort, aka XmlUnsignedShort#type  
public static final  int BTC_UNSIGNED_BYTE    xs:unsignedByte, aka XmlUnsignedByte#type  
public static final  int BTC_NORMALIZED_STRING    xs:normalizedString, aka XmlNormalizedString#type  
public static final  int BTC_TOKEN    xs:token, aka XmlToken#type  
public static final  int BTC_NAME    xs:Name, aka XmlName#type  
public static final  int BTC_NCNAME    xs:NCName, aka XmlNCName#type  
public static final  int BTC_LANGUAGE    xs:language, aka XmlLanguage#type  
public static final  int BTC_ID    xs:ID, aka XmlID#type  
public static final  int BTC_IDREF    xs:IDREF, aka XmlIDREF#type  
public static final  int BTC_IDREFS    xs:IDREFS, aka XmlIDREFS#type  
public static final  int BTC_ENTITY    xs:ENTITY, aka XmlENTITY#type  
public static final  int BTC_ENTITIES    xs:ENTITIES, aka XmlENTITIES#type  
public static final  int BTC_NMTOKEN    xs:NMTOKEN, aka XmlNMTOKEN#type  
public static final  int BTC_NMTOKENS    xs:NMTOKENS, aka XmlNMTOKENS#type  
public static final  int BTC_LAST_BUILTIN     
public static final  int NOT_COMPLEX_TYPE    Not a complex type. See #getContentType()
public static final  int EMPTY_CONTENT    Empty content. See #getContentType()
public static final  int SIMPLE_CONTENT    Simple content. See #getContentType()
public static final  int ELEMENT_CONTENT    Element-only content. See #getContentType()
public static final  int MIXED_CONTENT    Mixed content. See #getContentType()
public static final  int FACET_LENGTH    xs:length facet 
public static final  int FACET_MIN_LENGTH    xs:minLength facet 
public static final  int FACET_MAX_LENGTH    xs:maxLength facet 
public static final  int FACET_MIN_EXCLUSIVE    xs:minExclusive facet 
public static final  int FACET_MIN_INCLUSIVE    xs:minInclusive facet 
public static final  int FACET_MAX_INCLUSIVE    xs:maxInclusive facet 
public static final  int FACET_MAX_EXCLUSIVE    xs:maxExclusive facet 
public static final  int FACET_TOTAL_DIGITS    xs:totalDigits facet 
public static final  int FACET_FRACTION_DIGITS    xs:fractionDigits facet 
public static final  int LAST_BASIC_FACET     
public static final  int FACET_WHITE_SPACE    xs:whiteSpace facet - use #getWhiteSpaceRule instead 
public static final  int FACET_PATTERN    xs:pattern facet - use #matchPatternFacet instead 
public static final  int FACET_ENUMERATION    xs:enumeration facet - use #getEnumerationValues instead 
public static final  int LAST_FACET    The last ordinary facet code 
public static final  int PROPERTY_ORDERED     
public static final  int PROPERTY_BOUNDED     
public static final  int PROPERTY_CARDINALITY     
public static final  int PROPERTY_NUMERIC     
public static final  int LAST_PROPERTY    The last property code 
public static  int UNORDERED    Unordered. See #ordered
public static  int PARTIAL_ORDER    Partially ordered. See #ordered
public static  int TOTAL_ORDER    Totally ordered. See #ordered
public static final  int NOT_SIMPLE    Not a simple type or simple content. See #getSimpleVariety
public static final  int ATOMIC    Atomic type. See #getSimpleVariety  
public static final  int UNION    Union type. See #getSimpleVariety  
public static final  int LIST    Simple list type. See #getSimpleVariety  
public static final  int NOT_DECIMAL    Not a decimal restriction. See #getDecimalSize
public static final  int SIZE_BYTE    Fits in a byte. See #getDecimalSize
public static final  int SIZE_SHORT    Fits in a short. See #getDecimalSize
public static final  int SIZE_INT    Fits in an int. See #getDecimalSize
public static final  int SIZE_LONG    Fits in a long. See #getDecimalSize
public static final  int SIZE_BIG_INTEGER    Fits in a java.math.BigInteger . See #getDecimalSize
public static final  int SIZE_BIG_DECIMAL    Fits in a java.math.BigDecimal . See #getDecimalSize
public static final  int WS_UNSPECIFIED    Whitespace rule unspecified. See #getWhiteSpaceRule
public static final  int WS_PRESERVE    Whitespace preserved. See #getWhiteSpaceRule
public static final  int WS_REPLACE    Whitespace replaced by ordinary space. See #getWhiteSpaceRule
public static final  int WS_COLLAPSE    Whitespace collapsed and trimmed. See #getWhiteSpaceRule
Method from org.apache.xmlbeans.SchemaType Summary:
blockExtension,   blockRestriction,   enumEntryForString,   enumForInt,   enumForString,   finalExtension,   finalList,   finalRestriction,   finalUnion,   getAnonymousTypes,   getAnonymousUnionMemberOrdinal,   getAttributeModel,   getAttributeProperties,   getAttributeProperty,   getAttributeType,   getAttributeTypeAttributeName,   getBaseEnumType,   getBaseType,   getBuiltinTypeCode,   getCommonBaseType,   getContainerField,   getContentBasedOnType,   getContentModel,   getContentType,   getDecimalSize,   getDerivationType,   getDerivedProperties,   getDocumentElementName,   getElementProperties,   getElementProperty,   getElementSequencer,   getElementType,   getEnumJavaClass,   getEnumerationValues,   getFacet,   getFullJavaImplName,   getFullJavaName,   getJavaClass,   getListItemType,   getName,   getOuterType,   getPatterns,   getPrimitiveType,   getProperties,   getRef,   getShortJavaImplName,   getShortJavaName,   getSimpleVariety,   getStringEnumEntries,   getTypeSystem,   getUnionCommonBaseType,   getUnionConstituentTypes,   getUnionMemberTypes,   getUnionSubTypes,   getUserData,   getWhiteSpaceRule,   hasAllContent,   hasAttributeWildcards,   hasElementWildcards,   hasPatternFacet,   hasStringEnumValues,   isAbstract,   isAnonymousType,   isAssignableFrom,   isAttributeType,   isBounded,   isBuiltinType,   isCompiled,   isDocumentType,   isFacetFixed,   isFinite,   isNoType,   isNumeric,   isOrderSensitive,   isPrimitiveType,   isSimpleType,   isSkippedAnonymousType,   isURType,   isValidSubstitution,   matchPatternFacet,   newValue,   ordered,   qnameSetForWildcardAttributes,   qnameSetForWildcardElements
Method from org.apache.xmlbeans.SchemaType Detail:
 public boolean blockExtension()
    True if extensions of this type cannot be substituted for this type
 public boolean blockRestriction()
    True if restrictions of this type cannot be substituted for this type
 public SchemaStringEnumEntry enumEntryForString(String s)
    Returns the string enum entry corresponding to the given enumerated string, or null if there is no match or this type is not a string enumeration.
 abstract public StringEnumAbstractBase enumForInt(int i)
    Returns the string enum value corresponding to the given enumerated string, or null if there is no match or this type is not a string enumeration.
 abstract public StringEnumAbstractBase enumForString(String s)
    Returns the string enum value corresponding to the given enumerated string, or null if there is no match or this type is not a string enumeration.
 public boolean finalExtension()
    True if other types cannot extend this type (only for complex types)
 public boolean finalList()
    True if list derivation of this type is prohibited (only for simple types)
 public boolean finalRestriction()
    True if other types cannot restrict this type
 public boolean finalUnion()
    True if union derivation of this type is prohibited (only for simple types)
 abstract public SchemaType[] getAnonymousTypes()
    The array of inner (anonymous) types defined within this type.
 abstract public int getAnonymousUnionMemberOrdinal()
    For anonymous types defined inside a union only: gets the integer indicating the declaration order of this type within the outer union type, or zero if this is not applicable. The first anonymous union member within a union type is numbered "1". Used to differentiate between different anonymous types.
 abstract public SchemaAttributeModel getAttributeModel()
    Returns the attribute model for this complex type (with simple or complex content).
 abstract public SchemaProperty[] getAttributeProperties()
    Returns all the SchemaProperties corresponding to attributes.
 abstract public SchemaProperty getAttributeProperty(QName attrName)
    Returns a SchemaProperty corresponding to an attribute within this complex type by looking up the attribute name.
 abstract public SchemaType getAttributeType(QName eltName,
    SchemaTypeLoader wildcardTypeLoader)
    Returns the type of an attribute based on the attribute name and the type system within which (wildcard) names are resolved.
 public QName getAttributeTypeAttributeName()
    Returns the attribute qname if this is a attribute type, or null otherwise.
 abstract public SchemaType getBaseEnumType()
    If this is a string enumeration, returns the most basic base schema type that this enuemration is based on. Otherwise returns null.
 abstract public SchemaType getBaseType()
    Returns base restriction or extension type. Unions and lists return the anySimpleType.
 abstract public int getBuiltinTypeCode()
    Returns an integer for builtin types that can be used for quick comparison.
 abstract public SchemaType getCommonBaseType(SchemaType type)
    Returns common base type with the given type. The returned type is the most specific declared base type of both types.
 abstract public SchemaField getContainerField()
    The parent schema element. Null for top-level (named) types and document types.
 public SchemaType getContentBasedOnType()
    For complex types with simple content returns the base type for this type's content. In most cases, this is the same as the base type, but it can also be an anonymous type.
 abstract public SchemaParticle getContentModel()
    Returns the complex content model for this complex type (with complex content).
 abstract public int getContentType()
 abstract public int getDecimalSize()
 public int getDerivationType()
 public SchemaProperty[] getDerivedProperties()
    Returns the SchemaProperties defined by this complex type, exclusive of the base type (if any).
 public QName getDocumentElementName()
    Returns the document element name if this is a document type, or null otherwise.
 abstract public SchemaProperty[] getElementProperties()
    Returns all the SchemaProperties corresponding to elements.
 abstract public SchemaProperty getElementProperty(QName eltName)
    Returns a SchemaProperty corresponding to an element within this complex type by looking up the element name.
 public SchemaTypeElementSequencer getElementSequencer()
    Returns a SchemaTypeElementSequencer object, which can then be used to validate complex content inside this element. This is useful for example for trying out different names and see which one would be valid as a child of this element.
 abstract public SchemaType getElementType(QName eltName,
    QName xsiType,
    SchemaTypeLoader wildcardTypeLoader)
    Returns the type of a child element based on the element name and an xsi:type attribute (and the type system within which names are resolved).
 abstract public Class getEnumJavaClass()
    The Java class corresponding to the enumeration type for this schema type, if applicable (or null if not an enumeration).
 abstract public XmlAnySimpleType[] getEnumerationValues()
    Returns the array of valid objects from the enumeration facet, null if no enumeration defined.
 abstract public XmlAnySimpleType getFacet(int facetCode)
    Returns the value of the given facet, or null if none is set.
 abstract public String getFullJavaImplName()
    The fully-qualified Java type name of the implementation class.
 abstract public String getFullJavaName()
    The fully-qualified Java type name of the class.
 abstract public Class getJavaClass()
    The Java class corresponding to this schema type.
 abstract public SchemaType getListItemType()
    For list types only: get the item type. This is the atomic or union type that is the type of every entry in the list.

    Returns null if this type is not a list.

 abstract public QName getName()
    The name used to describe the type in the schema. Null if the type is anonymous (nested), or if it is a document type.
 abstract public SchemaType getOuterType()
    The outer schema type. Null for top-level (named) types.
 abstract public String[] getPatterns()
    True
 abstract public SchemaType getPrimitiveType()
    For atomic types only: get the primitive type underlying this one.

    Returns null if this is not an atomic type.

 abstract public SchemaProperty[] getProperties()
    Returns all the SchemaProperties within this complex type, elements followed by attributes.
 public Ref getRef()
    Retruns a SchemaType.Ref pointing to this schema type itself.
 abstract public String getShortJavaImplName()
    The short unqualfiied Java name for the implementation class.
 abstract public String getShortJavaName()
    The short unqualfiied Java name for the class.
 abstract public int getSimpleVariety()
 public SchemaStringEnumEntry[] getStringEnumEntries()
    Returns the array of SchemaStringEnumEntries for this type: this array includes information about the java constant names used for each string enum entry.
 public SchemaTypeSystem getTypeSystem()
    Returns the SchemaTypeLoader in which this type was defined. Complex types are defined and used in exactly one schema type system, but simple types are defined in one type system and can be used in any number of type systems. The most common case is the builtin types, which are defined in the builtin type system and used elsewhere.
 abstract public SchemaType getUnionCommonBaseType()
    For union types only: get the most specific common base type of the constituent member types. May return a UR type.

    Returns null if this type is not a union.

 abstract public SchemaType[] getUnionConstituentTypes()
    For union types only: get the constituent member types. This returns only non-union types, so, for example, for unions of unions, this returns the flattened list of individual member types within the innermost unions.

    Returns null if this type is not a union.

 abstract public SchemaType[] getUnionMemberTypes()
    For union types only: get the shallow member types. This returns the declared member types of the union, so, for example if the type contains another union, the nested members of that union are NOT returned here.

    Returns null if this type is not a union.

 abstract public SchemaType[] getUnionSubTypes()
    For union types only: gets the full tree of member types. This computes the closure of the set returned by getUnionMemberTypes(), so, for example, it returns all the types nested within unions of unions as well as the top-level members; the set also includes the type itself. If you are seeking only the basic non-union consituents, use getUnionConstituentTypes.

    Returns null if this type is not a union.

 public Object getUserData()
    Returns user-specific information.
 abstract public int getWhiteSpaceRule()
 abstract public boolean hasAllContent()
    True if the complex content model for this complex type is an "all" group.
 abstract public boolean hasAttributeWildcards()
    True if this type permits wildcard attributes. See the attribute model for more information about which wildcards are allowed.
 abstract public boolean hasElementWildcards()
    True if this type permits element wildcards. See the content model for more information about which wildcards are allowed, and where.
 abstract public boolean hasPatternFacet()
    True if there are regex pattern facents
 abstract public boolean hasStringEnumValues()
    True if this is a string enum where an integer is assigned to each enumerated value.
 public boolean isAbstract()
    True if this type cannot be used directly in instances
 abstract public boolean isAnonymousType()
    True if the Xsd type is anonymous (i.e., not top-level).
 abstract public boolean isAssignableFrom(SchemaType type)
    True if the specified type derives from this type (or if it is the same type). Note that XmlObject.type (the anyType) is assignable from all type, and the XmlBeans.noType (the absence of a type) is assignable to all types.
 public boolean isAttributeType()
    True if this is a attribute type.

    Attribute types are generated for every global attribute. An attribute type is an unnamed complex type that contains exactly one attribute: we define these types, because they are the types of the "attribute documents" which contain the defined global attribute, and they all turn into Java types. (Named AttributenameAttribute.)

 abstract public boolean isBounded()
    True if bounded.
 abstract public boolean isBuiltinType()
    True for any of the 40+ built-in types.
 abstract public boolean isCompiled()
    True if this schema type was compiled to have a corresponding Java class.
 public boolean isDocumentType()
    True if this is a document type.

    Document types are generated for every global element. A document type is an unnamed complex type that contains exactly one element: we define these types, because they are the types of the "documents" which contain the defined global elements, and they all turn into Java types. (Named ElementnameDocument.)

 abstract public boolean isFacetFixed(int facetCode)
    True if the given facet is fixed.
 abstract public boolean isFinite()
    True if finite.
 public boolean isNoType()
    True for the type object that represents a the absence of a determined type. XML Objects whose type isNoType() are never valid.
 abstract public boolean isNumeric()
    True if numeric.
 abstract public boolean isOrderSensitive()
    True if particles have same defaults, nillability, etc, that are invariant when order changes. Computed only for Javaized types.
 abstract public boolean isPrimitiveType()
    True for any of the 20 primitive types (plus anySimpleType)
 abstract public boolean isSimpleType()
    True for the anySimpleType and any restrictions/unions/lists.
 abstract public boolean isSkippedAnonymousType()
    True if this anonymous type has no corresponding Java type. True for anonymous types nested within simple type restrictions.
 public boolean isURType()
    True for anyType and anySimpleType.
 public boolean isValidSubstitution(QName name)
    For document types, true if the given name can be substituted for the document element name.
 abstract public boolean matchPatternFacet(String s)
    True if the given string matches the pattern facets. Always true if there are no pattern facets.
 abstract public XmlAnySimpleType newValue(Object v)
    Creates an immutable simple type value that does not reside in a tree.
 abstract public int ordered()
 public QNameSet qnameSetForWildcardAttributes()
    Returns a QNameSet of attributes that may exist in wildcard buchets and are not explicitly defined in this schema type. Note: In this example: ... the returned QNameSet will not contain the qname of 'someAttribute'.
 public QNameSet qnameSetForWildcardElements()
    Returns a QNameSet of elements that may exist in wildcard buchets and are not explicitly defined in this schema type. Note: In this example: the returned QNameSet will not contain the qname of 'someElement'.