## com.saxonica.sdoc
Class XSDAttributeGroup

    java.lang.Object
      net.sf.saxon.tree.NodeImpl
          net.sf.saxon.tree.ElementImpl
              net.sf.saxon.tree.ElementWithAttributes
                  com.saxonica.sdoc.SchemaElement
                      com.saxonica.sdoc.XSDAttributeGroup

All Implemented Interfaces:
  Source, SourceLocator, FingerprintedNode, Item, NodeInfo, ValueRepresentation

    public class XSDAttributeGroup

extends SchemaElement

An xs:attributeGroup element in an XML Schema document

Field Summary

Fields inherited from class com.saxonica.sdoc.SchemaElement
`REQUIRE_NULL_NS, REQUIRE_TARGET_NS, USE_DEFAULT_NS`

Fields inherited from class net.sf.saxon.tree.NodeImpl
`NODE_LETTER`

Fields inherited from interface net.sf.saxon.om.NodeInfo
`ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES`

Fields inherited from interface net.sf.saxon.om.ValueRepresentation
`EMPTY_VALUE_ARRAY`

Constructor Summary
`XSDAttributeGroup()` Creates a new AttributeGroup element

Method Summary
`void` `addChild(NodeImpl node, int index)` Add a child node to this node.
`void` `compact(int size)` Compact the space used by this node
`AxisIterator` `enumerateChildren(NodeTest test)` Get an enumeration of the children of this node
`AttributeGroupDecl` `getAttributeGroupDecl()` Returns the AttributeGroupDecl created by this AttributeGroup declaration.
`AttributeGroupReference` `getAttributeGroupReference()` Return the AttributeGroupReference, if this is a reference
`NodeInfo` `getFirstChild()` Get the first child node of the element
`NodeInfo` `getLastChild()` Get the last child node of the element
`AttributeGroupDecl` `getRedefinedAttributeGroup()`
`String` `getStringValue()` Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.
`CharSequence` `getStringValueCS()` Get the value of the item as a CharSequence.
`boolean` `hasChildNodes()` Determine if the node has any children.
`boolean` `isReference()` Is this an attribute group declaration or a reference?
`void` `postValidate(SchemaCompiler compiler)` Additional processing after all the children of this element have been validated.
`void` `prepareAttributes()` Validate and process the attributes on this element in the schema document
`void` `useChildrenArray(NodeImpl[] array)` Supply an array to be used for the array of children.
`void` `validate(SchemaCompiler compiler)` Validate this schema element, checking all document-level constraints

Methods inherited from class com.saxonica.sdoc.SchemaElement

`allowAttributes, checkMutuallyExclusiveAttributes, duplicate, duplicateElement, error, error, getContainingComplexType, getContainingSimpleType, getLineNumber, getSchema, getSchemaNodeFactory, getXSDSchema, illegalElement, indefiniteArticle, invalidAttributeValue, missingAttribute, missingChildElement, mustBeFirstElement, mustBeLastElement, mustPrecede, mutuallyExclusive, mutuallyExclusiveAttributes, mutuallyExclusiveElementAndAttribute, parseFinalOrBlock, processAllAttributes, processId, processMaxOccurs, processMinOccurs, requireAttribute, setLineNumber, setSchemaNodeFactory, validateSubtree, warning`

Methods inherited from class net.sf.saxon.tree.ElementWithAttributes
`copy, getAttributeList, getAttributeValue, getDeclaredNamespaces, getInScopeNamespaceCodes, getPrefixForURI, getURICodeForPrefix, getURIForPrefix, initialise, iteratePrefixes, sendNamespaceDeclarations, setNamespaceDeclarations`

Methods inherited from class net.sf.saxon.tree.ElementImpl
`generateId, getBaseURI, getDocumentRoot, getNameCode, getNodeKind, getRoot, getSystemId, setNameCode, setSystemId`

