Package com.sun.xml.xsom.impl
Class ComplexTypeImpl
java.lang.Object
com.sun.xml.xsom.impl.ComponentImpl
com.sun.xml.xsom.impl.AttributesHolder
com.sun.xml.xsom.impl.ComplexTypeImpl
- All Implemented Interfaces:
Ref.ComplexType
,Ref.Type
,XSAttContainer
,XSComplexType
,XSComponent
,XSDeclaration
,XSType
-
Field Summary
Fields inherited from class com.sun.xml.xsom.impl.AttributesHolder
attGroups, attributes, prohibitedAtts
Fields inherited from class com.sun.xml.xsom.impl.ComponentImpl
ownerDocument
Fields inherited from interface com.sun.xml.xsom.XSType
EXTENSION, RESTRICTION, SUBSTITUTION
-
Constructor Summary
ConstructorDescriptionComplexTypeImpl
(SchemaDocumentImpl _parent, AnnotationImpl _annon, Locator _loc, ForeignAttributesImpl _fa, String _name, boolean _anonymous, boolean _abstract, int _derivationMethod, Ref.Type _base, int _final, int _block, boolean _mixed) -
Method Summary
Modifier and TypeMethodDescription<T> T
apply
(XSFunction<T> function) Accepts a functor.Casts this object to XSComplexType if possible, otherwise returns null.Casts this object to XSSimpleType if possible, otherwise returns null.getAttributeUse
(String nsURI, String localName) Looks for the attribute use with the specified name from all the attribute uses that are directly/indirectly referenced from this component.Returns the attribute uses by looking at attribute groups and etc.Returns the base type of this type.The content of this complex type.int
Returns a list of element declarations of this type.Gets the explicit content of a complex type with a complex content that was derived by extension.getName()
Gets the (local) name of the declaration.If thisXSComplexType
is redefined by another complex type, return that component.int
Returns the number of complex types that redefine this component.getScope()
Gets the scope of this complex type.Returns a list of direct subtypes of this complex type.Target namespace to which this component belongs.getType()
Obtains a reference as a type.boolean
Checks if this complex type is declared as an abstract type.boolean
Deprecated.final boolean
Returns true ifthis instanceof XSComplexType
.boolean
Returns true if this type is derived from the specified type.boolean
isFinal
(int derivationMethod) final boolean
isGlobal()
Returns true if this declaration is a global declaration.final boolean
isLocal()
Returns true if this declaration is a local declaration.boolean
isMixed()
final boolean
Returns true ifthis instanceof XSSimpleType
.boolean
isSubstitutionProhibited
(int method) Roughly corresponds to the block attribute.Lists all the attribute uses that are directly/indirectly referenced from this component.XSType[]
Lists up types that can substitute this type by using xsi:type.void
Called when this complex type redefines the specified complex type.void
void
void
setScope
(XSElementDecl _scope) void
Set the local attribute wildcard.void
Accepts a visitor.Methods inherited from class com.sun.xml.xsom.impl.AttributesHolder
addAttGroup, addAttributeUse, addProhibitedAttribute, getAttGroups, getDeclaredAttributeUse, getDeclaredAttributeUses, iterateAttGroups, iterateDeclaredAttributeUses
Methods inherited from class com.sun.xml.xsom.impl.ComponentImpl
getAnnotation, getAnnotation, getForeignAttribute, getForeignAttributes, getLocator, getOwnerSchema, getRoot, getSourceDocument, select, selectSingle, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.sun.xml.xsom.XSAttContainer
getAttGroups, getDeclaredAttributeUse, getDeclaredAttributeUses, iterateAttGroups, iterateDeclaredAttributeUses
Methods inherited from interface com.sun.xml.xsom.XSComponent
getAnnotation, getAnnotation, getForeignAttribute, getForeignAttributes, getLocator, getOwnerSchema, getRoot, getSourceDocument, select, selectSingle
Methods inherited from interface com.sun.xml.xsom.XSDeclaration
getName, getTargetNamespace, isAnonymous, isGlobal, isLocal
-
Constructor Details
-
ComplexTypeImpl
public ComplexTypeImpl(SchemaDocumentImpl _parent, AnnotationImpl _annon, Locator _loc, ForeignAttributesImpl _fa, String _name, boolean _anonymous, boolean _abstract, int _derivationMethod, Ref.Type _base, int _final, int _block, boolean _mixed)
-
-
Method Details
-
asComplexType
Description copied from interface:XSType
Casts this object to XSComplexType if possible, otherwise returns null.- Specified by:
asComplexType
in interfaceXSType
-
isDerivedFrom
Description copied from interface:XSType
Returns true if this type is derived from the specified type.Note that
t.isDerivedFrom(t)
returns true.- Specified by:
isDerivedFrom
in interfaceXSType
-
asSimpleType
Description copied from interface:XSType
Casts this object to XSSimpleType if possible, otherwise returns null.- Specified by:
asSimpleType
in interfaceXSType
-
isSimpleType
public final boolean isSimpleType()Description copied from interface:XSType
Returns true ifthis instanceof XSSimpleType
.- Specified by:
isSimpleType
in interfaceXSType
-
isComplexType
public final boolean isComplexType()Description copied from interface:XSType
Returns true ifthis instanceof XSComplexType
.- Specified by:
isComplexType
in interfaceXSType
-
getDerivationMethod
public int getDerivationMethod()- Specified by:
getDerivationMethod
in interfaceXSType
-
getBaseType
Description copied from interface:XSType
Returns the base type of this type. Note that if this type representsxs:anyType
, this method returns itself. This is awkward as an API, but it follows the schema specification.- Specified by:
getBaseType
in interfaceXSType
- Returns:
- always non-null.
-
redefine
Called when this complex type redefines the specified complex type. -
getRedefinedBy
Description copied from interface:XSComplexType
If thisXSComplexType
is redefined by another complex type, return that component.- Specified by:
getRedefinedBy
in interfaceXSComplexType
- Specified by:
getRedefinedBy
in interfaceXSType
- Returns:
- null if this component has not been redefined.
-
getRedefinedCount
public int getRedefinedCount()Description copied from interface:XSType
Returns the number of complex types that redefine this component.For example, if A is redefined by B and B is redefined by C, A.getRedefinedCount()==2, B.getRedefinedCount()==1, and C.getRedefinedCount()==0.
- Specified by:
getRedefinedCount
in interfaceXSType
-
getScope
Description copied from interface:XSComplexType
Gets the scope of this complex type. This is not a property defined in the schema spec.- Specified by:
getScope
in interfaceXSComplexType
- Returns:
- null if this complex type is global. Otherwise return the element declaration that contains this anonymous complex type.
-
setScope
-
isAbstract
public boolean isAbstract()Description copied from interface:XSComplexType
Checks if this complex type is declared as an abstract type.- Specified by:
isAbstract
in interfaceXSComplexType
-
setWildcard
Set the local attribute wildcard.- Specified by:
setWildcard
in classAttributesHolder
-
getAttributeWildcard
- Specified by:
getAttributeWildcard
in interfaceXSAttContainer
-
isFinal
public boolean isFinal(int derivationMethod) - Specified by:
isFinal
in interfaceXSComplexType
-
isSubstitutionProhibited
public boolean isSubstitutionProhibited(int method) Description copied from interface:XSComplexType
Roughly corresponds to the block attribute. But see the spec for gory detail.- Specified by:
isSubstitutionProhibited
in interfaceXSComplexType
-
setContentType
-
getContentType
Description copied from interface:XSComplexType
The content of this complex type.- Specified by:
getContentType
in interfaceXSComplexType
- Returns:
- always non-null.
-
setExplicitContent
-
getExplicitContent
Description copied from interface:XSComplexType
Gets the explicit content of a complex type with a complex content that was derived by extension.Informally, the "explicit content" is the portion of the content model added in this derivation. IOW, it's a delta between the base complex type and this complex type.
For example, when a complex type T2 derives fom T1, then:
content type of T2 = SEQUENCE( content type of T1, explicit content of T2 )
- Specified by:
getExplicitContent
in interfaceXSComplexType
- Returns:
- If this complex type is derived by restriction or has a simple content, this method returns null. IOW, this method only works for a complex type with a complex content derived by extension from another complex type.
-
isMixed
public boolean isMixed()- Specified by:
isMixed
in interfaceXSComplexType
-
getAttributeUse
Description copied from interface:XSAttContainer
Looks for the attribute use with the specified name from all the attribute uses that are directly/indirectly referenced from this component.This is the exact implementation of the "attribute use" schema component.
- Specified by:
getAttributeUse
in interfaceXSAttContainer
-
iterateAttributeUses
Description copied from interface:XSAttContainer
Lists all the attribute uses that are directly/indirectly referenced from this component.This is the exact implementation of the "attribute use" schema component.
- Specified by:
iterateAttributeUses
in interfaceXSAttContainer
- Overrides:
iterateAttributeUses
in classAttributesHolder
-
getAttributeUses
Description copied from class:AttributesHolder
Returns the attribute uses by looking at attribute groups and etc. Searching for the base type is done inComplexTypeImpl
.- Specified by:
getAttributeUses
in interfaceXSAttContainer
- Overrides:
getAttributeUses
in classAttributesHolder
-
listSubstitutables
Description copied from interface:XSType
Lists up types that can substitute this type by using xsi:type. Includes this type itself.This method honors the block flag.
- Specified by:
listSubstitutables
in interfaceXSType
-
visit
Description copied from interface:XSComponent
Accepts a visitor.- Specified by:
visit
in interfaceXSComponent
-
apply
Description copied from interface:XSComponent
Accepts a functor.- Specified by:
apply
in interfaceXSComponent
-
getType
Description copied from interface:Ref.Type
Obtains a reference as a type.- Specified by:
getType
in interfaceRef.ComplexType
- Specified by:
getType
in interfaceRef.Type
-
getSubtypes
Description copied from interface:XSComplexType
Returns a list of direct subtypes of this complex type. If the type is not subtyped, returns empty list. Doesn't return null. Note that the complex type may be extended outside of the scope of the schemaset known to XSOM.- Specified by:
getSubtypes
in interfaceXSComplexType
- Returns:
-
getElementDecls
Description copied from interface:XSComplexType
Returns a list of element declarations of this type.- Specified by:
getElementDecls
in interfaceXSComplexType
- Returns:
-
getName
Description copied from interface:XSDeclaration
Gets the (local) name of the declaration.- Specified by:
getName
in interfaceXSDeclaration
- Returns:
- null if this component is anonymous.
-
getTargetNamespace
Description copied from interface:XSDeclaration
Target namespace to which this component belongs.""
is used to represent the default no namespace.- Specified by:
getTargetNamespace
in interfaceXSDeclaration
-
isAnonymous
public boolean isAnonymous()Deprecated.- Specified by:
isAnonymous
in interfaceXSDeclaration
-
isGlobal
public final boolean isGlobal()Description copied from interface:XSDeclaration
Returns true if this declaration is a global declaration. Global declarations are those declaration that can be enumerated through the schema object.- Specified by:
isGlobal
in interfaceXSDeclaration
-
isLocal
public final boolean isLocal()Description copied from interface:XSDeclaration
Returns true if this declaration is a local declaration. Equivalent of!isGlobal()
- Specified by:
isLocal
in interfaceXSDeclaration
-