Overview | Package | Class | Deprecated | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.saxonica.sdoc
Class XSDSchema

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

All Implemented Interfaces:
  javax.xml.transform.Source, javax.xml.transform.SourceLocator, PullEvent, FingerprintedNode, Item, MutableNodeInfo, NamespaceResolver, NodeInfo, SiblingCountingNode, ValueRepresentation

    public class XSDSchema

extends SchemaElement

An xs:schema element in an XML Schema document

Field Summary
`protected java.lang.Object` | `children`
`protected int` | `sequence`

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.ElementImpl
`attributeList, nameCode, namespaceList, typeCode`

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

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.NodeInfo
`ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES`

Constructor Summary
`XSDSchema()` Create an XSDSchema object, representing the xs:schema element in a schema document

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
`protected AxisIterator` | `enumerateChildren(NodeTest test)` Get an enumeration of the children of this node
`java.lang.String` | `getAttributeFormDefault()` Returns the attributeFormDefault property of this Schema.
`int` | `getBlockDefault()` Returns the default BlockList for this Schema.
`java.lang.String` | `getElementFormDefault()` Returns the elementFormDefault property of this Schema.
`int` | `getErrorCount()` Get the number of errors detected in this schema document
`int` | `getFinalDefault()` Returns the default FinalList for this Schema.
`NodeInfo` | `getFirstChild()` Get the first child node of the element
`NodeInfo` | `getLastChild()` Get the last child node of the element
`protected NodeImpl` | `getNthChild(int n)` Get the nth child node of the element (numbering from 0)
`int` | `getNumberOfChildren()` Determine how many children the node has
`SingleNamespaceSchema` | `getSchema()` Get the PreparedSchema to which schema components are being added
`SchemaCompiler` | `getSchemaCompiler()` Get the SchemaCompiler in use
`protected long` | `getSequenceNumber()` Get the node sequence number (in document order).
`java.lang.String` | `getStringValue()` Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.
`java.lang.CharSequence` | `getStringValueCS()` Get the value of the item as a CharSequence.
`java.lang.String` | `getTargetNamespace()` Get the target namespace of this schema document.
`java.lang.String` | `getXPathDefaultNamespace()` Get the value of the defaultXPathDefaultNamespace attribute defined on this element
`boolean` | `hasChildNodes()` Determine if the node has any children.
`void` | `incrementErrorCount()` Increment the number of errors detected in this schema document
`void` | `insertChildren(NodeInfo[] source, boolean atStart, boolean inherit)` Insert copies of a sequence of nodes as children of this node.
`protected void` | `insertChildrenAt(NodeInfo[] source, int index, boolean inherit)` Insert children before or after a given existing child
`boolean` | `isChameleon()` Determine if this is a chameleon schema document, that is, one with no targetNamespace of its own, whose effective target namespace (and for many purposes, default namespace) are set to the targetNamespace of the referring schema document.
`boolean` | `isImportedNamespace(java.lang.String uri)` Determine whether a given URI is that of a namespace that has been imported into this schema document.
`void` | `postValidate(SchemaCompiler compiler)` Process child elements after validation
`void` | `prepareAttributes()` Validate and process the attributes on this element in the schema document
`protected void` | `removeChild(NodeImpl child)` Remove a given child
`protected void` | `replaceChildrenAt(NodeInfo[] source, int index, boolean inherit)` Replace child at a given index by new children
`void` | `setAttributeFormDefault(java.lang.String attributeFormDefault)` Sets the attributeFormDefault property of this Schema.
`void` | `setBlockDefault(int value)` Sets the default Block values for this Schema.
`void` | `setElementFormDefault(java.lang.String elementFormDefault)` Sets the elementFormDefault property of this Schema.
`void` | `setFinalDefault(int value)` Sets the default "final" list for this Schema.
`void` | `setReferrer(SchemaElement referrer)` Set the xs:include, xs:import, or xs:redefine element that caused this schema document to be loaded
`void` | `setSchema(SingleNamespaceSchema schema)` Set the SingleNamespaceSchema to which schema components are being added
`void` | `setSchemaCompiler(SchemaCompiler manager)` Set the SchemaCompiler in use
`protected 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
`allocateAnonymousTypeCode, allowAttributes, checkContentModel, checkMutuallyExclusiveAttributes, checkOnlyChildIsAnnotation, duplicate, duplicateElement, error, error, getContainingComplexType, getContainingSimpleType, getFingerprint, getNameCode, getSchemaNodeFactory, getXSDSchema, illegalElement, indefiniteArticle, invalidAttributeValue, isFinalState, isTopLevel, makeNamespaceContext, missingAttribute, missingChildElement, mustBeFirstElement, mustBeLastElement, mustPrecede, mutuallyExclusive, mutuallyExclusiveAttributes, mutuallyExclusiveElementAndAttribute, parseFinalOrBlock, processAllAttributes, processId, processMaxOccurs, processMinOccurs, requireAttribute, setSchemaNodeFactory, validateChildren, validateSubtree, warning`

Methods inherited from class net.sf.saxon.tree.ElementImpl
`addNamespace, copy, delete, fixupInsertedNamespaces, generateId, getAttributeList, getAttributeValue, getAttributeValue, getBaseURI, getColumnNumber, getDeclaredNamespaces, getDocumentRoot, getInScopeNamespaceCodes, getLineNumber, getNameCode, getNodeKind, getPrefixForURI, getRoot, getSystemId, getTypeAnnotation, getURICodeForPrefix, getURICodeForPrefixCode, getURIForPrefix, initialise, isNilled, iteratePrefixes, putAttribute, removeAttribute, removeTypeAnnotation, rename, replaceStringValue, setLineAndColumn, setLocation, setNameCode, setNamespaceDeclarations, setSystemId, setTypeAnnotation`

Methods inherited from class net.sf.saxon.tree.NodeImpl
`atomize, compareOrder, equals, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPhysicalRoot, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getSiblingPosition, getTypedValue, getURI, hashCode, insertSiblings, isId, isIdref, isSameNodeInfo, iterateAxis, iterateAxis, newBuilder, replace`

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

Field Detail

### children

    protected java.lang.Object children

### sequence

    protected int sequence

Constructor Detail

### XSDSchema

    public XSDSchema()

  Create an XSDSchema object, representing the xs:schema element in a schema document

Method Detail

### getSchema

    public SingleNamespaceSchema getSchema()

  Get the PreparedSchema to which schema components are being added

  Overrides:
    `getSchema` in class `SchemaElement`
  Returns:
    the PreparedSchema containing the compiled schema components

### setSchema

    public void setSchema(SingleNamespaceSchema schema)

  Set the SingleNamespaceSchema to which schema components are being added

  Parameters:
    `schema` - the SingleNamespaceSchema containing the compiled schema components

### setSchemaCompiler

    public void setSchemaCompiler(SchemaCompiler manager)

  Set the SchemaCompiler in use

  Parameters:
    `manager` - the schema compiler

### getSchemaCompiler

    public SchemaCompiler getSchemaCompiler()

  Get the SchemaCompiler in use

  Returns:
    the schema compiler

### setReferrer

    public void setReferrer(SchemaElement referrer)

  Set the xs:include, xs:import, or xs:redefine element that caused this schema document to be loaded

  Parameters:
    `referrer` - the referring xs:include, xs:import, or xs:redefine element

### isChameleon

    public boolean isChameleon()

  Determine if this is a chameleon schema document, that is, one with no targetNamespace of its own, whose effective target namespace (and for many purposes, default namespace) are set to the targetNamespace of the referring schema document.

  Returns:
    true if this document is a chameleon

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

### isImportedNamespace

    public boolean isImportedNamespace(java.lang.String uri)

  Determine whether a given URI is that of a namespace that has been imported into this schema document.

  Parameters:
    `uri` - the namespace URI ("" for the null namespace)
  Returns:
    true if the namespace has been imported, false otherwise

### validate

    public void validate(SchemaCompiler compiler)
                  throws SchemaException

  Validate this schema element, checking all document-level constraints

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

### postValidate

    public void postValidate(SchemaCompiler compiler)
                      throws SchemaException

  Process child elements after validation

  Overrides:
    `postValidate` in class `SchemaElement`
  Parameters:
    `compiler` - used for reporting errors
  Throws:
    `SchemaException` - if errors are found

### getTargetNamespace

    public java.lang.String getTargetNamespace()

  Get the target namespace of this schema document.

  Returns:
    "" for the no-namespace case

### getAttributeFormDefault

    public java.lang.String getAttributeFormDefault()

  Returns the attributeFormDefault property of this Schema.

  Returns:
    the attributeFormDefault property of this Schema, or null if no default Form was set. If no default Form has been set, the user should assume Form.Unqualified. The value is returned as a string, "qualified" or "unqualified".

### getBlockDefault

    public int getBlockDefault()

  Returns the default BlockList for this Schema.

  Returns:
    the default BlockList for this Schema, as an integer with bit-significant fields

### getElementFormDefault

    public java.lang.String getElementFormDefault()

  Returns the elementFormDefault property of this Schema.

  Returns:
    the elementFormDefault property of this Schema. The value is returned as a string ("qualified" or "unqualified"), or null if no default Form was set. If no default Form has been set, the user should assume "unqualified".

### getFinalDefault

    public int getFinalDefault()

  Returns the default FinalList for this Schema.

  Returns:
    final the default FinalList for this Schema.

### setAttributeFormDefault

    public void setAttributeFormDefault(java.lang.String attributeFormDefault)

  Sets the attributeFormDefault property of this Schema.

  Parameters:
    `attributeFormDefault` - the Form value of the attributeFormDefault property for this Schema, as a string, "qualified" or "unqualified". The caller is responsible for validating the value.

### setBlockDefault

    public void setBlockDefault(int value)

  Sets the default Block values for this Schema.

  Parameters:
    `value` - the default Block values to set for this Schema, as a bit-significant integer.

### setElementFormDefault

    public void setElementFormDefault(java.lang.String elementFormDefault)

  Sets the elementFormDefault property of this Schema.

  Parameters:
    `elementFormDefault` - the Form value of the elementFormDefault property for this Schema.

### setFinalDefault

    public void setFinalDefault(int value)

  Sets the default "final" list for this Schema.

  Parameters:
    `value` - the default final values to set for this Schema, as a bit-significant integer

### getXPathDefaultNamespace

    public java.lang.String getXPathDefaultNamespace()

  Get the value of the defaultXPathDefaultNamespace attribute defined on this element

  Returns:
    the value of the defaultXPathDefaultNamespace attribute, or "##local" if no value has been defined for the attribute

### getErrorCount

    public int getErrorCount()

  Get the number of errors detected in this schema document

  Returns:
    the number of errors detected

### incrementErrorCount

    public void incrementErrorCount()

  Increment the number of errors detected in this schema document

### getSequenceNumber

    protected final long getSequenceNumber()

  Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive. In the current implementation, parent nodes (elements and document nodes) have a zero least-significant word, while namespaces, attributes, text nodes, comments, and PIs have the top word the same as their owner and the bottom half reflecting their relative position. For nodes added by XQUery Update, the sequence number is -1L

  Overrides:
    `getSequenceNumber` in class `NodeImpl`
  Returns:
    the sequence number if there is one, or -1L otherwise.

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

### getNumberOfChildren

    public int getNumberOfChildren()

  Determine how many children the node has

  Returns:
    the number of children of this parent node

### enumerateChildren

    protected 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
  Returns:
    an iterator over the children of this node

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

### getNthChild

    protected final NodeImpl getNthChild(int n)

  Get the nth child node of the element (numbering from 0)

  Parameters:
    `n` - identifies the required child
  Returns:
    the last child of the element, or null if there is no n'th child

### removeChild

    protected void removeChild(NodeImpl child)

  Remove a given child

  Parameters:
    `child` - the child to be removed

### getStringValue

    public java.lang.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 java.lang.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

    protected void useChildrenArray(NodeImpl[] array)

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

  Parameters:
    `array` - the array to be used

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

  Parameters:
    `node` - the node to be added as a child of this node
    `index` - the position where the child is to be added

### insertChildren

    public void insertChildren(NodeInfo[] source,
                               boolean atStart,
                               boolean inherit)

  Insert copies of a sequence of nodes as children of this node.

  This method takes no action unless the target node is a document node or element node. It also takes no action in respect of any supplied nodes that are not elements, text nodes, comments, or processing instructions.

  The supplied nodes will be copied to form the new children. Adjacent text nodes will be merged, and zero-length text nodes removed.

  Specified by:
    `insertChildren` in interface `MutableNodeInfo`
  Overrides:
    `insertChildren` in class `NodeImpl`
  Parameters:
    `source` - the nodes to be inserted
    `atStart` - true if the new nodes are to be inserted before existing children; false if they are
    `inherit` - true if the inserted nodes are to inherit the namespaces that are in-scope for their new parent; false if such namespaces should be undeclared on the children

### insertChildrenAt

    protected void insertChildrenAt(NodeInfo[] source,
                                    int index,
                                    boolean inherit)

  Insert children before or after a given existing child

  Parameters:
    `source` - the children to be inserted
    `index` - the position before which they are to be inserted: 0 indicates insertion before the first child, 1 insertion before the second child, and so on.
    `inherit` - true if the inserted nodes are to inherit the namespaces that are in-scope for their new parent; false if such namespaces should be undeclared on the children

### replaceChildrenAt

    protected void replaceChildrenAt(NodeInfo[] source,
                                     int index,
                                     boolean inherit)

  Replace child at a given index by new children

  Parameters:
    `source` - the children to be inserted
    `index` - the position at which they are to be inserted: 0 indicates replacement of the first child, replacement of the second child, and so on. The effect is undefined if index is out of range
    `inherit` - set to true if the new child elements are to inherit the in-scope namespaces of their new parent
  Throws:
    `java.lang.IllegalArgumentException` - if any of the replacement nodes is not an element, text, comment, or processing instruction node

### compact

    public void compact(int size)

  Compact the space used by this node

  Parameters:
    `size` - the number of actual children

Overview | Package | Class | Deprecated | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) Saxonica Limited. All rights reserved.