JAXB architecture consists of 3 components.
Schema compiler binds a source schema to a set of schema-derived program elements. The binding is described by an XML-based binding language.
Schema generator maps a set of existing program elements to a derived schema. The mapping is described by program annotations.
Binding runtime framework provides unmarshalling (reading) and marshalling (writing) operations for accessing, manipulating, and validating XML content using either schema-derived or existing program elements.