Tuesday, February 21, 2012

Why do JAXB generated classes have protected members and how can I change this?


I have been searching the internet for a reason why JAXB generated classes have protected members (all of them, regardless of inheritance).





I would like the members to be private instead.



My search has come up empty.



I have normal xsd files which are converted into java classes using maven and jaxb. Ideally the generated members should be private but I cannot find a way to achieve this.



Is there a way to modify this default behaviour?



Thanks.



[edited first sentence]

1 comment:

  1. I think the only way to achieve this is to develop a JXC plugin yourself, search google for samples.


    What Can A Plugin Do?

    An XJC plugin participates in the code generation from a schema. It
    can define its own customizations that users can use to control it, it
    can access the code that the JAXB RI generates, it can generate
    additional classes/methods/fields/annotations/comments, and it can
    also replace some of the pluggability points in the compilation
    process, such as XML name -> Java name conversion.


    Good luck?..

    ReplyDelete