org.apache.xmlbeans

## Interface SchemaTypeLoader

- All Known Subinterfaces:
    SchemaTypeSystem
  All Known Implementing Classes:
    BuiltinSchemaTypeSystem, SchemaTypeLoaderBase, SchemaTypeLoaderImpl, SchemaTypeSystemImpl, SoapEncSchemaTypeSystem, TypeSystemHolder, TypeSystemHolder, TypeSystemHolder, TypeSystemHolder, TypeSystemHolder, XQuerySchemaTypeSystem

      public interface SchemaTypeLoader

  Represents a searchable set of XML Schema component definitions.

  SchemaTypeLoader is somewhat analogous to `ClassLoader`, because it is responsible for finding `SchemaComponent` definitions by name, yet it is not responsible for being able to enumerate all the component definitons available. (If you wish to enumerate component definitions, see `SchemaTypeSystem`.) There are some ways in which SchemaTypeSystems are dissimilar from ClassLoaders, however. Since XML Schema has a number of instance-oriented typing mechanisms (such as wildcards) that do not exist in Java, a SchemaTypeLoader is not associated with a type; instead, a SchemaTypeLoader is associated with each XML instance.

  Every XML instance is loaded within the context of a SchemaTypeLoader; the SchemaTypeLoader for an instance is used to resolve all type definitions within the instance and for applying type-sensitive methods such as `XmlObject.validate()`.

  Normally the SchemaTypeLoader being used for all instances is the context type loader (that is, the SchemaTypeLoader returned from `XmlBeans.getContextTypeLoader()`). The context type loader consults the thread's context ClassLoader (see `Thread.getContextClassLoader()`) to find schema type defintions that are available on the classpath. The net result is that you can use schema types simply by putting their compiled schema JARs on your classpath. If you wish to load instances using a different SchemaTypeLoader, then you must call `parse(java.lang.String, org.apache.xmlbeans.SchemaType, org.apache.xmlbeans.XmlOptions)` methods on the SchemaTypeLoader instance explicitly rather than using the normal convenient Factory methods.

  A SchemaTypeLoader can be obtained by dynamically loading XSD files using `XmlBeans.loadXsd(org.apache.xmlbeans.XmlObject...)`, or by assembling other SchemaTypeLoaders or SchemaTypeSystems on a path using `XmlBeans.typeLoaderUnion(org.apache.xmlbeans.SchemaTypeLoader...)`.

  See Also:
    `XmlBeans.loadXsd(org.apache.xmlbeans.XmlObject...)`, `XmlBeans.getContextTypeLoader()`, `XmlBeans.typeLoaderUnion(org.apache.xmlbeans.SchemaTypeLoader...)`, `SchemaTypeSystem`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `compilePath(String pathExpr, XmlOptions options)` Compiles an XPath
    `String` | `compileQuery(String queryExpr, XmlOptions options)` Compiles an XQuery
    `SchemaGlobalAttribute` | `findAttribute(QName name)` Returns the global attribute defintion with the given name, or null if none.
    `SchemaAttributeGroup` | `findAttributeGroup(QName name)` Returns the attribute group defintion with the given name, or null if none.
    `SchemaAttributeGroup.Ref` | `findAttributeGroupRef(QName name)` Used for on-demand loading.
    `SchemaGlobalAttribute.Ref` | `findAttributeRef(QName name)` Used for on-demand loading.
    `SchemaType` | `findAttributeType(QName name)` Returns the attribute type containing the given attribute name, or null if none.
    `SchemaType.Ref` | `findAttributeTypeRef(QName name)` Used for on-demand loading.
    `SchemaType` | `findDocumentType(QName name)` Returns the document type rooted at the given element name, or null if none.
    `SchemaType.Ref` | `findDocumentTypeRef(QName name)` Used for on-demand loading.
    `SchemaGlobalElement` | `findElement(QName name)` Returns the global element defintion with the given name, or null if none.
    `SchemaGlobalElement.Ref` | `findElementRef(QName name)` Used for on-demand loading.
    `SchemaIdentityConstraint.Ref` | `findIdentityConstraintRef(QName name)` Used for on-demand loading.
    `SchemaModelGroup` | `findModelGroup(QName name)` Returns the model group defintion with the given name, or null if none.
    `SchemaModelGroup.Ref` | `findModelGroupRef(QName name)` Used for on-demand loading.
    `SchemaType` | `findType(QName name)` Returns the type with the given name, or null if none.
    `SchemaType.Ref` | `findTypeRef(QName name)` Used for on-demand loading.
    `InputStream` | `getSourceAsStream(String sourceName)` Loads original XSD source as a stream.
    `boolean` | `isNamespaceDefined(String namespace)` True if the typeloader contains any definitions in the given namespace.
    `DOMImplementation` | `newDomImplementation(XmlOptions options)` Returns a DOMImplementation.
    `XmlObject` | `newInstance(SchemaType type, XmlOptions options)` Creates an instance of the given type.
    `XmlSaxHandler` | `newXmlSaxHandler(SchemaType type, XmlOptions options)` Returns an XmlSaxHandler that can parse an instance of the given type.
    `XmlObject` | `parse(File file, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `XmlObject` | `parse(InputStream jiois, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `XmlObject` | `parse(Node node, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `XmlObject` | `parse(Reader jior, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `XmlObject` | `parse(String xmlText, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `XmlObject` | `parse(URL file, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `XmlObject` | `parse(XMLStreamReader xsr, SchemaType type, XmlOptions options)` Parses an instance of the given type.
    `SchemaType` | `typeForClassname(String classname)` Finds a type for a given fully-qualified XML Bean classname
    `SchemaType` | `typeForSignature(String signature)` Finds a type for a given signature string

- - ### Method Detail

    - #### findType

          SchemaType findType(QName name)

      Returns the type with the given name, or null if none.

    - #### findDocumentType

          SchemaType findDocumentType(QName name)

      Returns the document type rooted at the given element name, or null if none.

    - #### findAttributeType

          SchemaType findAttributeType(QName name)

      Returns the attribute type containing the given attribute name, or null if none.

    - #### findElement

          SchemaGlobalElement findElement(QName name)

      Returns the global element defintion with the given name, or null if none.

    - #### findAttribute

          SchemaGlobalAttribute findAttribute(QName name)

      Returns the global attribute defintion with the given name, or null if none.

    - #### findModelGroup

          SchemaModelGroup findModelGroup(QName name)

      Returns the model group defintion with the given name, or null if none.

    - #### findAttributeGroup

          SchemaAttributeGroup findAttributeGroup(QName name)

      Returns the attribute group defintion with the given name, or null if none.

    - #### isNamespaceDefined

          boolean isNamespaceDefined(String namespace)

      True if the typeloader contains any definitions in the given namespace.

    - #### findTypeRef

          SchemaType.Ref findTypeRef(QName name)

      Used for on-demand loading.

    - #### findDocumentTypeRef

          SchemaType.Ref findDocumentTypeRef(QName name)

      Used for on-demand loading.

    - #### findAttributeTypeRef

          SchemaType.Ref findAttributeTypeRef(QName name)

      Used for on-demand loading.

    - #### findElementRef

          SchemaGlobalElement.Ref findElementRef(QName name)

      Used for on-demand loading.

    - #### findAttributeRef

          SchemaGlobalAttribute.Ref findAttributeRef(QName name)

      Used for on-demand loading.

    - #### findModelGroupRef

          SchemaModelGroup.Ref findModelGroupRef(QName name)

      Used for on-demand loading.

    - #### findAttributeGroupRef

          SchemaAttributeGroup.Ref findAttributeGroupRef(QName name)

      Used for on-demand loading.

    - #### findIdentityConstraintRef

          SchemaIdentityConstraint.Ref findIdentityConstraintRef(QName name)

      Used for on-demand loading.

    - #### typeForSignature

          SchemaType typeForSignature(String signature)

      Finds a type for a given signature string

    - #### typeForClassname

          SchemaType typeForClassname(String classname)

      Finds a type for a given fully-qualified XML Bean classname

    - #### getSourceAsStream

          InputStream getSourceAsStream(String sourceName)

      Loads original XSD source as a stream. See `SchemaComponent.getSourceName()`.

    - #### compilePath

          String compilePath(String pathExpr,
                             XmlOptions options)
                      throws XmlException

      Compiles an XPath
      Throws:
        `XmlException`

    - #### compileQuery

          String compileQuery(String queryExpr,
                              XmlOptions options)
                       throws XmlException

      Compiles an XQuery
      Throws:
        `XmlException`

    - #### newInstance

          XmlObject newInstance(SchemaType type,
                                XmlOptions options)

      Creates an instance of the given type.

    - #### parse

          XmlObject parse(String xmlText,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException

      Parses an instance of the given type.
      Throws:
        `XmlException`

    - #### parse

          XmlObject parse(File file,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException,
                          IOException

      Parses an instance of the given type.
      Throws:
        `XmlException`
        `IOException`

    - #### parse

          XmlObject parse(URL file,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException,
                          IOException

      Parses an instance of the given type.
      Throws:
        `XmlException`
        `IOException`

    - #### parse

          XmlObject parse(InputStream jiois,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException,
                          IOException

      Parses an instance of the given type.
      Throws:
        `XmlException`
        `IOException`

    - #### parse

          XmlObject parse(XMLStreamReader xsr,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException

      Parses an instance of the given type.
      Throws:
        `XmlException`

    - #### parse

          XmlObject parse(Reader jior,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException,
                          IOException

      Parses an instance of the given type.
      Throws:
        `XmlException`
        `IOException`

    - #### parse

          XmlObject parse(Node node,
                          SchemaType type,
                          XmlOptions options)
                   throws XmlException

      Parses an instance of the given type.
      Throws:
        `XmlException`

    - #### newXmlSaxHandler

          XmlSaxHandler newXmlSaxHandler(SchemaType type,
                                         XmlOptions options)

      Returns an XmlSaxHandler that can parse an instance of the given type.

    - #### newDomImplementation

          DOMImplementation newDomImplementation(XmlOptions options)

      Returns a DOMImplementation.