org.apache.xerces.impl.xs

## Class XSModelImpl

- java.lang.Object
- - java.util.AbstractCollection<E>
  - - java.util.AbstractList
    - - org.apache.xerces.impl.xs.XSModelImpl

- All Implemented Interfaces:
    java.lang.Iterable, java.util.Collection, java.util.List, org.apache.xerces.xs.XSModel, org.apache.xerces.xs.XSNamespaceItemList

      public final class XSModelImpl
      extends java.util.AbstractList
      implements org.apache.xerces.xs.XSModel, org.apache.xerces.xs.XSNamespaceItemList

  Implements XSModel: a read-only interface that represents an XML Schema, which could be components from different namespaces.
  Version:
    $Id: XSModelImpl.java 1024040 2010-10-18 22:08:41Z sandygao $
  Author:
    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 class java.util.AbstractList

      `modCount`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XSModelImpl(SchemaGrammar[] grammars)` Construct an XSModelImpl, by storing some grammars and grammars imported by them to this object.
    `XSModelImpl(SchemaGrammar[] grammars, short s4sVersion)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `get(int index)`
    `org.apache.xerces.xs.XSObjectList` | `getAnnotations()` [annotations]: a set of annotations if it exists, otherwise an empty `XSObjectList`.
    `org.apache.xerces.xs.XSAttributeDeclaration` | `getAttributeDeclaration(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSAttributeDeclaration` | `getAttributeDeclaration(java.lang.String name, java.lang.String namespace, java.lang.String loc)` Convenience method.
    `org.apache.xerces.xs.XSAttributeGroupDefinition` | `getAttributeGroup(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSAttributeGroupDefinition` | `getAttributeGroup(java.lang.String name, java.lang.String namespace, java.lang.String loc)` Convenience method.
    `org.apache.xerces.xs.XSNamedMap` | `getComponents(short objectType)` Returns a list of top-level components, i.e.
    `org.apache.xerces.xs.XSNamedMap` | `getComponentsByNamespace(short objectType, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSElementDeclaration` | `getElementDeclaration(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSElementDeclaration` | `getElementDeclaration(java.lang.String name, java.lang.String namespace, java.lang.String loc)` Convenience method.
    `org.apache.xerces.xs.XSIDCDefinition` | `getIDCDefinition(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSIDCDefinition` | `getIDCDefinition(java.lang.String name, java.lang.String namespace, java.lang.String loc)` Convenience method.
    `int` | `getLength()` The number of `XSNamespaceItem`s in the list.
    `org.apache.xerces.xs.XSModelGroupDefinition` | `getModelGroupDefinition(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSModelGroupDefinition` | `getModelGroupDefinition(java.lang.String name, java.lang.String namespace, java.lang.String loc)` Convenience method.
    `org.apache.xerces.xs.XSNamespaceItemList` | `getNamespaceItems()` A set of namespace schema information information items (of type `XSNamespaceItem`), one for each namespace name which appears as the target namespace of any schema component in the schema used for that assessment, and one for absent if any schema component in the schema had no target namespace.
    `org.apache.xerces.xs.StringList` | `getNamespaces()` Convenience method.
    `org.apache.xerces.xs.XSNotationDeclaration` | `getNotationDeclaration(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSNotationDeclaration` | `getNotationDeclaration(java.lang.String name, java.lang.String namespace, java.lang.String loc)`
    `org.apache.xerces.xs.XSObjectList` | `getSubstitutionGroup(org.apache.xerces.xs.XSElementDeclaration head)` Convenience method.
    `org.apache.xerces.xs.XSTypeDefinition` | `getTypeDefinition(java.lang.String name, java.lang.String namespace)` Convenience method.
    `org.apache.xerces.xs.XSTypeDefinition` | `getTypeDefinition(java.lang.String name, java.lang.String namespace, java.lang.String loc)` Convenience method.
    `boolean` | `hasIDConstraints()` REVISIT: to expose identity constraints from XSModel.
    `org.apache.xerces.xs.XSNamespaceItem` | `item(int index)` Returns the `index`th item in the collection or `null` if `index` is greater than or equal to the number of objects in the list.
    `java.util.Iterator` | `iterator()`
    `java.util.ListIterator` | `listIterator()`
    `java.util.ListIterator` | `listIterator(int index)`
    `int` | `size()`
    `java.lang.Object[]` | `toArray()`
    `java.lang.Object[]` | `toArray(java.lang.Object[] a)`

    - ### Methods inherited from class java.util.AbstractList

      `add, add, addAll, clear, equals, hashCode, indexOf, lastIndexOf, remove, removeRange, set, subList`

    - ### Methods inherited from class java.util.AbstractCollection

      `addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toString`

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

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

    - ### Methods inherited from interface java.util.List

      `add, add, addAll, addAll, clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, lastIndexOf, remove, remove, removeAll, retainAll, set, subList`

