SchemaComponent
Represents a schema type.
SchemaType is the metadata "type" class for XmlObject
, and it plays the
analogous role for
XmlObject
that
Class
plays for
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
SchemaGlobalElement
,
SchemaGlobalAttribute
,
SchemaModelGroup
, or
SchemaAttributeGroup
.
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:
XmlObject.type
(corresponding to xs:anyType) and XmlBeans.NO_TYPE
,
respectively. The first type is a base type of all other
types. The other type indicates the absence of type information
and, at least in set-theoretic terms, is a subtype of all other types.
XmlAnySimpleType.type
,
corresponding to xs:anySimpleType. Only XmlObject.type and
XmlAnySimpleType.type return true
for SchemaType.isURType()
, and
only XmlBeans.NO_TYPE returns true
for SchemaType.isNoType()
.
SchemaType.isDocumentType()
and SchemaType.isAttributeType()
. Other
than their anonymity (lack of a type name) and their appearance
only at the root of an instance, they are otherwise just like
ordinary complex types.
SchemaType.isSimpleType()
.
Complex types are consdered to be all the types that are
not simple.
SchemaType.getSimpleVariety()
.
It will return either SchemaType.ATOMIC
, SchemaType.LIST
, or
SchemaType.UNION
.
SchemaType.ATOMIC
simple type is always based on one of the
20 built-in primitive schema types. You can determine
the underlying primitive type for an atomic simple type
by calling SchemaType.getPrimitiveType()
. An atomic type
may add facet restrictions on top of the primitive type,
and these facets can be explored using SchemaType.getFacet(int)
,
SchemaType.getWhiteSpaceRule()
, SchemaType.matchPatternFacet(String)
,
SchemaType.getEnumerationValues()
, and related methods.
SchemaType.LIST
simple type is always based on another non-list
simple type. The underlying list item type can be obtained
by using SchemaType.getListItemType()
.
SchemaType.UNION
simple type is always composed out of a number of
other simple types. The direct members of the union can
be obtained by SchemaType.getUnionMemberTypes()
. When unions
consist of other unions, it is useful to know useful to know
the "leaves of the union tree", so the
set of non-union types making up the union can be obtained
by SchemaType.getUnionConstituentTypes()
. The closure of the
entire "union tree" is SchemaType.getUnionSubTypes()
(this includes
the type itself). For
simple unions that do not consist of other unions, all three
of these sets are the same.
SchemaType.getContentType()
. This will return
SchemaType.EMPTY_CONTENT
, SchemaType.SIMPLE_CONTENT
,
SchemaType.ELEMENT_CONTENT
, or SchemaType.MIXED_CONTENT
.
SchemaType.EMPTY_CONTENT
, the content model will be null.
SchemaType.SIMPLE_CONTENT
, then it will extend the
simple type that describes the content. In addition, the type
may impose additional simple type facet restrictions; these can
be determined in the same way they are for a simple type.
SchemaType.ELEMENT_CONTENT
or SchemaType.MIXED_CONTENT
, then
the detailed content model can be determined by examining
the particle tree (which may be null for MIXED_CONTENT).
The particle tree can be obtained via SchemaType.getContentModel()
.
SchemaType.getElementProperties()
,
SchemaType.getAttributeProperties()
, and related methods rather than
examining the particle tree and attribute model directly.
Related Topics
SchemaTypeLoader
XmlObject.schemaType()
SimpleValue.instanceType()
SchemaComponent
Field Summary |
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int | |
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
public static final int |
|
Fields from interface com.bea.xml. |
|
Method Summary |
public boolean |
|
public boolean |
|
public |
|
public |
|
public |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public |
|
public int |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public int |
|
public |
|
public |
|
public |
|
public int |
|
public int |
|
public int |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public int |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public |
|
public int |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public boolean |
|
public | |
public int |
|
Methods from interface com.bea.xml. |
|
Field Detail |
public static final int ATOMIC
SchemaType.getSimpleVariety()
public static final int BTC_ANY_SIMPLE
XmlAnySimpleType.type
public static final int BTC_ANY_TYPE
XmlObject.type
public static final int BTC_ANY_URI
XmlAnyURI.type
public static final int BTC_BASE_64_BINARY
XmlBase64Binary.type
public static final int BTC_BOOLEAN
XmlBoolean.type
public static final int BTC_BYTE
XmlByte.type
public static final int BTC_DATE
XmlDate.type
public static final int BTC_DATE_TIME
XmlDateTime.type
public static final int BTC_DECIMAL
XmlDecimal.type
public static final int BTC_DOUBLE
XmlDouble.type
public static final int BTC_DURATION
XmlDuration.type
public static final int BTC_ENTITIES
XmlENTITIES.type
public static final int BTC_ENTITY
XmlENTITY.type
public static final int BTC_FIRST_PRIMITIVE
public static final int BTC_FLOAT
XmlFloat.type
public static final int BTC_G_DAY
XmlGDay.type
public static final int BTC_G_MONTH
XmlGMonth.type
public static final int BTC_G_MONTH_DAY
XmlGMonthDay.type
public static final int BTC_G_YEAR
XmlGYear.type
public static final int BTC_G_YEAR_MONTH
XmlGYearMonth.type
public static final int BTC_HEX_BINARY
XmlBase64Binary.type
public static final int BTC_ID
XmlID.type
public static final int BTC_IDREF
XmlIDREF.type
public static final int BTC_IDREFS
XmlIDREFS.type
public static final int BTC_INT
XmlInt.type
public static final int BTC_INTEGER
XmlInteger.type
public static final int BTC_LANGUAGE
XmlLanguage.type
public static final int BTC_LAST_BUILTIN
public static final int BTC_LAST_PRIMITIVE
public static final int BTC_LONG
XmlLong.type
public static final int BTC_NAME
XmlName.type
public static final int BTC_NCNAME
XmlNCName.type
public static final int BTC_NEGATIVE_INTEGER
XmlNegativeInteger.type
public static final int BTC_NMTOKEN
XmlNMTOKEN.type
public static final int BTC_NMTOKENS
XmlNMTOKENS.type
public static final int BTC_NON_NEGATIVE_INTEGER
XmlNonNegativeInteger.type
public static final int BTC_NON_POSITIVE_INTEGER
XmlNonPositiveInteger.type
public static final int BTC_NORMALIZED_STRING
XmlNormalizedString.type
public static final int BTC_NOT_BUILTIN
public static final int BTC_NOTATION
XmlNOTATION.type
public static final int BTC_POSITIVE_INTEGER
XmlPositiveInteger.type
public static final int BTC_QNAME
XmlQName.type
public static final int BTC_SHORT
XmlShort.type
public static final int BTC_STRING
XmlString.type
public static final int BTC_TIME
XmlTime.type
public static final int BTC_TOKEN
XmlToken.type
public static final int BTC_UNSIGNED_BYTE
XmlUnsignedByte.type
public static final int BTC_UNSIGNED_INT
XmlUnsignedInt.type
public static final int BTC_UNSIGNED_LONG
XmlUnsignedLong.type
public static final int BTC_UNSIGNED_SHORT
XmlUnsignedShort.type
public static final int DT_EXTENSION
SchemaType.getDerivationType()
.public static final int DT_NOT_DERIVED
SchemaType.getDerivationType()
.public static final int DT_RESTRICTION
SchemaType.getDerivationType()
.public static final int ELEMENT_CONTENT
SchemaType.getContentType()
.public static final int EMPTY_CONTENT
SchemaType.getContentType()
.public static final int FACET_ENUMERATION
SchemaType.getEnumerationValues()
insteadpublic static final int FACET_FRACTION_DIGITS
public static final int FACET_LENGTH
public static final int FACET_MAX_EXCLUSIVE
public static final int FACET_MAX_INCLUSIVE
public static final int FACET_MAX_LENGTH
public static final int FACET_MIN_EXCLUSIVE
public static final int FACET_MIN_INCLUSIVE
public static final int FACET_MIN_LENGTH
public static final int FACET_PATTERN
SchemaType.matchPatternFacet(String)
insteadpublic static final int FACET_TOTAL_DIGITS
public static final int FACET_WHITE_SPACE
SchemaType.getWhiteSpaceRule()
insteadpublic static final int LAST_BASIC_FACET
public static final int LAST_FACET
public static final int LAST_PROPERTY
public static final int LIST
SchemaType.getSimpleVariety()
public static final int MIXED_CONTENT
SchemaType.getContentType()
.public static final int NOT_COMPLEX_TYPE
SchemaType.getContentType()
.public static final int NOT_DECIMAL
SchemaType.getDecimalSize()
.public static final int NOT_SIMPLE
SchemaType.getSimpleVariety()
.public static final int PARTIAL_ORDER
SchemaType.ordered()
.public static final int PROPERTY_BOUNDED
Related Topics
public static final int PROPERTY_CARDINALITY
Related Topics
public static final int PROPERTY_NUMERIC
Related Topics
public static final int PROPERTY_ORDERED
Related Topics
public static final int SIMPLE_CONTENT
SchemaType.getContentType()
.public static final int SIZE_BIG_DECIMAL
BigDecimal
. See SchemaType.getDecimalSize()
.public static final int SIZE_BIG_INTEGER
BigInteger
. See SchemaType.getDecimalSize()
.public static final int SIZE_BYTE
SchemaType.getDecimalSize()
.public static final int SIZE_INT
SchemaType.getDecimalSize()
.public static final int SIZE_LONG
SchemaType.getDecimalSize()
.public static final int SIZE_SHORT
SchemaType.getDecimalSize()
.public static final int TOTAL_ORDER
SchemaType.ordered()
.public static final int UNION
SchemaType.getSimpleVariety()
public static final int UNORDERED
SchemaType.ordered()
.public static final int WS_COLLAPSE
SchemaType.getWhiteSpaceRule()
.public static final int WS_PRESERVE
SchemaType.getWhiteSpaceRule()
.public static final int WS_REPLACE
SchemaType.getWhiteSpaceRule()
.public static final int WS_UNSPECIFIED
SchemaType.getWhiteSpaceRule()
.
Method 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
publicReturns 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.SchemaStringEnumEntry
enumEntryForString(String
s)
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.
publicReturns 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.StringEnumAbstractBase
enumForString(String
s)
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)
public SchemaType
[] getAnonymousTypes()
The array of inner (anonymous) types defined
within this type.
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.
public SchemaAttributeModel
getAttributeModel()
Returns the attribute model for this complex type (with simple or complex content).
public SchemaProperty
[] getAttributeProperties()
Returns all the SchemaProperties corresponding to attributes.
publicReturns a SchemaProperty corresponding to an attribute within this complex type by looking up the attribute name.SchemaProperty
getAttributeProperty(QName
attrName)
publicReturns the type of an attribute based on the attribute name and the type system within which (wildcard) names are resolved.SchemaType
getAttributeType(QName
eltName,SchemaTypeLoader
wildcardTypeLoader)
public QName
getAttributeTypeAttributeName()
Returns the attribute qname if this is a attribute type,
or null otherwise.
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.
public SchemaType
getBaseType()
Returns base restriction or extension type. Unions and lists
return the anySimpleType.
public int getBuiltinTypeCode()Returns an integer for builtin types that can be used for quick comparison.
publicReturns common base type with the given type. The returned type is the most specific declared base type of both types.SchemaType
getCommonBaseType(SchemaType
type)
public SchemaField
getContainerField()
The parent schema element.
Null for top-level (named) types and document types.
public SchemaParticle
getContentModel()
Returns the complex content model for this complex type (with complex content).
public int getContentType()Returns
SchemaType.EMPTY_CONTENT
, SchemaType.SIMPLE_CONTENT
, SchemaType.ELEMENT_CONTENT
, or
SchemaType.MIXED_CONTENT
for complex types. For noncomplex types, returns
SchemaType.NOT_COMPLEX_TYPE
.
public int getDecimalSize()For atomic numeric restrictions of decimal only: the numeric size category. Takes into account min and max restrictions as well as totalDigits and fractionDigits facets.
Returns either SchemaType.NOT_DECIMAL
,
SchemaType.SIZE_BYTE
,
SchemaType.SIZE_SHORT
,
SchemaType.SIZE_INT
,
SchemaType.SIZE_LONG
,
SchemaType.SIZE_BIG_INTEGER
, or
SchemaType.SIZE_BIG_DECIMAL
.
public int getDerivationType()Returns an integer for the derivation type, either
SchemaType.DT_EXTENSION
, SchemaType.DT_RESTRICTION
, SchemaType.DT_NOT_DERIVED
.
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.
public SchemaProperty
[] getElementProperties()
Returns all the SchemaProperties corresponding to elements.
publicReturns a SchemaProperty corresponding to an element within this complex type by looking up the element name.SchemaProperty
getElementProperty(QName
eltName)
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.
publicReturns 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).SchemaType
getElementType(QName
eltName,QName
xsiType,SchemaTypeLoader
wildcardTypeLoader)
public XmlAnySimpleType
[] getEnumerationValues()
Returns the array of valid objects from the
enumeration facet, null if no enumeration defined.
public Class
getEnumJavaClass()
The Java class corresponding to the enumeration type for this schema type,
if applicable (or null if not an enumeration).
public XmlAnySimpleType
getFacet(int facetCode)
Returns the value of the given facet, or null if
none is set.
public String
getFullJavaImplName()
The fully-qualified Java type name of the implementation class.
public String
getFullJavaName()
The fully-qualified Java type name of the class.
public Class
getJavaClass()
The Java class corresponding to this schema type.
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.
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.
public SchemaType
getOuterType()
The outer schema type.
Null for top-level (named) types.
public String
[] getPatterns()
True
public SchemaType
getPrimitiveType()
For atomic types only: get the primitive type underlying this one.
Returns null if this is not an atomic type.
public SchemaProperty
[] getProperties()
Returns all the SchemaProperties within this complex type,
elements followed by attributes.
public SchemaType.Ref
getRef()
Retruns a SchemaType.Ref pointing to this schema type itself.
public String
getShortJavaImplName()
The short unqualfiied Java name for the implementation class.
public String
getShortJavaName()
The short unqualfiied Java name for the class.
public int getSimpleVariety()Returns whether the simple type is ATOMIC, UNION, or LIST. Returns
SchemaType.NOT_SIMPLE
, SchemaType.ATOMIC
, SchemaType.UNION
,
or SchemaType.LIST
.
public String
getSourceName()
Returns the filename for the XSD file from which this type
was loaded. Intended for use when debugging.
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.
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.
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.
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.
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 int getWhiteSpaceRule()For nonunion simple types: get the whitespace rule. This is either
SchemaType.WS_PRESERVE
, SchemaType.WS_REPLACE
, or
SchemaType.WS_COLLAPSE
. Returns SchemaType.WS_UNSPECIFIED
for unions and complex types.
public boolean hasAllContent()True if the complex content model for this complex type is an "all" group.
public boolean hasAttributeWildcards()True if this type permits wildcard attributes. See the attribute model for more information about which wildcards are allowed.
public boolean hasElementWildcards()True if this type permits element wildcards. See the content model for more information about which wildcards are allowed, and where.
public boolean hasPatternFacet()True if there are regex pattern facents
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
public boolean isAnonymousType()True if the Xsd type is anonymous (i.e., not top-level).
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.)
public boolean isBounded()True if bounded.
public boolean isBuiltinType()True for any of the 40+ built-in types.
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.)
public boolean isFacetFixed(int facetCode)True if the given facet is fixed.
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.
public boolean isNumeric()True if numeric.
public boolean isOrderSensitive()True if particles have same defaults, nillability, etc, that are invariant when order changes. Computed only for Javaized types.
public boolean isPrimitiveType()True for any of the 20 primitive types (plus anySimpleType)
public boolean isSimpleType()True for the anySimpleType and any restrictions/unions/lists.
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.
public boolean matchPatternFacet(String
s)
True if the given string matches the pattern facets.
Always true if there are no pattern facets.
publicCreates an immutable simple type value that does not reside in a tree.XmlAnySimpleType
newValue(Object
v)
public int ordered()True if ordered. Returns either
SchemaType.UNORDERED
,
SchemaType.PARTIAL_ORDER
, or SchemaType.TOTAL_ORDER
.