Class ComplexTypeImpl

    • Constructor Detail

    • Method Detail

      • asComplexType

        public XSComplexType asComplexType()
        Description copied from interface: XSType
        Casts this object to XSComplexType if possible, otherwise returns null.
        Specified by:
        asComplexType in interface XSType
      • isDerivedFrom

        public boolean isDerivedFrom​(XSType t)
        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 interface XSType
      • asSimpleType

        public XSSimpleType asSimpleType()
        Description copied from interface: XSType
        Casts this object to XSSimpleType if possible, otherwise returns null.
        Specified by:
        asSimpleType in interface XSType
      • isSimpleType

        public final boolean isSimpleType()
        Description copied from interface: XSType
        Returns true if this instanceof XSSimpleType.
        Specified by:
        isSimpleType in interface XSType
      • isComplexType

        public final boolean isComplexType()
        Description copied from interface: XSType
        Returns true if this instanceof XSComplexType.
        Specified by:
        isComplexType in interface XSType
      • getBaseType

        public XSType getBaseType()
        Description copied from interface: XSType
        Returns the base type of this type. Note that if this type represents xs:anyType, this method returns itself. This is awkward as an API, but it follows the schema specification.
        Specified by:
        getBaseType in interface XSType
        Returns:
        always non-null.
      • redefine

        public void redefine​(ComplexTypeImpl ct)
        Called when this complex type redefines the specified complex type.
      • 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 interface XSType
      • getScope

        public XSElementDecl 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 interface XSComplexType
        Returns:
        null if this complex type is global. Otherwise return the element declaration that contains this anonymous complex type.
      • isAbstract

        public boolean isAbstract()
        Description copied from interface: XSComplexType
        Checks if this complex type is declared as an abstract type.
        Specified by:
        isAbstract in interface XSComplexType
      • isFinal

        public boolean isFinal​(int derivationMethod)
        Specified by:
        isFinal in interface XSComplexType
      • 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 interface XSComplexType
      • setExplicitContent

        public void setExplicitContent​(XSContentType v)
      • getExplicitContent

        public XSContentType 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 interface XSComplexType
        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.
      • getAttributeUse

        public XSAttributeUse getAttributeUse​(java.lang.String nsURI,
                                              java.lang.String localName)
        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 interface XSAttContainer
      • listSubstitutables

        public XSType[] 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 interface XSType
      • getSubtypes

        public java.util.List<XSComplexType> 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 interface XSComplexType
        Returns:
      • getName

        public java.lang.String getName()
        Description copied from interface: XSDeclaration
        Gets the (local) name of the declaration.
        Specified by:
        getName in interface XSDeclaration
        Returns:
        null if this component is anonymous.
      • getTargetNamespace

        public java.lang.String 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 interface XSDeclaration
      • 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 interface XSDeclaration
      • 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 interface XSDeclaration