Я не совсем уверен, что это ответ, но у меня было прозрение при отладке моего приложения.
Кратность по умолчанию для элемента в XML-схеме равна 1..1 (required)
где кратность по умолчанию для атрибута равна 0..1 (optional)
.
Таким образом, поскольку элемент равен , требуется и примитив в Java имеет значение по умолчанию (скорее всего, 0), имеет смысл сгенерировать <xsd:element type="xsd:int" />
как примитив Java.
, поскольку атрибут необязательно есть вероятность, что это может быть nillable
, что было бы невозможно при использовании примитива. java.lang.Integer является Object
и, следовательно, может быть null
, поэтому имеет смысл сгенерировать <xsd:attribute type="xsd:int" />
как java.lang.Integer .
Если вы сделаете атрибут be обязательный (<xsd:attribute type="xsd:int" use="required" />
), он будет сгенерирован как примитив int
.Я не видел документации JAXB, в которой это прямо сказано, но это не значит, что ее не существует;возможно я просто пропустил это.