org.apache.xerces.impl.xs

## Class XSComplexTypeDecl

- java.lang.Object
- - org.apache.xerces.impl.xs.XSComplexTypeDecl

- All Implemented Interfaces:
    org.apache.xerces.xs.XSComplexTypeDefinition, org.apache.xerces.xs.XSObject, org.apache.xerces.xs.XSTypeDefinition, org.w3c.dom.TypeInfo
  Direct Known Subclasses:
    SchemaGrammar.XSAnyType

      public class XSComplexTypeDecl
      extends java.lang.Object
      implements org.apache.xerces.xs.XSComplexTypeDefinition, org.w3c.dom.TypeInfo

  The XML representation for a complexType schema component is a <complexType> element information item
  Version:
    $Id: XSComplexTypeDecl.java 965252 2010-07-18 16:05:34Z mrglavas $
  Author:
    Elena Litani, IBM, Sandy Gao, IBM

  # INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.

- - ### Field Summary

    - ### Fields inherited from interface org.apache.xerces.xs.XSComplexTypeDefinition

      `CONTENTTYPE_ELEMENT, CONTENTTYPE_EMPTY, CONTENTTYPE_MIXED, CONTENTTYPE_SIMPLE`

    - ### Fields inherited from interface org.apache.xerces.xs.XSTypeDefinition

      `COMPLEX_TYPE, SIMPLE_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XSComplexTypeDecl()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsTypeID()`
    `boolean` | `derivedFrom(java.lang.String ancestorNS, java.lang.String ancestorName, short derivationMethod)` Convenience method which checks if this type is derived from the given ancestor type.
    `boolean` | `derivedFromType(org.apache.xerces.xs.XSTypeDefinition ancestor, short derivationMethod)` Convenience method which checks if this type is derived from the given `ancestorType`.
    `boolean` | `getAbstract()` {abstract} A boolean.
    `org.apache.xerces.xs.XSObjectList` | `getAnnotations()` Optional.
    `boolean` | `getAnonymous()` A boolean that specifies if the type definition is anonymous.
    `org.apache.xerces.xs.XSObjectList` | `getAssertions()` A sequence of [assertions] or an empty `XSObjectList`.
    `XSAttributeGroupDecl` | `getAttrGrp()`
    `org.apache.xerces.xs.XSAttributeUse` | `getAttributeUse(java.lang.String namespace, java.lang.String name)`
    `org.apache.xerces.xs.XSObjectList` | `getAttributeUses()` {attribute uses} A set of attribute uses.
    `org.apache.xerces.xs.XSWildcard` | `getAttributeWildcard()` {attribute wildcard} Optional.
    `org.apache.xerces.xs.XSTypeDefinition` | `getBaseType()` {base type definition} Either a simple type definition or a complex type definition.
    `XSCMValidator` | `getContentModel(CMBuilder cmBuilder)`
    `XSCMValidator` | `getContentModel(CMBuilder cmBuilder, boolean forUPA)`
    `short` | `getContentType()` {content type} One of empty, a simple type definition (see `simpleType`, or mixed, element-only (see `cmParticle`).
    `org.apache.xerces.xs.XSObject` | `getContext()` A property that simplifies testing for the identity of anonymous type definitions.
    `short` | `getDerivationMethod()` {derivation method} Either extension or restriction.
    `short` | `getFinal()` {final} For complex type definition it is a subset of {extension, restriction}.
    `short` | `getFinalSet()`
    `java.lang.String` | `getName()` The `name` of this `XSObject` depending on the `XSObject` type.
    `java.lang.String` | `getNamespace()` The namespace URI of this node, or `null` if it is unspecified.
    `org.apache.xerces.xs.XSNamespaceItem` | `getNamespaceItem()` A namespace schema information item corresponding to the target namespace of the component, if it is globally declared; or `null` otherwise.
    `org.apache.xerces.xs.XSOpenContent` | `getOpenContent()` An open content
    `org.apache.xerces.xs.XSParticle` | `getParticle()` A particle for mixed or element-only content model, otherwise `null`
    `short` | `getProhibitedSubstitutions()` {prohibited substitutions}
    `org.apache.xerces.xs.XSSimpleTypeDefinition` | `getSimpleType()` A simple type definition corresponding to simple content model, otherwise `null`
    `java.lang.String` | `getTargetNamespace()`
    `short` | `getType()` Get the type of the object, i.e ELEMENT_DECLARATION.
    `short` | `getTypeCategory()` Return whether this type definition is a simple type or complex type.
    `java.lang.String` | `getTypeName()` The name of a type declared for the associated element or attribute, or `null` if unknown.
    `java.lang.String` | `getTypeNamespace()` The namespace of the type declared for the associated element or attribute or `null` if the element does not have declaration or if no namespace information is available.
    `boolean` | `isDerivedFrom(java.lang.String typeNamespaceArg, java.lang.String typeNameArg, int derivationMethod)` This method returns if there is a derivation between the reference type definition, i.e.
    `boolean` | `isDOMDerivedFrom(java.lang.String ancestorNS, java.lang.String ancestorName, int derivationMethod)` Checks if a type is derived from another given the the name, namespace and derivation method.
    `boolean` | `isFinal(short derivation)` {final} For complex type definition it is a subset of {extension, restriction}.
    `boolean` | `isProhibitedSubstitution(short prohibited)` {prohibited substitutions} A subset of {extension, restriction}.
    `void` | `reset()`
    `void` | `setAssertions(XSObjectListImpl assertions)`
    `void` | `setBaseType(org.apache.xerces.xs.XSTypeDefinition baseType)`
    `void` | `setContainsTypeID()`
    `void` | `setContext(org.apache.xerces.xs.XSObject context)`
    `void` | `setDerivationMethod(short derivationMethod)`
    `void` | `setIsAbstractType()`
    `void` | `setIsAnonymous()`
    `void` | `setName(java.lang.String name)`
    `void` | `setValues(java.lang.String name, java.lang.String targetNamespace, org.apache.xerces.xs.XSTypeDefinition baseType, short derivedBy, short schemaFinal, short block, short contentType, boolean isAbstract, XSAttributeGroupDecl attrGrp, XSSimpleType simpleType, XSParticleDecl particle, XSObjectListImpl annotations, XSOpenContentDecl openContent)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### XSComplexTypeDecl

          public XSComplexTypeDecl()

  - ### Method Detail

    - #### setValues

          public void setValues(java.lang.String name,
                       java.lang.String targetNamespace,
                       org.apache.xerces.xs.XSTypeDefinition baseType,
                       short derivedBy,
                       short schemaFinal,
                       short block,
                       short contentType,
                       boolean isAbstract,
                       XSAttributeGroupDecl attrGrp,
                       XSSimpleType simpleType,
                       XSParticleDecl particle,
                       XSObjectListImpl annotations,
                       XSOpenContentDecl openContent)

    - #### setName

          public void setName(java.lang.String name)

    - #### setBaseType

          public void setBaseType(org.apache.xerces.xs.XSTypeDefinition baseType)

    - #### getTypeCategory

          public short getTypeCategory()

      Description copied from interface: `org.apache.xerces.xs.XSTypeDefinition`
      Return whether this type definition is a simple type or complex type.
      Specified by:
        `getTypeCategory` in interface `org.apache.xerces.xs.XSTypeDefinition`

    - #### getTypeName

          public java.lang.String getTypeName()

      Description copied from interface: `org.w3c.dom.TypeInfo`
      The name of a type declared for the associated element or attribute, or `null` if unknown.
      Specified by:
        `getTypeName` in interface `org.w3c.dom.TypeInfo`

    - #### getFinalSet

          public short getFinalSet()

    - #### getTargetNamespace

          public java.lang.String getTargetNamespace()

    - #### containsTypeID

          public boolean containsTypeID()

    - #### setIsAbstractType

          public void setIsAbstractType()

    - #### setContainsTypeID

          public void setContainsTypeID()

    - #### setIsAnonymous

          public void setIsAnonymous()

    - #### setDerivationMethod

          public void setDerivationMethod(short derivationMethod)

    - #### setAssertions

          public void setAssertions(XSObjectListImpl assertions)

    - #### getContentModel

          public XSCMValidator getContentModel(CMBuilder cmBuilder)

    - #### getContentModel

          public XSCMValidator getContentModel(CMBuilder cmBuilder,
                                      boolean forUPA)

    - #### getAttrGrp

          public XSAttributeGroupDecl getAttrGrp()

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### derivedFromType

          public boolean derivedFromType(org.apache.xerces.xs.XSTypeDefinition ancestor,
                                short derivationMethod)

      Description copied from interface: `org.apache.xerces.xs.XSTypeDefinition`
      Convenience method which checks if this type is derived from the given `ancestorType`.
      Specified by:
        `derivedFromType` in interface `org.apache.xerces.xs.XSTypeDefinition`
      Parameters:
        `ancestor` - An ancestor type definition.
        `derivationMethod` - A bit combination representing a subset of { `DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST` }.
      Returns:
        True if this type is derived from `ancestorType` using only derivation methods from the `derivationMethod` .

    - #### derivedFrom

          public boolean derivedFrom(java.lang.String ancestorNS,
                            java.lang.String ancestorName,
                            short derivationMethod)

      Description copied from interface: `org.apache.xerces.xs.XSTypeDefinition`
      Convenience method which checks if this type is derived from the given ancestor type.
      Specified by:
        `derivedFrom` in interface `org.apache.xerces.xs.XSTypeDefinition`
      Parameters:
        `ancestorNS` - An ancestor type namespace.
        `ancestorName` - An ancestor type name.
        `derivationMethod` - A bit combination representing a subset of { `DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST` }.
      Returns:
        True if this type is derived from `ancestorType` using only derivation methods from the `derivationMethod` .

    - #### isDOMDerivedFrom

          public boolean isDOMDerivedFrom(java.lang.String ancestorNS,
                                 java.lang.String ancestorName,
                                 int derivationMethod)

      Checks if a type is derived from another given the the name, namespace and derivation method. See: http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#TypeInfo-isDerivedFrom
      Parameters:
        `ancestorNS` - The namspace of the ancestor type declaration
        `ancestorName` - The name of the ancestor type declaration
        `derivationMethod` - The derivation method
      Returns:
        boolean True if the ancestor type is derived from the reference type by the specifiied derivation method.

    - #### reset

          public void reset()

    - #### getType

          public short getType()

      Get the type of the object, i.e ELEMENT_DECLARATION.
      Specified by:
        `getType` in interface `org.apache.xerces.xs.XSObject`

    - #### getName

          public java.lang.String getName()

      The `name` of this `XSObject` depending on the `XSObject` type.
      Specified by:
        `getName` in interface `org.apache.xerces.xs.XSObject`

    - #### getAnonymous

          public boolean getAnonymous()

      A boolean that specifies if the type definition is anonymous. Convenience attribute. This is a field is not part of XML Schema component model.
      Specified by:
        `getAnonymous` in interface `org.apache.xerces.xs.XSTypeDefinition`

    - #### getNamespace

          public java.lang.String getNamespace()

      The namespace URI of this node, or `null` if it is unspecified. defines how a namespace URI is attached to schema components.
      Specified by:
        `getNamespace` in interface `org.apache.xerces.xs.XSObject`

    - #### getBaseType

          public org.apache.xerces.xs.XSTypeDefinition getBaseType()

      {base type definition} Either a simple type definition or a complex type definition.
      Specified by:
        `getBaseType` in interface `org.apache.xerces.xs.XSTypeDefinition`

    - #### getDerivationMethod

          public short getDerivationMethod()

      {derivation method} Either extension or restriction. The valid constant value for this `XSConstants` EXTENTION, RESTRICTION.
      Specified by:
        `getDerivationMethod` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### isFinal

          public boolean isFinal(short derivation)

      {final} For complex type definition it is a subset of {extension, restriction}. For simple type definition it is a subset of {extension, list, restriction, union}.
      Specified by:
        `isFinal` in interface `org.apache.xerces.xs.XSTypeDefinition`
      Parameters:
        `derivation` - Extension, restriction, list, union constants (defined in `XSConstants`).
      Returns:
        True if derivation is in the final set, otherwise false.

    - #### getFinal

          public short getFinal()

      {final} For complex type definition it is a subset of {extension, restriction}.
      Specified by:
        `getFinal` in interface `org.apache.xerces.xs.XSTypeDefinition`
      Returns:
        A bit flag that represents: {extension, restriction) or none for complexTypes; {extension, list, restriction, union} or none for simpleTypes;

    - #### getAbstract

          public boolean getAbstract()

      {abstract} A boolean. Complex types for which {abstract} is true must not be used as the {type definition} for the validation of element information items.
      Specified by:
        `getAbstract` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getAttributeUses

          public org.apache.xerces.xs.XSObjectList getAttributeUses()

      {attribute uses} A set of attribute uses.
      Specified by:
        `getAttributeUses` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getAttributeWildcard

          public org.apache.xerces.xs.XSWildcard getAttributeWildcard()

      {attribute wildcard} Optional. A wildcard.
      Specified by:
        `getAttributeWildcard` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getContentType

          public short getContentType()

      {content type} One of empty, a simple type definition (see `simpleType`, or mixed, element-only (see `cmParticle`).
      Specified by:
        `getContentType` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getSimpleType

          public org.apache.xerces.xs.XSSimpleTypeDefinition getSimpleType()

      A simple type definition corresponding to simple content model, otherwise `null`
      Specified by:
        `getSimpleType` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getParticle

          public org.apache.xerces.xs.XSParticle getParticle()

      A particle for mixed or element-only content model, otherwise `null`
      Specified by:
        `getParticle` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### isProhibitedSubstitution

          public boolean isProhibitedSubstitution(short prohibited)

      {prohibited substitutions} A subset of {extension, restriction}.
      Specified by:
        `isProhibitedSubstitution` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`
      Parameters:
        `prohibited` - extention or restriction constants (defined in `XSConstants`).
      Returns:
        True if prohibited is a prohibited substitution, otherwise false.

    - #### getProhibitedSubstitutions

          public short getProhibitedSubstitutions()

      {prohibited substitutions}
      Specified by:
        `getProhibitedSubstitutions` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`
      Returns:
        A bit flag corresponding to prohibited substitutions

    - #### getAnnotations

          public org.apache.xerces.xs.XSObjectList getAnnotations()

      Optional. Annotation.
      Specified by:
        `getAnnotations` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getNamespaceItem

          public org.apache.xerces.xs.XSNamespaceItem getNamespaceItem()

      Description copied from interface: `org.apache.xerces.xs.XSObject`
      A namespace schema information item corresponding to the target namespace of the component, if it is globally declared; or `null` otherwise.
      Specified by:
        `getNamespaceItem` in interface `org.apache.xerces.xs.XSObject`
      See Also:
        `XSObject.getNamespaceItem()`

    - #### getAttributeUse

          public org.apache.xerces.xs.XSAttributeUse getAttributeUse(java.lang.String namespace,
                                                            java.lang.String name)

    - #### getTypeNamespace

          public java.lang.String getTypeNamespace()

      Description copied from interface: `org.w3c.dom.TypeInfo`
      The namespace of the type declared for the associated element or attribute or `null` if the element does not have declaration or if no namespace information is available.
      Specified by:
        `getTypeNamespace` in interface `org.w3c.dom.TypeInfo`

    - #### isDerivedFrom

          public boolean isDerivedFrom(java.lang.String typeNamespaceArg,
                              java.lang.String typeNameArg,
                              int derivationMethod)

      Description copied from interface: `org.w3c.dom.TypeInfo`
      This method returns if there is a derivation between the reference type definition, i.e. the `TypeInfo` on which the method is being called, and the other type definition, i.e. the one passed as parameters.
      Specified by:
        `isDerivedFrom` in interface `org.w3c.dom.TypeInfo`
      Parameters:
        `typeNamespaceArg` - the namespace of the other type definition.
        `typeNameArg` - the name of the other type definition.
        `derivationMethod` - the type of derivation and conditions applied between two types, as described in the list of constants provided in this interface.
      Returns:
        If the document's schema is a DTD or no schema is associated with the document, this method will always return `false` . If the document's schema is an XML Schema, the method will `true` if the reference type definition is derived from the other type definition according to the derivation parameter. If the value of the parameter is `0` (no bit is set to `1` for the `derivationMethod` parameter), the method will return `true` if the other type definition can be reached by recursing any combination of {base type definition}, {item type definition}, or {member type definitions} from the reference type definition.

    - #### getOpenContent

          public org.apache.xerces.xs.XSOpenContent getOpenContent()

      Description copied from interface: `org.apache.xerces.xs.XSComplexTypeDefinition`
      An open content
      Specified by:
        `getOpenContent` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### getAssertions

          public org.apache.xerces.xs.XSObjectList getAssertions()

      Description copied from interface: `org.apache.xerces.xs.XSComplexTypeDefinition`
      A sequence of [assertions] or an empty `XSObjectList`.
      Specified by:
        `getAssertions` in interface `org.apache.xerces.xs.XSComplexTypeDefinition`

    - #### setContext

          public void setContext(org.apache.xerces.xs.XSObject context)

    - #### getContext

          public org.apache.xerces.xs.XSObject getContext()

      Description copied from interface: `org.apache.xerces.xs.XSTypeDefinition`
      A property that simplifies testing for the identity of anonymous type definitions. For complex type definition: 1. If the name [attribute] is present (with the exception of the type being redefined, number 2 below), then absent, otherwise the Element Declaration corresponding to that parent information item 2. In the case of redefine, the context of the redefined complex type is the redefining complex type definition For simple type definition, 1. If the name [attribute] is present (with the exception of the type being redefined, number 3 below), then absent 2. otherwise the appropriate case among the following: 2.1 If the parent element information item is attribute, then the corresponding Attribute Declaration 2.2 If the parent element information item is element, then the corresponding Element Declaration 2.3 If the parent element information item is list or union, then the Simple Type Definition corresponding to the grandparent simpleType element information item 2.4 otherwise (the parent element information item is restriction), the appropriate case among the following: 2.4.1 If the grandparent element information item is simpleType, then the Simple Type Definition corresponding to the grandparent 2.4.2 otherwise (the grandparent element information item is simpleContent), the Simple Type Definition which is the {content type} of the Complex Type Definition corresponding to the great-grandparent complexType element information item. 3. In the case of redefine, the context of the redefined simple type is the redefining simple type definition
      Specified by:
        `getContext` in interface `org.apache.xerces.xs.XSTypeDefinition`

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.