- - ### Constructor Detail

    - #### XSModelImpl

          public XSModelImpl(SchemaGrammar[] grammars)

      Construct an XSModelImpl, by storing some grammars and grammars imported by them to this object.
      Parameters:
        `grammars` - the array of schema grammars

    - #### XSModelImpl

          public XSModelImpl(SchemaGrammar[] grammars,
                     short s4sVersion)

  - ### Method Detail

    - #### getNamespaces

          public org.apache.xerces.xs.StringList getNamespaces()

      Convenience method. Returns a list of all namespaces that belong to this schema.
      Specified by:
        `getNamespaces` in interface `org.apache.xerces.xs.XSModel`
      Returns:
        A list of all namespaces that belong to this schema or `null` if all components don't have a targetNamespace.

    - #### getNamespaceItems

          public org.apache.xerces.xs.XSNamespaceItemList getNamespaceItems()

      A set of namespace schema information information items (of type `XSNamespaceItem`), one for each namespace name which appears as the target namespace of any schema component in the schema used for that assessment, and one for absent if any schema component in the schema had no target namespace. For more information see schema information.
      Specified by:
        `getNamespaceItems` in interface `org.apache.xerces.xs.XSModel`

    - #### getComponents

          public org.apache.xerces.xs.XSNamedMap getComponents(short objectType)

      Returns a list of top-level components, i.e. element declarations, attribute declarations, etc.
      Specified by:
        `getComponents` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `objectType` - The type of the declaration, i.e. `ELEMENT_DECLARATION`. Note that `XSTypeDefinition.SIMPLE_TYPE` and `XSTypeDefinition.COMPLEX_TYPE` can also be used as the `objectType` to retrieve only complex types or simple types, instead of all types.
      Returns:
        A list of top-level definitions of the specified type in `objectType` or an empty `XSNamedMap` if no such definitions exist.

    - #### getComponentsByNamespace

          public org.apache.xerces.xs.XSNamedMap getComponentsByNamespace(short objectType,
                                                                 java.lang.String namespace)

      Convenience method. Returns a list of top-level component declarations that are defined within the specified namespace, i.e. element declarations, attribute declarations, etc.
      Specified by:
        `getComponentsByNamespace` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `objectType` - The type of the declaration, i.e. `ELEMENT_DECLARATION`.
        `namespace` - The namespace to which the declaration belongs or `null` (for components with no target namespace).
      Returns:
        A list of top-level definitions of the specified type in `objectType` and defined in the specified `namespace` or an empty `XSNamedMap`.

    - #### getTypeDefinition

          public org.apache.xerces.xs.XSTypeDefinition getTypeDefinition(java.lang.String name,
                                                                java.lang.String namespace)

      Convenience method. Returns a top-level simple or complex type definition.
      Specified by:
        `getTypeDefinition` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
      Returns:
        An `XSTypeDefinition` or null if such definition does not exist.

    - #### getTypeDefinition

          public org.apache.xerces.xs.XSTypeDefinition getTypeDefinition(java.lang.String name,
                                                                java.lang.String namespace,
                                                                java.lang.String loc)

      Convenience method. Returns a top-level simple or complex type definition.
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
        `loc` - The schema location where the component was defined
      Returns:
        An `XSTypeDefinition` or null if such definition does not exist.

    - #### getAttributeDeclaration

          public org.apache.xerces.xs.XSAttributeDeclaration getAttributeDeclaration(java.lang.String name,
                                                                            java.lang.String namespace)

      Convenience method. Returns a top-level attribute declaration.
      Specified by:
        `getAttributeDeclaration` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the declaration.
        `namespace` - The namespace of the definition, otherwise null.
      Returns:
        A top-level attribute declaration or null if such declaration does not exist.

    - #### getAttributeDeclaration

          public org.apache.xerces.xs.XSAttributeDeclaration getAttributeDeclaration(java.lang.String name,
                                                                            java.lang.String namespace,
                                                                            java.lang.String loc)

      Convenience method. Returns a top-level attribute declaration.
      Parameters:
        `name` - The name of the declaration.
        `namespace` - The namespace of the definition, otherwise null.
        `loc` - The schema location where the component was defined
      Returns:
        A top-level attribute declaration or null if such declaration does not exist.

    - #### getElementDeclaration

          public org.apache.xerces.xs.XSElementDeclaration getElementDeclaration(java.lang.String name,
                                                                        java.lang.String namespace)

      Convenience method. Returns a top-level element declaration.
      Specified by:
        `getElementDeclaration` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the declaration.
        `namespace` - The namespace of the definition, otherwise null.
      Returns:
        A top-level element declaration or null if such declaration does not exist.

    - #### getElementDeclaration

          public org.apache.xerces.xs.XSElementDeclaration getElementDeclaration(java.lang.String name,
                                                                        java.lang.String namespace,
                                                                        java.lang.String loc)

      Convenience method. Returns a top-level element declaration.
      Parameters:
        `name` - The name of the declaration.
        `namespace` - The namespace of the definition, otherwise null.
        `loc` - The schema location where the component was defined
      Returns:
        A top-level element declaration or null if such declaration does not exist.

    - #### getAttributeGroup

          public org.apache.xerces.xs.XSAttributeGroupDefinition getAttributeGroup(java.lang.String name,
                                                                          java.lang.String namespace)

      Convenience method. Returns a top-level attribute group definition.
      Specified by:
        `getAttributeGroup` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
      Returns:
        A top-level attribute group definition or null if such definition does not exist.

    - #### getAttributeGroup

          public org.apache.xerces.xs.XSAttributeGroupDefinition getAttributeGroup(java.lang.String name,
                                                                          java.lang.String namespace,
                                                                          java.lang.String loc)

      Convenience method. Returns a top-level attribute group definition.
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
        `loc` - The schema location where the component was defined
      Returns:
        A top-level attribute group definition or null if such definition does not exist.

    - #### getModelGroupDefinition

          public org.apache.xerces.xs.XSModelGroupDefinition getModelGroupDefinition(java.lang.String name,
                                                                            java.lang.String namespace)

      Convenience method. Returns a top-level model group definition.
      Specified by:
        `getModelGroupDefinition` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
      Returns:
        A top-level model group definition definition or null if such definition does not exist.

    - #### getModelGroupDefinition

          public org.apache.xerces.xs.XSModelGroupDefinition getModelGroupDefinition(java.lang.String name,
                                                                            java.lang.String namespace,
                                                                            java.lang.String loc)

      Convenience method. Returns a top-level model group definition.
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
        `loc` - The schema location where the component was defined
      Returns:
        A top-level model group definition definition or null if such definition does not exist.

    - #### getIDCDefinition

          public org.apache.xerces.xs.XSIDCDefinition getIDCDefinition(java.lang.String name,
                                                              java.lang.String namespace)

      Convenience method. Returns a top-level model group definition.
      Specified by:
        `getIDCDefinition` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
      Returns:
        A top-level model group definition definition or null if such definition does not exist.

    - #### getIDCDefinition

          public org.apache.xerces.xs.XSIDCDefinition getIDCDefinition(java.lang.String name,
                                                              java.lang.String namespace,
                                                              java.lang.String loc)

      Convenience method. Returns a top-level model group definition.
      Parameters:
        `name` - The name of the definition.
        `namespace` - The namespace of the definition, otherwise null.
        `loc` - The schema location where the component was defined
      Returns:
        A top-level model group definition definition or null if such definition does not exist.

    - #### getNotationDeclaration

          public org.apache.xerces.xs.XSNotationDeclaration getNotationDeclaration(java.lang.String name,
                                                                          java.lang.String namespace)

      Description copied from interface: `org.apache.xerces.xs.XSModel`
      Convenience method. Returns a top-level notation declaration.
      Specified by:
        `getNotationDeclaration` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `name` - The name of the declaration.
        `namespace` - The namespace of the declaration, otherwise `null`.
      Returns:
        A top-level notation declaration or `null` if such a declaration does not exist.
      See Also:
        `XSModel.getNotationDeclaration(String, String)`

    - #### getNotationDeclaration

          public org.apache.xerces.xs.XSNotationDeclaration getNotationDeclaration(java.lang.String name,
                                                                          java.lang.String namespace,
                                                                          java.lang.String loc)

    - #### getAnnotations

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

      [annotations]: a set of annotations if it exists, otherwise an empty `XSObjectList`.
      Specified by:
        `getAnnotations` in interface `org.apache.xerces.xs.XSModel`

    - #### hasIDConstraints

          public boolean hasIDConstraints()

      REVISIT: to expose identity constraints from XSModel. For now, we only expose whether there are any IDCs. We also need to add these methods to the public XSModel interface.

    - #### getSubstitutionGroup

          public org.apache.xerces.xs.XSObjectList getSubstitutionGroup(org.apache.xerces.xs.XSElementDeclaration head)

      Convenience method. Returns a list containing the members of the substitution group for the given `XSElementDeclaration` or an empty `XSObjectList` if the substitution group contains no members.
      Specified by:
        `getSubstitutionGroup` in interface `org.apache.xerces.xs.XSModel`
      Parameters:
        `head` - The substitution group head.
      Returns:
        A list containing the members of the substitution group for the given `XSElementDeclaration` or an empty `XSObjectList` if the substitution group contains no members.

    - #### getLength

          public int getLength()

      The number of `XSNamespaceItem`s in the list. The range of valid child object indices is 0 to `length-1` inclusive.
      Specified by:
        `getLength` in interface `org.apache.xerces.xs.XSNamespaceItemList`

    - #### item

          public org.apache.xerces.xs.XSNamespaceItem item(int index)

      Returns the `index`th item in the collection or `null` if `index` is greater than or equal to the number of objects in the list. The index starts at 0.
      Specified by:
        `item` in interface `org.apache.xerces.xs.XSNamespaceItemList`
      Parameters:
        `index` - index into the collection.
      Returns:
        The `XSNamespaceItem` at the `index`th position in the `XSNamespaceItemList`, or `null` if the index specified is not valid.

    - #### get

          public java.lang.Object get(int index)

      Specified by:
        `get` in interface `java.util.List`
      Specified by:
        `get` in class `java.util.AbstractList`

    - #### size

          public int size()

      Specified by:
        `size` in interface `java.util.Collection`
      Specified by:
        `size` in interface `java.util.List`
      Specified by:
        `size` in class `java.util.AbstractCollection`

    - #### iterator

          public java.util.Iterator iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable`
      Specified by:
        `iterator` in interface `java.util.Collection`
      Specified by:
        `iterator` in interface `java.util.List`
      Overrides:
        `iterator` in class `java.util.AbstractList`

    - #### listIterator

          public java.util.ListIterator listIterator()

      Specified by:
        `listIterator` in interface `java.util.List`
      Overrides:
        `listIterator` in class `java.util.AbstractList`

    - #### listIterator

          public java.util.ListIterator listIterator(int index)

      Specified by:
        `listIterator` in interface `java.util.List`
      Overrides:
        `listIterator` in class `java.util.AbstractList`

    - #### toArray

          public java.lang.Object[] toArray()

      Specified by:
        `toArray` in interface `java.util.Collection`
      Specified by:
        `toArray` in interface `java.util.List`
      Overrides:
        `toArray` in class `java.util.AbstractCollection`

    - #### toArray

          public java.lang.Object[] toArray(java.lang.Object[] a)

      Specified by:
        `toArray` in interface `java.util.Collection`
      Specified by:
        `toArray` in interface `java.util.List`
      Overrides:
        `toArray` in class `java.util.AbstractCollection`

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