//
// Copyright (c) 2020, 2021 Contributors to the Eclipse Foundation
//

== Compatibility

This section describes conformance
requirements for an implementor of this specification. A JAXB
implementation must implement these constraints, without exception, to
provide a predictable environment for application development and
deployment.

This section explicitly lists the high level
requirements of this specification. Additional requirements can be found
in other sections of this specification and the associated javadoc for
package `jakarta.xml.bind` and its subpackages. If any requirements listed
here conflict with requirements listed elsewhere in the specification,
the requirements here take precedence and replace the conflicting
requirements.

A JAXB implementation must implement the
processing model specified in Appendix B,
<<Runtime Processing>>.

A JAXB implementation included in a product
that supports software development must support a schema generator. A
schema generator must support all the Java Types to XML Schema mapping
specified in <<Java Types To XML>>.

A JAXB implementation included in a product
that supports software development must support a schema compiler. All
operating modes of a schema compiler must support all the XML
Schema-to-Java bindings described in this specification. Additionally,
any operating mode must not implement a default binding for XML
Schema-to-Java bindings as an alternative to those specified in
<<Binding XML Schema to Java Representations>> nor alternative interpretations for the standard
customizations described in <<Customizing XML Schema to Java Representation Binding>>.

The default operating mode for a schema
compiler MUST report an error when extension binding declaration is
encountered. All operating modes for a schema compiler MUST report an
error if an invalid binding customization is detected as defined in
Section 7. An extension binding declaration must be introduced in the
following cases:

. to alter a binding customization that is
allowed to be associated with a schema element as specified in
<<Customizing XML Schema to Java Representation Binding>>.
. to associate a binding customization with a
schema element where it is disallowed as specified in
<<Customizing XML Schema to Java Representation Binding>>.

The default operating mode for a schema
compiler MUST report an error when processing a schema that does not
comply with the 2001 W3C Recommendation for XML Schema, [XSD Part 1] and
[XSD Part 2].

A schema compiler MAY support non-default
operating modes for binding schema languages other than XML Schema.

A schema compiler MUST be able to generate
Java classes that are able to run on at least one Sun's Reference
Implementation of the J2SE Java Runtime Environment that is J2SE 5 or
higher.

A schema generator MAY support non-default
operating modes for mapping Java types to schema languages other than
XML Schema.
