## com.saxonica.schema
Class SchemaStructure

    java.lang.Object
      com.saxonica.schema.SchemaStructure

All Implemented Interfaces:
  java.io.Serializable, javax.xml.transform.SourceLocator

Direct Known Subclasses:
  Assertion, AttributeDecl, AttributeGroupDecl, AttributeGroupReference, AttributeWildcard, ElementDecl, IdentityConstraint, IdentityField, IdentitySelector, ModelGroup, Notation, PreparedSchema, SimpleComponentReference, TypeAlternative, TypeReference, UserDefinedType, Wildcard

    public abstract class SchemaStructure

extends java.lang.Object
implements java.io.Serializable, javax.xml.transform.SourceLocator

The base class for all XML Schema stuctures. Generally represents a schema component in the sense of the XML Schema specification, though the correspondence is not always one to one. Maintains information about the location of the schema construct in an XML Schema document, for diagnostic purposes.

See Also:
  Serialized Form

Constructor Summary
`SchemaStructure()`

Method Summary
`void` `elaborate(SchemaCompiler compiler)` Elaborate the schema component: after reloading a serialized schema component model, this expands the component with derived information needed during validation episodes.
`boolean` `fixup(SchemaCompiler compiler)` Fixup references from this schema component to others
`int` `getColumnNumber()` Get the column number of the element defining this schema component.
`SchemaAwareConfiguration` `getConfiguration()` Get the schema containing this structure
`int` `getFixupStatus()` Get the current fixup status
`int` `getLineNumber()` Get the line number of the element defining this schema component, within its module.
`java.lang.String` `getPublicId()` Get the public ID of the containing module, if known.
`java.lang.String` `getSystemId()` Get the system identifier (URI) of the schema module (XML document) containing the definition of this component.
`int` `getValidationStatus()` Get the current validation status
`void` `lookForCycles(java.util.Stack references, SchemaCompiler compiler)` This method is called to look for cycles.
`void` `setConfiguration(SchemaAwareConfiguration config)` Set the configuration containing this structure
`void` `setFixupStatus(int status)` Set the fixup status
`void` `setLineNumber(int lineNumber)` Set the line number
`void` `setLocator(javax.xml.transform.SourceLocator locator)` Set the location information for this schema component.
`void` `setSystemId(java.lang.String systemId)` Set the system Id
`void` `setValidationStatus(int status)` Set the validation status

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

Constructor Detail

### SchemaStructure

    public SchemaStructure()

Method Detail

### getSystemId

    public java.lang.String getSystemId()

  Get the system identifier (URI) of the schema module (XML document) containing the definition of this component.

  Specified by:
    `getSystemId` in interface `javax.xml.transform.SourceLocator`
  Returns:
    the URI of the containing module.

### getPublicId

    public java.lang.String getPublicId()

  Get the public ID of the containing module, if known.

  Specified by:
    `getPublicId` in interface `javax.xml.transform.SourceLocator`
  Returns:
    This information is not currently maintained, the method always returns null.

### getLineNumber

    public int getLineNumber()

  Get the line number of the element defining this schema component, within its module. This will be as delivered by the SAX2 parser: that is, the line number of an element is generally the line number on which its start tag ends.

  Specified by:
    `getLineNumber` in interface `javax.xml.transform.SourceLocator`
  Returns:
    the line number where the relevant element can be found.

### getColumnNumber

    public int getColumnNumber()

  Get the column number of the element defining this schema component.

  Specified by:
    `getColumnNumber` in interface `javax.xml.transform.SourceLocator`
  Returns:
    -1: this information is not maintained.

### setLocator

    public void setLocator(javax.xml.transform.SourceLocator locator)

  Set the location information for this schema component.

  Parameters:
    `locator` - the location information.

### setSystemId

    public void setSystemId(java.lang.String systemId)

  Set the system Id

### setLineNumber

    public void setLineNumber(int lineNumber)

  Set the line number

### getValidationStatus

    public int getValidationStatus()

  Get the current validation status

### setValidationStatus

    public void setValidationStatus(int status)

  Set the validation status

### getFixupStatus

    public int getFixupStatus()

  Get the current fixup status

### setFixupStatus

    public void setFixupStatus(int status)

  Set the fixup status

### setConfiguration

    public void setConfiguration(SchemaAwareConfiguration config)

  Set the configuration containing this structure

### getConfiguration

    public SchemaAwareConfiguration getConfiguration()

  Get the schema containing this structure

### lookForCycles

    public void lookForCycles(java.util.Stack references,
                              SchemaCompiler compiler)
                       throws SchemaException,
                              UnresolvedReferenceException

  This method is called to look for cycles. The object implementing this method is required (a) to raise an exception if the object itself appears in the list of references, (b) to add itself to the list of references, and (c) to call the lookForCycles method on all the objects that it references. This is a dummy implementation that does nothing; it must be overridden for components that can participate in cycles.

  Parameters:
    `references` - A stack of objects that contain direct or indirect references to this object, and that must therefore not be referred to from this object.
    `compiler` -
  Throws:
    `SchemaException`
    `UnresolvedReferenceException`

### fixup

    public boolean fixup(SchemaCompiler compiler)
                  throws SchemaException

  Fixup references from this schema component to others

  Parameters:
    `compiler` - the SchemaCompiler, used primarily for reporting errors
  Returns:
    true if all references were fixed up successfully, false if dangling references were found
  Throws:
    `SchemaException`

### elaborate

    public void elaborate(SchemaCompiler compiler)
                   throws SchemaException

  Elaborate the schema component: after reloading a serialized schema component model, this expands the component with derived information needed during validation episodes. The model is assumed to be valid.

  Parameters:
    `compiler` -
  Throws:
    `SchemaException`

Copyright (c) Saxonica Limited. All rights reserved.