Methods inherited from class net.sf.saxon.tree.NodeImpl
`atomize, compareOrder, equals, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getTypeAnnotation, getTypedValue, getURI, hashCode, isSameNodeInfo, iterateAxis, iterateAxis`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### XSDAttributeGroup

    public XSDAttributeGroup()

  Creates a new AttributeGroup element

Method Detail

### prepareAttributes

    public void prepareAttributes()
                           throws SchemaException

  Validate and process the attributes on this element in the schema document

  Specified by:
    `prepareAttributes` in class `SchemaElement`
  Throws:
    `SchemaException` - if any errors are found in the attributes

### isReference

    public boolean isReference()

  Is this an attribute group declaration or a reference?

### getAttributeGroupDecl

    public AttributeGroupDecl getAttributeGroupDecl()
                                             throws SchemaException

  Returns the AttributeGroupDecl created by this AttributeGroup declaration.

  Returns:
    the AttributeGroupDecl corresponding to this xs:attribute-group element if it is a global attribute group declaration; if it is an attribute group reference, return null.
  Throws:
    `SchemaException`

### getAttributeGroupReference

    public AttributeGroupReference getAttributeGroupReference()
                                                       throws SchemaException

  Return the AttributeGroupReference, if this is a reference

  Returns:
    the AttributeGroupReference, or null if this is not a reference
  Throws:
    `SchemaException`

### validate

    public void validate(SchemaCompiler compiler)
                  throws SchemaException

  Validate this schema element, checking all document-level constraints

  Overrides:
    `validate` in class `SchemaElement`
  Parameters:
    `compiler` -
  Throws:
    `SchemaException` - if any XML representation constraints are violated

### postValidate

    public void postValidate(SchemaCompiler compiler)
                      throws SchemaException

  Additional processing after all the children of this element have been validated.

  Overrides:
    `postValidate` in class `SchemaElement`
  Parameters:
    `compiler` -
  Throws:
    `SchemaException`

### getRedefinedAttributeGroup

    public AttributeGroupDecl getRedefinedAttributeGroup()

### hasChildNodes

    public final boolean hasChildNodes()

  Determine if the node has any children.

  Specified by:
    `hasChildNodes` in interface `NodeInfo`
  Overrides:
    `hasChildNodes` in class `NodeImpl`
  Returns:
    `true` if the node has any children, `false` if the node has no children.

### enumerateChildren

    public final AxisIterator enumerateChildren(NodeTest test)

  Get an enumeration of the children of this node

  Parameters:
    `test` - A NodeTest to be satisfied by the child nodes, or null if all child node are to be returned

### getFirstChild

    public final NodeInfo getFirstChild()

  Get the first child node of the element

  Overrides:
    `getFirstChild` in class `NodeImpl`
  Returns:
    the first child node of the required type, or null if there are no children

### getLastChild

    public final NodeInfo getLastChild()

  Get the last child node of the element

  Overrides:
    `getLastChild` in class `NodeImpl`
  Returns:
    the last child of the element, or null if there are no children

### getStringValue

    public String getStringValue()

  Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.

  Returns:
    the accumulated character content of the element, including descendant elements.
  See Also:
    `Item.getStringValueCS()`

### getStringValueCS

    public CharSequence getStringValueCS()

  Description copied from class: `NodeImpl`
  Get the value of the item as a CharSequence. This is in some cases more efficient than the version of the method that returns a String.

  Specified by:
    `getStringValueCS` in interface `Item`
  Specified by:
    `getStringValueCS` in interface `ValueRepresentation`
  Overrides:
    `getStringValueCS` in class `NodeImpl`
  Returns:
    the string value of the item
  See Also:
    `Item.getStringValue()`

### useChildrenArray

    public void useChildrenArray(NodeImpl[] array)

  Supply an array to be used for the array of children. For system use only.

### addChild

    public void addChild(NodeImpl node,
                         int index)

  Add a child node to this node. For system use only. Note: normalizing adjacent text nodes is the responsibility of the caller.

### compact

    public void compact(int size)

  Compact the space used by this node

Copyright (C) Michael H. Kay. All rights reserved.