## Package com.saxonica.sdoc

This package contains code used to import a schema.

See:
Description

Class Summary
AnnotationParent: An abstract superclass for schema elements whose only permitted content is an Annotation element
LSSchemaResolver: This class is a SchemaURIResolver implemented as a wrapper around a JAXP LSResourceResolver
SchemaDocument: An XML document containing a module of an XML Schema.
SchemaElement: An element in an XML Schema document.
SchemaNodeFactory: Class SchemaNodeFactory.
SchemaReader: A class for reading XML Schema documents.
SelectionParser: This class parses the two XPath subsets defined in XML Schema for handling the "selector" and "field" attributes of the <unique>, <key>, and <keyref> elements.
SimpleTypeDefinition: A simple type definition holds all the information about a simpleType during the course of schema processing.
StandardSchemaResolver: The default schema resolver used when no other is requested
UnknownElement: An unknown element in an XML Schema document.
XMLNamespaceSchema: This module constructs synthetically (that is, without reading an XML schema document) the schema components for the XML namespace
XSDAlternative: An xs:alternative element in a schema (see draft XML Schema 1.1 Part 1)
XSDAnnotation: An xs:annotation element in an XML Schema document
XSDAny: An xs:any element in an XML Schema document
XSDAnyAttribute: An xs:anyAttribute element in an XML Schema document
XSDAssert: An xs:assert element in a schema (see draft XML Schema 1.1 Part 1)
XSDAttribute: An xs:attribute element in a schema document
XSDAttributeGroup: An xs:attributeGroup element in an XML Schema document
XSDComplexContent: An xs:complexContent element in an XML Schema Document
XSDComplexContentRestriction: An xs:restriction element that is a child of xs:complexContent within an XML Schema document
XSDComplexType: An xs:complexType element in an XML Schema document
XSDCompositor: An xs:sequence, xs:choice, or xs:all element in an XML Schema document
XSDDocumentation: An xs:documentation or xs:appinfo element in an XML Schema document
XSDElement: An xs:element element in a schema document
XSDExtension: An xs:extension element in a schema document
XSDFacet: An element in an XML Schema document representing a facet, for example minLength or pattern or enumeration: any facet except assert, which is represented by the `XSDAssert` class
XSDFieldOrSelector: An xs:field or xs:selector element in an XML Schema document
XSDGroup: An xs:group element in an XML Schema document
XSDIdentityConstraint: An xs:unique, xs:key, or xs:keyref element in an XML Schema document
XSDImport: An xs:import element in an XML Schema document
XSDInclude: An xs:include element in an XML Schema document
XSDList: This class represents an xs:list element in a schema document.
XSDNotation: An element in an XML Schema document representing a notation declaration
XSDRedefine: An xs:redefine element in an XML Schema Document
XSDSchema: An xs:schema element in an XML Schema document
XSDSimpleContent: An xs:simpleContent element in an XML Schema document
XSDSimpleContentRestriction: An xs:restriction element in an XML Schema document that appears as a child of an xs:simpleContent element
XSDSimpleType: An xs:simple-type element in an XML Schema document
XSDSimpleTypeRestriction: An xs:restriction element in an XML Schema Document, whose parent element is an xs:simpleType
XSDUnion: An xs:union element in an XML Schema document

## Package com.saxonica.sdoc Description

This package contains code used to import a schema.

Its task is to read a schema provided as a source XML document, to validate that it conforms to all the XML representation rules defined in the W3C XML Schema specification, and to construct a representation of the schema using the classes in package `com.saxonica.schema`. The classes in the importer package are transient, they are used only during the course of constructing the schema object model.

The process is analogous to the way stylesheets are built. Each schema document results in a Saxon tree. Each kind of element in the source schema is assigned to a specific class (a subclass of SchemaElement), which constructs the representation of the corresponding object in the schema object model.

Processing is in a number of phases:

1. The tree is constructed (which performs XML validation and namespace validation)
2. Attributes are processed and validated. At this stage the parent of a node is available but its siblings and children should not be accessed.
3. Structural validation is performed by the validate() method. This is essentially responsible for checking that the schema document is structurally valid according to the schema for schemas.
4. Semantic validation is carried out by the checkRepresentation() method. This is responsible for checking the rules in the XML Representation constraints.
5. Schema components are constructed by the buildComponents() method.

There should be no need for user applications to use any of the classes in this package.

Copyright (c) Saxonica Limited. All rights reserved.