//
// Copyright (c) 2020 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,
link:jaxb.html#a3856[See 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 Section 8, link:jaxb.html#a2236[See 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 Section
6, link:jaxb.html#a694[See Binding XML Schema to Java
Representations]” nor alternative interpretations for the standard
customizations described in Section 7, link:jaxb.html#a1498[See
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 Section
7, link:jaxb.html#a1498[See Customizing XML Schema to Java
Representation Binding].”
. to associate a binding customization with a
schema element where it is disallowed as specified in Section 7,
link:jaxb.html#a1498[See 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.
