- 
                Notifications
    
You must be signed in to change notification settings  - Fork 103
 
JAXB2 Inheritance Plugin
        Laurent Schoelens edited this page Aug 25, 2023 
        ·
        4 revisions
      
    Activate the plugin using -Xinheritance switch.
<execution>
  <goals>
    <goal>generate</goal>
  </goals>
  <configuration>
    <bindingDirectory>
      ${basedir}/src/main/resources/....
    </bindingDirectory>
    <extension>true</extension>
    <args>
      <arg>-Xinheritance</arg>
    </args>
    <plugins>
      <plugin>
        <groupId>org.jvnet.jaxb</groupId>
        <artifactId>jaxb2-basics</artifactId>
      </plugin>
    </plugins>
  </configuration>
</execution>In your bindings.xjb use inheritance:inherit inside jaxb:bindings to add java interface to a generated class.
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="2.1"
         xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
         jaxb:extensionBindingPrefixes="xjc">
  <jaxb:bindings
      schemaLocation="mySchema.wsdl"
      node="//xs:complexType[@name='MyType']">
    <inheritance:implements>com.application.MyInterface</inheritance:implements>
  </jaxb:bindings>
</jaxb:bindings>- Home
 - Migration guide
 - 
JAXB Maven Plugin
- Quick Start
 - 
User Guide
- Basic Usage
 - Specifying What To Compile
 - Referencing Resources in Maven Artifacts
 - Using Catalogs
 - Using Episodes
 - Modular Schema Compilation
 - Controlling the Output
 - Using JAXB Plugins
 - Using a Specific JAXB Version
 - Configuring Extension, Validation and XML Security
 - IDE Integration
 - Miscellaneous
 - Configuring Proxies
 
 - Maven Documentation
 - Configuration Cheat Sheet
 - Common Pitfalls and Problems
 
 - 
JAXB2 Basics Plugins
- Using JAXB2 Basics Plugins
 - JSR-305 Support
 - 
JAXB2 Basics Plugins List
- SimpleEquals Plugin
 - SimpleHashCode Plugin
 - Equals Plugin
 - HashCode Plugin
 - ToString Plugin
 - Copyable Plugin
 - Mergeable Plugin
 - Inheritance Plugin
 - AutoInheritance Plugin
 - Wildcard Plugin
 - Setters Plugin
 - Simplify Plugin
 - EnumValue Plugin
 - JAXBIndex Plugin
 - FixJAXB1058 Plugin
 - Commons Lang Plugin
 - Default Value Plugin
 - Fluent API Plugin
 - Namespace Prefix Plugin
 - Value Constructor Plugin
 - Boolean Getter Plugin
 - CamelCase Plugin
 - XML ElementWrapper Plugin
 - Parent Pointer Plugin
 - Property Listener Injector Plugin
 
 
 - Annox
 - JAXB Annotate Plugin
 - 
HyperJAXB3
- Build System Support
 - Customization Guide
 - Databases
 - Development guide
 - Extension guide
 - FAQ
 - IDE Support
 - Java Persistence
 - JAXB
 - JDK Support
 - Project Templates
 - 
Reference
- Adding vendor-specific annotations
 - Features
 - Integrating Hyperjaxb3 in builds
 - Introduction
 - Making schema-derived classes ready for JPA
 - Adding required properties
 - Applying workarounds for JAXB vs. JPA conflicts
 - Enforcing top-level classes
 - Generating equals and hashCode methods
 - Generating ORM metadata
 - Generating persistence unit descriptor
 - JPA 2 Support
 - Making classes serializable
 - Testing generated mappings
 
 - Reference - single page
 - Related Projects
 - Sample projects
 - Solutions
 - Target Scenarios
 - Test Projects
 - Tutorials
 
 - Best Practices
 - FAQ
 - Sample Projects
 - Support
 - License
 - Distribution