## org.apache.xerces.impl.xs
Class XSModelImpl

    java.lang.Object
      |
      +--org.apache.xerces.impl.xs.XSModelImpl

All Implemented Interfaces:
  org.apache.xerces.xs.XSModel

public class XSModelImpl
extends java.lang.Object
implements org.apache.xerces.xs.XSModel

Implements XSModel: a read-only interface that represents an XML Schema, which could be components from different namespaces.

# INTERNAL:

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

Version:
  $Id: XSModelImpl.java 446734 2006-09-15 20:51:23Z mrglavas $
Author:
  Sandy Gao, IBM

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

Method Summary
`org.apache.xerces.xs.XSObjectList` `getAnnotations()` {annotations} A set of annotations.
`org.apache.xerces.xs.XSAttributeDeclaration` `getAttributeDeclaration(java.lang.String name, java.lang.String namespace)` Convenience method.
`org.apache.xerces.xs.XSAttributeGroupDefinition` `getAttributeGroup(java.lang.String name, java.lang.String namespace)` 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.XSModelGroupDefinition` `getModelGroupDefinition(java.lang.String name, java.lang.String namespace)` 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.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.
`boolean` `hasIDConstraints()` REVISIT: to expose identity constraints from XSModel.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

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()

  Description copied from interface: `org.apache.xerces.xs.XSModel`
  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.

### 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.

### 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.

### 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.

### 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.

### 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`
  See Also:
    `XSModel.getNotationDeclaration(String, String)`

### getAnnotations

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

  {annotations} A set of annotations.
  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)

  Description copied from interface: `org.apache.xerces.xs.XSModel`
  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`
  Following copied from 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.

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